Cara Membangun Platform Integrasi Produk SaaS: Pengalaman Cloud Checkout Poster

Mari kita mulai bermain bingo? Platform, ekosistem, integrasi, pasar, api, sinergi. Bingo!

Topik pasar internal solusi terintegrasi sangat panas di dunia grosir. Di Poster POS, kami memahami manfaat dari API terbuka dan membangun ekosistem untuk waktu yang lama. Saya sangat terkesan dengan bab β€œThe Platform” di The Facebook Effect, yang memperkuat pemahaman bahwa Anda harus pergi ke platform. 3 tahun yang lalu kami membuka API, 2 tahun lalu kami meluncurkan Marketplace, setahun yang lalu kami meluncurkan teknologi yang memungkinkan untuk memperluas fungsionalitas produk utama dan memengaruhi perilakunya, sekitar 3 bulan yang lalu kami memulai kembali katalog integrasi dan secara aktif mulai memasarkan aplikasi mitra.

Ketika kami mulai, saya tidak punya cukup kasus publik mengenai hal ini, panduan untuk bertindak. Dalam artikel ini, saya akan memberi tahu Anda cara menjadi layanan SaaS tanpa katalog integrasi dan menjadi layanan SaaS dengan katalog integrasi. Artikel saya akan berguna untuk produk-produk yang telah melewati tahap kesesuaian pasar-produk dan siap untuk mulai membangun ekosistem mereka.



Tentang kami


Untuk memberikan sedikit konteks, Poster adalah sistem otomatisasi SaaS untuk restoran dan bisnis ritel. Apa yang kami lakukan disebut Point of Sale atau "box office". Produk kami dibagi menjadi dua bagian - terminal dan panel admin. Terminal beroperasi di iPad dan tablet Android atau perangkat Windows. Di terminal, kasir dan pramusaji menyetir, menerima pembayaran, mencetak cek. Administrator lembaga, manajer, penjaga toko bekerja di panel admin: mereka menyimpan catatan gudang dan manajemen, melihat statistik penjualan, mengelola barang, dll. Sekarang produk ini digunakan oleh 6.000 institusi aktif di 53 negara.

Sedikit sejarah


Tema pasar dan platform bukanlah hal baru. Platform pertama adalah sistem operasi, yang memungkinkan pengembang untuk secara independen mengelola memori, i / o, waktu prosesor, dll. Kemudian aplikasi desktop dengan add-on, plugin mulai muncul. Kenalan saya dengan plugin dimulai dengan Total Commander dan Winamp. Lalu ada applet Java untuk smartphone, di iOS 2.0 merilis App Store. Layanan web juga mulai tumbuh dengan integrasi dan plug-in, misalnya, Facebook, SalesForce, Basecamp, Xero, dll. API terbuka dan pasar telah menjadi bagian dari kehidupan kita sehari-hari dan kita terus menjumpainya.

Apa yang diberikan pasar?


Lebih banyak fitur, keterlibatan pengguna yang lebih tinggi.


Mari kita hadapi itu: simpanan Anda akan selalu tumbuh. Anda akan selalu memiliki sumber daya yang tidak mencukupi untuk menjalankan semua fungsi yang diminta pengguna Anda. Selain itu, jika Anda terus-menerus menambahkan fitur baru ke produk, cepat atau lambat itu akan berubah menjadi kekacauan tombol, tanda centang, dan sakelar yang tidak nyaman. Lebih baik membuat produk yang secara kualitatif akan menyelesaikan 3-7 masalah daripada 50, tetapi biasa-biasa saja. Oleh karena itu, integrasi membantu produk untuk tumbuh secara kualitatif di mata pengguna, memperluas fungsionalitasnya, yang berarti semakin kecil kemungkinan klien Anda akan pergi ke pesaing.



Penggerak pertumbuhan penjualan Anda


