Bagaimana bekerja dengan WooCommerce Rest API dengan Python

Bagaimana bekerja dengan WooCommerce Rest API dengan Python

WordPress mungkin adalah CMS yang paling banyak digunakan di dunia (diperkirakan hampir 40% dari semua situs web dibangun menggunakan platform): sangat mudah dipasang dan digunakan, dan memungkinkan bahkan non-pengembang untuk membuat situs web dalam beberapa menit.
WordPress memiliki ekosistem plugin yang sangat besar; Salah satu yang paling terkenal adalah WooCommerce, yang memungkinkan kami mengubah situs web menjadi toko online dalam beberapa langkah. Plugin memanfaatkan infrastruktur API REST WordPress; Dalam tutorial ini kita akan melihat cara berinteraksi dengan WooCommerce API menggunakan bahasa pemrograman Python, menunjukkan cara mendaftar, membuat, memperbarui, dan menghapus produk dan kategori.

Dalam tutorial ini Anda akan belajar:

  • Cara Menghasilkan Kredensial API Rest WooCommerce dan Aktifkan Permalinks Cukup
  • Cara berinteraksi dengan WooCommerce Rest API menggunakan Python dan paket WooCommerce
  • Cara mendapatkan informasi tentang kategori wooCommerce yang ada, membuat, memperbarui dan menghapusnya
  • Cara mendapatkan informasi tentang produk wooCommerce yang ada
  • Cara membuat produk sederhana dan variabel dengan variasi
  • Cara memperbarui dan menghapus suatu produk

Persyaratan dan konvensi perangkat lunak yang digunakan

Persyaratan Perangkat Lunak dan Konvensi Baris Perintah Linux
Kategori Persyaratan, konvensi atau versi perangkat lunak yang digunakan
Sistem Distribusi Independen
Perangkat lunak Python3
Lainnya Contoh kerja WordPress dengan plugin WooCommerce terpasang
Konvensi # - mensyaratkan Linux -Commands untuk dieksekusi dengan hak istimewa root baik secara langsung sebagai pengguna root atau dengan menggunakan sudo memerintah
$-mensyaratkan Linux-Commands untuk dieksekusi sebagai pengguna reguler yang tidak istimewa

Menghasilkan kredensial API Rest WooCommerce

Demi tutorial ini, kami akan menganggap kami memiliki instance WordPress yang berfungsi dengan plugin WooCommerce yang sudah diinstal. Hal pertama yang harus kami lakukan, adalah menghasilkan kredensial API WooCommerce Rest kami: mereka akan
digunakan dalam setiap permintaan http yang akan kami lakukan. Menghasilkan kredensial itu sangat mudah; Yang harus kita lakukan adalah menavigasi WooCommerce -> Pengaturan Di menu vertikal yang dapat kita temukan di halaman Administrasi WordPress:

Setelah di halaman Pengaturan Plugin, kami mengklik tab "Advanced", dan kemudian aktifkan
Tautan "REST API", yang terletak di bawah menu tab. Di halaman yang akan
dibuka, kami mengklik tombol "Buat tombol API":

Kami akan disajikan dengan formulir pembuatan kunci API, dan kami akan diminta untuk memasukkan:

  • Deskripsi, yang akan digunakan sebagai nama yang ramah untuk dengan mudah mengidentifikasi kredensial
  • Pengguna yang akan memanfaatkan kunci
  • Izin yang akan diberikan ke kunci (hanya baca saja | Tulis saja | Baca dan Tulis)

Perhatikan bahwa kami memiliki kesempatan untuk membuat beberapa kunci dengan izin yang berbeda, untuk membatasi operasi yang diberikan untuk pengguna tertentu. Demi tutorial ini kami akan membuat kunci API dengan izin baca dan tulis:

Saat siap, kami mengklik tombol "Hasilkan Kunci API", dan keduanya Kunci Konsumen dan Rahasia Konsumen akan dihasilkan dan ditampilkan kepada kami. Kami harus memastikan kami menyimpan keduanya di tempat yang aman, karena Setelah kami meninggalkan halaman, mereka akan disembunyikan:

Setelah kunci kami dihasilkan, ada tindakan lain yang perlu kami lakukan dari backend administrasi WordPress: kami harus memastikan bahwa hak yang tepat cukup permalink digunakan, jika tidak titik akhir API tidak akan berfungsi. Untuk menyelesaikan tugas yang kami navigasikan Pengaturan -> Permalink Di menu vertikal kiri WordPress. Di menu Halaman, kami memilih "Posting Nama", dan kemudian kami menyimpan perubahan:



Hanya itu yang harus kita lakukan di sisi WordPress. Di bagian selanjutnya, kita akan melihat cara berinteraksi dengan WooCommerce Rest API menggunakan Python.

Instal Paket WooCommerce

Di bagian ini kita akan melihat bagaimana berinteraksi dengan WooCommerce Rest API menggunakan bahasa pemrograman Python. Alih -alih menulis kode, kami perlu melakukan permintaan HTTP dari awal, kami akan memanfaatkan WooCommerce paket, yang akan memudahkan pekerjaan kami. Untuk menginstal paket yang dapat kita gunakan Pip, Manajer Paket Python. Jika kami bekerja di dalam lingkungan virtual yang dibuat menggunakan venv, kita bisa menjalankan:

$ Pip Instal WooCommerce 

Jika kami tidak menggunakan lingkungan virtual, setidaknya kami harus menginstal paket hanya untuk pengguna kami. Untuk melakukan itu, kami menambahkan --pengguna opsi untuk perintah, yang menjadi:

$ Pip menginstal WooCommerce -Pengguna 

Sekali WooCommerce Paket diinstal, kami dapat mulai menulis kode kami.

Menginisialisasi kelas API

Hal pertama yang harus kita lakukan untuk berinteraksi dengan WooCommerce Rest API, menggunakan Python dan WooCommerce paket, adalah mengimpor API kelas dan buat instance, seperti yang ditampilkan di bawah ini:

#!/usr/bin/env python3 from woocommerce import API wcapi = API( url="http://localhost", consumer_key="ck_147eb955838043597462c3f9c4f91cba08498159", consumer_secret="cs_55a72d6c7bde09b7f36befed32aa90709261c097", timeout=50 ) 
Menyalin

Itu API Konstruktor kelas mengambil tiga argumen wajib:

  1. URL situs kami
  2. Kunci Konsumen API WOOCommerce REST
  3. Rahasia Konsumen API Rest WooCommerce

Dalam contoh di atas, Anda dapat melihat kami melewati argumen ketiga, waktu habis: Ini opsional, dan default untuk 5 detik. Dalam hal ini kami memberikan nilai yang lebih besar untuk itu: 50. Dalam kasus saya, ini diperlukan agar permintaan berhasil, tetapi nyata
Skenario hidup, kita tidak perlu mengubahnya, sehingga bisa dihilangkan sama sekali.

Setelah kami membuat instance dari API kelas, dalam hal ini dirujuk oleh wcapi variabel, kita dapat melanjutkan dan membuat panggilan API kita.

Kategori

Demi tutorial ini, kami hanya akan bekerja hanya dengan kategori dan produk. Contoh yang disediakan harus cukup untuk memberi pembaca gambaran tentang bagaimana API bekerja. Mari kita mulai dengan kategori, karena mereka harus sudah ada sebelumnya untuk direferensikan saat membuat produk.

Membuat kategori

Sebagai contoh pertama, kita akan melihat cara membuat kategori. Kami mulai mendefinisikan data kategori dalam kamus Python:

Category_data = "name": "Contoh kategori", "deskripsi": "Hanya contoh kategori" 
Menyalin

Satu -satunya parameter wajib yang harus kita gunakan saat membuat kategori, adalah nama, yang harus disediakan sebagai string. Dalam contoh di atas kami juga menentukan keterangan kunci, untuk memberikan deskripsi singkat tentang kategori (Anda dapat memeriksa dokumentasi resmi untuk daftar lengkap properti kategori).

