احتاجت SG-Mart إلى أن توجد في ثلاثة أماكن في آن واحد: تطبيق iOS، وتطبيق Android، والويب، مع سوق إلكتروني ونظام توزيع متكاملين في الخلفية. وبناء ثلاث واجهات متاجر منفصلة فوق محرّك تجارة واحد هو تحديدًا المشكلة التي وُجدت البنية المنفصلة (Headless) لحلّها. إليك ما تعلّمناه ونحن ننفّذ ذلك فعليًا.

نواة تجارية واحدة، وواجهات متاجر متعددة

كان القرار المحوري هو فصل محرّك التجارة عن التجارب التي تقوم فوقه. الكتالوج والتسعير والمخزون والطلبات والتنفيذ تعيش كلها في خلفية واحدة محدّدة جيدًا، متاحة عبر API واضحة. وكل واجهة متجر، على الجوال والويب، هي عميل لهذه الـ API، حرّة في تحسين تجربتها الخاصة دون أن تُنشئ نسخة مستقلة من منطق الأعمال.

الـ Headless لا يتعلّق بالواجهة الأمامية، بل بوجود مصدر واحد للحقيقة في التجارة تثق به كل القنوات.

الأداء كان متطلّبًا من الدرجة الأولى

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

  • تخزين مؤقت مكثّف لبيانات الكتالوج والفئات، التي تتغيّر أقل بكثير مما تُقرأ.
  • تقسيم النتائج إلى صفحات والتحميل الكسول كي لا تحاول فئة تضم آلاف المنتجات أن تُحمَّل دفعة واحدة.
  • سلاسل معالجة للصور تقدّم لكل جهاز صيغًا حديثة بالحجم المناسب، بدلًا من إرسال ملفات بدقة كاملة إلى الهواتف.
درس مستفاد

الاستعلام الفوري مع 200 منتج قد يستغرق ثواني مع 20,000 منتج. صمّم للكتالوج الذي ستملكه بعد عام، لا الذي تطلق به.

اجعل السلة وإتمام الطلب موثوقين إلى حد الملل

يمكن للتصفّح أن يكون ذكيًا، أما إتمام الطلب فيجب أن يكون موثوقًا. تعاملنا مع مسار الطلبات على أنه المسار الأكثر حساسية في النظام: عمليات متساوية الأثر (Idempotent) كي لا يتسبّب اتصال متقطّع في خصم المبلغ مرتين، وحالات واضحة لكل خطوة، وتعافٍ سلس حين يفشل شيء في المراحل اللاحقة. الثقة عند إتمام الطلب هي العمل كله.

مشاركة المنطق دون مشاركة الأخطاء

مع ثلاثة تطبيقات عميلة، يظل هناك إغراء دائم بنسخ المنطق ولصقه. قاومناه بنقل كل ما هو حرج للأعمال، كقواعد التسعير والضريبة والعروض الترويجية، إلى النواة التجارية، كي تحسب واجهات المتاجر الثلاث النتيجة نفسها بالطريقة نفسها. تبقى التطبيقات العميلة خفيفة، وتبقى النواة هي المرجع.

ما سنواصل فعله

  1. تحديد عقد الـ API قبل بناء أي تطبيق عميل.
  2. وضع قواعد الأعمال في النواة، وليس في واجهة المتجر أبدًا.
  3. تخصيص ميزانية للأداء من اليوم الأول؛ فهي أرخص بكثير من إضافته لاحقًا.

الخلاصة

منحت التجارة بنموذج Headless شركة SG-Mart ثلاث تجارب مصمّمة خصيصًا دون ثلاث نسخ من الحقيقة. وقد استردّت البنية تكلفتها في أول مرة أطلقنا فيها تعديلًا على التسعير مرة واحدة ورأيناه ينعكس في كل مكان فورًا، وفي كل مرة نما فيها الكتالوج دون أن يتباطأ التطبيق.