Comment travailler avec l'API WooCommerce REST avec Python

Comment travailler avec l'API WooCommerce REST avec Python

WordPress est probablement le CMS le plus utilisé au monde (on estime que près de 40% de tous les sites Web sont construits en utilisant la plate-forme): il est très facile à installer et à utiliser, et permet même aux non-développeurs de créer un site Web en quelques minutes.
WordPress a un très grand écosystème de plugin; L'un des plus célèbres est Woocommerce, ce qui nous permet de transformer un site Web en une boutique en ligne en quelques étapes. Le plugin utilise l'infrastructure API WordPress REST; Dans ce tutoriel, nous verrons comment interagir avec l'API WooCommerce à l'aide du langage de programmation Python, montrant comment lister, créer, mettre à jour et supprimer des produits et catégories.

Dans ce tutoriel, vous apprendrez:

  • Comment générer des informations d'identification API WooCommerce REST et activer de jolies permaliens
  • Comment interagir avec l'API WooCommerce REST à l'aide de Python et du package WooCommerce
  • Comment obtenir des informations sur les catégories WooCommerce existantes, les créer, les mettre à jour et les supprimer
  • Comment obtenir des informations sur les produits WooCommerce existants
  • Comment créer des produits simples et variables avec des variations
  • Comment mettre à jour et supprimer un produit

Exigences et conventions logicielles utilisées

Exigences logicielles et conventions de ligne de commande Linux
Catégorie Exigences, conventions ou version logicielle utilisée
Système Distribution indépendante
Logiciel Python3
Autre Une instance de travail de WordPress avec le plugin WooCommerce installé
Conventions # - nécessite que les commandes Linux sont exécutées avec des privilèges racine soit directement en tant qu'utilisateur racine, soit par l'utilisation de Sudo commande
$ - Exige que les commandes Linux sont exécutées en tant qu'utilisateur non privilégié régulier

Générer des informations d'identification de l'API REST WOOCommerce

Pour le bien de ce tutoriel, nous supposerons que nous avons une instance de travail de WordPress avec le plugin WooCommerce déjà installé. La première chose que nous devons faire est de générer nos informations d'identification API WOOCommerce REST: ce sera
utilisé dans chaque demande HTTP que nous effectuerons. Générer les informations d'identification, c'est très facile; Tout ce que nous avons à faire est de naviguer vers WooCommerce -> Paramètres Dans le menu vertical, nous pouvons trouver dans la page d'administration WordPress:

Une fois dans la page des paramètres du plugin, nous cliquons sur l'onglet «avancé», puis sur
Le lien «REST API», qui est situé dans le menu Tab. Dans la page qui
Soyez ouvert, nous cliquons sur le bouton «Créer une touche API»:

Nous serons présentés avec le formulaire de création de clés de l'API, et nous serons invités à insérer:

  • Une description, qui sera utilisée comme un nom convivial pour identifier facilement les informations d'identification
  • L'utilisateur qui utilisera la clé
  • Les autorisations qui seront accordées à la clé (lire uniquement | Écrire uniquement | lire et écrire)

Notez que nous avons la possibilité de créer plusieurs clés avec différentes autorisations, afin de limiter les opérations accordées pour un utilisateur spécifique. Pour le bien de ce tutoriel, nous créerons une clé API avec des autorisations de lecture et d'écriture:

Lorsque nous sommes prêts, nous cliquons sur le bouton «Générer la touche API» et les deux La clé du consommateur et le Secret des consommateurs sera généré et affiché à nous. Nous devons nous assurer que nous stockons les deux dans un endroit sûr, car Une fois que nous quitterons la page, ils seront cachés:

Une fois nos clés générées, il y a une autre action que nous devons effectuer à partir du backend d'administration WordPress: nous devons nous assurer que le droit Jolie liaison permanente sont utilisés, sinon les points de terminaison de l'API ne fonctionneront pas. Pour accomplir la tâche vers laquelle nous naviguons Paramètres -> Permaliens Dans le menu vertical de gauche de WordPress. Dans le menu de la page, nous sélectionnons «Nom de publication», puis nous enregistrons les modifications:



