هل طلبت التوصيل؟ كيف تقوم شركة Crossroads بتوصيل 6000 طلب يوميًا

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

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

  1. اخترت شيئًا ما على الموقع وأضعه في السلة.
  2. دخلت العنوان ودفعت للطلب.
  3. أعطى المتجر الأمر بسرعة إلى حامل الحقيبة.
  4. تسليم ساعي النظام.

في الواقع ، كل شيء أكثر تعقيدًا قليلاً. اسمي فيتالي ، أنا رئيس قسم التطوير ، واليوم سوف أخبرك كيف يعمل كل شيء بالنسبة لنا. وماذا.



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

بشكل عام ، يعد المكتب الخلفي لمتجر على الإنترنت نظامًا يتم فيه تنفيذ الكثير من الإجراءات على السلع: نحن نوصيك بمشاركة البضائع في عروض ترويجية معينة ، وربط لافتات بهذا ، وتسليط الضوء على مناطق العلامة التجارية والمزيد. بالطبع ، تتم معالجة الطلبات هنا. عندما يكمل المشتري عملية الطلب ويصل الطلب إلى المكتب الخلفي ، يجب تأكيد ذلك. يحدث هذا تلقائيًا إذا علمنا هذا المشتري بالفعل ، أو من قِبل المشغل في الوضع اليدوي وفقًا للمخطط المعتاد "مرحبًا ، هل طلبت شيئًا هنا ، تأكد ، هل البيانات صحيحة؟" وهكذا. وهنا تنتهي مشاركة المكتب الخلفي في عملية تشكيل التسليم بالفعل ، وتم تأكيد الطلب ، وتغيير الحالة من "معالج" إلى "ذهاب". طلب في WMS (حيث يتم حجزه ، وجمعه ، والبضائع المطلوبة غير المتوفرة والتي يتم إجراؤها للطلب من المورد) وفي الوقت نفسه ، يمكن أن يبدأ التوجيه من قِبل اللوجستيين. إلى حد كبير ، WMS والخدمات اللوجستية هي أنظمة مستقلة تعمل مع أوامر بالتوازي.

وفي الوقت نفسه ، في الأوراق المالية


WMS-system هو مزيج من برامجنا ومستودعاتنا وموظفي هذه المستودعات والأجهزة ، مما يبسط حياة هؤلاء الموظفين بشكل كبير. تتيح لك محطة صغيرة ، مركبة على معصم الموظف ، تجميع الطلب بسرعة في التسلسل المطلوب.



الاتساق أمر مهم لأننا نقدم الطلبات لعملائنا في صناديق كروسرودز الخاصة. ومع صندوق شيء - إنه مستطيل. مثل معظم الصناديق.

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

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



بالإضافة إلى ذلك ، يجب عليك اتباع قواعد حي البضائع. لنفترض أنه سيكون أمرًا محزنًا بالنسبة لك إذا طلبت نوعين من التفاح والقوائم والسمك ، وكل هذه الأشياء لم تنتن مع السمك ، ولكن مع المنظفات بشكل عام ، لأن كل شيء وصل في صندوق واحد. لذلك ، المواد الغذائية - بشكل منفصل ، والمواد الكيميائية المنزلية - بشكل منفصل. يتم تحديد حي البضائع وفقًا لمعايير SanPiN ، بالمناسبة. ونحن نلاحظهم. من وجهة نظر الإنسان ، هذا نموذج منطقي وصحيح فقط. من وجهة نظر المستودع ، هذه متغيرات إضافية عند إنشاء مسار عامل المستودع.

يأخذ النظام كل شيء في الحسبان ويبني طريقًا ، وبفضله يجمع الموظف الترتيب بالترتيب المطلوب - تؤدي المحطة إلى رفوفه الصحيحة. إذا بالغت في الأمر ، يبدو أن عمل جزء العميل من التطبيق كالتالي: "Guy ، اذهب إلى B4 ، خذ 5 عبوات من الدقيق معهم ، وضعها في أسفل الصندوق. ثم من A2 ، والاستيلاء على الحليب. لا ، ليس هذا واحد ، هناك تكمن في تلك الخلية. "



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



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

تحت غطاء محرك السيارة


نكتب تطبيقاتنا على Swift و Kotlin (iOS و Android ، على التوالي). في هذه الحالة ، الخلفية الخلفية تدور بالكامل في PHP ، قررنا القيام بقاعدة البيانات على Postgres ، للوسيط الذي لدينا Rabbit mq.

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

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

كل هذه الأشياء تقع في مكان مناسب على الخوادم في هذا النموذج:
16 خادم تطبيقات مع PHP-FPM و Postgres ، يحتوي Postgres على ماجستير واحد و 4 عبيد. كما ترون ، لا الدراجات. تم دمج المكتب الخلفي بالكامل مع الأنظمة الداخلية - WMS ، والمستودعات ، والخدمات اللوجستية ، والمحاسبة والتسويق.

أطلقنا تطبيق الهاتف المحمول والموقع الإلكتروني في عام 2017. اليوم ، يبلغ متوسط ​​الحمل على النظام حوالي 6000 طلب يوميًا. من ناحية ، ليس كثيرًا ، من ناحية أخرى ، لا يزال الأمر يستحق النظر إلى أن هذا لا ينتشر بشكل متساوٍ لمدة 24 ساعة ، فالناس لا يطلبون الطعام على مدار الساعة ، بل هناك أيضًا نشاط قياسي خلال ساعات العمل. تبلغ استفسارات PHP نفسها (بما في ذلك واجهة برمجة التطبيقات) حوالي 70،000 في 5 دقائق.

ترتيب الطريق


بمجرد تجميع الطلب بنجاح في المستودع وجاهز للذهاب في رحلة ، يتم توجيهه. بدأنا الآن في استخدام Yandex.Routing لهذا - منتج جيد يسمح لنا ببناء المسار الأمثل للسائقين بسرعة ، مع مراعاة مواقف المرور - اختناقات مرورية ، والطقس ، والأرضيات ، والحواجز وغيرها من أفراح. هذا يساعدنا على توفير الوقود ، حتى لا يقوم الناقلون بقطع الدوائر حول المدينة. لدى السائق مسار واضح ، قائمة بالترتيب الذي يجب أن يتم نقل الطلبات به ، يتم وضع الأوامر بأنفسهم في السيارة بطريقة يتم تسليمها بنفس الترتيب.



لقد قدمنا ​​طلبًا للبريد السريع لنظام Android ، كما كتبت بالفعل ، على Kotlin. في ذلك يتم حياكة التوجيه ، والقدرة على التواصل مع العميل (نخفي رقم العميل ، والسائق لديه فقط زر "Call") ، والقدرة على تحرير الطلب وإزالة شيء ما ، وطباعة الشيك ، ودفع الثمن أيضًا.



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



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

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

شكرا لك على القراءة

Source: https://habr.com/ru/post/ar484220/


All Articles