Setelah kami membuat kamus yang berisi data kategori, kami dapat menjalankan permintaan API yang digunakan untuk membuat kategori, yang menggunakan POS HTTP Verb:

Respons = WCAPI.POST ("Produk/Kategori", Category_Data) 
Menyalin

Jika permintaan dieksekusi tanpa kesalahan, panggil json metode pada tanggapan objek, akan mengembalikan respons server yang diformat sebagai kamus python, yang menjelaskan data yang digunakan untuk membuat kategori: ini akan mencakup identitas unik Digunakan untuk menyimpan kategori dalam database, yang merupakan informasi penting jika kita ingin merujuknya nanti (misalnya saat membuat subkategori atau produk yang harus dimasukkan dalam kategori itu sendiri). Dalam kasus kami, inilah yang dikembalikan oleh server:

'id': 17, 'name': 'Contoh kategori', 'slug': 'contoh-kategori', 'induk': 0, 'deskripsi': 'hanya contoh kategori', 'tampilan': 'default' , 'Image': none, 'menu_order': 0, 'count': 0, '_links': 'self': ['href': 'http: // localhost/wp-json/wc/v3/produk/produk /Kategori/17 '],' koleksi ': [' href ':' http: // localhost/wp-json/wc/v3/produk/kategori '] 
Menyalin

Seperti yang bisa kita lihat, kategori telah disimpan 17 sebagai ID unik.

Memperbarui kategori

Untuk memperbarui kategori yang ada, kita harus merujuknya melalui itu pengenal, yang harus dimasukkan sebagai bagian dari titik akhir permintaan. Pertama kami membuat kamus yang berisi data kategori yang harus diperbarui; Dalam contoh di bawah ini kita mengubah deskripsi kategori:

Category_Data = "Deskripsi": "Contoh kategori yang dimodifikasi" 
Menyalin

Setelah data siap, kami dapat mengirim permintaan kami, menggunakan meletakkan metode wcapi objek, yang, seperti yang dapat Anda tebak, mengirimkan permintaan menggunakan MELETAKKAN HTTP Verb:

Respons = WCAPI.put ('produk/kategori/17', kategori_data) 
Menyalin

Sama seperti sebelumnya, dengan mengeksekusi json metode tanggapan Objek, kami akan mengambil informasi kategori yang diperbarui yang dikembalikan oleh server, yang sudah dikonversi menjadi kamus Python:

'id': 17, 'name': 'Contoh kategori', 'slug': 'contoh-kategori', 'induk': 0, 'deskripsi': 'contoh kategori yang dimodifikasi', 'display': 'default', 'Image': none, 'menu_order': 0, 'count': 0, '_links': 'self': ['href': 'http: // localhost/wp-json/wc/v3/produk/ Kategori/17 '],' koleksi ': [' href ':' http: // localhost/wp-json/wc/v3/produk/kategori '] 
Menyalin

Memperoleh informasi tentang semua kategori atau yang tertentu

Memperoleh daftar semua kategori yang ada sangat sederhana. Yang harus kita lakukan adalah mengeksekusi mendapatkan metode wcapi objek yang kami buat sebelumnya, dan tentukan titik akhir yang benar (Produk/Kategori):

Respons = WCAPI.Dapatkan ('Produk/Kategori') 
Menyalin

Seperti sebelum konten respons dapat diakses sebagai kamus python dengan mengeksekusi json Metode pada objek respons. Dalam hal ini metode mengembalikan yang berikut:

['id': 17, 'name': 'Contoh kategori', 'slug': 'contoh-kategori', 'induk': 0, 'deskripsi': 'hanya contoh kategori', 'tampilan': 'default ',' Image ': none,' menu_order ': 0,' count ': 0,' _links ': ' self ': [' href ':' http: // localhost/wp-json/wc/v3/ Produk/Kategori/17 '],' Collection ': [' href ':' http: // localhost/wp-json/wc/v3/produk/kategori '], ' id ': 16, 16, 'Name': 'Test', 'Slug': 'Test', 'Parent': 0, 'Deskripsi': 'A Test', 'Display': 'Default', 'Image': None, 'Menu_order': 0 , 'Count': 0, '_links': 'self': ['href': 'http: // localhost/wp-json/wc/v3/produk/kategori/16'], 'koleksi': ['href': 'http: // localhost/wp-json/wc/v3/produk/kategori'], 'id': 15, 'name': 'uncategorized', 'slug': ' Uncategorized ',' Parent ': 0,' Deskripsi ': ",' display ':' default ',' Image ': none,' menu_order ': 0,' count ': 0,' _links ': ' self ': ['href': 'http:// localhost/wp-json/wc/v3/produk/kategori/15 '],' koleksi ': [' href ':' http: // localhost/wp-json/wc/v3/produk/kategori ' ]] 
Menyalin

Jika kami ingin mengambil informasi tentang kategori tertentu, yang harus kami lakukan adalah memberikan ID -nya sebagai bagian dari titik akhir. Misalnya, untuk mendapatkan detail tentang kategori dengan ID 16 (tes), kami akan menjalankan:

Respons = WCAPI.Dapatkan ('Produk/Kategori/16') 
Menyalin

Menghapus kategori

Itu pengenal dari suatu kategori juga diperlukan untuk merujuknya saat kami ingin menghapusnya. Dalam kasus tersebut kita harus menjalankan permintaan HTTP yang menggunakan MENGHAPUS Kata kerja http, sekali lagi memberikan pengidentifikasi kategori sebagai bagian dari titik akhir. Untuk menghapus kategori "tes", misalnya, kami akan menjalankan:

Respons = WCAPI.hapus ('Produk/Kategori/16', param = 'force', true) 
Menyalin

Saat mengeksekusi menghapus metode untuk menghapus kategori, kita juga perlu menggunakan memaksa parameter, dan atur ke BENAR. Ini diperlukan, Karena memindahkan kategori ke tempat sampah, itu tidak didukung melalui REST API; Sumber daya akan dihapus secara permanen. Jika semuanya berjalan seperti yang diharapkan, sama seperti pada contoh sebelumnya, memanggil json Metode pada objek respons, akan mengembalikan kamus yang berisi data sumber daya yang dihapus.

Melakukan banyak tindakan sekaligus

Misalkan kita ingin melakukan banyak tindakan sekaligus: kita mungkin ingin menghapus beberapa kategori, membuat beberapa yang baru, dan memperbarui yang lain. Bagaimana kita bisa melakukannya sekaligus, dengan melaksanakan hanya satu permintaan? Yang harus kami lakukan adalah mengirim permintaan menggunakan POS Kata kerja http ke Produk/Kategori/Batch titik akhir, menggunakan pos metode wcapi obyek. Inilah contohnya:

Batch_data = "create": ["name": "baru kategori 1", "deskripsi": "kategori baru pertama", "name": "Kategori baru 2", "Deskripsi": "Kategori Baru Kedua" Kedua " ], "update": ["id": 17, "Deskripsi": "Deskripsi yang Diperbarui"], "Hapus": [15] 
Menyalin

Data batch didefinisikan, seperti yang kita lihat pada contoh sebelumnya, menggunakan kamus python. Di dalam kamus ini kami memiliki beberapa kunci yang dinamai berdasarkan tindakan yang harus dilakukan:

  • membuat
  • memperbarui
  • menghapus

Nilai yang ditetapkan ke membuat kunci harus berupa daftar kamus, masing -masing menggambarkan data yang harus digunakan untuk membuat kategori baru. Dalam hal ini kami membuat dua kategori baru, bernama "Kategori Baru 1" dan "Kategori Baru 2".

Demikian pula, nilai yang sesuai dengan memperbarui kunci harus merupakan daftar kamus, masing -masing menggambarkan data yang harus digunakan untuk memperbarui kategori tertentu, diidentifikasi olehnya pengenal.

Akhirnya, nilai yang terkait dengan menghapus kunci haruslah daftar dari pengenal dari kategori yang harus dihapus. Dalam hal ini kami memutuskan untuk menghapus kategori dengan 16 sebagai pengidentifikasi unik. Setelah data kami siap, kami menjalankan
meminta:

Respons = WCAPI.POST ('Produk/Kategori/Batch', Batch_Data) 
Menyalin

Itu tanggapan Objek akan berisi representasi berorientasi objek dari respons yang dikirim oleh server. Seperti biasa, dengan mengeksekusi json Metode objek ini kami akan mengambil kamus Python yang berisi ringkasan operasi yang dilakukan, dan deskripsi kategori yang terlibat:

'create': ['id': 18, 'name': 'Kategori baru 1', 'slug': 'new-category-1', 'Parent': 0, 'Deskripsi': 'Kategori Baru Pertama' , 'display': 'default', 'image': none, 'menu_order': 0, 'count': 0, '_links': 'self': ['href': 'http: // localhost/wp -json/wc/v3/produk/kategori/18 '],' collection ': [' href ':' http: // localhost/wp-json/wc/v3/produk/kategori '], 'id': 19, 'name': 'Kategori baru 2', 'Slug': 'New-Category-2', 'Parent': 0, 'Deskripsi': 'Kategori Baru Kedua', 'Tampilan': ' Default ',' Image ': none,' menu_order ': 0,' count ': 0,' _links ': ' self ': [' href ':' http: // localhost/wp-json/wc/v3 /Produk/Kategori/19 '],' Koleksi ': [' href ':' http: // localhost/wp-json/wc/v3/produk/kategori ']],' pembaruan ': [ 'id': 17, 'name': 'Contoh kategori', 'slug': 'contoh-kategori', 'induk': 0, 'deskripsi': 'deskripsi yang diperbarui', 'tampilan': 'default', ' gambar ': tidak ada,'menu_order': 0, 'count': 0, '_links': 'self': ['href': 'http: // localhost/wp-json/wc/v3/produk/kategori/17'] , 'Koleksi': ['href': 'http: // localhost/wp-json/wc/v3/produk/kategori']], 'hapus': ['id': 16, 'nama ':' test ',' slug ':' test ',' Parent ': 0,' Deskripsi ':' A test ',' display ':' default ',' Image ': none,' menu_order ': 0,' Count ': 0,' _links ': ' self ': [' href ':' http: // localhost/wp-json/wc/v3/produk/kategori/16 '],' koleksi ': [ 'href': 'http: // localhost/wp-json/wc/v3/produk/kategori']] 
Menyalin

Produk

Sampai sekarang kami melihat cara melakukan dasar CRUD Operasi pada kategori. Mari bekerja dengan produk sekarang. Kode yang harus digunakan sangat mirip; Perubahan apa yang tentu saja adalah titik akhir API dan atribut yang seharusnya
digunakan saat membuat produk.

Membuat Produk Sederhana

Contoh pertama yang akan kita lihat adalah bagaimana membuat produk "sederhana", tanpa variasi (variasi adalah versi yang sedikit berbeda dari produk yang sama, berdasarkan misalnya pada berbagai ukuran atau warna). Pertama kami mendefinisikan produk
data:

Product_data = "name": "Produk contoh sederhana", "type": "Simple", "Reguler_price": "22.50 "," stock_quantity ": 10," short_description ":" Hanya contoh produk "," deskripsi ":" Ini hanya contoh produk, dibuat dengan WOOCommerce Rest API "," Kategori ": [" id ": 17], "gambar": ["src": "https: // linuxconfig.org/gambar/linuxconfig_logo.png "," alt ":" contoh-gambar "] 
Menyalin

Mari kita lihat informasi produk yang kami gunakan di dalam data produk kamus. Kami mendefinisikan produk nama (Produk contoh sederhana), lalu kami menentukannya jenis, Yang dalam hal ini “sederhana”, karena kami membuat daftar untuk produk fisik tanpa variasi. Kedua informasi tersebut harus ditentukan sebagai string.

Kami juga menentukan produk harga normal (string), kuantitas stok (bilangan bulat), Deskripsi Singkat dan biasa keterangan, Baik sebagai string: itu ditampilkan di berbagai bagian halaman saat produk
divisualisasikan oleh pelanggan potensial.

Hal berikutnya yang kami lakukan adalah menentukan daftar kategori produk produk harus dimasukkan di bawah. Setiap kategori harus dirujuk olehnya pengenal (bilangan bulat). Dalam hal ini kami baru saja merujuk kategori tersebut 17 sebagai unik
Identifier (“Contoh Kategori”).

Hal terakhir yang kami definisikan, adalah daftar gambar yang harus dikaitkan dengan produk tersebut. Setiap gambar dijelaskan menggunakan kamus. Di sini kami hanya menggunakan satu gambar, menyediakannya SRC (string), dan alt (Teks alternatif, sebagai
Sebuah benang).

Yang kami gunakan hanyalah sebagian kecil dari semua sifat produk yang mungkin. Setelah data kami siap, kami mengirim POS Permintaan http, menggunakan pos metode wcapi obyek. Titik akhir yang harus dikirim permintaan
"Produk":

Respons = WCAPI.POST ('Produk', Product_Data) 
Menyalin

Jika permintaan berhasil, dengan mengeksekusi tanggapan.json () Kami akan mendapatkan kamus Python yang berisi informasi dari produk yang baru dibuat:

'id': 29, 'name': 'Contoh Produk Sederhana', 'Slug': 'Sederhana-Contoh-Produk', 'Permalink': 'http: // localhost/product/simple-example-product/', 'date_created': '2021-03-22t14: 53: 44', 'date_created_gmt': '2021-03-22t14: 53: 44', 'date_modified': '2021-03-22t14: 53: 44', 'Date_modified ':' 2021-03-22t14: 53: 44 ',' type ':' sederhana ',' status ':' publish ',' fitur ': false,' catalog_visibility ':' visible ',' description ':' ini hanyalah contoh produk, dibuat dengan wooCommerce rest API ',' short_description ':' Hanya contoh produk ',' sku ': ",' harga ': '22.50 ',' reguler_price ': '22.50 ',' Sale_price ': ",' date_on_sale_from ': tidak ada,' date_on_sale_from_gmt ': tidak ada,' date_on_sale_to ': tidak ada,' date_on_sale_to_gmt ': tidak ada,' on_sale ': false,' dibeli ': benar,' TOTAL ':' On_Sale ': false,' Beli , 'virtual': false, 'downloadable': false, 'downloads': [], 'download_limit': -1, 'download_expiry': -1, 'external_url': ", 'button_text':", 'tax_status': 'kena pajak', 'tax_class': ", 'kelola_stock': false, 'stock_quantity': tidak ada, 'backorder': 'tidak', 'backorders_allowed': false, 'backordered': false, 'sold_individual': false, 'weight ': ",' dimensi ': ' panjang ':",' width ': ",' height ':",' shipping_required ': true,' shipping_taxable ': true,' shipping_class ': ",' shipping_class_id ': 0, 'ulasan_allowed': true, 'rata -rata_rating': '0', 'rating_count': 0, 'upsell_ids': [], 'cross_sell_ids': [], 'parent_id': 0, 'buy_note': ", ' ': [' id ': 17,' name ':' Contoh kategori ',' slug ':'Contoh-kategori'], 'tag': [], 'gambar': ['id': 28, 'date_created': '2021-03-22t14: 53: 44', 'date_created_gmt': '2021- 03-22T14: 53: 44 ',' date_modified ':' 2021-03-22t14: 53: 44 ',' date_modified_gmt ':' 2021-03-22t14: 53: 44 ',' src ':' http: // localhost/wp-content/unggah/2021/03/linuxconfig_logo-3.png ',' name ':' linuxconfig_logo-3.png ',' alt ':' contoh-gambar '],' atribut ': [],' default_attributes ': [],' variasi ': [],' grouped_products ': [],' menu_order ': 0,' Price_html ': '22, 50 €', 'terkait_ids': [], 'meta_data': [], 'stock_status': 'instock', '_links': 'self': ['href': 'http: // localhost/wp-json/wc/v3/produk/29 '],' collection ': [' href ':' http: // localhost/wp-json/wc/v3/produk '] 
Menyalin

Membuat produk variabel dan variasinya

Dalam contoh sebelumnya kami membuat produk "sederhana". Sekarang mari kita lihat cara membuat produk "variabel". Definisi dasarnya sama dengan yang kami gunakan di atas. Yang harus kita lakukan adalah menambahkan atribut yang, digabungkan, akan mewakili variasi produk. Sebagai contoh, misalkan produk kami adalah T-shirt yang tersedia dalam berbagai warna dan ukuran: setiap variasi akan disusun oleh warna tertentu yang terkait dengan ukuran tertentu:

variable_product_data = "name": "variabel contoh produk", "type": "variable", "short_description": "Hanya produk variabel", "deskripsi": "Ini adalah produk variabel, dibuat dengan WOOCommerce REST API" , "Kategori": ["id": 17], "gambar": ["src": "https: // linuxconfig.org/gambar/linuxconfig_logo.png "," alt ":" contoh-gambar "]," atribut ": [" name ":" color "," visible ": true," variation ": true," options ": [" Black ", "putih"], "name": "size", "visible": true, "variation": true, "options": ["s", "m", "l"]] 
Menyalin

Kami memberikan daftar atribut menggunakan kunci "atribut" di kamus produk. Atribut pertama bernama "Warna", dan "ukuran" kedua. Kami mengatur keduanya agar terlihat, dan kami menyatakan bahwa mereka harus digunakan untuk variasi dengan menugaskan BENAR sebagai nilai dari variasi kunci dalam kamus yang mendefinisikannya. Daftar yang terkait dengan pilihan kunci, berisi semua nilai yang mungkin dapat diasumsikan setiap atribut.

Tentang atribut produk: kita bisa menggunakan keduanya global Dan non-global atribut. Apa bedanya? Atribut yang ditentukan hanya dengan nama seperti yang kami lakukan dalam contoh di atas akan dibuat "On the Fly" untuk produk tertentu, sehingga mereka akan "non-global". Jika kami bermaksud menggunakan atribut yang sama untuk beberapa produk, kami lebih baik mendefinisikannya sebelumnya dengan panggilan tertentu, dan kemudian merujuknya dengan ID mereka. Seandainya kami membuat Warna Dan Ukuran atribut global, dan mereka masing -masing 1 Dan 2 Sebagai pengidentifikasi unik, kami akan menulis:

"Atribut": ["id": 1 "visible": true, "variation": true, "options": ["black", "white"], "id": 2, "visible": true , "variasi": true, "opsi": ["s", "m", "l"]] 
Menyalin

Sangat penting: Kode tidak akan membuat variasi produk yang sebenarnya, yang harus didefinisikan dengan permintaan terpisah.

Anda dapat melihat bahwa kami dihilangkan untuk memberikan kuantitas stok produk, karena total nilai saham akan diwakili oleh jumlah jumlah saham dari setiap variasi.

Langkah selanjutnya adalah membuat variasi produk yang sebenarnya. Saat mendefinisikan data variasi, kami harus menggunakan atribut yang sama yang kami tentukan dalam permintaan yang kami gunakan untuk membuat produk variabel. Berikut adalah contoh tentang cara membuat variasi:

Product_variation_data = "Reguler_Price": "18.00 "," stock_quantity ": 10," atribut ": [" id ": 1," opsi ":" white ", " id ": 2," opsi ":" s "] 
Menyalin

Kami mendefinisikan variasi yang dihasilkan oleh kombinasi atribut warna "putih", dan atribut ukuran "S". Kami mengaturnya harga normal Dan stock_quantity. Kita sekarang harus mengirim permintaan dengan kode berikut:

Respons = WCAPI.POST ('Produk/34/Variasi', Product_Variation_Data) 
Menyalin

Seperti yang dapat Anda lihat di cuplikan di atas, sebagai titik akhir untuk permintaan, kami gunakan Produk/34/Variasi, Di mana 34 adalah pengenal dari produk induk yang kami buat sebelumnya.

Meminta informasi tentang semua produk atau yang tertentu

Sama seperti yang kami lakukan untuk kategori, kami dapat meminta informasi tentang semua produk yang ada melalui WooCommerce REST API:

Respons = WCAPI.Dapatkan ('Produk') 
Menyalin

Permintaan dapat disesuaikan lebih lanjut dengan menggunakan parameter: dengan per halaman Parameter, misalnya, kita dapat menentukan berapa banyak item yang harus dikembalikan dalam set hasil dari satu permintaan (default adalah 10), dan dengan halaman parameter kita dapat meminta halaman tertentu yang harus dikembalikan (default 1). Untuk memperluas jumlah item yang dikembalikan dalam satu permintaan, kami akan menulis:

Respons = WCAPI.get ('produk', params = 'per_page': 20) 
Menyalin

Meminta informasi tentang produk tertentu yang sama sederhana: yang harus kami lakukan adalah menentukannya pengenal Di titik akhir permintaan:

Respons = WCAPI.Dapatkan ('Produk/34') 
Menyalin

Memperbarui suatu produk

Logika yang digunakan untuk memperbarui produk adalah sama yang kami gunakan untuk memperbarui kategori (dan semua "entitas" lainnya yang dikelola melalui API REST). Kami menentukan data produk yang harus diperbarui dan mengirim a MELETAKKAN permintaan ke titik akhir yang mencakup produk pengenal:

update_product_data = "description": "Ini adalah deskripsi produk variabel yang diperbarui" response = wcapi.put ('produk/34', update_product_data) 
Menyalin

Menghapus produk

Untuk menghapus suatu produk, yang harus kami lakukan adalah mengirim a MENGHAPUS permintaan ke titik akhir yang mencakup produk pengenal:

Respons = WCAPI.Hapus ('Produk/34') 
Menyalin

Di sini Anda dapat melihat bahwa, tidak seperti apa yang terjadi untuk kategori, penggunaan memaksa Parameter tidak wajib. Jika parameter tidak digunakan, produk hanya akan dipindahkan ke "sampah", dan karenanya mungkin untuk mengambilnya dari itu belakangan ini. Jika memaksa parameter digunakan, dan diatur ke BENAR, Sebaliknya, produk akan dihapus secara permanen.

Kesimpulan

Dalam tutorial ini kami melihat beberapa contoh bagaimana berinteraksi dengan WooCommerce Rest API dengan bahasa pemrograman Python. Kami melihat cara menghasilkan kredensial API, cara menginstal paket Python "WooCommerce" yang menyediakan metode berguna yang menyederhanakan kode yang harus kami tulis untuk berinteraksi dengan mereka, dan beberapa contoh cara membuat, membaca, menghapus, dan memperbarui kategori dan produk WOOCOMMERCE WOOCOMMERCE. Silakan berkonsultasi dengan dokumentasi API Rest WooCommerce Resmi untuk gambaran lengkap kemampuan API.

Tutorial Linux Terkait:

  • Ubuntu 20.04: WordPress dengan instalasi nginx
  • Ubuntu 20.04 WordPress dengan Instalasi Apache
  • Instalasi OpenLitespeed WordPress
  • Pengantar Otomatisasi Linux, Alat dan Teknik
  • Hal -hal yang harus diinstal pada ubuntu 20.04
  • Distro linux terbaik untuk pengembang
  • Menguasai loop skrip bash
  • Daftar Alat Linux Kali Terbaik untuk Pengujian Penetrasi dan ..
  • Gunakan WPSCan untuk memindai WordPress untuk kerentanan di Kali
  • Mint 20: Lebih baik dari Ubuntu dan Microsoft Windows?