
عن المشروع
منصة تجارة إلكترونية ثلاثية اللغة بُنيت مرة واحدة ثم اشتُقّت لثلاث علامات تونسية، مع الدفع عند التسليم والتسعير بدقة المليم والطابع الجبائي بشكل أصلي.
دوري: مهندس المنتج ومطوّر full stack للقالب ولكل اشتقاق خاص بعلامة.
كنت أعيد بناء المتجر نفسه مرارًا. عميل مختلف ومنتجات مختلفة، لكن الكتالوج الثلاثي اللغة نفسه، والدفع عند التسليم نفسه، وقواعد الفوترة التونسية نفسها. فتوقفت عن التعامل مع كل مشروع كبناء جديد، وحوّلت المشروع الثالث إلى قالب بعلامة بيضاء، ثم اشتققت منه عمدًا بدل نسخ الملفات هنا وهناك.
كل ما يمكن للمستأجر تغييره يقع في مكان واحد. فالعلامة وبيانات الاتصال والسمة والفعاليات تسكن في دليل مستأجر واحد، وتُجمع كل النصوص الخاصة بالعلامة في نطاقات ترجمة مخصّصة. وصار الاشتقاق لعلامة جديدة قائمة تحقق موثّقة لا عملية تنقيب. يشغّل هذا القالب اليوم بائع إلكترونيات وصيدلية تجميل وموزّعًا للتيار الضعيف والمراقبة، لكلٍّ كتالوجه وهويته على الأسس ذاتها.
البنية مبنية على Next.js 16 مع App Router بـTypeScript صارم، وTailwind v4، وnext-intl الذي يقدّم الفرنسية افتراضيًا إلى جانب الإنجليزية والعربية بدعم كامل للكتابة من اليمين إلى اليسار. وتعيش البيانات في PostgreSQL على Cloud SQL عبر Drizzle، بينما تتولى Firebase المصادقة والتخزين والاستضافة. أما الخصوصيات التونسية فمدمجة في صميم النطاق لا مضافة فوقه: النقود مصاغة بالمليم كي لا ينحرف أي تقريب، والدفع عند التسليم هو المسار الأساسي لا البديل، ويُطبَّق الطابع الجبائي على كل طلب كما يقتضي القانون.
أهم الميزات
- 🎨 إعدادات المستأجر في دليل واحد: تسكن العلامة وبيانات الاتصال والسمة والفعاليات في مكان واحد، فيصير الاشتقاق قائمة تحقق لا تحقيقًا.
- 🌍 ثلاثي اللغة بدعم فعلي للاتجاه: يقدّم next-intl الفرنسية والإنجليزية والعربية، مع معاملة التخطيط من اليمين إلى اليسار كحالة أساسية.
- 💵 الدفع عند التسليم مسارًا رئيسيًا: تقود وسيلة الدفع الأكثر شيوعًا في تونس تصميم مسار الشراء بدل أن تُضاف لاحقًا.
- 🪙 نموذج نقدي بدقة المليم: تُخزَّن المبالغ بالمليم لا بالفاصلة العائمة، فلا تنحرف المجاميع والضرائب بخطأ تقريب.
- 🧾 طابع جبائي على كل طلب: يشكّل الطابع القانوني التونسي جزءًا من نطاق الطلب، فتكون الفواتير مطابقة دون تدخل يدوي.
- 📱 واجهة متجر تبدأ من الهاتف: تُصمَّم التخطيطات للهاتف أولًا، ومنه يأتي الجزء الأكبر من المتسوقين التونسيين.
- 🗂️ وصول للبيانات محدّد الأنواع: يبقي Drizzle فوق PostgreSQL على Cloud SQL المخطّط والاستعلامات تحت رقابة المترجم.
- 📘 دليل اشتقاق موثّق: تغطي قائمة تحقق مكتوبة كل خطوة لإطلاق علامة جديدة، وهو ما يجعل القالب قابلًا لإعادة الاستخدام فعلًا.
مشكلات وحلول
المشكلة: يحتاج التجار التونسيون الصغار والمتوسطون الأشياء نفسها: كتالوج ثلاثي اللغة، ودفع عند التسليم، وفوترة مطابقة للقانون. وبناء كل متجر من الصفر يعني دفع ثمن العمل نفسه ثلاث مرات، بينما لا تعالج المنصات العالمية العامة المليم ولا الطابع الجبائي ولا تخطيط العربية معالجة صحيحة.
الحل: جمّعت البناء الثالث في قالب بعلامة بيضاء تقع فيه كل قيمة خاصة بالمستأجر في دليل إعدادات واحد ومجموعة نطاقات ترجمة واحدة. صارت أي علامة جديدة اشتقاقًا موثّقًا، وصارت القواعد التونسية التي تخطئ فيها المنصات العامة جزءًا من نموذج المجال لا رقعًا محلية.