Integrasi dengan perusahaan lain di pasar dapat menjadi pendorong yang baik untuk penjualan produk utama Anda. Misalnya, dalam kasus kami, klien potensial dengan atau tanpa perangkat lunak mesin kasir kedaluwarsa dapat mendatangi mitra yang terlibat dalam sistem loyalitas. Pada titik ini, mitra akan merekomendasikan meja kas tempat ia memiliki integrasi dan hubungan baik.

Kemampuan untuk membuat solusi khusus untuk pelanggan besar


Sebelumnya, ketika kami menerima permintaan untuk menyelesaikan suatu produk di jaringan besar dengan persyaratan yang tidak lazim, kami harus menolak agar tidak mengubur diri di lubang solusi perusahaan, di mana pada setiap langkah dalam kode terdapat cabang seperti:

if (account==='very_important_enterprise_customer') { ... } 

Sekarang kita dapat menerapkan hampir semua add-on dalam sistem tanpa mempengaruhi inti produk. Atau, bahkan lebih baik, memasang iklan perbaikan.

Saluran penghasilan tambahan


Biasanya, direktori mengambil komisi atas penjualan aplikasi yang di-host di atasnya. Ukuran komisi adalah dari 30 (standar industri) hingga 80% (dalam kasus yang sangat ekstrim, misalnya dalam Odnoklassniki). Tetapi pada saat yang sama, saya pribadi memiliki sedikit kepercayaan pada gagasan bahwa model bisnis perusahaan dapat dibangun di sekitar pasar. Misalnya, Apple memiliki 62% pendapatan dari penjualan iPhone, dan seluruh kategori layanan (aplikasi di AppStore, Apple Music, iCloud, Apple Pay) - 13%. Dalam kasus kami, kami menetapkan pasar menjadi mandiri.

Apa integrasinya


Kami membagi opsi integrasi menjadi 3 jenis utama: Backend, Kelola platform, platform POS.

Integrasi backend


Opsi integrasi paling dasar, kami mulai dengan itu dan integrasi pertama bekerja dengan cara ini. Backend dari mitra layanan melalui HTTP JSON API mengambil data, entah bagaimana memprosesnya dan menampilkannya kepada klien, mungkin sesuatu pembaruan di dalam sistem kami. Contohnya adalah analitik, kesetiaan, sistem pengiriman surat, sistem pengawasan video.

Kelola platform


Bahkan, integrasi backend yang sama, tetapi dibangun ke dalam akun pribadi pengguna. Di bawah tenda untuk ini adalah iFrame biasa dan protokolnya sendiri untuk otorisasi tanpa batas. Itu jauh lebih nyaman bagi pengguna sejak itu tidak perlu meninggalkan sistem di mana pun. Cocok untuk aplikasi dengan antarmuka yang sederhana.


Platform POS


Pada titik tertentu, kami dan mitra kami mulai kehilangan integrasi backend. Saya membutuhkan solusi untuk mengintegrasikan langsung dengan kasir, saya ingin memperluas fungsionalitas, mengintegrasikan secara asli ke kasir, dan mengubah perilakunya. Karena itu, setahun yang lalu kami meluncurkan Platform POS dengan mekanisme plugin atau widget. Anda dapat melihat solusi serupa di web, misalnya di Trello.

Contoh integrasi pada teknologi ini adalah sistem loyalitas yang memerlukan identifikasi tamu di dekat kasir, dompet ponsel, dan sistem pembayaran lainnya. Di sini, misalnya, adalah aplikasi dari Paytomat yang memungkinkan Anda membayar pesanan Anda dengan cryptocurrency:



Selanjutnya saya akan berbicara tentang komponen teknis dari penerapan teknologi ini.

Cara membuat aplikasi JS pihak ketiga


Solusi tunai kami dibangun di atas teknologi hybrid, yang memungkinkan kami untuk mendukungnya di semua platform: iOS, Android, Windows. Seluruh antarmuka dan logika bisnis ditulis dalam HTML / JS. Dan untuk platform asli, kami menulis pembungkus di sekitar WebView dan mengimplementasikan driver untuk bekerja dengan peralatan periferal (printer, pencatat fiskal, skala, dll.)

