Unlimited WordPress themes, graphics, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. Shopify
Code

Membangun Aplikasi Shopify Sederhana

by
Length:LongLanguages:

Indonesian (Bahasa Indonesia) translation by Ilham Saputra (you can also view the original English article)

Shopify adalah platform eCommerce yang tumbuh cepat, menambah ribuan pedagang baru setiap bulan.

Hal yang hebat tentang platform Shopify adalah Shopify secara terbuka mengatakan mereka tidak peduli dengan menyelesaikan setiap masalah untuk pedagang mereka. Alih-alih, mereka telah membuat API dan App Store mereka sehingga pengembang independen dapat membangun (dan mengenakan biaya) fitur yang diinginkan oleh pedagang mereka.

Ini berarti ada peluang untuk memperluas dan menyesuaikan Shopify menggunakan aplikasi Shopify, apakah Anda memiliki toko Shopify Anda sendiri yang ingin Anda tingkatkan atau Anda ingin membuat aplikasi Shopify sebagai bisnis.

Aplikasi Shopify tidak harus rumit juga. Aplikasi Shopify hanyalah sepotong perangkat lunak yang terintegrasi dengan API REST Shopify. Shopify menyediakan alat dan perangkat pengembangan perangkat lunak (SDK) yang tersedia untuk mempermudah pembuatan aplikasi, tetapi program apa pun dapat menjadi aplikasi Shopify dengan sedikit integrasi.

Pada artikel ini, saya akan menunjukkan kepada Anda bagaimana membangun aplikasi Shopify sederhana, dan saya akan melakukan beberapa hal dengan "cara yang sulit" demi mengajarkan Anda tentang API dan aplikasi Shopify. Pastikan untuk memeriksa sumber daya di akhir untuk menemukan cara terbaik untuk mengurangi jumlah upaya yang diperlukan.

Aplikasi Pribadi vs. Aplikasi Publik

Sebelum kita mulai, ada satu konsep Shopify yang penting untuk dipelajari. Pilihan Anda akan membingkai semua pengembangan aplikasi yang Anda lakukan.

Di Shopify ada dua jenis aplikasi:

  1. Aplikasi publik, yang bekerja dengan banyak toko, dapat dicantumkan di Shopify App Store, dan memiliki akses ke sebagian besar API.
  2. Aplikasi pribadi, yang bekerja dengan satu toko, tidak terdaftar di Shopify App Store, tidak dapat disematkan ke panel Admin Shopify, dan memiliki akses terbatas ke API.

Perbedaan teknis besar antara keduanya adalah bahwa aplikasi publik diautentikasi menggunakan OAuth, yang membutuhkan lebih banyak pengaturan dan "pengaturan pengguna baru" yang membingungkan. Aplikasi pribadi diautentikasi menggunakan dua kunci untuk satu toko, yang bertindak seperti nama pengguna dan kata sandi khusus aplikasi.

Karena otentikasi toko ini adalah salah satu hal pertama yang perlu Anda lakukan, membuat keputusan yang tepat di awal adalah penting.

Untuk menjaga kompleksitasnya, kita akan membangun aplikasi kita sebagai aplikasi pribadi. Dengan begitu kita tidak perlu khawatir tentang konfigurasi OAuth dan kompleksitas yang ditimbulkannya.

Membangun Aplikasi untuk Menandai Pelanggan Berulang

Untuk aplikasi Shopify contoh kami, kami akan membangun aplikasi baris perintah yang akan membantu toko menemukan siapa pelanggan tetapnya. Ini akan melakukan ini dengan menggunakan API Pelanggan.

Kemudian akan memberi tag kepada pelanggan tetap tersebut sehingga kami dapat dengan mudah menemukannya di panel admin Shopify. Script command-line seperti ini sangat bagus untuk otomatisasi dan pekerjaan back-office. Biasanya mereka akan dijadwalkan untuk berjalan secara otomatis sehingga tidak ada UI nyata atau input pengguna.

Kami juga akan menggunakan Ruby untuk aplikasi ini. Meskipun Anda dapat menggunakan bahasa apa pun yang mendukung panggilan HTTP REST, Shopify sendiri menggunakan Ruby dan Ruby on Rails, dan mempertahankan perpustakaan resmi untuk Ruby.

