تخطَّ إلى المحتوى

تطوير التجارة الإلكترونية

تطوير التجارة الإلكترونية بـ Laravel

واجهات تجارة خلفية مخصصة لأنشطة لم تعد المنصة تناسبها - مخزون لا يمكن بيعه زيادةً، وآلة حالات للطلب، وضرائب تصمد أمام تدقيق، وwebhooks دفع تصل مرتين.

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

العمل أدناه يبدأ حيث تتوقف عن الاتساع - وهي تتوقف عادةً في المكتب الخلفي لا في الواجهة.

أين تنفد المنصة فعلًا

تسعير هو قاعدة لا رقم. تسعير تعاقدي لكل عميل، وشرائح كمية، وحساب تجاري بشروط مختلفة لكل مجموعة منتجات. أغلب المنصات تنمذج سعرًا وخصمًا، وكل ما بعد ذلك يصير جدول بيانات يصونه أحدهم يدويًا.

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

نظام تخطيط موارد هو مصدر الحقيقة. حين يملك نظام المحاسبة السعر والمخزون، يكون المتجر تابعًا له. والمنصة التي تفترض أنها تملك تلك الحقول ستقاوم التكامل طوال عمر المشروع.

تجهيز هو سير عمل. شحنات جزئية، وطلبات مؤجلة، وخطوة تجميع، ومهلة تصنيع. الطلب الذي ليس ببساطة مدفوعًا ثم مشحونًا هو حيث تنتهي محركات سير العمل في المنصات.

الأجزاء التي نبنيها بعناية، لأن فيها يُفقد المال

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

$claimed = Inventory::where('variant_id', $id)
    ->where('available', '>=', $qty)
    ->decrement('available', $qty);   // 0 يعني أن غيرك أخذه

وفوقه حجز بمدة انتهاء - مخزون محجوز أثناء إتمام شراء جارٍ ويُفرج عنه إن تُرك - لأن البديل إما بيع زائد وإما حجز مخزون إلى الأبد لسلال لم يكملها أحد.

الطلب آلة حالات لا عمود حالة. أي الانتقالات مشروع، وأيها لا رجعة فيه، وما الذي يُسمح لكل واحد بلمسه. عمود حالة يُكتب من أربعة متحكمات هو كيف ينتهي طلب مشحونًا ومستردًّا وما زال بانتظار الدفع.

webhooks دفع تصل مرتين أو متأخرة أو بترتيب مقلوب. كل مزوّد يرسل مكررات، وقد يصل إشعار التحصيل قبل إعادة التوجيه التي كان يُفترض أن تسبقه. الـ webhooks تُتحقَّق وتُخزَّن خامًا وتُعالَج بلا تأثر بالتكرار مقابل مرجع من المزوّد، فتكون الإعادة لا شيء بدل أن تكون تجهيزًا ثانيًا.

ضريبة تُحسَب مرة، في اللحظة الصحيحة، وتُسجَّل. النسبة التي سرت يوم الطلب جزء من الطلب، لا بحثٌ يُعاد حين يفتح أحد السجل بعد سنة. وحين تبيع عبر الحدود، يغيّر مكان التوريد وحالة تسجيل العميل الإجابة - والقاعدة التي أنتجت كل سطر يجب أن تُحفظ بجانب المبلغ، لأن ذلك ما يسأل عنه التدقيق.

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

التكاملات التي تقرر المشروع

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

وما يجعلها تنجح هو تقرير الملكية قبل كتابة الشيفرة: أي نظام يملك رقم المخزون، وأيّها السعر، وأيّها العميل. كل كارثة تكامل استُدعينا إليها بدأت بنظامين يعتقد كلاهما أنه يملك الحقل نفسه، وحُلّت بمهام ليلية يطمس بعضها بعضًا بالتناوب.

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

جانب الإدارة، وهو أغلب الاستخدام الفعلي

الواجهة تنال الانتباه والمكتب الخلفي ينال الساعات. بحث في الطلبات يعمل بمرجع جزئي، وسجل العميل كاملًا في شاشة واحدة، واسترداد بإجراء واحد لا أربعة، وتعديل مخزون يسجّل من أجراه ولماذا.

نبني هذه على لوحة إدارة لا من الصفر، لأن شاشة CRUD مفصّلة ليست موضع القيمة - ولأن من يستخدمها ثماني ساعات يوميًا يفضّل شيئًا تقليديًا على شيء بارع.

كيف يجري التعاقد

