كيف فعلنا برنامج نادي Sportmaster

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



ثم


عام 2004 كان في الفناء. ما حدث هو برنامج نادي Sportmaster و 27 روبل لكل منهما. ما لم يكن - الإنترنت العادي في الميدان وقنوات اتصال مستقرة في المتاجر.

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

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

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

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

بالطبع ، كان هذا الموقف مكلفًا للغاية بالنسبة للأعمال ، وكان بالفعل خطيرًا ولا يمكن التنبؤ به ، وأراد العمل نقل النظام إلى قضبان عادية (تلقائية).

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

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

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

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

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

المشكلة الثالثة كانت أداء عمليات حرق المكافآت. لدينا نفس الشيء - يمكنك كسب نقاط طوال العام بحرارة ، لكن في الأول من مارس (آذار) ، يحترمون دائمًا بشكل خطير إذا لم تتمكن من إنفاقها.

يمكن للإصدار الأول من النظام (يُسمى CARDS) أن يأخذها في الاعتبار عادة ، ولكن عندما تحولت إلى وضع معمل محرقة العلف ، بدأت المشاكل. بعد كل شيء ، حرق المكافآت هو مرور كامل عبر القاعدة بأكملها مع التغييرات. بالنظر إلى حجم القاعدة ، قد يستغرق هذا 3-4 أيام. علاوة على ذلك ، في هذه العملية تباطأت بشكل رهيب وغبي ، والذي بسببه توقف حرق المكافآت في بعض الأحيان ، واتضح أنه في بعض المتاجر ، كان الرفيق بيتروف ، الذي كان قد حضر لكرات كرة الطاولة الجديدة ، لا يزال لديه مكافآت ، وسيدوروف ، الذي ذهب ل لسوء الحظ ، لا يوجد جديد كبير.

نسخة جديدة من النظام


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

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

ذهب التفاعل معهم شيء مثل هذا:

  • فهم الموفر أنه عميل رئيسي ، وبدأ يفرح
  • حدد عميل رئيسي في شكلنا ما إذا كان الموفر سيتعامل بالفعل مع هذه الرسائل
  • وقال مقدم أنه سوف يتقن ، بالطبع
  • تلقى المزود مهمة إرسال كمية كبيرة من الرسائل القصيرة في فترة قصيرة من الوقت وقرر الاستلقاء للراحة

لذلك ، عن النموذج الأولي. من حيث المبدأ ، تقرر إعادة هندسة النظام برمته ، لأنه في البداية تم شحذه فقط من أجل المكافآت ، وليس للعمل عبر الإنترنت ، لذلك من المتوقع أن يتوقف عن العودة. علاوة على ذلك ، سقط ، بطبيعة الحال ، خلال لحظات عالية الحمل. هذا هو ، في الوقت الأكثر لذيذ للمتجر - رأس السنة الجديدة ، 8 مارس ، 23 فبراير ومواعيد ممتعة أخرى.

يسقط النظام -> مزاج العمل يسقط -> يسقط مزاج الجميع.

جنبا إلى جنب مع زميل له ، ونحن إعادة كتابة النظام وفقا للمبدأ التالي.

المكون 1. المعالجة المسبقة التي تعطي الجواب للمتاجر في أسرع وقت ممكن.
المكون 2. المعالجة ، المربع السحري نفسه ، المكافآت الصعبة والاعتمادية بذكاء على الشيكات السلعية.
المكون 3. التسويق ، وجمع كل هذا معًا وتشكيل نصوص الاتصالات.

بالإضافة إلى ذلك ، قمنا بحل مشكلة حرق المكافآت. النظام الجديد ببساطة لم يحرقهم. بعد كل شيء ، إذا كنت لا تجبر النظام على حرق المكافآت - ليست لديك مشاكل مع حرق المكافآت.

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

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

ميزة إضافية للنظام الجديد هي ما يسمى مكافآت المنتج ، وهو يعمل مثل هذا:

  • كل منتج له سمات (الاسم ، فئة المنتج ، الحجم ، اللون ، الرياضة ، الآخر ، الآخر ، الآخر).
  • يجمع النظام بين هذه السمات ، مما يشكل شرطًا منطقيًا لتجميع المكافآت.
  • عند وصول الشيك ، يتم التحقق من هذا الشرط دائمًا.

أظهرنا هذا النموذج الأولي في العمل التجاري. أعطى العمل الضوء الاخضر.

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

أيديولوجية النظام


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

