دعونا لعب بينغو بدء التشغيل؟ المنصة ، النظام البيئي ، التكامل ، السوق ، واجهة برمجة التطبيقات ، التآزر. البنغو!
إن موضوع الأسواق الداخلية للحلول المتكاملة ساخن للغاية في عالم البقالة. في Poster POS ، أدركنا فوائد واجهة برمجة التطبيقات المفتوحة وبناء نظام بيئي لفترة طويلة. لقد تأثرت بشكل خاص بفصل "المنصة" في تأثير Facebook ، الذي عزز الفهم الذي تحتاجه للذهاب إلى المنصات. قبل 3 سنوات ، افتتحنا واجهة برمجة التطبيقات ، وقبل عامين أطلقنا السوق ، وقبل عام أطلقنا تقنية تجعل من الممكن توسيع وظائف المنتج الرئيسي والتأثير على سلوكه بسلاسة ، منذ حوالي 3 أشهر ، أعادنا تشغيل كتالوج التكامل وبدأنا بنشاط في تسويق تطبيقات الشركاء.
عندما بدأنا ، لم يكن لدي ما يكفي من القضايا العامة حول هذا الموضوع ، دليل للعمل. في هذه المقالة ، سأخبرك كيف تصبح خدمة SaaS بدون كتالوج تكامل وتصبح خدمة SaaS مع كتالوج تكامل. ستكون مقالتي مفيدة للمنتجات التي اجتازت بالفعل مرحلة ملائمة سوق المنتجات ومستعدة لبدء بناء نظامها البيئي.

عنا
لإعطاء القليل من السياق ، يعد
Poster هو نظام أتمتة SaaS للمطعم وتجارة التجزئة. ما نفعله يسمى نقاط البيع أو "شباك التذاكر". ينقسم منتجنا إلى قسمين - المحطة الطرفية ولوحة الإدارة. يعمل الجهاز على أجهزة iPad و Android اللوحية أو أجهزة Windows. في المحطة ، يقوم الصرافون والنوادل بقيادة السيارة ، وقبول الدفع ، وطباعة الشيكات. يعمل مدير المؤسسة ، والمدير ، وأمين المتجر في لوحة الإدارة: فهم يحتفظون بسجلات المستودعات والإدارة ، ويطلعون على إحصاءات المبيعات ، ويديرون السلع ، وما إلى ذلك. الآن يتم استخدام المنتج من قبل 6000 مؤسسة نشطة في 53 دولة.
القليل من التاريخ
موضوع الأسواق والمنصات ليس بالجديد. كانت الأنظمة الأساسية الأولى هي أنظمة التشغيل ، مما سمح للمطورين بإدارة الذاكرة بشكل مستقل ، i / o ، ووقت المعالج ، وما إلى ذلك. ثم بدأت تطبيقات سطح المكتب مع الوظيفة الإضافية في الظهور. بدأت معرفتي بالمكونات الإضافية مع Total Commander و Winamp. ثم كانت هناك تطبيقات Java صغيرة للهواتف الذكية ، في iOS 2.0 أصدر App Store. بدأت خدمات الويب أيضًا في النمو مع عمليات التكامل والمكونات الإضافية ، على سبيل المثال ، Facebook و SalesForce و Basecamp و Xero وما إلى ذلك. أصبحت واجهة برمجة التطبيقات المفتوحة والأسواق جزءًا من حياتنا اليومية ونواجهها باستمرار.
ماذا تعطي الأسواق؟
المزيد من الميزات وزيادة مشاركة المستخدم.
دعونا نواجه الأمر: سوف ينمو تراكمك دائمًا. لن يكون لديك دائمًا موارد كافية لتشغيل جميع الوظائف التي يطلبها المستخدمون. علاوة على ذلك ، إذا كنت تضيف ميزات جديدة باستمرار إلى المنتج ، فسوف يتحول عاجلاً أم آجلاً إلى فوضى رهيبة من الأزرار وعلامات الاختيار والمفاتيح. من الأفضل أن تصنع منتجًا يحل نوعًا من المشاكل 3-7 من 50 ، ولكن دون المتوسط. لذلك ، تساعد عمليات التكامل المنتج على النمو النوعي في أعين المستخدم ، وتوسيع وظائفه ، مما يعني أنه من غير المرجح أن يذهب عميلك إلى المنافسين.