C'est tout ce que nous avons à faire côté wordpress. Dans la section suivante, nous verrons comment interagir avec les API WooCommerce REST en utilisant Python.

Installez le package WooCommerce

Dans cette section, nous verrons comment interagir avec l'API WooCommerce REST en utilisant le langage de programmation Python. Au lieu d'écrire le code dont nous avons besoin pour effectuer les demandes HTTP à partir de zéro, nous utiliserons le woocommerce Package, qui facilitera notre travail. Pour installer le package que nous pouvons utiliser pépin, le gestionnaire de packages Python. Si nous travaillons dans un environnement virtuel créé en utilisant venv, Nous pouvons courir:

$ pip install woocommerce 

Si nous n'utilisons pas un environnement virtuel, au moins nous devons installer le package pour notre utilisateur uniquement. Pour ce faire, nous ajoutons le --utilisateur Option à la commande, qui devient:

$ pip install woocommerce --User 

Une fois la woocommerce le package est installé, nous pouvons commencer à écrire notre code.

Initialisation de la classe API

La première chose que nous devons faire pour interagir avec l'API WooCommerce REST, en utilisant Python et le woocommerce package, c'est importer le API classe et en créer une instance, comme affiché ci-dessous:

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

Le API Le constructeur de classe prend trois arguments obligatoires:

  1. L'URL de notre site
  2. La clé de consommation API WooCommerce REST
  3. Le secret de consommation API REST WOOCOMMERCE

Dans l'exemple ci-dessus, vous pouvez voir que nous avons passé un troisième argument, temps libre: il est facultatif et par défaut 5 secondes. Dans ce cas, nous offrons une valeur plus grande pour cela: 50. Dans mon cas, cela était nécessaire pour que les demandes réussissent, mais dans un vrai
Scénario de vie, nous ne devrions pas avoir besoin de le changer, donc il peut être omis complètement.

Une fois que nous avons créé une instance du API classe, dans ce cas référencé par le WCAPI variable, nous pouvons procéder et passer nos appels API.

Catégories

Pour le bien de ce tutoriel, nous ne travaillerons qu'avec des catégories et des produits. Les exemples fournis devraient être suffisants pour donner au lecteur une idée du fonctionnement de l'API. Commençons par les catégories, car ils devraient préexister afin d'être référencés lors de la création de produits.

Créer une catégorie

Comme premier exemple, nous verrons comment créer une catégorie. Nous commençons à définir les données de catégorie dans un dictionnaire Python:

catégorie_data = "nom": "Exemple de catégorie", "Description": "Juste un exemple de catégorie" 
Copie

Le seul paramètre obligatoire que nous devons utiliser lors de la création d'une catégorie, est nom, qui doit être fourni en tant que chaîne. Dans l'exemple ci-dessus, nous avons également spécifié le description Clé, pour fournir une brève description de la catégorie (vous pouvez consulter la documentation officielle de la liste complète des propriétés de catégorie).

Une fois que nous avons créé le dictionnaire contenant les données de catégorie, nous pouvons exécuter la demande d'API utilisée pour créer la catégorie, qui utilise le POSTE Verbe http:

réponse = WCAPI.Post ("Produits / catégories", catégorie_data) 
Copie

Si la demande est exécutée sans erreurs, appelez le json Méthode sur le réponse Object, renvoiera la réponse du serveur formatée comme un dictionnaire Python, qui décrit les données utilisées pour créer la catégorie: cela inclura le identifiant unique Utilisé pour stocker la catégorie dans la base de données, qui est une information essentielle si nous voulons la référencer plus tard (par exemple lors de la création d'une sous-catégorie ou d'un produit qui doit être inclus dans la catégorie elle-même). Dans notre cas, voici ce qui est renvoyé par le serveur:

'id': 17, 'name': 'Example Catégorie', 'Slug': 'Exemple-catégorie', 'parent': 0, 'Description': 'Juste un exemple de catégorie', 'affiche': 'par défaut' , 'Image': Aucun, 'menu_order': 0, 'count': 0, '_links': 'self': ['href': 'http: // localhost / wp-json / wc / v3 / produits / catégories / 17 '],' collection ': [' href ':' http: // localhost / wp-json / wc / v3 / products / catégories '] 
Copie