الآن تنتشر المكافآت مثل هذا:

  • بادئ ذي بدء ، يتم توزيع المكافآت في جميع أنحاء الشيك بالتساوي ، لجميع البنود السلع. هذا مفيد للتحليلات ، ويساعد في حالة عودة البضائع.
  • قدمنا ​​مفهوم مكافآت الأولوية. المكافآت سلعة ، وهناك مكافآت لأعياد الميلاد ، والتي لها فترة صلاحية قصيرة ، وهناك مكافآت منتظمة (الأكثر عنيدة). لذلك ، علينا أولاً شطب مكافآت محددة. هذا هو ، جاء شخص للتزلج - سنقوم في المقام الأول شطب المكافآت التي لديه على الزلاجات. واتضح أنه جاء للتزلج ، شطبنا مكافآت منتظمة. بعد أسبوع سيأتي لستر ، وسنعطيه رجلاً ، لديك فقط مكافآت للتزلج. هل تريد التزلج؟ نفس الشيء مع عمليات الشراء خلال فترات عيد الميلاد ، ثم شطبها أولاً ، ثم شطبها بانتظام.
  • نحمل العمليات المكتبية والجبهة. الآن ، لا تؤثر المتاجر التي تأتي مع الطلبات على عمل وأداء الخدمة التي تحسب العلاوات ، والعكس صحيح

بشكل عام ، كان من الممكن التقاط جميع المشاكل القديمة ، وبدلاً من المشاكل الجديدة أضف ميزات جديدة.

بدلا من تراكم ، كان لدينا هذا دفتر الكسندر.





إطلاق نسخة جديدة من النظام


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

هذا يبدو جيدًا ، لكنه في الحقيقة يتعلق ببضع قيود.

أولاً ، نظرًا للعدد الكبير من المتاجر (1200+) ، كان علينا إدارة كل شيء خلال 3 ساعات. على الرغم من إغلاق أحد المتاجر في منتصف الليل في منطقة زمنية واحدة ، إلا أن لدى متجر آخر وقتًا مختلفًا تمامًا ، ثم يوجد أيضًا متجر صغير. بشكل عام ، لتحويل جميع البيانات من النظام القديم ، قم بتغذية النظام الجديد ، وابدأ على ثلاثة خوادم مرة واحدة - 3 ساعات.

كانت مطبات مثل هذا:

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

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

والذي كان مختلفًا قليلاً عن الرقم المخطط له وهو 3 ساعات.

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

ولكن لا يزال ، لا يمكن إجراء مثل هذا الحجم من البيانات على الأجهزة القياسية في الوقت المناسب.

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

نظرًا لأننا شباب دقيقون ، في عملية الإعداد والعمل ، فقد جمعنا مجموعة من الأخطاء وفشلنا في دعم Oracle بهامش. على سبيل المثال ، كان هناك خطأ واحد مثير للاهتمام - بسبب خطأ في المعالجة الداخلية للطلب ، بدأت Oracle تستهلك بشكل مكثف TEMP. لاحظنا هذا في الوقت المناسب ، وألقينا به ملفات TEMP'ovyh ، كان مثيرا للاهتمام عندما كان في حالة سكر. لكن بما أن قطعة الحديد كانت حساسة للغاية ودراية ، فقد استخدمت 3 Tb TEMP مع شعور لمدة 10 دقائق ، وأدركت أنها لم تعد ، وذهبت إلى الفراش. اضطررت للتوصل إلى حلول.

من ناحية ، كان رائعا أن كل شيء من حيث التحويل فعلنا في 2 ساعة. من ناحية أخرى ، في عملية التحويل النظيفة بأكملها ، ساعتين ، وخططنا أيضًا:

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

في الوقت نفسه ، في كل قاعدة بيانات كان هناك مجموعة من معلومات الخدمة المفيدة مثل الفهارس نفسها التي يمكن أن تساعد أثناء إعادة البناء ، لكننا سجلنا في هذا وقررنا إعادة بناء كل شيء مرة أخرى بالفعل على خوادم المعركة.

تدريب


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

في الساعة 23.00 كل يوم بدأنا العملية ورصدنا المقاييس. لقد أجرينا التغييرات اللازمة ، ونتيجة لذلك ، قمنا بإعداد كل شيء بحيث لا يمكن أن يحدث أي شيء على الإطلاق.

بالطبع ، حدث خطأ في يوم الإطلاق.

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

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

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

في الوقت الحالي


حاليا ، 14 مطور و 8 محللين يعملون على نظام النادي. بالنظر إلى كل الأشياء الجيدة التي علقنا بها ، لم تعد هذه البطاقة مجرد بطاقة تمنحك عددًا معينًا من المكافآت المتاحة للإنفاق في المتاجر.

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

  • تراكمت للمستخدم عدد لا بأس به من المكافآت العادية.
  • زائد الآن الفترة التي يكون فيها هناك إجراء على علامة تجارية معينة ؛
  • زائد الآن خصومات أيضا على مجموعة منتج معين ومجموعة فرعية ؛
  • وقد يكون هناك أيضًا خصم في مدينة معينة أو في متجر معين.

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

  1. تطوير آلية لإطلاق حملات تسويق معقدة متعددة الاتجاهات ، بما في ذلك البريد ، وتقديم مكافآت ، وخصومات ، وتخصيص العروض للعميل
  2. اتصال قنوات الاتصال الجديدة ، مثل برامج المراسلة الفورية والشبكات الاجتماعية وما إلى ذلك

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

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

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


All Articles