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

Membina App Shopify yang Mudah

by
Length:LongLanguages:

Malay (Melayu) translation by Ilham Saputra (you can also view the original English article)

Shopify adalah platform eCommerce yang berkembang pesat, menambah beribu-ribu peniaga baru setiap bulan.

Perkara yang bagus mengenai platform Shopify ialah Shopify secara terbuka mengatakan mereka tidak peduli dengan menyelesaikan setiap masalah untuk pedagang mereka. Sebaliknya mereka telah mencipta API dan App Store mereka supaya pemaju bebas boleh membina (dan mengenakan bayaran) yang mempunyai keinginan para pedagang mereka.

Ini bermakna ada peluang untuk memperluas dan menyesuaikan Shopify menggunakan aplikasi Shopify, sama ada anda mempunyai kedai Shopify anda sendiri yang ingin anda tingkatkan atau anda ingin membuat aplikasi Shopify sebagai perniagaan.

Shopify apps tidak perlu sama rumit sama ada. Aplikasi Shopify hanyalah sekeping perisian yang terintegrasi dengan API RED Shopify. Shopify membuat alat dan kit pembangunan perisian (SDK) yang tersedia untuk membuat aplikasi mudah, tetapi mana-mana program boleh menjadi aplikasi Shopify dengan sedikit integrasi.

Dalam artikel ini, saya akan menunjukkan kepada anda bagaimana untuk membina aplikasi Shopify yang mudah, dan saya akan melakukan beberapa perkara yang "cara yang sukar" untuk mengajar anda tentang aplikasi API dan Shopify. Pastikan untuk memeriksa sumber-sumber pada akhirnya untuk mencari cara terbaik untuk mengurangkan jumlah usaha yang diperlukan.

Private Apps vs. Public Apps

Sebelum kita memulakan, ada satu konsep Shopify yang penting untuk dipelajari. Pilihan anda akan membingkai semua perkembangan aplikasi yang anda lakukan.

Di Shopify terdapat dua jenis aplikasi:

  1. Public apps, yang bekerja dengan pelbagai kedai, boleh disenaraikan di Shopify App Store, dan mempunyai akses kepada kebanyakan API.
  2. Private apps, yang bekerja dengan satu kedai, tidak disenaraikan di Shopify App Store, tidak boleh dimasukkan ke dalam panel Admin Shopify, dan mempunyai akses terhad kepada API.

Perbezaan teknikal yang besar antara keduanya ialah aplikasi awam disahkan menggunakan OAuth, yang memerlukan lebih banyak persediaan dan "persediaan pengguna baru" yang mengelirukan. Aplikasi peribadi disahkan menggunakan dua kunci untuk satu kedai, yang bertindak seperti nama pengguna dan kata laluan khusus aplikasinya.

Oleh kerana pengesahan ini merupakan salah satu perkara pertama yang perlu anda lakukan, membuat keputusan yang tepat pada mulanya adalah penting.

Untuk mengekalkan kerumitan, kami akan membina aplikasi kami sebagai aplikasi peribadi. Dengan cara itu, kita tidak perlu bimbang tentang konfigurasi OAuth dan kerumitan yang diperlukannya.

Membina App untuk Pelanggan Pengulang Tag

Untuk contoh aplikasi Shopify kami, kami akan membina aplikasi baris arahan yang akan membantu mencari kedai yang pelanggan berulangnya. Ia akan melakukan ini dengan menggunakan API Pelanggan.

Kemudian ia akan menandakan pelanggan mengulangi itu sehingga kami dapat dengan mudah menemukannya di panel admin Shopify. Skrip baris perintah seperti ini bagus untuk kerja-kerja automasi dan back-office. Biasanya mereka dijadualkan untuk berjalan secara automatik jadi tidak ada UI sebenar atau input pengguna.

Kami juga akan menggunakan Ruby untuk aplikasi ini. Walaupun anda boleh menggunakan sebarang bahasa yang menyokong panggilan HTTP REST, Shopify sendiri menggunakan Ruby dan Ruby on Rails, dan ia mengekalkan perpustakaan rasmi untuk Ruby.

1. Mendaftar App Baru Anda Dengan Shopify

Langkah pertama untuk membina aplikasi adalah untuk mendaftarkannya di Shopify. Oleh kerana ini adalah aplikasi peribadi, kami akan log masuk ke kedai Shopify kami, pergi ke bahagian Apps, klik Private Apps, dan kemudian klik Create a New Private App.

