05 · STOREFRONT الموقع والتسويق

الموقع: إيه اللي نبني عليه وإيه اللي نبنيه من الصفر

فريق الموقع عامل بروتوتايب على flouka.runasp.net فيه منتجات حقيقية وأقسام وعروض ونقاط ولاء وباب جملة. الشكل حلو، بس المنطق كله لسه علينا: الأسعار والعروض والنقاط والسلة لازم تتحسب في السيرفر عشان الموقع واللوحة والتقارير يقولوا نفس الرقم. الصفحة دي بتعدّي على البروتوتايب سطر سطر وتصنّف كل حاجة، وبعدين تعرّف كل ميزة تسويقية بقاعدة دقيقة ومثال وحالات طرفية.

تحليل البروتوتايب سطر سطرمتغيرات بسعر لكل لون ومقاسمنتج الصور 5 أنواع عروضكوبوناتنقاط الولاءالإضافات القياسيةعقد الـ API
01

الموقع التجريبي في سطور

اللي اتعمل كويس، واللي محتاج يتصلّح، والقاعدة اللي بنمشي بيها: الموقع واجهة بس — والحساب كله عندنا (Q16).

٣٬٠٦٨+
منتج في 5 أقسام رئيسية (من غير البيرسينج والميداليات)
٥
أنواع عروض بتتطبق تلقائياً في السلة من غير كود
٤
مستويات استبدال نقاط الولاء (200 · 400 · 800 · 1500)
١٤ يوم
تبديل واسترجاع — والشحن من 2 لـ 5 أيام عمل
قاعدة متقالة أو حقيقية — نبني عليها عرض شكل من غير منطق — نبني المنطق من الصفر خطأ سلوك غلط — مانبنيش عليه افتراض قرار مننا لحد ما العميل يأكد
الموقع والتطبيق: عربي وإنجليزي، ونفس الـ API

الموقع وتطبيق الموبايل الاتنين بلغتين، والعربي الافتراضي، والاتنين بيشتغلوا على نفس الـ API. كل حاجة في الصفحة دي بتتبني بلغتين: أسماء المنتجات وأوصافها وخاماتها، الألوان والمقاسات، الأقسام، العروض، باقات الصور، مستويات النقاط، الشروط، صفحات المحتوى، والبانرات (وفيها صورة لكل لغة اختياري). الواجهة بتبعت Accept-Language والـ API بيرد باللغة المطلوبة، ورابط وعنوان SEO لكل لغة. تنبيه: أسماء المنتجات الحالية إنجليزي بس، فالعربي محتاج ترجمة (التعارض C16 في صفحة 11).

02

البروتوتايب سطر سطر

كل حاجة ظاهرة في الموقع التجريبي S7، تصنيفها، واللي الباك إند لازم يوفره عشان تشتغل بجد.

#اللي في الموقعالتصنيفاللي الباك إند لازم يوفرهملاحظة
1الهيرو والبانراتعرضبانرات من اللوحة (صورة أو فيديو، لينك، جدولة، موبايل/ديسكتوب)العميل عايز الهيرو فيديو S6
2الأقسام بعددها (أساور 1,044 …)قاعدةأقسام بترتيب وصورة، والعدد محسوب من المنشور للجمهور ده بسبيانات حقيقية منقولة
3«خصم حتى 50%» كقسمعرضمجموعة ذكية بشرط (نسبة الخصم ≥ كذا) مش قسم حقيقيالمنتج مايتنقلش من قسمه الأصلي
4كارت المنتج: كود، لون، خامة، سعر قبل/بعدقاعدةDTO الكارت (القسم 05)السعر قبل = سعر القطاعي، بعد = آخر سعر
5صور كتير للمنتجقاعدةصور مرتبة، صورة لكل لون، WebP بمقاسات، نص بديل—
6مقاسات وألوان بسعر لكل واحدقاعدةمتغيرات برصيد وسعر لكل واحد (القسم 04)كلام فريق الموقع
7كود المنتج o0653قاعدةبحث بالكود مش حساس لحالة الحروفالبادئة صغيرة هنا وكبيرة في المخزن (N2515) — يتوحد جديد
8المفضلةقاعدةمفضلة على السيرفر للمسجلين + دمج قايمة الزائر بعد الدخول—
9المقارنةقاعدةمواصفات المنتجات في رد واحد (لحد 4)—
10«الحقيبة» (السلة)عرضحساب السلة في السيرفر: الأسعار، العروض، الكوبون، النقاط، الهدية، الشحنالحساب في المتصفح مابيتعتمدش
11باقات الصور (+80 / +130 / +190)عرضباقات لكل منتج + رفع صور لكل قطعة (القسم 06)العميل قال سعر لكل صورة (C6)
12صفحة العروض — 5 أنواععرضمحرك العروض (القسم 07)اللافتات من الـ API مش مكتوبة في الموقع
13«العروض بتتجمع مع كود الخصم»افتراضإعداد التجميع + ترتيب الحساب (القسم 08)محتاج قرار (Q4)
14نقاط الولاء ومستوياتهاعرضسجل نقاط، منح عند الاستلام، استبدال بكود (القسم 10)الأرقام من اللوحة؛ المستويات الوسطانية أضعف جديد
15فيديو شرح الولاءقاعدةرابط الفيديو من الإعداداتالعميل عايزه قرب آخر الصفحة S6
16المحفظة (رصيد 1,250 ج)عرضمقفولة لحد قرار (القسم 11)مش في كلام العميل (C7)
17«إدارة المحافظ» في الأدمنعرض—نفس C7
18الشحن 2–5 أيام عملقاعدةمدة وسعر لكل محافظة من اللوحة—
19تبديل/استرجاع خلال 14 يومقاعدةصفحة السياسة + مدة الاسترجاع إعداد بيتحقق منه طلب المرتجع—
20خدمة العملاء على الواتسابقاعدةرقم الواتساب ورسالة البداية من الإعدادات—
21باب الجملة: خصم 25%–35%خطأسعر جملة لكل منتج + شرائح (صفحة 04)C4
22أقل كمية 3 قطع في الجملة، ومراجعة 48 ساعةقاعدةإعدادات—
23فورم التاجر وحالاته الأربعةقاعدةطلبات التجار + مراجعة (صفحة 04)زودنا «مسودة» و«موقوف»
24حساب «client VIP» — 14 طلب ⇒ نجمةقاعدةVIP تلقائي بالحدودمتوافق مع «+10 ⭐»
25حساب «تاجر مميّز — VIP» بخصم 35% وتاج ونجمةخطأ—خلط Prime وVIP (C5)
26حسابات تجريبية (عادي، معلّق، مطلوب بيانات، مرفوض بسبب)قاعدةنفس الحالات بالظبط كحسابات اختبار على السيرفر التجريبيحالات اختبار جاهزة
27«مراجعة طلبات الجملة» في الأدمنعرضالشاشة الحقيقية في لوحتنالوحة الإدارة كلها عندنا
28زرار تسجيل الدخولعرضدخول برقم التليفون/الإيميل + كود تحققالعميل عايزه أبسط S6
03