1. Mendaftarkan Aplikasi Baru Anda Dengan Shopify

Langkah pertama untuk membangun aplikasi adalah mendaftar di Shopify. Karena ini adalah aplikasi pribadi, kami akan masuk ke toko Shopify kami, buka bagian Apps, klik Private Apps, lalu klik Create a New Private App.

Setting up the Shopify app

Nama aplikasi hanya digunakan untuk referensi kami, dan itu tidak digunakan dalam kode sama sekali.

Setelah dibuat, kita akan mendapatkan beberapa kunci API untuk digunakan.

  • Kunci API: ini adalah pengidentifikasi aplikasi dan bertindak seperti nama pengguna untuk API.
  • Sandi aplikasi: ini adalah kata sandi rahasia yang mengotentikasi aplikasi kami.
  • Rahasia bersama: ini digunakan oleh Shopify untuk menandatangani beberapa API. Kami tidak menggunakannya di aplikasi ini.

(Anda dapat mendaftar untuk program Mitra Shopify, yang memberi Anda kemampuan untuk membuat aplikasi publik dan toko pengembangan gratis. Saya sangat merekomendasikan ini kepada semua orang, bahkan jika Anda berencana untuk berintegrasi dengan hanya satu toko Shopify, karena ini akan memungkinkan Anda menguji aplikasi Anda di luar toko langsung Anda.)

Dengan aplikasi terdaftar, kita dapat mulai menulis beberapa kode.

2. Menyiapkan Permata Ruby

Ini adalah proyek Ruby, kami ingin memulai dengan membuat Gemfile yang mencantumkan semua RubyGems yang akan kami gunakan. Dua yang penting adalah shopify_api dan dotenv.

Permata shopify_api termasuk kelas ActiveResource untuk API Shopify. Ini berarti Anda tidak perlu khawatir menulis kode untuk permintaan dan tanggapan HTTP; perpustakaan akan melakukan panggilan API untuk Anda dan mengembalikan Anda objek Ruby untuk bekerja dengannya. Shopify juga menyediakan perpustakaan non-Ruby; periksa sumber daya di bagian bawah artikel ini untuk bahasa Anda.

Permata dotenv adalah permata penting karena akan memungkinkan kami membuat file khusus (.env) yang menampung konfigurasi aplikasi kami yang akan dimuat ke dalam aplikasi saat dijalankan. Tujuannya adalah agar kami dapat mempublikasikan aplikasi dan kodenya tanpa menyertakan data sensitif seperti kunci API dan kata sandi kami.

File .env ini mendefinisikan beberapa variabel yang akan diekspor ke aplikasi kami sebagai bagian dari lingkungan runtime (dapat diakses di Ruby ENV).

Sekarang permata dikonfigurasi, mereka dapat diinstal menggunakan bundler dengan bundle install

3. Antarmuka Baris Perintah

Cara kami ingin aplikasi ini berfungsi adalah: pengguna dapat menjalankan skrip pada baris perintah seperti bundle exec ruby ​​tag_customers.rb, dan itu akan secara otomatis menandai semua pelanggan tetap di Shopify.

Mari kita mulai dengan membuat skrip kosong dan memuat pustaka yang kita butuhkan.

Perhatikan bagaimana kami memanggil Dotenv.load segera. Itu tidak mengekspor variabel dari file .env kami sehingga sejak saat itu kita dapat menggunakan konfigurasi itu.

Kita juga akan membuat kelas sederhana untuk menampung logika dan kemudian memanggil kelas itu di akhir untuk melaksanakannya menggunakan fitur Ruby __FILE__ == $PROGRAM_NAME.

4. Koneksi API Shopify

Sekarang kita memiliki semua yang diperlukan untuk menjalankan aplikasi kita, mari kita tambahkan koneksi ke API Shopify. Karena semuanya didasarkan pada toko, mengambil datanya berfungsi baik sebagai tes koneksi. Untuk ini, kita perlu melakukan beberapa hal:

  1. Konfigurasikan shopify_api untuk menggunakan Shopify shop kami dan otentikasi.
  2. Lakukan panggilan API ke Shopify.
  3. Periksa hasilnya.