Setting up the Shopify app

Nama aplikasi hanya digunakan untuk rujukan kami, dan ia tidak digunakan dalam kod itu sama sekali.

Setelah dicipta, kami akan mendapat beberapa kunci API untuk digunakan.

  • Kunci API: ini adalah pengecam aplikasi dan bertindak seperti nama pengguna kepada API.
  • Kata laluan apl: ini adalah kata laluan rahsia yang mengesahkan apl kami.
  • Rahsia dikongsi: ini digunakan oleh Shopify untuk menandatangani beberapa API. Kami tidak menggunakannya dalam aplikasi ini.

(Anda boleh mendaftar untuk program Rakan Kongsi Shopify, yang memberikan anda keupayaan untuk membuat aplikasi awam dan kedai pembangunan percuma. Saya sangat mengesyorkan ini kepada semua orang, walaupun anda merancang untuk mengintegrasikan dengan hanya satu kedai Shopify, kerana ini akan membolehkan anda menguji apl anda di luar gedung langsung anda.)

Dengan aplikasi yang didaftarkan, kami boleh mula menulis beberapa kod.

2. Menetapkan Permata Ruby

Ini menjadi projek Ruby, kami ingin bermula dengan membuat Gemfile yang menyenaraikan semua RubyGems yang akan kami gunakan. Dua yang penting adalah shopify_api dan dotenv.

Permata shopify_api termasuk kelas ActiveResource untuk API Shopify. Ini bermakna anda tidak perlu risau tentang menulis kod untuk permintaan dan tanggapan HTTP; perpustakaan akan melakukan panggilan API untuk anda dan mengembalikan objek Ruby untuk berfungsi. Shopify menyediakan perpustakaan bukan-Ruby juga; semak sumber di bahagian bawah artikel ini untuk bahasa anda.

Permata dotenv adalah Permata yang penting kerana itu Marilah kita akan mencipta satu fail Khas (.env) yang memegang kami konfigurasi aplikasi yang akan dimuatkan ke dalam aplikasi apabila berjalan. Tujuan ini adalah supaya kita boleh menerbitkan app dan kod yang tanpa memasukkan data sensitif seperti kami kunci API dan kata laluan.