الكتالوج والأقسام

الأعداد من الموقع التجريبي وقت المراجعة — بيانات منقولة من النظام الحالي، يعني نقل البيانات (Q14) لازم يحافظ عليها.

أساور1,044
سلاسل932
خواتم605
حلقان270
بروش217
بيرسينج—
ميداليات—
خصم حتى 50% مجموعة448

📂 القسم

  • اسم، رابط (slug)، صورة، ترتيب، ظاهر/مخفي.
  • قسم فرعي اختياري (مثلاً أساور ← أساور ستيل).
  • العدد بيتحسب لكل جمهور (القطاعي مايشوفش منتجات الجملة).

🧲 المجموعات الذكية

  • «خصم حتى 50%»، «جديد»، «الأكتر مبيعاً»، «عليه عرض».
  • كل مجموعة = شرط بيتحسب (مش اختيار يدوي)، ومنتج ممكن يكون في كذا مجموعة.
  • تتعمل من اللوحة بالشرط والترتيب.

🔎 البحث والفلاتر

  • بحث بالاسم والكود (مش حساس للحروف الكبيرة/الصغيرة).
  • فلاتر: القسم، السعر، اللون، الخامة، المقاس، عليه عرض، متاح.
  • ترتيب: الأحدث، السعر، الأكتر مبيعاً، أكبر خصم.
04

المتغيرات — مقاس ولون وكل واحد بسعره

فريق الموقع أكّد إن كل مقاس أو لون ممكن يكون ليه سعر مختلف S7. ده معناه إن الرصيد والسعر والحجز كلهم على مستوى المتغير مش المنتج.

🧩 الشكل

Product { Code: "N2515", Name, Category, Material, Description, Images, ShowRetail, ShowWholesale, PrimeOnly, IsPhotoProduct } Variant { Sku: "N2515-GLD-M", Color, Size, Barcode, RetailPrice?, CompareAtPrice?, WholesalePrice?, Tiers[], Images[] (صور اللون), Stock per warehouse }

لو المتغير مالوش سعر ← بياخد سعر المنتج. المنتج من غير ألوان ولا مقاسات = متغير واحد افتراضي.

📏 القواعد

  • كود المتغير = كود المنتج + لاحقة افتراض — والباركود على المتغير (ده اللي بيتسكان في التقفيل).
  • الكارت بيعرض «من {أقل سعر}» لو الأسعار مختلفة.
  • اختيار اللون بيغيّر الصور والسعر والمتاح.
  • مقاس «فري سايز» قيمة عادية في المقاس — والعرض «التانية بنص السعر» بيستخدمها.
  • المتغير اللي رصيده صفر يظهر مشطوب «نفد» — مايستخباش عشان العميل يعرف إنه موجود.
نقطة للتأكيد مع العميل