Saat bekerja dengan aplikasi pribadi di shopify_api, kami dapat mengonfigurasi otentikasi toko kami di URL dasar menggunakan HTTP Basic. URL dasar dibuat seperti ini:

  • https
  • Nama pengguna HTTP Basic, yang merupakan kunci API aplikasi kami
  • Kata sandi HTTP Basic, yang merupakan kata sandi aplikasi kami
  • Subdomain SHOP_NAME.myshopify.com, yang unik untuk setiap toko
  • /admin subdirectory, tempat semua API tinggal

Menyatukan semua ini, inilah hasilnya:

https://aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa:bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb@example.myshopify.com/admin

Untuk mengkonfigurasi ini dalam skrip kami, kami akan mengumpulkan URL basis ini dan menetapkannya ke kelas ShopifyAPI::Base.

Perhatikan bagaimana ENV digunakan lagi untuk menjaga data sensitif dari kode aktual. Ini juga memungkinkan pengguna mengubah variabel SHOP, yang berguna jika Anda memiliki beberapa toko tempat Anda ingin menjalankan skrip ini.

Akhirnya, mari kita tambahkan metode untuk mengambil detail toko dari Shopify.

Menggunakan ShopifyAPI::Shop.current, kami membiarkan shopify_api:

  1. membangun permintaan HTTP untuk data toko di https://123456:abcdef@your-shop-name.myshopify.com/admin/shop.json
  2. dapatkan jawabannya
  3. jika berhasil, ubah respons JSON menjadi objek ShopifyAPI::Shop

Jika permintaan berhasil, skrip kami akan mencetak hasil akhir ke baris perintah. Jika ada kesalahan, seperti di otentikasi kami atau di API, maka shopify_api akan memunculkan pengecualian dan mengakhiri aplikasi kami dengan pesan kesalahan.

5. Daftar Pelanggan

Sekarang setelah koneksi berfungsi, kita dapat menggunakan API lain untuk mengambil daftar pelanggan toko. Sekali lagi, shopify_api membuat ini sederhana:

Dalam hal ini kami ingin semua pelanggan toko, jadi kami menggunakan ShopifyAPI::Customer.all, yang di balik layar memanggil API Pelanggan Shopify dan mengembalikan serangkaian objek pelanggan.

6. Menandai Pelanggan Berulang

Karena kami hanya ingin menandai pelanggan yang telah melakukan lebih dari satu pesanan, kami perlu menambahkan metode lain untuk menandai pelanggan yang berulang.

Jika Anda melihat objek Pelanggan atau dalam dokumen API Shopify, Anda akan melihat bahwa Shopify memiliki bidang yang disebut orders_count yang sudah melacak berapa banyak pesanan yang telah dilakukan pelanggan. Ini adalah berita bagus untuk aplikasi kami karena dalam sistem eCommerce biasanya ada ribuan atau jutaan pesanan. Jika kami ingin mencari pelanggan dengan pesanan berulang, kami harus mengunduh dan menghitung semua pesanan itu. Karena Shopify memiliki bidang ini, kami dapat fokus sepenuhnya pada Pelanggan.

Setiap kali Anda bekerja dengan API apa pun, selalu berguna untuk membaca dokumentasi API dan melihat data yang Anda dapatkan darinya. Terkadang Anda akan menemukan cara yang lebih baik untuk mencapai apa yang Anda coba lakukan.

Mari kita tambahkan metode yang memeriksa orders_count dan melakukan penandaan.

Ini adalah nyali dari aplikasi, jadi mari kita hancurkan bagian demi bagian.

Pertama, kami membuat array tagged_customers. Jika Anda melompat ke akhir metode, Anda dapat melihat bahwa itulah yang dikembalikan. Kami ingin aplikasi kami memberi tahu kami pelanggan mana yang ditandai sebagai pelanggan tetap, sehingga kami dapat melacak mereka dan menemukan masalah potensial di kemudian hari (mis. Pelanggan dilewati).

Selanjutnya kita memanggil metode customers kami sebelumnya, yang menggunakan API Shopify untuk menjemput semua pelanggan toko.

Kami segera mulai iterasi setiap catatan pelanggan kami dapatkan (each)

Karena shopify_api mengubah JSON pelanggan menjadi objek Ruby, kami dapat memeriksa customer.orders_count dan melihat berapa banyak pesanan yang mereka miliki. Kami hanya peduli dengan pelanggan yang memiliki lebih dari satu pesanan, jadi dengan menggunakan syarat if kita dapat mengabaikan pelanggan dengan 0 atau 1 pesanan.

