Wie man mit der Woocommerce -REST -API mit Python arbeitet

Wie man mit der Woocommerce -REST -API mit Python arbeitet

WordPress ist wahrscheinlich das am häufigsten verwendete CMS der Welt (es wird geschätzt, dass fast 40% aller Websites mithilfe der Plattform erstellt werden): Es ist sehr einfach zu installieren und zu verwenden und ermöglicht es auch Nichtentwicklern, in wenigen Minuten eine Website zu erstellen.
WordPress hat ein sehr großes Plugin -Ökosystem; Einer der berühmtesten ist Woocommerce, Dadurch können wir eine Website in wenigen Schritten in einen Online -Shop verwandeln. Das Plugin verwendet die WordPress -REST -API -Infrastruktur. In diesem Tutorial sehen wir, wie Sie mit der WooCommerce -API mit der Python -Programmiersprache interagieren und zeigen, wie Sie Produkte und Kategorien auflisten, erstellen, aktualisieren und löschen können.

In diesem Tutorial lernen Sie:

  • So generieren Sie Woocommerce -REST -API -Anmeldeinformationen und ermöglichen hübschen Permalinks
  • So interagieren Sie mit der WooCommerce -REST -API mit Python und dem WooCommerce -Paket
  • So erhalten Sie Informationen über die vorhandenen WooCommerce -Kategorien, erstellen, aktualisieren und löschen Sie sie
  • So erhalten Sie Informationen über die vorhandenen WooCommerce -Produkte
  • So erstellen Sie einfache und variable Produkte mit Variationen
  • So aktualisieren und löschen Sie ein Produkt

Softwareanforderungen und Konventionen verwendet

Softwareanforderungen und Linux -Befehlszeilenkonventionen
Kategorie Anforderungen, Konventionen oder Softwareversion verwendet
System Verteilung unabhängig
Software Python3
Andere Eine Arbeitsinstanz von WordPress mit dem installierten WooCommerce -Plugin
Konventionen # - Erfordert, dass gegebene Linux -Commands mit Root -Berechtigungen entweder direkt als Stammbenutzer oder mithilfe von verwendet werden können sudo Befehl
US

Generierung von WooCommerce Rest API -Anmeldeinformationen

Für dieses Tutorial gehen wir davon aus. Das erste, was wir tun müssen, ist, unsere WooCommerce -REST -API -Anmeldeinformationen zu generieren: Sie werden es sein
In jeder HTTP -Anfrage werden wir ausführen. Das Erstellen der Anmeldeinformationen ist sehr einfach. Alles was wir tun müssen, ist zu navigieren zu navigieren WooCommerce -> Einstellungen Im vertikalen Menü finden wir auf der Seite WordPress Administration:

Sobald Sie auf der Seite Plugin -Einstellungen auf die Registerkarte "Erweitert" klicken, klicken wir und dann auf die Registerkarte "Erweitert" und dann auf
Der Link „Rest API“, der sich im Registerkartemenü befindet. Auf der Seite, die wird
Wenn Sie geöffnet werden, klicken wir auf die Schaltfläche „Eine API -Taste erstellen“:

Wir werden mit dem Formular für die Erstellung von API -Schlüssel präsentiert und werden zum Einfügen aufgefordert:

  • Eine Beschreibung, die als freundlicher Name verwendet wird, um die Anmeldeinformationen leicht zu identifizieren
  • Der Benutzer, der den Schlüssel nutzt
  • Die Berechtigungen, die dem Schlüssel erteilt werden (nur lesen | nur | lesen und schreiben)

Beachten Sie, dass wir die Möglichkeit haben, mehrere Schlüssel mit unterschiedlichen Berechtigungen zu erstellen, um die für einen bestimmten Benutzer gewährten Vorgänge zu begrenzen. Für dieses Tutorial erstellen wir einen API -Schlüssel mit Lese- und Schreibberechtigungen:

Wenn wir fertig sind, klicken wir auf die Schaltfläche „API -Taste generieren“ und beide Verbraucherschlüssel und das Verbrauchergeheimnis wird uns generiert und angezeigt. Wir müssen sicherstellen, dass wir beide an einem sicheren Ort aufbewahren Sobald wir die Seite verlassen haben, werden sie versteckt sein:

Sobald unsere Schlüssel generiert sind, gibt es eine weitere Aktion, die wir aus dem WordPress Administration -Backend ausführen müssen: Wir müssen sicherstellen, dass das Recht das Recht hat Ziemlich Permalink werden verwendet, sonst funktionieren die API -Endpunkte nicht. Um die Aufgabe zu erfüllen, zu der wir navigieren Einstellungen -> Permalinks Im linken vertikalen Menü von WordPress. Im Menü Seiten wählen wir "POSTENNAMMEN" und speichern dann die Änderungen:



Das ist alles, was wir WordPress-Seite tun müssen. Im nächsten Abschnitt werden wir sehen, wie man mit der WooCommerce -REST -APIs mit Python interagiert.

Installieren Sie das WooCommerce -Paket

In diesem Abschnitt werden wir sehen, wie man mit der WooCommerce -REST -API mit der Python -Programmiersprache interagiert. Anstatt den Code zu schreiben, müssen wir die HTTP -Anfragen von Grund auf neu ausführen, wir werden das verwenden Woocommerce Paket, das unsere Arbeit erleichtert. Um das Paket zu installieren, das wir verwenden können Pip, Der Python -Paketmanager. Wenn wir in einer virtuellen Umgebung arbeiten, die mithilfe verwendet wird Venv, Wir können rennen:

$ pip installieren Sie woocommerce 

Wenn wir keine virtuelle Umgebung verwenden, sollten wir zumindest das Paket nur für unseren Benutzer installieren. Um das zu tun, fügen wir das hinzu --Benutzer Option zum Befehl, der wird:

$ pip Installieren Sie WooCommerce -Benutzer 

Einmal der Woocommerce Das Paket ist installiert, wir können mit dem Schreiben unseres Codes beginnen.

Initialisierung der API -Klasse

Das erste, was wir tun müssen, um mit der WooCommerce -REST -API mit Python und der Woocommerce Paket ist das Importieren der API Klasse und erstellen Sie eine Instanz davon, wie unten angezeigt:

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

Der API Der Klassenkonstruktor nimmt drei obligatorische Argumente ein:

  1. Die URL unserer Website
  2. Der WOOCommerce REST -API -Verbraucherschlüssel
  3. Das WooCommerce REST -API -Verbrauchergeheimnis

Im obigen Beispiel können Sie sehen, dass wir ein drittes Argument bestanden haben, Auszeit: Es ist optional und standardmäßig zu 5 Sekunden. In diesem Fall bieten wir einen größeren Wert dafür: 50. In meinem Fall war dies erforderlich, damit die Anfragen erfolgreich waren, aber in einem realen
Lebensszenario, wir sollten es nicht ändern müssen, damit es insgesamt weggelassen werden kann.

Sobald wir eine Instanz der erstellen API Klasse, in diesem Fall auf die von der verwiesen WCAPI Variable können wir fortfahren und unsere API -Anrufe tätigen.

Kategorien

Für dieses Tutorial arbeiten wir nur nur mit Kategorien und Produkten. Die vorgesehenen Beispiele sollten ausreichen, um dem Leser eine Vorstellung davon zu geben, wie die API funktioniert. Beginnen wir mit Kategorien, da sie bereits vorhanden sind, um beim Erstellen von Produkten verwiesen zu werden.

Erstellen einer Kategorie

Als erstes Beispiel werden wir sehen, wie man eine Kategorie erstellt. Wir beginnen die Kategoriedaten in einem Python -Wörterbuch zu definieren:

category_data = "name": "Beispielkategorie", "Beschreibung": "Nur ein Kategoriebeispiel" 
Kopieren

Der einzige obligatorische Parameter, den wir beim Erstellen einer Kategorie verwenden sollten, ist Name, die als Zeichenfolge bereitgestellt werden sollte. Im obigen Beispiel haben wir auch die angegeben Beschreibung Schlüssel, um eine kurze Beschreibung der Kategorie bereitzustellen (Sie können die offizielle Dokumentation für die vollständige Liste der Kategorieneigenschaften überprüfen).