في النظام الحالي فيه قايمة «المتغيرات» و«مجموعة أسعار البيع» S5. لازم نعرف: هل الكود المطبوع على الملصق للمنتج ولا لكل لون؟ ده بيأثر على التكويد والباركود ونقل البيانات.

05

بيانات كارت المنتج وصفحة المنتج

اللي الـ API بيرجّعه بالظبط. أي حقل مش في الجدول مابيطلعش للموقع (التكلفة، المخزن، الأماكن، سعر الجملة للقطاعي).

الحقلمثالالكارتصفحة المنتجمن فين
codeo0653✓✓المنتج
name, slugأسورة ستيل مطلية✓✓المنتج
imagesرئيسية + صورة عند المرور2الكلالمنتج/المتغير
price149✓✓آخر سعر (العرض لو جوه تاريخه)
compareAtPrice299✓✓سعر القطاعي قبل الخصم
discountPercent50✓✓محسوب في السيرفر
badges[]جديد · خصم · عليه عرض✓✓المجموعات + العروض
offerLabel«خد 2 هدية 1»✓✓محرك العروض
colors[]دهبي، فضي، روزدوائر✓المتغيرات
materialستانلس ستيلاختياري✓المنتج
sizes[]S · M · فري سايز—✓المتغيرات
inStock / lowStockمتاح / «آخر 2 قطعة»✓✓متاح الأونلاين − المحجوز
isPhotoProduct, photoPackages[]حتى 3 صور +80علامة✓إعداد المنتج
rating, reviewsCount4.8 (37)✓✓التقييمات المعتمدة
description, specs[]الطول 45 سم…—✓المنتج
isWishlistedtrue✓✓للمسجل بس
related[]من نفس القسم/الطقم—✓محسوب
seoعنوان، وصف، صورة المشاركة—✓المنتج (أو تلقائي)
06

منتج الصور (Customization)

منتج بيفتح ويتحط جواه صور؛ جنبه زرار «Upload photo»، والعميل يرفع صوره، وفلوكة تطبعها وتركّبها S4. كل منتج بيشيل عدد مختلف: واحد 11 صورة، وواحد صورتين، وواحد 4، وواحد صورة.

التعارض C6: سعر لكل صورة ولا باقات؟

المصدراللي اتقالملاحظة
العميل (فيديو أغسطس) S4المنتج بـ 100 ج، الصورة بـ 5 ج، المنتج يشيل لحد 11 صورة. «رفع 10 صور ← 125»100 + 10×5 = 150 مش 125. الـ 125 تتظبط لو أول 5 صور داخلين في السعر: 100 + (10−5)×5 = 125 استنتاج
الموقع التجريبي S7بدون صور / حتى 3 صور +80 / حتى 6 +130 / حتى 10 +190 — والفريق يرتب الصورأسعار أعلى بكتير من 5 ج للصورة — غالباً منتج تاني أو تسعير مختلف

✓ اقتراحنا — نموذج واحد يغطي الاتنين افتراض

كل منتج صور بيختار طريقة تسعير من اتنين:

  1. باقات: «حتى N صور بـ +X» (زي الموقع). ممكن باقة «بدون صور».
  2. سعر للصورة: «أول K صور داخلين، وكل صورة زيادة بـ Y، لحد أقصى M» (زي كلام العميل: K=5، Y=5، M=11).

الاتنين بيتحسبوا في نفس محرك الأسعار كـ «إضافة على السطر»، والعميل يقرر لكل منتج.

🧮 قطعتين من نفس المنتج (Q2)

  • كل قطعة ليها صورها وباقتها — السطر في الطلب فيه «وحدات»، كل وحدة ليها صور.
  • اختيار «نفس الصور للكل» بيرفع مرة واحدة ويكررها.
  • سعر الإضافة بيتحسب لكل وحدة: قطعتين بباقة +80 = +160.
  • الإيصال بيطبع «قطعة 1 من 2 — 3 صور».

شكل اختيار الباقة ورفع الصور (مسودة لفريق الموقع)

flouka · /product/photo-locket-p0911
🖼️
ميدالية صور قلب — P0911
250 ج + الباقة
بدون صورحتى 3 صور
+80
حتى 6
+130
حتى 10
+190
الكمية: 2 · الإجمالي: (250 + 80) × 2 = 660 ج
القطعة 1 — 3 من 3 صور✓ جاهزة
123
القطعة 2 — 2 من 3 صور⚠ صورة 2 دقتها قليلة
1!+
نفس الصور للقطعتين
ملاحظة للتصميم (اختياري): «الصورة الأولى في النص»

📤 حدود الرفع

  • الصيغ: JPG / PNG / HEIC (بتتحول) / WebP.
  • حجم الصورة: حتى 15 ميجا، ومجموع القطعة حتى 100 ميجا (الرقم اللي العميل ذكره) — من الإعدادات.
  • تحذير لو الدقة أقل من حد معيّن (مثلاً 800 بكسل): «ممكن تطلع مش واضحة في الطباعة» — تحذير مش منع.
  • رفع على أجزاء (لو النت ضعيف) واستكمال.