Untuk pelanggan tetap, kami menambahkan tag "ulangi" dan kemudian memanggil metode save pada objek Ruby. Metode ini, melalui shopify_api, membuat panggilan API untuk memperbarui catatan pelanggan.

Mengalami penandaan dan save panggilan merupakan persyaratan lain. Sebelum kami meluangkan waktu dan panggilan API untuk memperbarui pelanggan dengan tag baru, kami harus memeriksa untuk melihat apakah mereka sudah memiliki tag "ulangi". Jika ya, kami dapat melewati mereka dan melanjutkan ke pelanggan berikutnya. Membatasi panggilan API hanya untuk catatan yang perlu diperbarui akan membuat aplikasi kita berjalan lebih cepat dan juga mencegahnya mencapai batas panggilan API Shopify.

Akhirnya, untuk pelanggan tetap, kami menambahkan mereka ke dalam array tagged_customers yang kami atur di awal sehingga metode akan mengembalikannya.

7. Memanggil Kelas Dari Baris Perintah

Yang tersisa untuk dilakukan adalah memanggil tag_repeat_customers baru kami ketika skrip kami dijalankan. Kami bahkan akan menambahkan sedikit konten di sana untuk dicetak pada baris perintah berapa banyak pelanggan tetap telah ditandai.

Kode Akhir


Aplikasi Shopify yang Selesai untuk Menandai Pelanggan

Dalam sekitar 50 baris kode, kami telah membuat aplikasi pribadi Shopify yang menemukan pelanggan dengan lebih dari satu pesanan dan memberi tag mereka dengan "ulangi". Menghitung bagian test_connection kami, kami menggunakan tiga API Shopify terpisah di sini:

  • GET Shop
  • GET Customers
  • PUT Customer

Perbaikan di Masa Depan

Skrip ini bagus dan menyelesaikan masalah dengan cukup mudah, tetapi selalu ada ruang untuk perbaikan.

Salah satu peningkatan dramatis adalah mengubahnya menjadi aplikasi web yang berjalan di server. Antarmuka dapat memiliki tombol untuk menjalankan metode penandaan, atau penandaan dapat dijalankan secara otomatis. Aplikasi web juga bisa mencatat pelanggan mana yang ditambahkan tag setiap kali, dan kita bisa menelusuri melalui masa lalu dan melihat pelanggan tetap toko.

Jika Anda memutuskan untuk turun rute ini, pastikan untuk memeriksa proyek shopify_app. Proyek itu adalah perpustakaan yang membungkus permata shopify_api dan mengintegrasikannya ke dalam Ruby on Rails bersama dengan OAuth. Ini kerangka dasar yang ingin Anda gunakan jika Anda membuat aplikasi Shopify publik berbasis Rails.

Peningkatan lain pada aplikasi adalah menandai pelanggan berdasarkan apa yang ada di pesanan mereka. Misalnya, Anda mungkin ingin memberi tag pelanggan yang membeli produk tertentu atau yang telah menghabiskan lebih dari jumlah tertentu.

Peningkatan ini akan mengharuskan untuk mendapatkan pesanan dan item baris untuk setiap pelanggan, yang menjadikannya aplikasi yang lebih kompleks karena jumlah pemrosesan data.

Perpustakaan dan Sumber Daya Pengembangan Shopify

Shopify mengelola beberapa perpustakaan berbeda untuk API-nya, dan ada beberapa perpustakaan pihak ketiga tidak resmi yang dapat Anda gunakan juga. Berikut ini koleksi kecil dari mereka:

Sekarang Anda harus memiliki pemahaman yang lebih baik tentang bagaimana Anda dapat membangun aplikasi Shopify. Anda telah melihat cara menghubungkan ke Shopify dari Ruby menggunakan shopify_api dan otentikasi App Pribadi. Anda juga telah mempelajari cara menguji koneksi dengan panggilan API serta satu teknik untuk membatasi penggunaan API Anda. Terakhir, Anda mempelajari betapa mudahnya memperbarui objek Shopify dan mendorong perubahan itu kembali ke Shopify.

Walaupun konsep aplikasi sederhana, semua teknik ini berlaku untuk aplikasi yang lebih besar dan lebih kompleks.

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.