Comme nous pouvons le voir, la catégorie a été enregistrée avec 17 AS ID unique.

Mise à jour d'une catégorie

Pour mettre à jour une catégorie existante, nous devons le référencer via son identifiant, qui doit être inclus dans le cadre du point de terminaison de la demande. Nous créons d'abord un dictionnaire qui contient les données de catégorie qui doivent être mises à jour; Dans l'exemple ci-dessous, nous changeons le description de la catégorie:

catégorie_data = "Description": "Exemple de catégorie modifié" 
Copie

Une fois les données prêtes, nous pouvons envoyer notre demande, en utilisant le mettre Méthode de la WCAPI objet, qui, comme vous pouvez le deviner, envoie une demande en utilisant le METTRE Verbe http:

réponse = WCAPI.put («produits / catégories / 17», catégorie_data) 
Copie

Tout comme avant, en exécutant le json Méthode de la réponse Object, nous récupérerons les informations de catégorie mise à jour renvoyées par le serveur, déjà converties en dictionnaire Python:

'id': 17, 'name': 'Exemple catégorie', 'slug': 'Example-catégorie', 'parent': 0, 'Description': 'Modified Catégorie Exemple', 'affiche': 'par défaut', 'Image': Aucun, 'menu_order': 0, 'count': 0, '_links': 'self': ['href': 'http: // localhost / wp-json / wc / v3 / produits / Catégories / 17 '],' Collection ': [' href ':' http: // localhost / wp-json / wc / v3 / produits / catégories '] 
Copie

Obtenir des informations sur toutes les catégories ou une

Obtenir une liste de toutes les catégories existantes est vraiment simple. Tout ce que nous avons à faire est d'exécuter le obtenir Méthode de la WCAPI objet que nous avons créé auparavant et spécifiez le point de terminaison correct (Produits / catégories):

réponse = WCAPI.obtenir («produits / catégories») 
Copie

Comme avant le contenu de la réponse peut être accessible en tant que dictionnaire Python en exécutant le json Méthode sur l'objet de réponse. Dans ce cas, la méthode renvoie ce qui suit:

['id': 17, 'name': 'Exemple catégorie', 'slug': 'Exemple-catégorie', 'parent': 0, 'Description': 'Juste un exemple de catégorie', 'afficher': 'par défaut ',' image ': Aucun,' menu_order ': 0,' count ': 0,' _links ': ' self ': [' href ':' http: // localhost / wp-json / wc / v3 / Produits / catégories / 17 '],' collection ': [' href ':' http: // localhost / wp-json / wc / v3 / products / catégories '], ' id ': 16, 'name': 'test', 'slug': 'test', 'parent': 0, 'Description': 'a test', 'affiche': 'default', 'image': non, 'menu_order': 0 , 'count': 0, '_links': 'self': ['href': 'http: // localhost / wp-json / wc / v3 / products / catégories / 16'], 'collection': ['href': 'http: // localhost / wp-json / wc / v3 / produits / catégories'], 'id': 15, 'name': 'non catégorisé', 'slug': ' non catégorisé ',' parent ': 0,' Description ': ",' affiche ':' default ',' image ': non,' menu_order ': 0,' count ': 0,' _links ': ' self ': ['href': 'http:// localhost / wp-json / wc / v3 / produits / catégories / 15 '],' collection ': [' href ':' http: // localhost / wp-json / wc / v3 / produits / catégories ' ]] 
Copie

Si nous voulons récupérer des informations sur une catégorie spécifique, tout ce que nous avons à faire est de fournir son identifiant dans le cadre du point final. Par exemple, pour obtenir des détails sur la catégorie avec ID 16 (test), nous courions:

réponse = WCAPI.get ('Products / catégories / 16') 
Copie

Suppression d'une catégorie

Le identifiant d'une catégorie est également nécessaire pour la référencer lorsque nous voulons le supprimer. Dans ces cas, nous devons exécuter une demande HTTP qui utilise le SUPPRIMER Verbe HTTP, fournissant à nouveau l'identifiant de catégorie comme faisant partie du point final. Pour supprimer la catégorie «Test», par exemple, nous exécuterons:

réponse = WCAPI.delete ('Products / catégories / 16', param = 'force', true) 
Copie

Lors de l'exécution du supprimer Méthode pour supprimer une catégorie, nous devons également utiliser le force paramètre et le régler sur Vrai. C'est requis, Depuis le déplacement d'une catégorie vers la poubelle, il n'est pas pris en charge via l'API REST; la ressource sera supprimée en permanence. Si tout se passe comme prévu, tout comme dans les exemples précédents, appelant le json Méthode sur l'objet de réponse, renvoie un dictionnaire contenant les données de ressources supprimées.

Effectuer plusieurs actions à la fois

Supposons que nous voulons effectuer plusieurs actions à la fois: nous voulons peut-être supprimer certaines catégories, en créer de nouveaux et en mettre à jour d'autres. Comment pouvons-nous le faire immédiatement, en exécutant une seule demande? Tout ce que nous avons à faire est d'envoyer une demande en utilisant le POSTE Verbe http au Produits / catégories / lot point de terminaison, en utilisant le poste Méthode de la WCAPI objet. Voici un exemple:

Batch_data = "Create": ["Name": "New Catégorie 1", "Description": "Première nouvelle catégorie", "Name": "New Catégorie 2", "Description": "Deuxième nouvelle catégorie" ], "Update": ["id": 17, "Description": "Mise à jour Description"], "Delete": [15] 
Copie

Les données par lots sont définies, tout comme nous l'avons vu dans les exemples précédents, en utilisant un dictionnaire Python. À l'intérieur de ce dictionnaire, nous avons des clés nommées d'après les actions qui devraient être effectuées:

  • créer
  • mise à jour
  • supprimer

La valeur attribuée au créer La clé doit être une liste de dictionnaires, chacun décrivant les données qui doivent être utilisées pour créer une nouvelle catégorie. Dans ce cas, nous avons créé deux nouvelles catégories, nommées «New Catégorie 1» et «New Catégorie 2».

De même, la valeur correspondant au mise à jour La clé doit être une liste de dictionnaires, chacun décrivant les données qui doivent être utilisées pour mettre à jour une certaine catégorie, identifiée par son identifiant.

Enfin, la valeur associée au supprimer La clé doit être une liste des identifiant des catégories qui devraient être supprimées. Dans ce cas, nous avons décidé de supprimer la catégorie avec 16 En tant qu'identifiant unique. Une fois nos données prêtes, nous exécutons le
demande:

réponse = WCAPI.Post («Produits / catégories / lot», Batch_data) 
Copie

Le réponse L'objet contiendra la représentation orientée objet de la réponse envoyée par le serveur. Comme toujours, en exécutant le json Méthode de cet objet Nous récupérerons le dictionnaire Python contenant un résumé de l'opération effectuée et la description des catégories concernées:

'Create': ['id': 18, 'name': 'new Catégorie 1', 'slug': 'new-catégorie-1', 'parent': 0, 'Description': 'First New Catégorie' , 'affiche': 'default', 'image': nul, 'menu_order': 0, 'count': 0, '_links': 'self': ['href': 'http: // localhost / wp -json / wc / v3 / produits / catégories / 18 '],' Collection ': [' href ':' http: // localhost / wp-json / wc / v3 / produits / catégories '], 'id': 19, 'name': 'New Catégorie 2', 'Slug': 'new-catégorie-2', 'Parent': 0, 'Description': 'Second New Catégorie', 'Display': ' Default ',' Image ': Aucun,' menu_order ': 0,' count ': 0,' _links ': ' self ': [' href ':' http: // localhost / wp-json / wc / v3 / produits / catégories / 19 '],' collection ': [' href ':' http: // localhost / wp-json / wc / v3 / produits / catégories ']],' update ': [ 'id': 17, 'name': 'Exemple catégorie', 'slug': 'Example-catégorie', 'parent': 0, 'Description': 'mis à jour description', 'affiche': 'par défaut', ' Image ': Aucun,'menu_order': 0, 'count': 0, '_links': 'self': ['href': 'http: // localhost / wp-json / wc / v3 / produits / catégories / 17']] , 'Collection': ['href': 'http: // localhost / wp-json / wc / v3 / produits / catégories']], 'delete': ['id': 16, 'name ':' test ',' slug ':' test ',' parent ': 0,' Description ':' a test ',' affiche ':' default ',' image ': non,' menu_order ': 0,' count': 0, '_links':  'self': [ 'href': 'http://localhost/wp-json/wc/v3/products/categories/16' ], 'collection': [  'href': 'http: // localhost / wp-json / wc / v3 / produits / catégories']] 
Copie