🔒 الخصوصية

  • صور العملاء خاصة: مش بروابط عامة، ومحدش يشوفها غير فريق الصور.
  • بتتمسح تلقائياً بعد X يوم من الاستلام (افتراضي 60) — إعداد.
  • الصور اللي اترفعت ومااتعملش بيها طلب بتتمسح بعد 48 ساعة.

🖨️ خطوة الطباعة

  • أي طلب فيه منتج صور يروح قسم «طلبات الصور» في التجهيز — حتى لو معاه قطع عادية S6.
  • زرار «تحميل الصور» = ملف مضغوط مرتب: FL-260412/قطعة-1/01.jpg.
  • علامة «اتطبعت» إجبارية قبل ما محطة التقفيل تقبل الطلب.
  • مشكلة في صورة ← استثناء + اللمبة + خدمة العملاء تطلب صورة تانية.
07

العروض الخمسة — قاعدة دقيقة لكل واحد

صفحة العروض في الموقع التجريبي فيها 5 أنواع بتتطبق تلقائياً في السلة من غير كود S7. الشكل موجود — المنطق ده اللي هنبنيه. كل عرض ليه: نطاق، شرط، نتيجة، تاريخ بداية ونهاية، قناة (قطاعي افتراضياً)، وأولوية.

1
خد 2 هدية 1Buy X Get Y — على الأساور
القاعدة

كل 3 قطع من النطاق: الأرخص فيهم ببلاش. 6 قطع ← 2 ببلاش.

مثال
أساور 150 + 120 + 90 = 360 ← الـ 90 ببلاش ← 270 ج
الداتا

scope (قسم/منتجات/مجموعة) · buyQty=2 · getQty=1 · getDiscount=100% · maxRepeats

حالات طرفية
  • نفس الأسورة 3 مرات ← واحدة ببلاش عادي.
  • منتج عليه خصم أصلاً: يدخل ولا لأ؟ (إعداد «يشمل المخفّض»).
  • مرتجع قطعة: الخصم يتوزع على التلاتة بالنسبة، فالمسترد = اللي اتدفع فعلاً.
2
التانية بنص السعرعلى الخواتم الفري سايز
القاعدة

كل قطعتين من النطاق: الأرخص بخصم 50%. التالتة بسعرها، والرابعة بنص.

مثال
خاتم 180 + خاتم 140 ← 140 بـ 70 ← 250 ج
الداتا

scope = خواتم + شرط المقاس «فري سايز» · every=2 · discount=50% على الأرخص

حالات طرفية
  • النطاق بصفة (المقاس) مش بقسم — المحرك لازم يدعم فلتر بالصفات.
  • عدد فردي ← آخر قطعة بسعرها.
  • الأرخص ولا الأغلى؟ العرف = الأرخص؛ إعداد.
3
باقة بسعر ثابتأي 3 حلقان بـ 200
القاعدة

أي 3 قطع من النطاق بسعر ثابت 200. لو أكتر من 3: الباقة على أغلى 3 (الأفضل للعميل) والباقي بسعره.

مثال
حلق 95 + 85 + 70 = 250 ← 200 ج (وفّر 50)
الداتا

scope · bundleQty=3 · bundlePrice=200 · maxRepeats

حالات طرفية
  • لو مجموع التلاتة أقل من 200 (60+55+50=165) ← العرض مايتطبقش، عشان مايزودش السعر.
  • 6 قطع ← باقتين.
  • مرتجع: الـ 200 تتوزع على التلاتة بنسبة أسعارهم.
4
هدية مجانية فوق 800 جGift with purchase
القاعدة

لو قيمة المنتجات (بعد العروض، قبل الكوبون والشحن — افتراض) ≥ 800 ← منتج هدية معيّن يتضاف تلقائياً بسعر 0.

مثال
سلة 820 ج ← تتضاف «ميدالية فلوكة» ببلاش · سلة 720 ← «فاضلك 80 ج وتاخد الهدية»
الداتا

threshold=800 · giftVariantId · perOrder=1 · base (قبل/بعد العروض)

حالات طرفية
  • السلة نزلت تحت 800 ← الهدية تتشال.
  • الهدية خلصت من المخزن ← العرض يقف تلقائياً ويظهر «انتهت الهدايا».
  • مرتجع خلّى الطلب تحت 800 ← الهدية ترجع أو قيمتها تتخصم؟ قرار.
  • الهدية بتتحجز من المخزن زي أي قطعة.
5
الطقم الكامل3 قطع بـ 690 بدل 865
القاعدة

طقم = منتجات محددة بالاسم (مثلاً سلسلة + أسورة + حلق). لو الثلاثة في السلة ← المجموع 690.

مثال
350 + 300 + 215 = 865 ← 690 ج (وفّر 175 = 20%)
الداتا

items[] (منتج + كمية) · bundlePrice=690 · صفحة الطقم بزرار «أضف الطقم»