Jika Anda juga menulis aplikasi di tumpukan web, saya akan menghemat waktu Anda untuk penelitian dan memberi tahu bagaimana kami membuat aplikasi tersebut dapat dikembangkan. Selama penelitian, mereka terinspirasi oleh Trello, Shopify, dan Atom.io. Hasilnya, kami sampai pada model berikut.

Mesin virtual aplikasi utama membuat wadah terpisah untuk setiap widget pihak ketiga yang terhubung. Wadah adalah iFrame tempat file JS dengan kode yang dapat dieksekusi dari aplikasi mitra dimuat. Metode dengan API kami tersedia secara otomatis dalam wadah. Kontainer di-cache di bagian depan (Appcache atau Pekerja Layanan) dan dapat diluncurkan, bekerja tanpa Internet.

Solusi dengan iFrame memungkinkan Anda untuk mengisolasi logika aplikasi pihak ketiga dari yang utama dan jika ada beberapa masalah dengan widget, jangan merusak aplikasi cash flow utama. Kami juga mempertimbangkan opsi WebWorkers, tetapi skrip di dalam pekerja tidak memiliki akses ke DOM, dan kami memberikan widget kemampuan untuk menampilkan antarmuka, jadi kami segera menjatuhkan opsi ini.

Pengembang menulis aplikasi mereka menggunakan JS atau bahasa apa pun yang dikompilasi ke dalam JS (CoffeeScript, Typescript ...), dengan kerangka kerja atau pustaka apa pun. Selanjutnya, kode dan semua sumber daya dari webpack dikumpulkan dalam satu bundle.js, yang digunakan untuk server kami oleh utilitas konsol dan dikirimkan kepada pengguna.

Widget dalam pesan pertukaran iFrame dengan aplikasi utama via postMessage dan dapat mengirim perintah checkout melalui Poster bawaan ke lingkup global. Sebagai contoh:

 Poster.interface.popup({width: 500, height: 300, title: " "}); 

Kami telah menerapkan antrean panggilan balik yang memungkinkan aplikasi pihak ketiga untuk berlangganan acara checkout, meresponsnya dan mengubah logika aplikasi. Sebagai contoh:

 Poster.on('beforeOrderClose', (data, next) => { alert("  "); next(); }); 

Ngomong-ngomong, dalam kasus sebelum * peristiwa, yang, pada kenyataannya, menghalangi pekerjaan melakukan semacam operasi di checkout, kami harus memasukkan waktu respons dari widget pihak ketiga. Misalnya, ada aplikasi yang mendengarkan acara sebelumOrderClose dan membuat permintaan dengan rincian urutan yang ingin dibayar kasir ke servernya. Agar pengalaman pengguna tidak menderita, kami memberikan aplikasi tidak lebih dari 5 detik untuk menerapkan logika kami dan memanggil next () atau menampilkan antarmuka yang akan menunjukkan kemajuan pengguna.

Mode dev


Setiap kali, mengumpulkan seluruh aplikasi dan menyebarkannya kepada kami di server selama proses pengembangan tidak nyaman, jadi kami membuat mode dev. Di dalamnya, widget dikumpulkan secara konstan menggunakan webpack-dev-server dengan hot-reload dan dalam aplikasi meja kas di akun pengembang, kode aplikasi diluncurkan bukan dari produksi, tetapi dari mesin pengembang lokal. Pada saat yang sama, antarmuka selalu memiliki kemampuan untuk beralih antara dev dan prod. Kami akan segera memperkenalkan cabang lain - beta. Kode beta juga akan digunakan untuk server kami, tetapi hanya akan tersedia oleh penguji beta aplikasi.



Kabinet Pengembang