Des produits

Jusqu'à présent, nous voyons comment effectuer le base Bourdonner Opérations sur les catégories. Travaillons maintenant avec les produits. Le code qui doit être utilisé est assez similaire; Quels changements, bien sûr, sont les points de terminaison de l'API et les attributs qui devraient
être utilisé lors de la création d'un produit.

Créer un produit simple

Le premier exemple que nous verrons est de savoir comment créer un produit «simple», sans variations (les variations sont des versions légèrement différentes du même produit, basées par exemple sur différentes tailles ou couleurs). Nous définissons d'abord le produit
données:

product_data = "name": "Exemple simple produit", "type": "Simple", "régulièrement": "22.50 "," Stock_quantity ": 10," Short_description ":" Juste un exemple de produit "," Description ":" Ceci est juste un exemple de produit, créé avec l'API REST WOOCOMMERCE "," Catégories ": [" ID ": 17], "images": ["src": "https: // linuxconfig.org / images / linuxconfig_logo.png "," alt ":" Exemple-image "] 
Copie

Jetons un coup d'œil aux informations du produit que nous avons utilisées à l'intérieur du données du produit dictionnaire. Nous avons défini le produit nom (Exemple simple produit), alors nous avons spécifié son taper, Ce qui dans ce cas est «simple», car nous créons la liste pour un produit physique sans variations. Les deux informations doivent être spécifiées comme cordes.

Nous avons également spécifié le produit prix habituel (String), le quantité en stock (entier), le brève description Et le régulier description, Les deux comme chaînes: celles-ci sont affichées dans différentes parties de la page lorsque le produit
est visualisé par un client potentiel.

La prochaine chose que nous avons faite a été de spécifier la liste des catégories de produits dont le produit doit être inclus. Chaque catégorie doit être référencée par son identifiant (entier). Dans ce cas, nous venons de référencer la catégorie avec 17 en tant que unique
identifiant («catégorie d'exemples»).

La dernière chose que nous avons définie était la liste des images qui devraient être associées au produit. Chaque image est décrite à l'aide d'un dictionnaire. Ici, nous venons d'utiliser une image, fournissant son SRC (String), et alt (Le texte alternatif, comme
un string).

Celui que nous avons utilisé n'est qu'un très petit sous-ensemble de toutes les propriétés du produit possibles. Une fois nos données prêtes, nous envoyons un POSTE Demande HTTP, en utilisant le poste Méthode de la WCAPI objet. Le point de terminaison auquel la demande doit être envoyée est
"des produits":

réponse = WCAPI.Post ('Products', Product_data) 
Copie

Si la demande est réussie, en exécutant réponse.JSON () Nous obtiendrons un dictionnaire Python contenant les informations du produit nouvellement créé:

'id': 29, 'name': 'Simple Exemple Product', 'Slug': 'Simple-Example Product', 'permalink': 'http: // localhost / produit / 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_GMMT ':' 2021-03-22T14: 53: 44 ',' Type ':' Simple ',' Status ':' Publish ',' en vedette ': false,' catalog_visibilité ': `` visible' ', `` Description': `` Ceci est juste un exemple de produit, créé avec l'API WooCommerce REST ',' Short_description ':' Juste un exemple de produit ',' SKU ': ",' Price ': '22.50 ',' régulier_price ': '22.50 ',' Sale_price ': ",' date_on_sale_from ': aucun,' date_on_sale_from_gmt ': non,' date_on_sale_to ': non,' date_on_sale_to_gmt ': non,' on_sale ': false,' rachat ': true,' total_sales ':` `on_sale': false, ' , «virtual»: false, «téléchargeable»: false, «téléchargements»: [], «téléchargement_limit»: -1, «téléchargement_expiry»: -1, «external_url»: »,« Button_text »:», «tax_status»: 'Taxable', 'Tax_class': ", 'Manage_stock': false, 'Stock_quantity': Aucun, 'Backorders': 'Non', '' ': ",' dimensions ': ' longueur ':",' width ': ",' height ':",' shipping_required ': true,' shipping_taxable ': true,' shipping_class ': ",' shipping_class_id ': 0, 'Reviews_allowed': true, 'moyen_rating': '0', 'rating_count': 0, 'upsell_ids': [], 'Cross_sell_ids': [], 'Parent_id': 0, 'Buy_Note': ", 'Catégories ': [' id ': 17,' name ':' Exemple catégorie ',' slug ':'Exemple-catégorie'], 'tags': [], 'images': ['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 ':' example-image '],' attributs ': [],' default_attributes ': [],' variations ': [],' groued_products ': [],' menu_order ': 0,' price_html ': '22, 50 €', 'likets_ids': [], 'meta_data': [], 'Stock_status': 'Insock', '_Links': 'self': [href ':' http: // localhost / wp-json / wc / v3 / produits / 29 '],' collection ': [' href ':' http: // localhost / wp-json / wc / v3 / produits '] 
Copie

Création d'un produit variable et de ses variations

Dans l'exemple précédent, nous avons créé un produit «simple». Voyons maintenant comment créer un produit «variable». La définition de base est la même que celle que nous avons utilisée ci-dessus. Tout ce que nous avons à faire est d'ajouter les attributs qui, combinés, représenteront les variations de produit. Par exemple, supposons que notre produit est un t-shirt disponible en plusieurs couleurs et tailles: chaque variation sera composée par une certaine couleur associée à une certaine taille:

variable_product_data = "name": "Exemple de variable Product", "type": "variable", "short_description": "juste un produit variable", "Description": "Il s'agit d'un produit variable, créé avec l'API WooCommerce REST" , "Catégories": ["id": 17], "images": ["src": "https: // linuxconfig.org / images / linuxconfig_logo.png "," alt ":" Exemple-image "]," attributs ": [" name ":" couleur "," visible ": true," variation ": true," options ": [" noir ", "blanc"], "name": "size", "visible": true, "variation": true, "options": ["s", "m", "l"]] 
Copie

Nous avons fourni une liste d'attributs utilisant la clé «Attributs» dans le dictionnaire produit. Le premier attribut est nommé «couleur», et la deuxième «taille». Nous les avons placés tous les deux à être visibles, et nous avons déclaré qu'ils devraient être utilisés pour les variations en attribuant Vrai comme la valeur du variation clé dans les dictionnaires qui les définissent. La liste associée au options Key, contient toutes les valeurs possibles que chaque attribution pourrait supposer.

À propos d'un produit Attributs: nous pouvons utiliser les deux mondial et non global les attributs. Quelle est la différence? Les attributs spécifiés uniquement par leur nom comme nous l'avons fait dans l'exemple ci-dessus seront créés «à la volée» pour le produit spécifique, ils seront donc «non globaux». Si nous voulions utiliser le même attribut pour plusieurs produits, nous mieux le définir à l'avance avec un appel spécifique, puis le référer par leur identifiant. En supposant que nous avons créé le Couleur et Taille attributs globaux, et ils ont respectivement 1 et 2 En tant qu'identificateurs uniques, nous écrivions:

"attributs": ["id": 1 "visible": true, "variation": true, "options": ["noir", "blanc"], "id": 2, "visible": true , "Variation": true, "Options": ["S", "M", "L"]] 
Copie

Très important: Le code ne créera pas les variations de produit réelles, qui doit être défini avec des demandes distinctes.

Vous pouvez remarquer que nous avons omis de fournir la quantité de bourse du produit, car la valeur totale de l'action sera représentée par la somme de la quantité de stock de chaque variation.

L'étape suivante consiste à créer les variations de produit réelles. Lors de la définition des données de variations, nous devons utiliser les mêmes attributs que nous avons définis dans la demande que nous avons utilisée pour créer le produit variable. Voici un exemple sur la façon de créer une variation:

product_variation_data = "régulièrement_price": "18.00 "," Stock_quantity ": 10," Attributs ": [" id ": 1," Option ":" White ", " id ": 2," Option ":" S "] 
Copie

Nous avons défini la variation produite par la combinaison de l'attribut de couleur «blanc» et de l'attribut de taille «S». Nous avons réglé son prix habituel et quantité en stock. Nous devons maintenant envoyer la demande avec le code suivant:

réponse = WCAPI.Post ('Products / 34 / Variations', Product_variation_data) 
Copie

Comme vous pouvez le voir dans l'extrait ci-dessus, comme point final pour la demande, nous avons utilisé Produits / 34 / Variations, où 34 est le identifiant du produit parent que nous avons créé précédemment.

Demander des informations sur tous les produits ou un spécifique

Tout comme nous l'avons fait pour les catégories, nous pouvons demander des informations sur tous les produits existants via l'API WooCommerce REST:

réponse = WCAPI.obtenir («produits») 
Copie

La demande pourrait être plus personnalisée par l'utilisation de paramètres: avec le par page Paramètre, par exemple, nous pouvons spécifier le nombre d'éléments renvoyés dans l'ensemble de résultats d'une seule demande (par défaut est dix), et avec le page Paramètre Nous pouvons demander la page spécifique qui doit être renvoyée (par défaut est 1). Pour étendre le nombre d'éléments renvoyés en une seule demande, nous écrivions:

réponse = WCAPI.get ('products', params = 'per_page': 20) 
Copie

Demander des informations sur un produit spécifique, c'est tout aussi simple: tout ce que nous avons à faire est de spécifier son identifiant Dans le point de terminaison de la demande:

réponse = WCAPI.get ('Products / 34') 
Copie

Mise à jour d'un produit

La logique utilisée pour mettre à jour un produit est la même que nous avons utilisée pour mettre à jour une catégorie (et toutes les autres «entités» gérées via l'API REST). Nous spécifions les données du produit qui doivent être mises à jour et envoyons un METTRE Demande au point final qui comprend le produit identifiant:

Updated_product_data = "Description": "Il s'agit de la variable mise à jour Description" Response = WCAPI.put ('Products / 34', updated_product_data) 
Copie

Suppression d'un produit

Pour supprimer un produit, tout ce que nous avons à faire est d'envoyer un SUPPRIMER Demande au point final qui comprend le produit identifiant:

réponse = WCAPI.supprimer («produits / 34») 
Copie

Ici, vous pouvez remarquer que, contrairement à ce qui se passe pour les catégories, l'utilisation du force Le paramètre n'est pas obligatoire. Si le paramètre n'est pas utilisé, le produit sera simplement déplacé vers la «poubelle», et il sera donc possible de le retirer ces derniers temps récemment. Si la force Le paramètre est utilisé et défini sur Vrai, Au lieu de cela, le produit sera supprimé en permanence.

Conclusions

Dans ce tutoriel, nous avons vu quelques exemples de comment interagir avec l'API WooCommerce REST avec le langage de programmation Python. Nous avons vu comment générer des informations d'identification API, comment installer le package Python «WooCommerce» qui fournit des méthodes utiles qui simplifient le code que nous devons écrire pour interagir avec eux, et quelques exemples de la façon de créer, de lire, de supprimer et de mettre à jour les catégories et produits WooCommerce. Veuillez consulter la documentation officielle de l'API WooCommerce REST pour un aperçu complet des capacités de l'API.

Tutoriels Linux connexes:

  • Ubuntu 20.04: WordPress avec l'installation de Nginx
  • Ubuntu 20.04 WordPress avec installation Apache
  • Installation de WordPress OpenLitesPeed
  • Une introduction à l'automatisation Linux, des outils et des techniques
  • Choses à installer sur Ubuntu 20.04
  • Meilleure distribution Linux pour les développeurs
  • Masterring Bash Script Loops
  • Liste des meilleurs outils Kali Linux pour les tests de pénétration et…
  • Utilisez WPSCAN pour scanner WordPress pour les vulnérabilités sur Kali
  • Mint 20: Mieux que Ubuntu et Microsoft Windows?