حالات طرفية
  • العميل يختار لون كل قطعة جوه الطقم.
  • قطعة منه خلصت ← الطقم كله «غير متاح».
  • السطور بتفضل منفصلة في الطلب، والخصم يتوزع بالنسبة (كل قطعة × 0.798) — عشان المرتجع والتجميع بالمكان.
+
قواعد عامة للمحركتنطبق على الخمسة
  • عرض واحد لكل قطعة — لو قطعة تنفع لعرضين، المحرك بيختار الأفضل للعميل.
  • العروض للقطاعي بس افتراضياً؛ الجملة ليها أسعارها.
  • تاريخ بداية ونهاية بالساعة، وجوب كل 5 دقايق يفعّل ويقفل.
  • الخصم بيتحفظ على كل سطر (اسم العرض وقيمته) — التقارير والمرتجع بيعتمدوا عليه.
  • نسخة من قاعدة العرض بتتحفظ مع الطلب — لو العرض اتعدل بعدين الطلب القديم مايتغيرش.
  • اللافتة («خد 2 هدية 1») وصورة العرض من الـ API.
08

ترتيب الخصومات والتجميع (Q4)

الموقع التجريبي كاتب «العروض بتتجمع مع كود الخصم». ده قرار تجاري كبير — هنا الترتيب الافتراضي اللي هنبني عليه، ومثال محسوب، والحتة اللي محتاجة كلمة من العميل.

1السعر الأساسي

آخر سعر لكل متغير (العرض المؤقت لو جوه تاريخه).

2إضافة الصور

باقة كل وحدة — مابيتعملهاش خصم افتراض.

3العروض الخمسة

عرض واحد لكل قطعة، الأفضل للعميل.

4الهدية

شرط الـ 800 على الناتج بعد العروض.

5كود واحد

كوبون أو كود نقاط — بحده الأدنى والأقصى (إعداد يسمح باتنين).

6الشحن

من المحافظة، إلا لو الكود «شحن مجاني».

7النقاط المكتسبة

على المدفوع في المنتجات — «منتظرة» لحد الاستلام.

مثال محسوب — سلة واحدة فيها 3 عروض وكوبون

السطرقبلالعرضبعد
3 أساور (150 + 120 + 90)360خد 2 هدية 1 (−90)270
2 خاتم فري سايز (180 + 140)320التانية بنص السعر (−70)250
3 حلقان (95 + 85 + 70)2503 بـ 200 (−50)200
المنتجات بعد العروض930−210720
هدية فوق 800؟720 < 800 ← مفيش هدية + رسالة «فاضلك 80 ج» (لو الأساس قبل العروض = 930 كانت هتتضاف ← لازم قرار)
كوبون FLOUKA10: 10% بحد أقصى 100، حد أدنى 500720 ≥ 500 ✓ ← 10% = 72−72
الشحن (القاهرة — مثال)من جدول المحافظات+70
الإجمالي718 ج
نقاط مكتسبة648 ÷ 10 = 64 نقطة منتظرة — تتاح عند «تم الاستلام»
محتاج قرار من العميل
  • العروض + الكوبون بيتجمعوا؟ (الموقع: آه)
  • الكوبون + كود النقاط مع بعض في نفس الطلب؟ (افتراضنا: كود واحد)
  • شرط الهدية على السعر قبل العروض ولا بعدها؟ (افتراضنا: بعدها)
  • المنتجات المخفّضة أصلاً تدخل في العروض؟ (افتراضنا: لأ — إعداد لكل عرض)
المحرك جاهز للحالتين

كل نقطة من دول إعداد واحد في اللوحة، مش كود. والحساب كله في POST /store/cart/quote — الموقع بيعرض النتيجة بس، وأي فرق بين اللي اتعرض واللي اتحسب وقت الطلب بيرجع رسالة «السعر اتغير» بدل ما يعمل طلب غلط.

09

الكوبونات

العميل مااتكلمش عن الكوبونات بالتفصيل، بس الموقع فيه «كود الخصم»، وده من الإضافات القياسية عندنا S8. كل الحقول من اللوحة.

الحقلالاختياراتمثال
الكوديدوي أو توليد تلقائي (دفعة أكواد فريدة)FLOUKA10
النوعنسبة % · مبلغ ثابت · شحن مجاني10%
أقصى خصمللنسبة بس100 ج
حد أدنى للطلبعلى المنتجات بعد العروض500 ج
أول طلب بسأيوه / لأ (بالتليفون، مش بالحساب بس)أيوه
عدد الاستخدامات الكليرقم أو مفتوح300
استخدامات لكل عميلرقم1
النطاقالكل · أقسام · منتجات · مجموعات — مع استثناءاتكله ماعدا «خصم حتى 50%»
الجمهورالكل · مسجلين · VIP بمستوى · عملاء محددينVIP ⭐ وفوق
القناةقطاعي · جملة · الاتنينقطاعي
المحافظاتالكل أو محافظات معينة (للشحن المجاني)بورسعيد
المدةمن / إلى بالساعة1–15 نوفمبر
بيتجمع مع العروض؟أيوه / لأ (لكل كوبون)أيوه
الحالة والإحصائياتشغال/موقوف + عدد الاستخدام + إجمالي الخصم + المبيعات—
الاستخدام بيتحجز