محرك نمو مبيعاتك
يمكن أن يكون التكامل مع الشركات الأخرى في السوق محركًا جيدًا لمبيعات منتجك الرئيسي. على سبيل المثال ، في حالتنا ، قد يأتي العملاء المحتملون الذين لديهم برنامج تسجيل نقدي قديم أو بدونه إلى شركاء يشاركون في أنظمة الولاء. عند هذه النقطة ، سيوصي الشريك بمكتب النقود الذي لديه علاقة تكامل وعلاقات جيدة معه.
القدرة على تقديم حلول مخصصة لكبار العملاء
في السابق ، عندما تلقينا طلبًا للانتهاء من منتج على شبكة كبيرة ذات متطلبات غير نمطية ، كان علينا أن نرفض حتى لا ندفن أنفسنا في حفرة حلول المؤسسة ، حيث توجد في كل خطوة في الكود فروع مثل:
if (account==='very_important_enterprise_customer') { ... }
الآن يمكننا تنفيذ أي وظائف إضافية تقريبًا في النظام دون التأثير على جوهر المنتج. أو ، من الأفضل الاستعانة بمصادر خارجية للتحسينات.
قناة كسب إضافية
عادة ، تأخذ الأدلة عمولة على مبيعات التطبيقات التي يتم استضافتها عليها. حجم العمولة من 30 (معيار الصناعة) إلى 80٪ (في الحالات القصوى للغاية ، على سبيل المثال في Odnoklassniki). ولكن في الوقت نفسه ، أنا شخصياً لا أثق كثيرًا في فكرة أن نموذج أعمال الشركة يمكن بناؤه حول السوق. على سبيل المثال ، تمتلك Apple 62 ٪ من الإيرادات من بيع iPhone ، وفئة الخدمات بالكامل (التطبيقات في AppStore و Apple Music و iCloud و Apple Pay) - 13٪. في حالتنا ، وضعنا السوق ليكون مكتفياً ذاتياً.
ما هو التكامل
قمنا بتقسيم خيارات التكامل إلى 3 أنواع رئيسية: الواجهة الخلفية ، وإدارة النظام الأساسي ، ونظام نقطة البيع.
تكامل الواجهة الخلفية
بدأنا بخيار التكامل الأساسي ، وعملت عمليات التكامل الأولى بهذه الطريقة. تقوم الواجهة الخلفية لشريك الخدمة عبر واجهة برمجة تطبيقات HTTP JSON باسترداد البيانات ومعالجتها بطريقة أو بأخرى وعرضها على العميل ، وربما يتم تحديث شيء ما داخل نظامنا. من الأمثلة على ذلك التحليلات والولاء وأنظمة البريد وأنظمة المراقبة بالفيديو.
إدارة النظام الأساسي
في الواقع ، نفس تكامل الواجهة الخلفية ، ولكن مضمنة في حساب المستخدم الشخصي. تحت غطاء محرك السيارة هذا هو iFrame العادي وبروتوكوله الخاص للحصول على تفويض سلس. هو أكثر ملاءمة للمستخدم منذ ذلك الحين لا حاجة لترك النظام في أي مكان. مناسبة للتطبيقات مع واجهة بسيطة.

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

بعد ذلك سأتحدث عن المكون الفني لتنفيذ هذه التكنولوجيا.
كيفية إنشاء تطبيق JS تابع لجهة خارجية
يعتمد حلنا النقدي على التقنيات الهجينة ، مما يسمح لنا بدعمه على جميع الأنظمة الأساسية: iOS و Android و Windows. تتم كتابة الواجهة بالكامل ومنطق الأعمال في HTML / JS. وبالنسبة إلى الأنظمة الأساسية الأصلية ، نكتب أغلفة حول WebView وننفذ برامج تشغيل للعمل مع الأجهزة الطرفية (الطابعات ، أمناء السجلات المالية ، المقاييس ، إلخ.)
إذا قمت أيضًا بكتابة التطبيق على حزمة الويب ، سأوفر لك الوقت للبحث وأخبرنا كيف جعلنا التطبيق قابلاً للتوسيع. خلال الدراسة ، تم استلهامها من Trello و Shopify و Atom.io. نتيجة لذلك ، وصلنا إلى النموذج التالي.
ينشئ مثيل التطبيق الرئيسي حاوية منفصلة لكل عنصر واجهة مستخدم تابع لجهة خارجية. الحاوية هي iFrame يتم فيها تحميل ملف JS مع الرمز القابل للتنفيذ لتطبيق الشريك. تتوفر الطرق مع API الخاصة بنا تلقائيًا في الحاوية. تم تخزين الحاوية في ذاكرة التخزين المؤقت في الأمام (Appcache أو عمال الخدمة) ويمكن تشغيلها ، والعمل بدون الإنترنت.
يسمح لك الحل مع iFrame بعزل منطق تطبيق الطرف الثالث عن التطبيق الرئيسي وفي حالة وجود بعض المشكلات في الأداة ، لا تكسر تطبيق التدفق النقدي الرئيسي. لقد أخذنا في الاعتبار أيضًا خيار WebWorkers ، ولكن النصوص البرمجية داخل العامل لا يمكنها الوصول إلى DOM ، ونمنح الحاجيات القدرة على عرض الواجهات ، لذلك أسقطنا هذا الخيار على الفور.
يكتب المطورون تطبيقهم باستخدام JS أو أي لغة يتم ترجمتها إلى JS (CoffeeScript ، Typescript ...) ، مع أي أطر عمل أو مكتبات. بعد ذلك ، يتم جمع الشفرة وجميع موارد حزمة الويب في bundle.js واحدة ، والتي يتم نشرها على خوادمنا بواسطة أداة وحدة التحكم وتسليمها للمستخدمين.
تقوم التطبيقات المصغرة في iFrame بتبادل الرسائل مع التطبيق الرئيسي عبر postMessage ويمكنها إرسال أوامر السحب من خلال الملصق المدمج في النطاق العالمي. على سبيل المثال:
Poster.interface.popup({width: 500, height: 300, title: " "});
قمنا بتنفيذ قائمة انتظار رد تسمح لتطبيقات الطرف الثالث بالاشتراك في أحداث السحب والرد عليها وتغيير منطق التطبيق. على سبيل المثال:
Poster.on('beforeOrderClose', (data, next) => { alert(" "); next(); });
بالمناسبة ، في حالة الأحداث السابقة * ، والتي ، في الواقع ، تعيق عمل أداء نوع من العمليات عند الخروج ، كان علينا إدخال وقت الاستجابة من أداة طرف ثالث. على سبيل المثال ، هناك تطبيق يستمع إلى الحدث قبلOOderder ، ويقدم طلبًا بتفاصيل الطلب الذي يخطط الصراف لدفعه إلى خادمه. حتى لا تتأثر تجربة المستخدم ، لا نعطي التطبيق أكثر من 5 ثوانٍ لتطبيق منطقنا والاتصال التالي () أو عرض واجهة ستوضح تقدم المستخدم.
وضع ديف
في كل مرة ، يكون جمع التطبيق بالكامل ونشره لنا على الخوادم أثناء عملية التطوير أمرًا غير مريح ، لذلك قمنا بإعداد وضع مطور البرامج. في ذلك ، يتم جمع القطعة باستمرار باستخدام webpack-dev-server مع إعادة التحميل السريع وفي تطبيق مكتب النقدية على حساب المطور ، يتم تشغيل رمز التطبيق ليس من الإنتاج ، ولكن من جهاز المطور المحلي. في الوقت نفسه ، تتمتع الواجهة دائمًا بالقدرة على التبديل بين dev و prod. قريبا سوف نقدم فرع آخر - بيتا. سيتم أيضًا نشر رمز بيتا على خوادمنا ، ولكن لن يكون متاحًا إلا من قبل مختبري الإصدار التجريبي للتطبيق.

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

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

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

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

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