Untuk waktu yang lama, kami mendaftarkan aplikasi dan mengubah pengaturan secara manual, atas permintaan pengembang. Setiap kontak pada tahap pembuatan aplikasi memungkinkan kami untuk berkomunikasi lebih banyak dengan para pengembang, untuk mempelajari tentang produk apa yang ingin mereka integrasikan, metode apa yang kurang dalam API.

Tetapi ketika kami mencapai tanda 40-50 integrasi simultan, pekerjaan mekanis mulai membutuhkan banyak waktu dari tim integrasi. Karenanya, kami meluncurkan kantor pengembang, tempat kami mengotomatiskan semua proses ini.



Dokumentasi, contoh, dukungan mitra


Kami memiliki dukungan teknis yang berkualitas dalam DNA perusahaan kami. Oleh karena itu, ketika kami mulai menumbuhkan cerita dengan mitra pembangunan, kami memutuskan untuk membuat dukungan pengembang paling keren di pasar.

Dengan setiap mitra, kami menelepon, membantu menciptakan aliran integrasi, dan bahkan menyiapkan tindak lanjut terperinci dengan daftar metode yang perlu mereka gunakan untuk menerapkan. Kami menjawab pertanyaan dalam obrolan Telegram umum dengan pengembang mitra.

Ngomong-ngomong, terkadang muncul masalah ketika pengembang yang kurang berpengalaman mengajukan pertanyaan bukan pada platform kami, API, tetapi hanya pada pemrograman atau tidak ingin melakukan debug ketika masalahnya ada di pihak mereka. Dalam situasi seperti itu, kami menggunakan teknik "jangan merespons dalam 1-2 jam", dalam kebanyakan kasus, selama waktu ini, pengembang memecahkan masalah sendiri :)

Untuk dokumentasi kami menggunakan Slate. Pembuatan dokumentasi secara otomatis dari komentar pada file sumber tidak sesuai dengan kami karena kami perlu mendukung beberapa versi dokumentasi bahasa - Rusia dan Inggris.



Dan tentu saja, penting untuk memahami bahwa untuk pengembang pihak ketiga kami hanyalah satu lagi integrasi tambahan, jadi mereka harus melakukannya secepat mungkin dan dengan manfaat maksimal untuk bisnis mereka. Oleh karena itu, kami membuat boilerplate yang siap pakai , contoh kode dan melakukan yang terbaik untuk membantu dalam proses.

Pemasaran aplikasi


Agar setiap orang mendapat manfaat: institusi - fungsionalitas tambahan dan solusi dari masalah bisnis mereka, pengembang - pelanggan baru, dan kami - penutupan pelanggan yang lebih dalam di ekosistem kami, aplikasi harus dipasarkan. Untuk memasarkan aplikasi di antara pengguna kami, kami menggunakan alat berikut.

Pengumuman Integrasi


Ini adalah hal paling sederhana yang dapat dilakukan: kami mengumumkan integrasi baru di jejaring sosial dan buletin bulanan tentang fitur baru. Pesan diterima tanpa target, pada semua kontak kami, dan dapat hilang di tengah kebisingan informasi.

Surat Pemicu


Kami memilih pelanggan yang mungkin tertarik pada satu atau beberapa kategori aplikasi (sistem loyalitas, pengawasan video, manajemen dokumen, dll.), Dan melakukannya dengan menargetkan pengiriman dengan penawaran untuk melihat apa yang kami miliki di pasar dari kategori ini.

Misalnya, untuk perusahaan yang telah mencetak lebih dari 100 detail kontak tamu mereka di basis data, kami membuat pemicu tentang integrasi dengan sistem loyalitas dan memberi tahu kami bahwa ia dapat bekerja dengan tamunya lebih efisien dan mengembalikan mereka ke lembaganya. Untuk institusi dengan lebih dari 5 karyawan (ini bukan lagi bisnis keluarga), kami mengirim pemicu tentang integrasi dengan sistem pengawasan video berbasis cloud untuk mempermudah mengontrol karyawan.