الكوبون بيتحسب استخدام عند إنشاء الطلب، ويرجع لو الطلب اتلغى قبل الشحن. رسايل الرفض واضحة: «الكود خلص» / «الحد الأدنى 500 ج» / «الكود لأول طلب بس».

10

نقاط الولاء

من الموقع التجريبي: نقطة لكل 10 ج، للمسجلين بس، وأربع مستويات استبدال، وفيديو شرح S7. كل الأرقام هتبقى من اللوحة.

200
كود خصم 50 ج= 2,000 ج مشتريات · قيمة 2.5%
400
كود شحن مجاني= 4,000 ج · قيمة ≈ 1.5–2% (حسب المحافظة)
800
10% بحد أقصى 150= 8,000 ج · أقصى قيمة 1.9%
1500
25% بحد أقصى 400= 15,000 ج · أقصى قيمة 2.7% (لطلب ≥ 1,600)
ملاحظة على الأرقام جديد

العميل اللي معاه 800 نقطة يكسب أكتر لو استبدل مستوى الـ 200 أربع مرات (4 × 50 = 200 ج) بدل مستوى الـ 800 (أقصى 150 ج). ونفس الكلام في الـ 400: كودين بـ 100 ج أحسن من شحن مجاني. يعني المستويين الوسطانيين مش هيتستخدموا. اقتراحات للعميل: حد أدنى للطلب لكود الـ 50، أو رفع قيمة المستويات الوسطانية، أو إن مستوى الـ 200 يتاخد مرة في الشهر.

➕ الكسب

  • نقطة لكل 10 ج من المدفوع في المنتجات بعد العروض والكوبون — من غير الشحن.
  • إضافة الصور بتكسب نقاط؟ افتراض: لأ
  • للمسجلين في القطاعي بس؛ الجملة مابتكسبش افتراض.
  • النقاط بتتسجل «منتظرة» مع الطلب، وبتتاح عند «تم الاستلام» — مش عند الطلب ولا الشحن.
  • الطلب اتلغى أو رجع كله ← النقاط المنتظرة تتلغي.

➖ الاستبدال والسحب

  • العميل يختار مستوى ← النقاط تتخصم ← كود شخصي لمرة واحدة صالح 30 يوم (إعداد).
  • الكود انتهى من غير استخدام ← النقاط ترجع افتراض.
  • مرتجع جزئي بعد الاستلام ← سحب نقاط قطعة المرتجع بالنسبة. لو الرصيد مايكفيش ← الرصيد يبقى بالسالب ويتقفل الاستبدال لحد ما يتعوض.
  • انتهاء النقاط: سؤال (Q) — اقتراح 12 شهر من الكسب، مقفول افتراضياً.
  • تعديل يدوي من اللوحة بسبب مكتوب (صلاحية).

سجل النقاط — زي سجل المخزون

الحركةالأثربتحصل إمتى
كسب منتظر+ منتظرإنشاء الطلب
إتاحة− منتظر / + متاح«تم الاستلام»
إلغاء− منتظرإلغاء أو مرتجع كامل قبل الإتاحة
استبدال− متاحالعميل اختار مستوى (ويتولد كود)
رجوع كود منتهي+ متاحجوب يومي
سحب مرتجع− متاح (ممكن سالب)قرار المرتجع
انتهاء− متاحلو الانتهاء اتفعّل
تعديل يدوي±من اللوحة بسبب

الفيديو التعريفي: رابط من الإعدادات، ويظهر قرب آخر الصفحة الرئيسية زي ما العميل طلب S6. ومستويات الاستبدال دي مش هي VIP — VIP بعدد الطلبات (صفحة 04).

11

المحفظة — مقفولة لحد القرار (C7 · Q3)

الموقع التجريبي فيه رصيد محفظة 1,250 ج وصفحة «إدارة المحافظ» في الأدمن، لكن العميل ماطلبهاش في أي مصدر. مش هنبنيها في المرحلة الأولى.

🔒 ليه مقفولة

  • مش في كلام العميل (لا الميتنج ولا الجروب).
  • المحفظة = فلوس للعميل عندك — محتاجة سياسة (سحب؟ صلاحية؟) ومراجعة حسابات.
  • نقاط الولاء والكوبونات بيغطوا معظم استخدامات «الرصيد».
  • فريق الموقع يخبي الجزء ده لحد القرار.

📋 لو العميل قرر يفتحها — هتحتاج

  • سجل محفظة إلحاقي (زي النقاط) بكل حركة ومصدرها.
  • مصادر الرصيد: استرداد مرتجع بدل الفلوس، تعويض شكوى، شحن يدوي من الإدارة.
  • الاستخدام: جزء من الدفع في السلة، مع الكاش عند الاستلام.
  • هل الرصيد بيتسحب كاش؟ وهل ليه صلاحية؟
  • صلاحية حساسة لأي إضافة يدوية + تقرير أرصدة.