الحديث الأول عن المال لا عن الشيفرة: أين تُفقَد الطلبات اليوم، وكم يكلّف جانب الإدارة من ساعات عمل، وأي تكامل يخشاه الجميع.

من ذلك نكتب النطاق: المراحل، وقائمة التكاملات، وما سيحدث لعناوينكم الحالية، والسعر. ولا يُبنى شيء قبل توقيع تلك الوثيقة، لأن الأخطاء الباهظة في المتاجر تُرتكب في الأسبوع الأول وتُكتشف في الشهر السادس.

ثم يسير البناء في مراحل ينتهي كلٌّ منها منشورًا. وصفحة الدفع ليست أول ما نمسّه ولا آخر ما نختبره.

ماذا تتسلّم

واجهة تجارة خلفية بقواعد مكتوبة ومفروضة في مكان واحد، ونموذج طلب يستطيع شرح تاريخه، وتكاملات بمالك لكل حقل، ومجموعة اختبارات تغطي المسارات التي تحرك المال - إتمام شراء تحت ضغط مخزون متزامن، وwebhooks مكررة، واستردادات جزئية، وضرائب عند الحالات الحدية.

وإن لم تكن متأكدًا بعد من أن البناء هو الجواب الصحيح، فهو عادةً ليس كذلك، وتدقيق لما لديك الآن سيقول ذلك أسرع وأرخص من عرض.

النطاق والشروط

نموذج التعاقد
نطاق محدّد يُتفق عليه كتابةً قبل بدء العمل. وليس أجرًا يوميًا مقابل قائمة مفتوحة.
السعر والمدة
يُحدَّدان لكل مشروع بعد تحديد النطاق، ويُعرضان معًا قبل بناء أي شيء.
ما نحتاجه منك
شخص واحد يملك اعتماد القرارات، ووصول إلى مستودعك ونظام تتبّع المهام لديك.
غير مشمول
كل ما يقع خارج النطاق المتفق عليه. فيصير نطاقًا مستقلًا لا أمر تغيير.
تكاليف الأطراف الثالثة
الاستضافة والتراخيص ورسوم الواجهات البرمجية واشتراكات الخدمات السحابية تتعاقد عليها وتدفعها أنت.
الفوترة
⁦Codefacture Yazılım A.Ş.⁩، تركيا. باليورو أو الدولار أو الجنيه الإسترليني عبر حوالة بنكية، دون ضريبة قيمة مضافة تركية على الخدمات المصدَّرة.

أسئلة متكررة

لماذا نبني بدل استخدام Shopify أو حزمة جاهزة؟
لا ينبغي، حتى تصير المنصة هي ما يكلّفك مالًا. النقطة التي يصير عندها البناء أرخص محددة ويمكن التعرّف عليها: قواعد تسعير لا تستطيع المنصة التعبير عنها، أو مخزون موزّع على مستودعات أو قنوات لا تنمذجها، أو نظام تخطيط موارد يجب أن يكون مصدر الحقيقة لا نسخة تابعة.
هل تستخدمون حزمة تجارة إلكترونية؟
حيث تناسب واحدة، نعم، وسنقول ذلك - وراثة حزمة مصانة أرخص من امتلاك سلّة شراء. تتعثر الحزم حين يكون الكتالوج غير معتاد، أو حين تكون الأسعار تعاقدية لا معروضة، أو حين يُشارَك المخزون مع شيء خارج المتجر. وهذه هي الحالات التي نُستدعى لها عادةً.
من يتعامل مع بيانات البطاقات؟
مزوّد الدفع، عبر حقل مستضاف أو إعادة توجيه، ولا يرى التطبيق رقم بطاقة أبدًا. وهذا ليس موقفًا أمنيًا فحسب بل موقف نطاق - يبقيك في أصغر فئة PCI DSS متاحة، والبديل تدقيق سنوي لا تريد دفع ثمنه.
هل يمكن ربطه بنظام تخطيط الموارد أو المحاسبة لدينا؟
نعم، وفي هذه المشاريع يجب ذلك عادةً. القرار المهم يُتخذ مبكرًا وكتابةً - أي نظام يملك المخزون، وأيّها يملك السعر، وأيّها يملك سجل العميل. ونظامان يعتقد كل منهما أنه يملك المخزون هو أكثر أعطال التكامل كلفةً في التجارة.
اتصل بنا+1 848 272 7583واتساب+90 850 308 5436البريدinfo@codefacture.comصفحة التواصل