.env fail ini mentakrifkan beberapa pembolehubah yang akan mendapatkan dieksport ke dalam aplikasi kami sebagai sebahagian daripada alam sekitar runtime (boleh dicapai di Ruby's ENV).

Sekarang bahawa permata yang dikonfigurasikan, mereka boleh dipasang dengan gabungan bundle install.

3. Command-Line Interface

Satu cara yang kita mahu aplikasi ini berusaha: pengguna boleh menjalankan skrip pada baris arahan seperti bundle exec ruby tag_customers.rb, dan ia secara automatik akan tag semua pelanggan-pelanggan di Shopify.

Mari kita mulakan dengan mencipta skrip yang kosong dan loading library yang kita perlukan.

Perhatikan bagaimana kita panggil Dotenv.load segera. Bahawa tidak boleh ubah pengeksport dari .env kami fail dari kemudian sebagainya kita dapat menggunakan konfigurasi tersebut.

Kita juga akan mewujudkan kelas mudah untuk memegang logik dan kemudian memanggil kelas di hujung untuk melaksanakannya dengan menggunakan fitur Ruby __FILE__ == $PROGRAM_NAME.

4. Shopify API Connection

Sekarang bahawa kita mempunyai segala-galanya yang diperlukan untuk menjalankan aplikasi kami, mari kita Tambah Sambungan Shopify di API. Kerana segala-galanya adalah berdasarkan di kedai, merebut data kerja-kerja besar sebagai ujian sambungan. Untuk ini, kita perlu melakukan beberapa perkara:

  1. Konfigurasi shopify_api untuk menggunakan Shopify kedai kami dan pengesahan.
  2. Membuat panggilan API Shopify.
  3. Semak keputusan.

Apabila bekerja dengan aplikasi peribadi dalam shopify_api, kita boleh konfigurasi pengesahan kedai kami di URL asas menggunakan asas HTTP. Asas URL dibina seperti ini:

  • https
  • Asas HTTP username, itulah kunci API aplikasi kami
  • Kata laluan asas HTTP yang kata laluan aplikasi kami
  • SHOP_NAME.myshopify.com subdomain yang unik untuk setiap kedai
  • subdirektori /admin, di mana semua api dalam hidup

Meletakkan ini semua bersama-sama, inilah hasilnya:

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

Untuk mengkonfigurasi ini dalam skrip kami, kami akan berkumpul URL ini asas dan peruntukkannya kepada golongan ShopifyAPI::Base.

Perhatikan bagaimana ENV ini digunakan semula untuk menyimpan data sensitif daripada kod sebenar. Ini juga membenarkan pengguna mengubah pembolehubah kedai, yang adalah berguna jika anda mempunyai kedai-kedai pelbagai yang anda ingin Jalankan skrip ini mengikut.

Akhir sekali, mari kita tambah satu kaedah untuk merebut butiran kedai dari Shopify.

Menggunakan ShopifyAPI::Shop.current, kita biarkan shopify_api itu:

  1. membina permintaan HTTP untuk data kedai https://123456:abcdefyour-shop-name.myshopify.com/admin/shop.json
  2. mendapat jawapan
  3. Jika berjaya, menukar jawapan JSON kepada objek ShopifyAPI::Shop

Jika permohonan berjaya, skrip kami akan mencetak keputusan akhir untuk baris perintah. Jika terdapat ralat, seperti pengesahan kami atau API, maka shopify_api akan meningkatkan pengecualian dan akhir aplikasi kami dengan mesej ralat.

5. Customer List

Sekarang bahawa sambungan kerja-kerja, kita boleh menggunakan API yang lain untuk merebut senarai pelanggan sebuah kedai. Sekali lagi, shopify_api membuat ini mudah:

Dalam kes ini kami mahu semua pelanggan di kedai, jadi kami menggunakan ShopifyAPI::Customer.all, yang di sebalik tabir panggilan Shopify di Customer API dan pulangan pelbagai objek Baca.

6. Tagging Repeat Customers

Kerana kita hanya mahu pelanggan tag yang telah meletakkan lebih daripada satu perintah, kita perlu menambah satu lagi kaedah untuk tag pelanggan-pelanggan.

Jika anda lihat Baca benda-benda atau dokumen API di Shopify, anda akan melihat bahawa Shopify mempunyai sebuah padang yang dikenali sebagai orders_count yang sudah menjejaki berapa banyak Tempahan pelanggan telah diletakkan. Ini adalah berita baik bagi aplikasi kami kerana dalam e-dagang sistem tiada biasanya beribu-ribu atau berjuta-juta arahan. Jika kita ingin mencari pelanggan dengan pesanan berulang, kita perlu men-download dan mengira semua perintah-perintah tersebut. Memandangkan Shopify mempunyai bidang ini, kami dapat memberi tumpuan sepenuhnya kepada pelanggan.

Apabila anda bekerja dengan mana-mana API, ia sentiasa adalah berguna untuk membaca dokumentasi API dan melihat data anda kembali daripadanya. Kadang-kadang anda akan menemukan cara untuk mencapai apa yang anda cuba untuk melakukan yang lebih baik.

Mari kita tambah satu kaedah yang menyemak orders_count ini dan tidak di tag.

Ini adalah berani apl tersebut, jadi Mari kita memecahkan bahagian bahagian.

Mula-mula, kami mencipta pelbagai tagged_customers. Jika anda melompat akhir kaedah, anda boleh melihat itulah apa yang dikembalikan. Kami mahu app kami untuk memaklumkan kami tahu pelanggan yang pasti ditandakan sebagai mengulangi pelanggan, supaya kita boleh terus menjejaki anak mereka dan mengesan sebarang potensi masalah kemudian (contohnya pelanggan mendapatkan dilangkau).

Seterusnya kita panggil customers kami kaedah dari sebelumnya, yang menggunakan API Shopify's untuk kutip semua pelanggan di kedai.

Kita akan mula iterating ke atas setiap rekod Baca balik (each).

Sejak shopify_api ditukarkan pelanggan JSON kepada sebuah objek Ruby, kita boleh semak customer.orders_count dan lihat berapa banyak perintah yang mereka ada. Kita akan hanya berkenaan dengan pelanggan yang mempunyai lebih daripada satu perintah, jadi menggunakan if bersyarat kita boleh mengabaikan pelanggan dengan perintah 0 atau 1.

Untuk pelanggan ulangan, kami sedang menambah tag "ulangan" dan kemudian memanggil save kaedah pada objek Ruby. Kaedah ini, melalui shopify_api, membuat panggilan API untuk mengemas kini rekod pelanggan.

Sekitar yang tag dan save panggilan adalah bersyarat yang lain. Sebelum kita mengambil masa dan API panggilan untuk mengemaskini pelanggan dengan tag baru, kita perlu menyemak untuk melihat jika mereka mempunyai tag "repeat" sudah. Jika mereka berbuat demikian, kita boleh melewati mereka dan meneruskan kepada pelanggan seterusnya. Membataskan panggilan API untuk hanya rekod-rekod yang perlu dikemaskini akan membuat aplikasi kami berjalan dengan lebih cepat dan akan juga menghalangnya daripada memukul had panggilan Shopify di API.

Akhirnya, bagi pelanggan-pelanggan, kami menambah mereka ke dalam pelbagai tagged_customers yang kami sediakan pada awal supaya kaedah akan kembali itu.

7. Calling the Class From the Command Line

Apa yang perlu dilakukan adalah untuk memanggil kami tag_repeat_customers baru apabila melaksanakan skrip kami. Kami juga akan menambah sedikit kandungan tiada untuk mencetak pada baris arahan mengulangi berapa ramai pelanggan telah ditag.

Kod akhir


Siap Shopify aplikasi kepada pelanggan Tag

Dalam kira-kira 50 baris kod, kami telah mencipta aplikasi Shopify peribadi yang mencari pelanggan dengan lebih daripada satu pesanan dan tag mereka dengan "repeat". Mengira pihak test_connection kami, kami menggunakan api Shopify berasingan tiga di sini:

  • GET Shop
  • GET Customers
  • PUT Customer

Penambahbaikan pada masa hadapan

Script ini bagus dan menyelesaikan masalah yang cukup mudah, tetapi sentiasa ada ruang untuk penambahbaikan.

Satu peningkatan yang dramatik akan mengubahnya menjadi sebuah aplikasi web yang beroperasi pada pelayan. Muka boleh mempunyai butang untuk menjalankan kaedah tagging, atau tag yang boleh berjalan secara automatik. Aplikasi web boleh juga log yang pelanggan mempunyai tag ditambah setiap masa, dan kita boleh melayari lepas berjalan dan lihat pelanggan-pelanggan di kedai.

Jika anda memutuskan untuk turun laluan ini, pastikan anda menyemak shopify_app project. Projek tersebut adalah sebuah perpustakaan yang wraps shopify_api permata dan mengintegrasikan ke dalam Ruby pada rel bersama-sama dengan OAuth. Ia adalah Rangka asas yang hendak digunakan jika anda mencipta aplikasi Shopify berasaskan rel awam.

Satu lagi penambahbaikan kepada aplikasi akan tag pelanggan berdasarkan apa yang ada dalam pesanan mereka. Sebagai contoh, anda mungkin mahu tag pelanggan yang membeli produk tertentu atau yang telah menghabiskan masa selama suatu tempoh yang tertentu.

Peningkatan ini memerlukan mendapat pesanan dan talian item untuk setiap pelanggan, yang menjadikan ia sebuah aplikasi yang lebih kompleks disebabkan oleh jumlah pemprosesan data.

Shopify pembangunan Perpustakaan dan sumber

Shopify mengekalkan beberapa Perpustakaan yang berbeza bagi API, dan terdapat beberapa Perpustakaan tidak rasmi, pihak ketiga yang anda boleh gunakan juga. Berikut adalah himpunan kecil mereka:

Sekarang anda harus mempunyai kefahaman yang baik tentang bagaimana anda boleh membina aplikasi Shopify. Anda telah melihat cara untuk menyambung ke Shopify dari Ruby yang menggunakan shopify_api dan pengesahan peribadi App. Anda juga telah pelajari bagaimana untuk menguji sambungan dengan panggilan API serta satu teknik untuk menghadkan penggunaan API anda. Akhirnya, anda belajar bagaimana mudah ianya untuk mengemaskini objek Shopify dan mempunyai perubahan tersebut ditolak kembali ke Shopify.

Walaupun aplikasi mudah konsep, semua teknik ini digunakan untuk apl yang lebih besar dan lebih kompleks.

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.