12

المفضلة والمقارنة

موجودين في الموقع قاعدة — اللي علينا يخليهم يشتغلوا على أكتر من جهاز ويبقوا مفيدين للتسويق.

❤️ المفضلة

  • على السيرفر للمسجل (تتشاف من أي جهاز).
  • الزائر: في المتصفح، وتتدمج أول ما يسجل دخول.
  • القطعة نفدت ← تفضل في القايمة بعلامة «نفد».

⚖️ المقارنة

  • لحد 4 منتجات.
  • رد واحد بالمواصفات: السعر، الخامة، الألوان، المقاسات، الطول/الوزن، التقييم.
  • من غير حفظ على السيرفر — مش محتاجة.

📣 استخدام تسويقي (لاحقاً)

  • «المنتج اللي في مفضلتك نزل سعره» على الواتساب.
  • «رجع المخزون» للمنتج اللي كان نافد.
  • تقرير: أكتر المنتجات في المفضلة ومااتشترتش.
مرحلة لاحقة
13

الشحن بالمحافظة والاسترجاع

الشحن بيتحسب تلقائياً من قايمة المحافظات وقابل للتعديل في إضافة الطلب S3، والموقع كاتب 2–5 أيام عمل و14 يوم استرجاع S7.

المحافظةالسعرالمدةشركة الشحنالدفع عند الاستلامقسم التجهيز
بورسعيدمن اللوحة1–2 يوممندوب داخلي / شركة✓بورسعيد
القاهرةمن اللوحة2–3 أيامشركة (أ)✓المحافظات
أسوانمن اللوحة4–5 أيامشركة (ب)✓المحافظات
… الـ 27 محافظة — كل صف: السعر، المدة من/إلى، الشركة الافتراضية، الدفع عند الاستلام مسموح؟، متاحة؟

🚚 قواعد الشحن

  • السعر في الطلب = صورة من الجدول وقت الطلب.
  • شحن مجاني بكود (ولاء أو كوبون) أو حد أدنى (إعداد اختياري).
  • منطقة/مدينة جوه المحافظة بسعر مختلف — لو العميل محتاجها (سؤال).

↩️ الاسترجاع والتبديل

  • المدة (14 يوم) إعداد بيتحسب من «تم الاستلام».
  • طلب الاسترجاع من «طلباتي» بسبب وصور ← يروح خدمة العملاء ← دورة المرتجع (صفحة 03).
  • المرتجع مايرجعش المخزون إلا بعد فحص وقرار (R7).

💳 الدفع (Q15)

  • كاش عند الاستلام.
  • إنستاباي / محافظ بتحويل يدوي + صورة الإيصال ومراجعة.
  • بوابة دفع إلكتروني مرحلة لاحقة (واجهة جاهزة).
14

الإضافات القياسية اللي بنضيفها دايماً

مش في كلام العميل بالاسم، بس أي متجر جاد محتاجها، وكلها بتتدار من اللوحة S8. الموقع بيعرض، وإحنا بنوفر المحتوى والـ API.

الإضافةاللي في اللوحةاللي الموقع بيعمله
صفحات المحتوى: الشروط والأحكام، الخصوصية، سياسة الإلغاء والاسترجاع، الشحن، من نحن (فلوكة من بورسعيد من 2014)محرر نص عربي/إنجليزي + تاريخ آخر تعديلصفحة لكل واحدة + لينكات في الفوتر
الأسئلة الشائعةأسئلة بأقسام (الطلب، الشحن، الاسترجاع، الصور، الجملة) وترتيبصفحة + أسئلة القسم في صفحة المنتج
بيانات التواصل والسوشيالواتساب، تليفون، عنوان المحل، المواعيد، فيسبوك، إنستجرام، تيك توكالفوتر وصفحة التواصل وزرار الواتساب العائم
صندوق «تواصل معانا»رسايل بحالة (جديد/اتقرت/اترد) ومين ردفورم بسيط (اسم، تليفون، رسالة)
الشكاوى مربوطة بالطلباتشكوى برقم الطلب، نوع، مسؤول، مهلة رد، حل — زي قايمة «الشكاوى» في النظام الحالي S5«عندي مشكلة في الطلب» من صفحة الطلب
البانرات والسلايدرصورة أو فيديو، لينك، ترتيب، من/إلى، موبايل/ديسكتوبالهيرو (فيديو) والبانرات
شريط إعلان علوينص + لينك + مدة«شحن مجاني فوق …»
التقييمات بموافقةمن اشترى واستلم بس؛ نجوم + نص + صورة؛ اعتماد أو رفض؛ رد فلوكةنجوم في الكارت وقايمة في المنتج
SEOعنوان ووصف لكل منتج/قسم/صفحة، روابط، خريطة الموقع (من غير منتجات الجملة وPrime)، صورة المشاركةيحطها في الصفحات
بيكسلات التحليلاتأكواد Meta Pixel وTikTok Pixel وGoogle Analytics وTag Manager من الإعداداتيحمّلها ويبعت الأحداث (إضافة للسلة، طلب)
النشرة / الاشتراكقايمة مشتركين بموافقة + تصديرفورم في الفوتر
وضع الصيانةتشغيل/إيقاف + رسالةصفحة «راجعين قريب»
الخصوصية

