Cara Bekerja Dengan API Rest WooCommerce dengan Python

Cara Bekerja Dengan API Rest WooCommerce dengan Python

WordPress mungkin merupakan CMS yang paling banyak digunakan di dunia (dianggarkan bahawa hampir 40% dari semua laman web dibina menggunakan platform): sangat mudah dipasang dan digunakan, dan membolehkan bahkan bukan pemaju untuk membuat laman web dalam beberapa minit.
WordPress mempunyai ekosistem plugin yang sangat besar; salah satu yang paling terkenal adalah Woocommerce, yang membolehkan kami mengubah laman web menjadi kedai dalam talian dalam beberapa langkah. Plugin menggunakan infrastruktur API REST WordPress; Dalam tutorial ini kita akan melihat bagaimana untuk berinteraksi dengan API WooCommerce menggunakan bahasa pengaturcaraan Python, menunjukkan cara menyenaraikan, membuat, mengemas kini dan memadam produk dan kategori.

Dalam tutorial ini anda akan belajar:

  • Cara Menjana Kelayakan API REST WooCommerce dan membolehkan permalink cantik
  • Cara Berinteraksi dengan API REST WOOCommerce Menggunakan Python dan Pakej WooCommerce
  • Cara Mendapatkan Maklumat Mengenai Kategori WooCommerce yang Ada, Buat, Kemas kini dan Padamnya
  • Cara mendapatkan maklumat mengenai produk WooCommerce yang ada
  • Cara membuat produk mudah dan berubah dengan variasi
  • Cara mengemas kini dan memadam produk

Keperluan perisian dan konvensyen yang digunakan

Keperluan Perisian dan Konvensyen Talian Perintah Linux
Kategori Keperluan, konvensyen atau versi perisian yang digunakan
Sistem Pengedaran bebas
Perisian Python3
Yang lain Contoh kerja WordPress dengan plugin WooCommerce dipasang
Konvensyen # - Memerlukan komando linux yang diberikan untuk dilaksanakan dengan keistimewaan akar sama ada secara langsung sebagai pengguna root atau dengan menggunakan sudo perintah
$-memerlukan komando Linux yang diberikan sebagai pengguna yang tidak berkadar biasa

Menjana Kelayakan API REST WooCommerce

Demi tutorial ini, kami akan menganggap kami mempunyai contoh kerja WordPress dengan plugin WooCommerce yang sudah dipasang. Perkara pertama yang perlu kita lakukan, adalah untuk menjana kelayakan API WooCommerce REST kami: mereka akan menjadi
digunakan dalam setiap permintaan HTTP yang akan kami lakukan. Menjana kelayakan yang sangat mudah; Yang harus kita lakukan hanyalah menavigasi WOOCommerce -> Tetapan Dalam menu menegak yang kita dapati di halaman pentadbiran WordPress:

Sekali di halaman Tetapan Plugin, kami mengklik pada tab "Lanjutan", dan kemudian terus
Pautan "Rest Api", yang terletak di bawah menu tab. Di halaman yang akan
Dibuka, kami klik pada butang "Buat Kekunci API":

Kami akan dibentangkan dengan Borang Penciptaan Utama API, dan kami akan diminta untuk memasukkan:

  • Penerangan, yang akan digunakan sebagai nama mesra untuk mengenal pasti kelayakan dengan mudah
  • Pengguna yang akan menggunakan kunci
  • Keizinan yang akan diberikan kepada kunci (baca sahaja | Tulis sahaja | Baca dan Tulis)

Perhatikan bahawa kami mempunyai peluang untuk membuat beberapa kunci dengan kebenaran yang berbeza, untuk menghadkan operasi yang diberikan untuk pengguna tertentu. Demi tutorial ini, kami akan membuat kunci API dengan kebenaran membaca dan menulis:

Apabila siap, kami mengklik butang "Menjana Kunci API", dan kedua -dua Kunci Pengguna dan juga rahsia pengguna akan dijana dan dipaparkan kepada kami. Kami mesti memastikan kami menyimpan kedua -duanya di tempat yang selamat, sejak itu Sebaik sahaja kami meninggalkan halaman, mereka akan tersembunyi:

Sebaik sahaja kunci kita dijana, ada tindakan lain yang perlu kita lakukan dari backend pentadbiran WordPress: kita harus memastikan bahawa yang betul cantik permalink digunakan, jika tidak, titik akhir API tidak akan berfungsi. Untuk melaksanakan tugas yang kita navigasi Tetapan -> permalink di menu menegak kiri WordPress. Dalam menu halaman, kami memilih "Nama Pos", dan kemudian kami menyimpan perubahan:



Itu sahaja yang perlu kita lakukan. Di bahagian seterusnya, kita akan melihat bagaimana untuk berinteraksi dengan API rehat WooCommerce menggunakan Python.

Pasang Pakej WooCommerce

Dalam bahagian ini kita akan melihat bagaimana untuk berinteraksi dengan API REST WOOCommerce menggunakan bahasa pengaturcaraan python. Daripada menulis kod yang kita perlukan untuk melaksanakan permintaan HTTP dari awal, kami akan menggunakan Woocommerce pakej, yang akan memudahkan kerja kita. Untuk memasang pakej yang boleh kita gunakan Pip, pengurus pakej python. Sekiranya kita bekerja di dalam persekitaran maya yang dibuat menggunakan venv, kita boleh lari:

$ pip pemasangan wooocommerce 

Sekiranya kita tidak menggunakan persekitaran maya, sekurang -kurangnya kita harus memasang pakej untuk pengguna kita sahaja. Untuk melakukan itu, kami menambah --pengguna Pilihan untuk arahan, yang menjadi:

$ pip pemasangan wooocommerce --user 

Sekali Woocommerce Pakej dipasang, kita boleh mula menulis kod kami.

Memulakan kelas API

Perkara pertama yang perlu kita lakukan untuk berinteraksi dengan API REST WOOCommerce, menggunakan Python dan Woocommerce pakej, adalah mengimport API kelas dan buat contohnya, seperti yang ditunjukkan di bawah:

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

The API Pembina kelas mengambil tiga hujah wajib:

  1. URL laman web kami
  2. Kunci Pengguna API REST WooCommerce
  3. Rahsia Pengguna API REST WooCommerce

Dalam contoh di atas, anda dapat melihat kami lulus hujah ketiga, masa tamat: ia adalah pilihan, dan lalai untuk 5 saat. Dalam kes ini kami memberikan nilai yang lebih besar untuknya: 50. Dalam kes saya ini diperlukan untuk permintaan untuk berjaya, tetapi secara nyata
Senario hidup, kita tidak perlu mengubahnya, jadi ia boleh ditinggalkan sama sekali.

Sebaik sahaja kita membuat contoh API kelas, dalam kes ini dirujuk oleh WCAPI pemboleh ubah, kita boleh meneruskan dan membuat panggilan API kami.

Kategori

Demi tutorial ini, kami hanya akan bekerja dengan kategori dan produk. Contoh yang disediakan sepatutnya cukup untuk memberi pembaca idea bagaimana API berfungsi. Mari kita mulakan dengan kategori, kerana mereka harus sedia ada untuk dirujuk ketika membuat produk.

Mewujudkan kategori

Sebagai contoh pertama, kita akan melihat cara membuat kategori. Kami mula menentukan data kategori dalam kamus python:

kategori_data = "name": "Contoh kategori", "keterangan": "Hanya contoh kategori" 
Salinan

Satu -satunya parameter wajib yang harus kita gunakan semasa membuat kategori, adalah nama, yang harus disediakan sebagai rentetan. Dalam contoh di atas, kami juga menyatakan Penerangan Kunci, untuk memberikan penerangan ringkas tentang kategori (anda boleh menyemak dokumentasi rasmi untuk senarai lengkap sifat kategori).

Sebaik sahaja kami membuat kamus yang mengandungi data kategori, kami dapat melaksanakan permintaan API yang digunakan untuk membuat kategori, yang menggunakan Jawatan Kata kerja http:

Response = WCAPI.Post ("Produk/Kategori", CATEGETY_DATA) 
Salinan

Sekiranya permintaan dilaksanakan tanpa kesilapan, panggil json kaedah pada respons objek, akan mengembalikan respons pelayan yang diformat sebagai kamus python, yang menerangkan data yang digunakan untuk membuat kategori: ini akan merangkumi ID unik Digunakan untuk menyimpan kategori dalam pangkalan data, yang merupakan maklumat penting jika kita ingin merujuknya kemudian (contohnya ketika membuat subkategori atau produk yang harus dimasukkan di bawah kategori itu sendiri). Dalam kes kita, inilah yang dikembalikan oleh pelayan:

'id': 17, 'name': 'Contoh kategori', 'slug': 'Contoh-kategori', 'ibu bapa': 0, 'keterangan': 'hanya contoh kategori', 'paparan': 'lalai' , 'imej': tidak, '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 '] 
Salinan

Seperti yang dapat kita lihat, kategori telah diselamatkan 17 sebagai ID unik.

Mengemas kini kategori

Untuk mengemas kini kategori yang ada, kita mesti merujuknya melalui ID, yang harus dimasukkan sebagai sebahagian daripada titik akhir permintaan. Mula -mula kita membuat kamus yang mengandungi data kategori yang perlu dikemas kini; Dalam contoh di bawah kita menukar Penerangan Kategori:

kategori_data = "Description": "Contoh Kategori Modified" 
Salinan

Setelah data siap, kami dapat menghantar permintaan kami, menggunakan letak kaedah WCAPI objek, yang, seperti yang anda boleh meneka, menghantar permintaan menggunakan LETAK Kata kerja http:

Response = WCAPI.meletakkan ('produk/kategori/17', kategori_data) 
Salinan

Sama seperti dahulu, dengan melaksanakannya json kaedah respons objek, kami akan mengambil maklumat kategori yang dikemas kini yang dikembalikan oleh pelayan, yang telah ditukar kepada Kamus Python:

'id': 17, 'Nama': 'Contoh Kategori', 'Slug': 'Contoh-kategori', 'Ibu Bapa': 0, 'Keterangan': 'Contoh Kategori Modified', 'Paparan': 'Default', 'imej': tidak, '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 '] 
Salinan

Mendapatkan maklumat mengenai semua kategori atau yang tertentu

Mendapatkan senarai semua kategori yang ada sangat mudah. Yang harus kita lakukan hanyalah melaksanakan Dapatkan kaedah WCAPI objek yang kami buat sebelum ini, dan tentukan titik akhir yang betul (produk/kategori):

Response = WCAPI.Dapatkan ('Produk/Kategori') 
Salinan

Seperti sebelum kandungan respons dapat diakses sebagai kamus python dengan melaksanakan json kaedah pada objek tindak balas. Dalam kes ini kaedah mengembalikan perkara berikut:

['id': 17, 'name': 'Contoh kategori', 'slug': 'Contoh-kategori', 'ibu bapa': 0, 'keterangan': 'hanya contoh kategori', 'paparan': 'lalai ',' imej ': tiada,' 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 '], ' id ': 16, 'Nama': 'ujian', 'slug': 'ujian', 'ibu bapa': 0, 'keterangan': 'ujian', 'paparan': 'lalai', 'imej': tidak ada, '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,' Description ': ",' Paparan ':' 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 ' ]] 
Salinan

Sekiranya kita ingin mendapatkan maklumat mengenai kategori tertentu, yang perlu kita lakukan adalah memberikan ID sebagai sebahagian daripada titik akhir. Contohnya, untuk mendapatkan butiran mengenai kategori dengan ID 16 (Ujian), kami akan menjalankan:

Response = WCAPI.Dapatkan ('Produk/Kategori/16') 
Salinan

Memadam kategori

The ID kategori juga diperlukan untuk merujuknya apabila kita mahu memadamkannya. Dalam kes tersebut, kita harus menjalankan permintaan HTTP yang menggunakan Padam Kata kerja HTTP, sekali lagi menyediakan pengenal kategori sebagai sebahagian daripada titik akhir. Untuk memadam kategori "ujian", sebagai contoh, kami akan menjalankan:

Response = WCAPI.Padam ('Produk/Kategori/16', Param = 'Force', True) 
Salinan

Semasa melaksanakan Padam kaedah untuk memadam kategori, kita juga perlu menggunakan kuasa parameter, dan tetapkannya Benar. Ini adalah diperlukan, Sejak memindahkan kategori ke sampah, ia tidak disokong melalui API REST; sumbernya akan dikeluarkan secara kekal. Sekiranya semuanya berjalan seperti yang diharapkan, seperti contoh sebelumnya, memanggilnya json kaedah pada objek tindak balas, akan mengembalikan kamus yang mengandungi data sumber yang dikeluarkan.