Kami menambahkan surat ini dan mendorong ke struktur onboarding kami, itu tiba ke klien ketika dia sudah dibayar dan mulai menggunakan semua fungsi dasar. Jika Anda mengiriminya informasi tentang perluasan fungsionalitas sebelum dia belajar menggunakan dasar - itu akan sama sekali tidak berguna.



Spanduk informasi di dalam produk


Pengguna cukup sering mengabaikan surat dan mendorong aliran informasi, jadi kami menambahkan spanduk yang tidak mencolok di produk itu sendiri. Kami menemukan bahwa ini adalah salah satu cara paling efektif untuk mengarahkan lalu lintas ke halaman aplikasi. Spanduk muncul dalam konteks. Misalnya, spanduk tentang produk untuk analitik mendalam muncul di bagian dengan tanda terima - tempat pemilik menganalisis penjualannya.



Apa lagi


Sekarang kami sedang bereksperimen dengan format artikel blog dengan studi kasus untuk memecahkan masalah bisnis menggunakan solusi terintegrasi. Kami akan segera meluncurkan webinar bersama dengan mitra.

Dengan alat yang tercantum di atas, kami belajar cara menghadirkan pengembang pihak ketiga 20-100 prospek per bulan, dan ini baru permulaan.


Setelah transfer memimpin


Secara alami, penjualan tidak terjadi dengan sendirinya setelah kami memberikan petunjuk kepada pengembang pihak ketiga. Biasanya, produk b2b lebih sulit untuk dikuasai dan bekerja secara independen, oleh karena itu, kami mentransfer informasi kontak klien (dengan persetujuannya) ke mitra dan bersikeras agar mereka menghubungi dan membantu dengan proses orientasi.

Apa yang kita miliki di tempat kerja?


Tagihan


Kami percaya bahwa Anda perlu menagih klien di satu tempat untuk menyederhanakan pekerjaan dan koneksi yang mengalir untuknya sebanyak mungkin. Sekarang kami sedang menyelesaikan dukungan penagihan untuk aplikasi pihak ketiga.

Omong-omong, ada banyak kesulitan dalam implementasi, misalnya:

  1. Aplikasi dapat memiliki model monetisasi yang sama sekali berbeda: berlangganan bulanan, pembayaran transaksi, berlangganan tergantung pada penggunaan
  2. Klien harus diberitahukan secara otomatis jika terjadi perubahan tarif
  3. Pelanggan dapat membayar dari berbagai negara, dan kontrak dengan mitra biasanya dalam satu
  4. Klien mungkin memiliki kartu yang dilampirkan untuk pembayaran, atau mungkin ada pembayaran tagihan di jur. wajah.

Ulasan Aplikasi


Sekarang review aplikasi dilakukan satu kali ketika aplikasi memasuki pasar. Kami ingin memperkenalkan wajib, tetapi review cepat di setiap penyebaran untuk membantu melacak beberapa kasus tepi.

Pedoman untuk aplikasi pihak ketiga


Untuk menjaga pengalaman umum dari menggunakan produk kami dan produk terintegrasi, kami memberikan rekomendasi tentang desain dan aliran ke mitra, tetapi tidak ada seperangkat aturan formal.

Kami mengembangkan pedoman untuk penggunaan internal oleh desainer dan pengembang Poster, dan kemudian membukanya untuk pengembang pihak ketiga.

Itu semua


Padahal, kita baru di awal perjalanan. Masih ada banyak pekerjaan untuk menjadi platform yang lengkap, tetapi kami telah belajar banyak selama ini. Selanjutnya - hanya lebih menarik. Jika Anda memiliki pertanyaan, tulis di komentar, saya akan mencoba menjawab semaksimal mungkin.

Dan jika Anda membuat produk untuk kafe, restoran, toko - mari kita ubah pasar bersama! Tulis sekarang ke dev@joinposter.com , saya yakin kami bisa saling bermanfaat.

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


All Articles