صفحة الخصوصية بتغطي: البيانات اللي بنجمعها (اسم، تليفون، عنوان، صور منتج الصور)، بنستخدمها في إيه، مدة الاحتفاظ، ومين بيشوفها (شركة الشحن بتشوف الاسم والعنوان والتليفون بس) — بما يتماشى مع قانون حماية البيانات الشخصية المصري. النص النهائي مسؤولية العميل.

15

الـ API اللي الموقع محتاجه مننا

مجمّع حسب الشاشة. البادئات زي ما في صفحة المعمارية: /public لأي حد، /store للقطاعي، /merchant للجملة (صفحة 04)، /auth للدخول.

المجموعةالطلباتملاحظات
الإعدادات العامةGET /public/config · GET /public/governoratesالواتساب، السوشيال، فيديو الولاء، الهيرو، الولاء شغال؟، المحافظات بأسعارها ومددها
المحتوىGET /public/pages/{slug} · /public/faq · /public/banners · /public/announcementكاش قصير
الكتالوجGET /store/categories · /store/collections/{slug} · /store/products?… · /store/products/{slug} · /store/search/suggest?q=فلاتر، ترتيب، ترقيم { items, page, pageSize, total, hasMore }
العروضGET /store/offers · GET /store/bundles/{slug}العروض الشغالة ولافتاتها والأطقم
السلةPOST /store/cart/quote · GET/PUT /store/cartالحساب الكامل؛ سلة على السيرفر للمسجل
منتج الصورPOST /store/uploads/photos · DELETE /store/uploads/photos/{id}رفع على أجزاء، تحذير الدقة، ربط بوحدة السطر
الطلبPOST /store/orders · GET /store/orders · GET /store/orders/{code} · POST /store/orders/{code}/return-requestIdempotency-Key؛ تتبع للزائر برقم الطلب + التليفون
الحسابPOST /auth/otp/send · /auth/otp/verify · /auth/refresh · GET/PUT /store/me · /store/addressesدخول بالتليفون + كود
المفضلة والمقارنةGET/POST/DELETE /store/wishlist · POST /store/wishlist/merge · GET /store/compare?ids=—
الولاءGET /store/loyalty · GET /store/loyalty/ledger · POST /store/loyalty/redeemالرصيد المتاح والمنتظر، المستويات، توليد الكود
التقييماتGET /store/products/{slug}/reviews · POST /store/reviewsللي استلم بس؛ بتظهر بعد الموافقة
التواصلPOST /public/contact · POST /store/complaints · POST /public/newsletterحد معدل ضد السبام
العقد قبل الكود

لو فريق الموقع عنده شكل رد معيّن، بيتكتب في العقد ونلتزم بيه حرفياً. غير كده العقد بيتصدّر openapi.json من أول أسبوع، ومعاه سيرفر تجريبي ببيانات حقيقية منقولة وحسابات اختبار لكل حالة (عادي، VIP، تاجر بكل حالاته، Prime).

16

أسئلة مفتوحة للعميل

وجنب كل سؤال الافتراض اللي هنبني بيه لحد الرد.

#السؤالافتراضنا
Q2قطعتين من منتج صور: صور لكل قطعة؟أيوه + «نفس الصور للكل»
C6منتج الصور: باقات ولا سعر للصورة؟ وإزاي 10 صور = 125؟الاتنين متاحين لكل منتج؛ غالباً أول 5 صور داخلين
Q3المحفظة مطلوبة؟لأ في المرحلة الأولى
Q4العروض + الكوبون + النقاط بيتجمعوا؟العروض + كود واحد (كوبون أو نقاط)
S1شرط هدية الـ 800 قبل العروض ولا بعدها؟بعد العروض وقبل الكوبون
S2المنتجات المخفّضة (خصم حتى 50%) تدخل في العروض والكوبونات؟لأ افتراضياً — إعداد لكل عرض/كوبون
S3قيم مستويات الولاء (الوسطانيين أضعف من الأول)نبني بأرقام الموقع، وننبه العميل
S4النقاط بتنتهي؟مقفول؛ لو اتفعل 12 شهر
S5النقاط على إضافة الصور؟ وعلى الجملة؟لأ ولأ
S6الطلب كزائر (من غير تسجيل) مسموح؟أيوه بالتليفون؛ النقاط للمسجلين بس
Q15الدفع الإلكتروني على الموقع؟كاش + تحويل يدوي؛ بوابة لاحقاً
S7الكود على المنتج ولا لكل لون؟ وتوحيد شكل البادئة (o0653 / N2515)كود منتج + لاحقة لكل متغير؛ البحث مش حساس للحروف
S8«فلوكه» ولا «فلوكة» في كلمة اللوجو؟زي ما العميل كتب لحد التأكيد