Melakukan pelbagai tindakan sekaligus

Katakan kami ingin melakukan pelbagai tindakan sekaligus: kami mungkin mahu memadam beberapa kategori, membuat beberapa yang baru, dan mengemas kini orang lain. Bagaimana kita boleh melakukannya sekaligus, dengan melaksanakan hanya satu permintaan? Yang harus kita lakukan ialah menghantar permintaan menggunakan Jawatan Kata kerja http ke Produk/Kategori/Kumpulan titik akhir, menggunakan jawatan kaedah WCAPI objek. Berikut adalah contoh:

batch_data = "create": ["name": "baru kategori 1", "keterangan": "kategori baru pertama", "name": "baru kategori 2", "keterangan": "kategori baru kedua" ], "kemas kini": ["id": 17, "description": "Description datang", "padam": [15] 
Salinan

Data batch ditakrifkan, seperti yang kita lihat dalam contoh sebelumnya, menggunakan kamus python. Di dalam kamus ini kita mempunyai beberapa kunci yang dinamakan selepas tindakan yang perlu dilakukan:

  • Buat
  • Kemas kini
  • Padam

Nilai yang diberikan kepada Buat Kunci mestilah senarai kamus, masing -masing menerangkan data yang harus digunakan untuk membuat kategori baru. Dalam kes ini, kami mencipta dua kategori baru, yang dinamakan "Kategori 1" dan "Kategori Baru 2".

Begitu juga, nilai yang sepadan dengan Kemas kini kunci mestilah senarai kamus, masing -masing menerangkan data yang harus digunakan untuk mengemas kini kategori tertentu, yang dikenal pasti olehnya ID.

Akhirnya, nilai yang berkaitan dengan Padam kunci mestilah senarai ID kategori yang harus dipadam. Dalam kes ini kami memutuskan untuk membuang kategori dengan 16 sebagai pengenal unik. Setelah data kami siap, kami melaksanakan
Permintaan:

Response = WCAPI.Pos ('Produk/Kategori/Batch', Batch_Data) 
Salinan

The respons Objek akan mengandungi perwakilan berorientasikan objek respons yang dihantar oleh pelayan. Seperti biasa, dengan melaksanakan json Kaedah objek ini kita akan mengambil kamus python yang mengandungi ringkasan operasi yang dilakukan, dan perihalan kategori yang terlibat:

'create': ['id': 18, 'name': 'New Category 1', 'Slug': 'New-Category-1', 'Parent': 0, 'Description': 'Kategori Baru Pertama' , 'paparan': 'lalai', 'imej': tidak, 'menu_order': 0, 'count': 0, '_links': 'self': ['href': 'http: // localhost/wp -JSON/WC/V3/produk/kategori/18 '],' Koleksi ': [' href ':' http: // localhost/wp-json/wc/v3/produk/kategori '. 'id': 19, 'Nama': 'Kategori Baru 2', 'Slug': 'New-Category-2', 'Parent': 0, 'Description': 'Kedua Kategori Baru', 'Paparan': ' lalai ',' imej ': tiada,' 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 ']],' kemas kini ': [ 'id': 17, 'name': 'Contoh kategori', 'slug': 'Contoh-kategori', 'ibu bapa': 0, 'description': 'description dikemaskini', 'paparan': 'lalai', ' Imej ': Tiada,'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']], 'padam': ['id': 'nama', ' ':' ujian ',' slug ':' ujian ',' ibu bapa ': 0,' keterangan ':' ujian ',' paparan ':' lalai ',' imej ': tidak ada,' 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']] 
Salinan

Produk

Sehingga kini kita melihat bagaimana untuk melaksanakan asas Crud Operasi pada kategori. Mari bekerja dengan produk sekarang. Kod yang sepatutnya digunakan cukup serupa; Apa perubahan, tentu saja, titik akhir API dan atribut yang sepatutnya
digunakan semasa membuat produk.

Membuat produk yang mudah