Sobald wir das Wörterbuch erstellt haben, das die Kategoriedaten enthält, können wir die API -Anforderung zum Erstellen der Kategorie ausführen, die die verwendet POST HTTP -Verb:

Antwort = WCAPI.post ("Produkte/Kategorien", category_data) 
Kopieren

Wenn die Anfrage ohne Fehler ausgeführt wird, rufen Sie die auf, die aufzurufen JSON Methode auf der Antwort Objekt gibt die als Python -Wörterbuch formatierte Serverantwort zurück, in der die Daten beschrieben werden, die zum Erstellen der Kategorie verwendet werden: Dies enthält die Eindeutige ID Wird verwendet, um die Kategorie in der Datenbank zu speichern. Dies ist eine wesentliche Information, wenn wir sie später verweisen möchten (z. B. beim Erstellen einer Unterkategorie oder eines Produkts, das in die Kategorie selbst aufgenommen werden sollte). In unserem Fall wird hier vom Server zurückgegeben:

'ID': 17, 'Name': 'Beispielkategorie', 'Slug': 'Beispiel-Kategorie', 'Parent': 0, 'Beschreibung': 'Nur ein Kategoriebeispiel', 'Anzeige': 'Standard' , 'Bild': Keine, 'Menü_order': 0, 'count': 0, '_links': 'self': ['href': 'http: // localhost/wp-json/wc/v3/products /Kategorien/17 '],' Sammlung ': [' href ':' http: // localhost/wp-json/wc/v3/products/kategorien '] 
Kopieren

Wie wir sehen können, wurde die Kategorie mit gespeichert 17 als eindeutige ID.

Aktualisieren einer Kategorie

Um eine vorhandene Kategorie zu aktualisieren, müssen wir sie über ihre verweisen Ausweis, Dies sollte als Teil des Anforderungsendpunkts enthalten sein. Zuerst erstellen wir ein Wörterbuch, das die Kategoriendaten enthält, die aktualisiert werden sollten. Im folgenden Beispiel ändern wir die Kategorie beschreibung:

category_data = "Beschreibung": "Modified Category Beispiel" 
Kopieren

Sobald die Daten fertig sind setzen Methode der WCAPI Objekt, das, wie Sie erraten können, eine Anfrage mit der Anforderung sendet SETZEN HTTP -Verb:

Antwort = WCAPI.Put ('Produkte/Kategorien/17', Category_Data) 
Kopieren

Wie zuvor, indem Sie die ausführen JSON Methode der Antwort Objekt, wir werden die vom Server zurückgegebenen aktualisierten Kategorieinformationen abrufen, die bereits in ein Python -Wörterbuch konvertiert wurden:

'id': 17, 'name': 'Beispielkategorie', 'Slug': 'Beispiel-Kategorie', 'Parent': 0, 'Beschreibung': 'Modified Category Beispiel', 'Anzeige': 'Standard', 'Bild': Keine, 'Menü_order': 0, 'count': 0, '_links': 'self': ['href': 'http: // localhost/wp-json/wc/v3/products/products/ Kategorien/17 '],' Sammlung ': [' href ':' http: // localhost/wp-json/wc/v3/products/kategorien '] 
Kopieren

Informationen zu allen oder einem bestimmten Kategorien erhalten

Eine Liste aller existierenden Kategorien zu erhalten, ist wirklich einfach. Alles was wir tun müssen, ist, die auszuführen erhalten Methode der WCAPI Objekt, das wir zuvor erstellt haben, und geben Sie den richtigen Endpunkt an (Produkte/Kategorien):

Antwort = WCAPI.get ('Produkte/Kategorien') 
Kopieren

Wie zuvor kann der Inhalt der Antwort als Python -Wörterbuch zugegriffen werden, indem die Ausführung des JSON Methode auf dem Antwortobjekt. In diesem Fall gibt die Methode Folgendes zurück:

['ID': 17, 'Name': 'Beispielkategorie', 'Slug': 'Beispiel-Kategorie', 'Parent': 0, 'Beschreibung': 'Nur ein Kategoriebeispiel', 'Anzeige': 'Standard ',' Image ': Keine,' Menü_order ': 0,' count ': 0,' _links ': ' self ': [' href ':' http: // localhost/wp-json/wc/v3/ Produkte/Kategorien/17 '],' Sammlung ': [' href ':' http: // localhost/wp-json/wc/v3/products/kategorien '], ' id ': 16, 'Name': 'Test', 'Slug': 'Test', 'Parent': 0, 'Beschreibung': 'Ein Test', 'Anzeige': 'Default', 'Image': none, mseu_order ': 0 , 'count': 0, '_links': 'self': ['href': 'http: // localhost/wp-json/wc/v3/products/kategorien/16'], 'Sammlung': ['href': 'http: // localhost/wp-json/wc/v3/products/kategorien'], 'id': 15, 'name': 'Uncategorized', 'Slug': ' Uncategorized ',' Parent ': 0,' Beschreibung ': ",' Anzeige ':' Standard ',' Image ': none,' mseu_order ': 0,' count ': 0,' _links ': ' self ': ['href': 'http:// localhost/wp-json/wc/v3/products/kategorien/15 '],' sammeln ': [' href ':' http: // localhost/wp-json/wc/v3/produkte/kategorien '' ]] 
Kopieren

Wenn wir Informationen über eine bestimmte Kategorie abrufen möchten, müssen wir nur ihre ID als Teil des Endpunkts bereitstellen. Zum Beispiel, um Details zur Kategorie mit ID zu erhalten 16 (Test), wir würden rennen:

Antwort = WCAPI.get ('Produkte/Kategorien/16') 
Kopieren

Löschen einer Kategorie

Der Ausweis einer Kategorie ist auch erforderlich, um sie zu verweisen, wenn wir sie löschen möchten. In diesen Fällen sollten wir eine HTTP -Anfrage ausführen, die die verwendet LÖSCHEN HTTP -Verb, das erneut den Kategorie -Kennung als Teil des Endpunkts bereitstellt. Um die Kategorie "Test" zu löschen, würden wir zum Beispiel ausgeführt:

Antwort = WCAPI.delete ('Produkte/Kategorien/16', param = 'Kraft', true) 
Kopieren

Beim Ausführen der löschen Methode zum Löschen einer Kategorie müssen wir auch die verwenden Gewalt Parameter und auf einstellen WAHR. Das ist erforderlich, Da sie eine Kategorie in den Müll verlagert, wird sie nicht über REST -API unterstützt; Die Ressource wird dauerhaft entfernt. Wenn alles wie in den vorherigen Beispielen wie erwartet läuft, rufen Sie die JSON Methode im Antwortobjekt gibt ein Wörterbuch zurück, das die entfernten Ressourcendaten enthält.

Mehrere Aktionen gleichzeitig ausführen

Angenommen, wir möchten mehrere Aktionen gleichzeitig ausführen: Wir möchten vielleicht einige Kategorien löschen, einige neue erstellen und andere aktualisieren. Wie können wir es gleichzeitig tun, indem wir nur eine Anfrage ausführen?? Wir müssen lediglich eine Anfrage mit der Anfrage senden POST HTTP -Verb zum Produkte/Kategorien/Charge Endpunkt mit dem Post Methode der WCAPI Objekt. Hier ist ein Beispiel:

batch_data = "create": ["name": "Neue Kategorie 1", "Beschreibung": "Erste neue Kategorie", "Name": "Neue Kategorie 2", "Beschreibung": "Zweite neue Kategorie" ], "update": ["id": 17, "Beschreibung": "Aktualisierte Beschreibung"], "Löschen": [15] 
Kopieren

Die Stapeldaten werden wie in den vorherigen Beispielen mit einem Python -Wörterbuch definiert, genau wie in den vorherigen Beispielen. In diesem Wörterbuch haben wir einige Schlüssel, die nach den Aktionen benannt werden, die ausgeführt werden sollten:

  • erstellen
  • aktualisieren
  • löschen

Der dem dem zugewiesene Wert erstellen Der Schlüssel muss eine Liste von Wörterbüchern sein, die jeweils die Daten beschreiben, die zum Erstellen einer neuen Kategorie verwendet werden sollten. In diesem Fall haben wir zwei neue Kategorien mit dem Namen "New Category 1" und "New Kategorie 2" erstellt.

Ebenso der Wert, der dem entspricht aktualisieren Der Schlüssel muss eine Liste von Wörterbüchern sein, die jeweils die Daten beschreiben, die zur Aktualisierung einer bestimmten Kategorie verwendet werden sollten, die durch ihre identifiziert wurde Ausweis.

Schließlich der Wert, der dem zugeordnet ist löschen Der Schlüssel muss eine Liste der sein Ausweis der Kategorien, die gelöscht werden sollten. In diesem Fall haben wir beschlossen, die Kategorie mit zu entfernen 16 als eindeutige Kennung. Sobald unsere Daten fertig sind, führen wir die aus
Anfrage:

Antwort = WCAPI.Post ('Produkte/Kategorien/Batch', batch_data) 
Kopieren

Der Antwort Das Objekt enthält die objektorientierte Darstellung der vom Server gesendeten Antwort. Wie immer durch Ausführung der JSON Methode dieses Objekts Wir werden das Python -Wörterbuch mit einer Zusammenfassung der durchgeführten Operation und der Beschreibung der beteiligten Kategorien abrufen:

'create': ['id': 18, 'name': 'Neue Kategorie 1', 'Slug': 'New-Category-1', 'Parent': 0, 'Beschreibung': 'Erste neue Kategorie' ' , 'Anzeige': 'Default', 'Image': none, 'mseu_order': 0, 'count': 0, '_links': 'self': ['href': 'http: // localhost/wp -json/wc/v3/products/kategorien/18 '],' Sammlung ': [' href ':' http: // localhost/wp-json/wc/v3/products/categories '], 'ID': 19, 'Name': 'Neue Kategorie 2', 'Slug': 'New-Category-2', 'Parent': 0, 'Beschreibung': 'Zweite neue Kategorie', 'Display': ' Standard ',' Image ': Keine,' Menü_order ': 0,' count ': 0,' _links ': ' self ': [' href ':' http: // localhost/wp-json/wc/v3 /Produkte/Kategorien/19 '],' Sammlung ': [' href ':' http: // localhost/wp-json/wc/v3/products/categories ']],' update ': [ 'ID': 17, 'Name': 'Beispielkategorie', 'Slug': 'Beispiel-Kategorie', 'Parent': 0, 'Beschreibung': 'Aktualisierte Beschreibung', 'Anzeige': 'Standard', '' Bild ': Keine,'Menü_order': 0, 'count': 0, '_links': 'self': ['href': 'http: // localhost/wp-json/wc/v3/products/categories/17'] , 'Sammlung': ['href': 'http: // localhost/wp-json/wc/v3/products/kategorien']], 'delete': ['id': 16, 'Name ':' test ',' slug ':' test ',' übergeordnet ': 0,' Beschreibung ':' ein Test ',' Anzeige ':' Standard ',' Image ': none, mseu_order': 0, ',' count ': 0,' _links ': ' self ': [' href ':' http: // localhost/wp-json/wc/v3/products/kategorien/16 '],' Sammlung ': [ 'href': 'http: // localhost/wp-json/wc/v3/products/kategorien']] 
Kopieren

Produkte

Bis jetzt haben wir gesehen, wie man die Basis ausführt Crud Operationen zu Kategorien. Lassen Sie uns jetzt mit Produkten arbeiten. Der Code, der verwendet werden sollte, ist ziemlich ähnlich; Was ändert sich natürlich die API -Endpunkte und die Attribute, die sollten
beim Erstellen eines Produkts verwendet werden.

Erstellen eines einfachen Produkts

Das erste Beispiel, das wir sehen werden, ist, wie Sie ein „einfaches“ Produkt ohne Abweichungen erstellen (Variationen sind leicht unterschiedliche Versionen desselben Produkts, beispielsweise auf verschiedenen Größen oder Farben). Zuerst definieren wir das Produkt
Daten:

product_data = "name": "Einfaches Beispielprodukt", "Typ": "Einfach", "regulal_price": "22.50 ". 17], "Bilder": ["src": "https: // linuxconfig.org/bilder/linuxconfig_logo.PNG "," Alt ":" Beispiel-Image "] 
Kopieren

Schauen wir uns die Produktinformationen an, die wir in der verwendeten Produktdaten Wörterbuch. Wir haben das Produkt definiert Name (Einfaches Beispielprodukt), dann haben wir es angegeben Typ, Was in diesem Fall „einfach“ ist, da wir die Liste für ein physisches Produkt ohne Variationen erstellen. Beide Informationen müssen als angegeben werden Saiten.

Wir haben auch das Produkt angegeben regulärer Preis (String), die Bestandsmenge (Ganzzahl), die kurze Beschreibung und der reguläre Beschreibung, Beide als Saiten: Diese werden in verschiedenen Teilen der Seite angezeigt, wenn das Produkt
wird von einem potenziellen Kunden visualisiert.

Das nächste, was wir getan haben, war die Liste der Produktkategorien, unter denen das Produkt enthalten sein sollte. Jede Kategorie sollte durch ihre verwiesen werden Ausweis (ganze Zahl). In diesem Fall haben wir uns gerade auf die Kategorie verwiesen mit 17 als einzigartig
Kennung („Beispielkategorie“).

Das Letzte, was wir definiert haben, war die Liste der Bilder, die mit dem Produkt in Verbindung gebracht werden sollten. Jedes Bild wird unter Verwendung eines Wörterbuchs beschrieben. Hier haben wir gerade ein Bild verwendet, um seine bereitzustellen src (String) und Alt (der alternative Text als
ein Faden).

Die, die wir verwendet haben, sind nur eine sehr kleine Teilmenge aller möglichen Produkteigenschaften. Sobald unsere Daten fertig sind, senden wir eine POST HTTP -Anfrage verwendet die Post Methode der WCAPI Objekt. Der Endpunkt, an den die Anfrage gesendet werden soll, ist
"Produkte":

Antwort = WCAPI.Post ('Produkte', product_data) 
Kopieren

Wenn die Anfrage erfolgreich ist, durch Ausführung Antwort.JSON () Wir erhalten ein Python -Wörterbuch, das die Informationen des neu erstellten Produkts enthält:

'ID': 29, 'Name': 'Einfaches Beispielprodukt', 'Slug': 'Simple-Example-Product', '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_gmt ': ist nur ein Beispielprodukt, das mit der WooCommerce Rest -API erstellt wurde.50 ',' regul_price ': '22.50 ',' sale_price ': ",' date_on_Sale_from ': none,' Date_on_Sale_From_Gmt ': Keine,' Date_on_Sale_to ': Keine, Date_on_Sale_to_gmt': none, auf_Sale ': false,' kauf- , 'virtual': false, 'herunterladbar': false, 'downloads': [], 'download_limit': -1, 'download_expiry': -1, 'external_url': ", 'button_text':", 'tax_status': 'steuerpflichtig', 'Tax_class': ", 'Managing_Stock': Falsch, 'stock_quantity': none, 'apellorders': 'nein', 'Backorders_Allowed': false, 'backordered': false, 'sold_individual': false, 'Gewicht' ': ",' Dimensions ': ' Länge ':",' width ': ",' Höhe ':",' Shipping_Required ': true,' Shipping_taxable ': true,' Shipping_class ': ",' Shipping_class_id ': 0. ': [' id ': 17,' name ':' Beispielkategorie ',' Slug ':'Beispiel-Kategorie'], 'Tags': [], 'Bilder': ['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/uploads/2021/03/linuxconfig_logo-3.png ',' name ':' linuxconfig_logo-3.PNG ',' Alt ':' Beispiel-Image '],' Attribute ': [],' default_attributes ': [],' Variationen ': [],' grupped_products ': [],' mseu_order ': 0,', ' price_html ': '22, 50 €', 'Related_ids': [], 'meta_data': [], 'stock_status': 'inock', '_links': 'self': ['href': 'http: // localhost/wp-json/wc/v3/products/29 '],' sammeln ': [' href ':' http: // localhost/wp-json/wc/v3/products '] 
Kopieren

Erstellen eines variablen Produkts und seiner Variationen

Im vorherigen Beispiel haben wir ein „einfaches“ Produkt erstellt. Lassen Sie uns nun sehen, wie Sie ein „variables“ Produkt erstellen. Die grundlegende Definition ist die gleiche wie die oben verwendete, die wir oben verwendet haben. Wir müssen lediglich die Attribute hinzufügen, die zusammen die Produktvariationen darstellen. Angenommen, unser Produkt ist ein T-Shirt, das in mehreren Farben und Größen erhältlich ist: Jede Variation wird durch eine bestimmte Farbe zusammengestellt, die mit einer bestimmten Größe verbunden ist:

VARIABLE_PRODUCT_DATA = "Name": "Variable Beispielprodukt", "Typ": "Variable", "Short_Description": "Nur ein Variablenprodukt", "Beschreibung": "Dies ist ein Variablenprodukt, das mit der WooCommerce Rest -API erstellt wurde". , "Kategorien": ["ID": 17], "Bilder": ["Src": "https: // linuxconfig.org/bilder/linuxconfig_logo.Png "," Alt ":" Beispiel-Image "]," Attribute ": [" Name ":" Farbe "," sichtbar ": wahr," Variation ": wahr," Optionen ": [" schwarz ", "White"], "Name": "Größe", "sichtbar": wahr, "Variation": wahr, "Optionen": ["S", "M", "L"]] 
Kopieren

Wir haben eine Liste von Attributen unter Verwendung des Schlüsselschlüssels "Attribute" im Produktwörterbuch bereitgestellt. Das erste Attribut heißt "Farbe" und die zweite "Größe". Wir setzen beide so sichtbar und erklärten, dass sie für Variationen verwendet werden sollten, indem sie zugewiesen werden WAHR als Wert der Variation Schlüssel in den Wörterbüchern, die sie definieren. Die mit der zugeordnete Liste Optionen Schlüssel enthält alle möglichen Werte, die jedes Attribute annehmen könnte.

Über ein Produktattribute: Wir können beide verwenden global Und Nicht-Global Attribute. Was ist der Unterschied? Attribute, die nur mit Namen angegeben sind, wie wir im obigen Beispiel getan haben. Wenn wir das gleiche Attribut für mehrere Produkte verwenden wollten, definieren wir es besser im Voraus mit einem bestimmten Anruf und verweisen Sie dann durch ihre ID. Angenommen, wir haben das geschaffen Farbe Und Größe globale Attribute, und sie haben jeweils 1 Und 2 Als einzigartige Kennungen würden wir schreiben:

"Attribute": ["ID": 1 "sichtbar": wahr, "Variation": wahr, "Optionen": ["schwarz", "weiß"], "id": 2, "sichtbar": true: true , "Variation": wahr, "Optionen": ["S", "M", "L"]] 
Kopieren

Sehr wichtig: Der Code erstellt nicht die tatsächlichen Produktvariationen, die mit separaten Anfragen definiert werden sollten.

Sie können feststellen, dass wir ausgelassen haben, um die Produktaktienmenge bereitzustellen, da der Gesamtbestandswert durch die Summe der Aktienmenge jeder Variation dargestellt wird.

Der nächste Schritt besteht darin, die tatsächlichen Produktvariationen zu erstellen. Wenn wir die Variationsdaten definieren, sollten wir dieselben Attribute verwenden, die wir in der Anforderung definiert haben, mit der wir das Variable -Produkt erstellt haben. Hier ist ein Beispiel, wie Sie eine Variation erstellen:

product_variation_data = "regelmäßig_price": "18.00 "," Stock_quantity ": 10," Attribute ": [" ID ": 1," Option ":" White ", " ID ": 2," Option ":" S "] 
Kopieren

Wir haben die Variation definiert, die durch die Kombination des "weißen" Farbattributs und des "S" -Schribsattributs erzeugt wird. Wir setzen seine regulärer Preis Und Bestandsmenge. Wir sollten nun die Anfrage mit dem folgenden Code senden:

Antwort = WCAPI.Post ('Products/34/Variationen', product_variation_data) 
Kopieren

Wie Sie im Snippet oben sehen können, haben wir als Endpunkt für die Anfrage verwendet Produkte/34/Variationen, Wo 34 ist der Ausweis des übergeordneten Produkts, das wir zuvor erstellt haben.

Informationen zu allen oder einem bestimmten Produkten anfordern

Genau wie für Kategorien können wir Informationen über alle vorhandenen Produkte über die WooCommerce Rest API anfordern:

Antwort = WCAPI.Get ('Produkte') 
Kopieren

Die Anfrage könnte durch die Verwendung von weiter angepasst werden Parameter: mit dem pro Seite Der Parameter beispielsweise können wir angeben, wie viele Elemente im Ergebnissatz einer einzelnen Anforderung zurückgegeben werden sollten (Standard ist der Standard 10) und mit dem Buchseite Parameter Wir können die spezifische Seite anfordern, die zurückgegeben werden sollte (Standardeinstellung ist 1). Um die Anzahl der in einer einzelnen Anfrage zurückgegebenen Elemente zu erweitern, würden wir schreiben:

Antwort = WCAPI.get ('products', params = 'per_page': 20) 
Kopieren

Anfordern von Informationen über ein bestimmtes Produkt ist genauso einfach: Wir müssen nur seine angeben Ausweis im Anforderungsendpunkt:

Antwort = WCAPI.Get ('Products/34') 
Kopieren

Aktualisieren eines Produkts

Die zur Aktualisierung eines Produkts verwendete Logik ist das gleiche, mit dem wir eine Kategorie aktualisiert haben (und alle anderen „Entitäten“, die über REST -API verwaltet werden). Wir geben die Produktdaten an, die aktualisiert werden sollten, und senden a SETZEN Anfrage an den Endpunkt, der das Produkt enthält Ausweis:

Aktualisiert_Product_data = "Beschreibung": "Dies ist die aktualisierte Variable -Produktbeschreibung" response = WCAPI.Put ('Products/34', aktualisiert_produkt_data) 
Kopieren

Ein Produkt löschen

Um ein Produkt zu löschen, müssen wir lediglich eine senden, um eine zu senden LÖSCHEN Anfrage an den Endpunkt, der das Produkt enthält Ausweis:

Antwort = WCAPI.löschen ('Produkte/34') 
Kopieren

Hier können Sie feststellen, dass im Gegensatz zu den Kategorien die Verwendung des Gewalt Parameter ist nicht obligatorisch. Wenn der Parameter nicht verwendet wird, wird das Produkt nur in den „Müll“ verschoben, und es ist daher möglich, es in letzter Zeit davon abzurufen. Wenn der Gewalt Parameter wird verwendet und auf eingestellt auf WAHR, Stattdessen wird das Produkt dauerhaft entfernt.

Schlussfolgerungen

In diesem Tutorial haben wir einige Beispiele dafür gesehen, wie man mit der WooCommerce Rest -API mit der Python -Programmiersprache interagiert. Wir haben gesehen, wie sie API -Anmeldeinformationen generieren, wie man das Python -Paket „Woocommerce“ installiert, das nützliche Methoden bietet, die den Code vereinfachen, den wir schreiben sollten, um mit ihnen zu interagieren. Bitte wenden Sie sich an die offizielle WooCommerce -REST -API -Dokumentation, um einen vollständigen Überblick über die API -Funktionen zu erhalten.

Verwandte Linux -Tutorials:

  • Ubuntu 20.04: WordPress mit Nginx -Installation
  • Ubuntu 20.04 WordPress mit Apache -Installation
  • OpenLiteSpeed ​​WordPress Installation
  • Eine Einführung in Linux -Automatisierung, Tools und Techniken
  • Dinge zu installieren auf Ubuntu 20.04
  • Beste Linux -Distribution für Entwickler
  • Mastering -Bash -Skriptschleifen beherrschen
  • Liste der besten Kali -Linux -Tools für Penetrationstests und…
  • Verwenden Sie WPSCAN, um WordPress nach Sicherheitslücken auf Kali zu scannen
  • Mint 20: Besser als Ubuntu und Microsoft Windows?