بعد نقل الرصاص
بطبيعة الحال ، لا يتم البيع بمفرده بعد أن نقدم الرصاص لمطور خارجي. عادةً ما يكون من الصعب إتقان منتجات b2b والعمل بشكل مستقل ، وبالتالي ، فإننا ننقل معلومات الاتصال الخاصة بالعميل (بموافقته) إلى الشركاء ونصر على أنهم يتصلون ويساعدون في عملية التأهيل.
ماذا لدينا في العمل؟
الفواتير
نحن نؤمن أنك بحاجة إلى إصدار فاتورة للعميل في مكان واحد لتبسيط عمل التدفق والتواصل معه قدر الإمكان. نحن الآن بصدد إنهاء دعم الفواتير لتطبيقات الجهات الخارجية.
بالمناسبة ، هناك العديد من الصعوبات في التنفيذ ، على سبيل المثال:
- يمكن أن يكون للتطبيقات نموذج تحقيق دخل مختلف تمامًا: الاشتراك الشهري ، ومدفوعات المعاملات ، والاشتراك حسب الاستخدام
- يجب إخطار العميل تلقائيًا في حالة تغيير التعرفة
- يمكن للعملاء الدفع من بلدان مختلفة ، وعادة ما يكون العقد مع شريك واحد
- قد يكون لدى العميل بطاقة مرفقة للدفع ، أو قد يكون هناك دفع على الفواتير في هيئة المحلفين. الوجه.
مراجعة الطلب
الآن تتم مراجعة الطلب مرة واحدة عندما يدخل التطبيق إلى السوق. نريد تقديم مراجعة إلزامية ، ولكن سريعة في كل عملية نشر للمساعدة في تتبع بعض الحالات المتطورة.
إرشادات لتطبيقات الطرف الثالث
للحفاظ على تجربة مشتركة من استخدام منتجاتنا ومنتجاتنا المتكاملة ، نقدم توصيات بشأن التصميم والتدفق للشركاء ، ولكن لا توجد مجموعة رسمية من القواعد.
نقوم بتطوير إرشادات للاستخدام الداخلي من قبل مصممي ومطوري الملصقات ، ثم نفتحها لمطوري الجهات الخارجية.
هذا كل شئ
في الواقع ، نحن فقط في بداية الرحلة. لا يزال هناك الكثير من العمل لتصبح منصة كاملة ، لكننا تعلمنا بالفعل الكثير خلال هذا الوقت. علاوة على ذلك - فقط أكثر إثارة للاهتمام. إذا كان لديك أسئلة ، اكتب في التعليقات ، سأحاول الإجابة على أكمل وجه ممكن.
وإذا كنت تصنع منتجًا للمقاهي والمطاعم والمحلات التجارية - فلنغير السوق معًا! اكتب الآن إلى
dev@joinposter.com ، أنا متأكد من أننا يمكن أن نكون مفيدين لبعضنا البعض.