Contoh pertama yang akan kita lihat ialah cara membuat produk "mudah", tanpa variasi (variasi adalah versi yang sedikit berbeza dari produk yang sama, berdasarkan contohnya pada saiz atau warna yang berbeza). Pertama kita menentukan produk
data:

product_data = "name": "Produk contoh mudah", "jenis": "mudah", "biasa_price": "22.50 "," stock_quantity ": 10," short_description ":" Hanya contoh produk "," keterangan ":" Ini hanyalah produk contoh, yang dibuat dengan API REST WOOCOMMERCE "," Kategori ": [" ID ": 17], "imej": ["src": "https: // linuxconfig.org/imej/linuxconfig_logo.png "," alt ":" contoh-imej "] 
Salinan

Mari kita lihat maklumat produk yang kami gunakan di dalam produk_data Kamus. Kami menentukan produk nama (Produk contoh mudah), maka kami menetapkannya Jenis, yang dalam kes ini adalah "mudah", kerana kita membuat penyenaraian untuk produk fizikal tanpa variasi. Kedua -dua maklumat tersebut mesti ditentukan sebagai rentetan.

Kami juga menetapkan produk harga biasa (String), The kuantiti saham (integer), Penerangan Ringkas dan yang biasa Penerangan, kedua -dua rentetan: yang dipaparkan di bahagian yang berlainan halaman ketika produk
digambarkan oleh pelanggan yang berpotensi.

Perkara seterusnya yang kami lakukan adalah untuk menentukan senarai kategori produk yang harus disertakan di bawah. Setiap kategori harus dirujuk olehnya ID (integer). Dalam kes ini kita hanya merujuk kategori dengan 17 seperti yang unik
Pengenalpastian ("Contoh Kategori").

Perkara terakhir yang kami tentukan, adalah senarai imej yang harus dikaitkan dengan produk. Setiap gambar digambarkan menggunakan kamus. Di sini kita hanya menggunakan satu gambar, memberikannya SRC (String), dan alt (Teks alternatif, sebagai
rentetan).

Yang kami gunakan hanyalah subset yang sangat kecil dari semua sifat produk yang mungkin. Setelah data kami siap, kami menghantar a Jawatan Permintaan HTTP, menggunakan jawatan kaedah WCAPI objek. Titik akhir yang mana permintaan harus dihantar adalah
"Produk":

Response = WCAPI.Post ('Products', Product_data) 
Salinan

Sekiranya permintaan itu berjaya, dengan melaksanakan respons.json () Kami akan memperoleh Kamus Python yang mengandungi maklumat produk yang baru dibuat:

'id': 29, 'Nama': 'Produk Contoh Mudah', 'Slug': 'Produk Simple-Example-Product', 'Permalink': 'http: // localhost/product/simple-product-product/', 'date_created': '2021-03-22T14: 53: 44', 'date_created_gmt': '2021-03-22t14: 53: 44', 'date_modified': '2021-03-22t14: ':' 2021-03-22T14: 53: 44 ',' jenis ':' mudah ',' status ':' penerbitan ',' dipaparkan ': false,' katalog_visibility ':' kelihatan ',' Penerangan ':' hanya satu contoh produk, yang dibuat dengan wooocommerce REST API ',' short_description ':' hanya contoh produk ',' sku ': ",' harga ': '22.50 ',' biasa_price ': '22.50 ',' SALE_PRICE ': ",' DATE_ON_SALE_FROM ': Tiada,' DATE_ON_SALE_FROM_GMT ': Tiada,' DATE_ON_SALE_TO ': Tiada,' DATE_ON_SALE_TO_GMT ' , 'Virtual': False, 'Downloadable': False, 'Downloads': [], 'download_limit': -1, 'download_expiry': -1, 'external_url': ", 'button_text':", 'tax_status': 'boleh dikenakan cukai', 'tax_class': ", 'manage_stock': false, 'stock_quantity': tidak ada, 'backorders': 'tidak', 'backorders_allowed': false, 'backordered': false, 'sold_indually': false, ' ': ",' dimensi ': ' panjang ':",' lebar ': ",' ketinggian ':",' shipping_required ': true,' shipping_taxable ': true,' shipping_class ': ",' Shipping_class_id ': 0, 'ulasan_allowed': benar, 'purata_rating': '0', 'rating_count': 0, 'upsell_ids': [], 'cross_sell_ids': [], 'parent_id': 0, 'pembelian_note': ", ' ': [' id ': 17,' name ':' Contoh kategori ',' slug ':'Contoh-kategori'], 'tags': [], 'imej': ['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/muat naik/2021/03/linuxconfig_logo-3.png ',' nama ':' linuxconfig_logo-3.png ',' alt ':' contoh-imej '],' atribut ': [],' default_attributes ': [],' variasi ': [],' grouped_products ': [],' menu_order ': 0,' price_html ': '22, 50 €', 'berkaitan_ids': [], 'meta_data': [], 'stock_status': 'instock', '_links': 'self': ['href': 'http: // localhost/wp-json/wc/v3/produk/29 '],' koleksi ': [' href ':' http: // localhost/wp-json/wc/v3/produk ' 
Salinan

Mewujudkan produk yang berubah -ubah dan variasinya

Dalam contoh sebelumnya, kami mencipta produk "mudah". Sekarang mari kita lihat cara membuat produk "pembolehubah". Definisi asas adalah sama dengan yang kita gunakan di atas. Yang harus kita lakukan ialah menambah atribut yang, digabungkan, akan mewakili variasi produk. Sebagai contoh, katakan produk kami adalah t-shirt yang terdapat dalam pelbagai warna dan saiz: setiap variasi akan disusun oleh warna tertentu yang berkaitan dengan saiz tertentu:

variable_product_data = "name": "Product Product Variable", "type": "variable", "short_description": "hanya produk berubah", "description": " , "Kategori": ["id": 17], "imej": ["src": "https: // linuxconfig.org/imej/linuxconfig_logo.png "," alt ":" contoh-imej "]," atribut ": [" name ":" color "," Look ": true," variasi ": true," options ": [" hitam ", "putih"], "name": "saiz", "kelihatan": benar, "variasi": benar, "pilihan": ["s", "m", "l"] 
Salinan

Kami menyediakan senarai atribut menggunakan kunci "atribut" dalam kamus produk. Atribut pertama dinamakan "warna", dan saiz "kedua". Kami menetapkan kedua -dua mereka dapat dilihat, dan kami menyatakan bahawa mereka harus digunakan untuk variasi dengan memberikan Benar sebagai nilai variasi kunci dalam kamus yang mentakrifkan mereka. Senarai yang berkaitan dengan pilihan kunci, mengandungi semua nilai yang mungkin setiap atribut boleh dianggap.

Mengenai atribut produk: kita boleh menggunakan kedua -duanya Global dan bukan global atribut. Apakah perbezaannya? Atribut yang ditentukan hanya dengan nama seperti yang kita lakukan dalam contoh di atas akan dibuat "dengan cepat" untuk produk tertentu, jadi mereka akan menjadi "bukan global". Sekiranya kita bermaksud menggunakan atribut yang sama untuk beberapa produk, kita lebih baik menentukannya terlebih dahulu dengan panggilan tertentu, dan kemudian merujuknya dengan ID mereka. Menganggap kami mencipta Warna dan Saiz atribut global, dan masing -masing 1 dan 2 Sebagai pengenal unik, kami akan menulis:

"atribut": ["id": 1 "boleh dilihat": benar, "variasi": benar, "opsyen": ["hitam", "putih"], "id": 2, "kelihatan": benar , "Variasi": Benar, "Pilihan": ["S", "M", "L"]] 
Salinan

Sangat penting: Kod tidak akan menghasilkan variasi produk sebenar, yang harus ditakrifkan dengan permintaan berasingan.

Anda dapat melihat bahawa kami tidak dapat memberikan kuantiti saham produk, kerana jumlah nilai saham akan diwakili oleh jumlah kuantiti saham setiap variasi.

Langkah seterusnya adalah untuk mewujudkan variasi produk sebenar. Apabila menentukan data variasi, kita harus menggunakan atribut yang sama yang kami tentukan dalam permintaan yang kami gunakan untuk membuat produk berubah -ubah. Berikut adalah contoh cara membuat variasi:

product_variation_data = "reguler_price": "18.00 "," stock_quantity ": 10," atribut ": [" id ": 1," option ":" white ", " id ": 2," option ":" s "] 
Salinan

Kami menentukan variasi yang dihasilkan oleh gabungan atribut warna "putih", dan atribut saiz "s". Kami menetapkannya harga biasa dan stock_quantity. Sekarang kita harus menghantar permintaan dengan kod berikut:

Response = WCAPI.Pos ('Produk/34/Variasi', Product_variation_data) 
Salinan

Seperti yang anda lihat di coretan di atas, sebagai titik akhir untuk permintaan, kami menggunakan Produk/34/Variasi, di mana 34 adalah ID produk induk yang kami buat sebelumnya.

Meminta maklumat mengenai semua produk atau yang tertentu

Sama seperti yang kita lakukan untuk kategori, kita boleh meminta maklumat mengenai semua produk sedia ada melalui API REST WOOCommerce:

Response = WCAPI.Dapatkan ('Produk') 
Salinan

Permintaan itu boleh disesuaikan dengan penggunaan parameter: dengan setiap muka surat Parameter, sebagai contoh, kita dapat menentukan berapa banyak item yang harus dikembalikan dalam set hasil satu permintaan (lalai adalah 10), dan dengan halaman parameter kita boleh meminta halaman tertentu yang harus dikembalikan (lalai adalah 1). Untuk memperluaskan bilangan item yang dikembalikan dalam satu permintaan, kami akan menulis:

Response = WCAPI.Dapatkan ('Produk', Params = 'Per_Page': 20) 
Salinan

Meminta maklumat mengenai produk tertentu, sama seperti mudah: yang perlu kita lakukan ialah menentukannya ID dalam titik akhir permintaan:

Response = WCAPI.Dapatkan ('Produk/34') 
Salinan

Mengemas kini produk

Logik yang digunakan untuk mengemas kini produk adalah sama yang kami gunakan untuk mengemas kini kategori (dan semua "entiti" yang lain diuruskan melalui API REST). Kami menentukan data produk yang perlu dikemas kini dan menghantar a LETAK permintaan ke titik akhir yang merangkumi produk ID:

UPDATED_PRODUCT_DATA = "Description": "Ini adalah Penerangan Produk Variabel yang Dikemaskini" Response = WCAPI.letakkan ('produk/34', dikemas kini_product_data) 
Salinan

Memadam produk

Untuk memadam produk, yang perlu kita lakukan ialah menghantar a Padam permintaan ke titik akhir yang merangkumi produk ID:

Response = WCAPI.Padam ('Produk/34') 
Salinan

Di sini anda dapat melihat bahawa, tidak seperti apa yang berlaku untuk kategori, penggunaan kuasa Parameter tidak wajib. Sekiranya parameter tidak digunakan, produk hanya akan dipindahkan ke "sampah", dan oleh itu mungkin untuk mengambilnya dari akhir -akhir ini. Jika kuasa parameter digunakan, dan ditetapkan ke Benar, Sebaliknya, produk akan dikeluarkan secara kekal.

Kesimpulan

Dalam tutorial ini kita melihat beberapa contoh bagaimana untuk berinteraksi dengan API REST WOOCommerce dengan bahasa pengaturcaraan Python. Kami melihat bagaimana untuk menghasilkan kelayakan API, bagaimana memasang pakej dan produk Python "WooCommerce" yang menyediakan kaedah yang berguna yang memudahkan kod yang harus kita tulis untuk berinteraksi dengan mereka, dan beberapa contoh cara membuat, membaca, memadam dan mengemas kini kategori dan produk WooCommerce. Sila rujuk dokumentasi API REST WOOCommerce rasmi untuk gambaran keseluruhan keupayaan API.

Tutorial Linux Berkaitan:

  • Ubuntu 20.04: WordPress dengan pemasangan nginx
  • Ubuntu 20.04 WordPress dengan pemasangan Apache
  • Pemasangan WordPress OpenLiteSpeed
  • Pengenalan kepada Automasi, Alat dan Teknik Linux
  • Perkara yang hendak dipasang di Ubuntu 20.04
  • Distro linux terbaik untuk pemaju
  • Menguasai Gelung Skrip Bash
  • Senarai alat Kali Linux terbaik untuk ujian penembusan dan ..
  • Gunakan WPSCAN untuk mengimbas WordPress untuk kelemahan di Kali
  • Mint 20: Lebih baik daripada Ubuntu dan Microsoft Windows?