Cómo trabajar con la API REST de WooCommerce con Python

Cómo trabajar con la API REST de WooCommerce con Python

WordPress es probablemente el CMS más utilizado en el mundo (se estima que casi el 40% de todos los sitios web están construidos usando la plataforma): es muy fácil de instalar y usar, y permite que incluso los no desarrolladores creen un sitio web en pocos minutos.
WordPress tiene un ecosistema de complementos muy grande; Uno de los más famosos es WooCommerce, que nos permite convertir un sitio web en una tienda en línea en pocos pasos. El complemento utiliza la infraestructura API REST de WordPress; En este tutorial veremos cómo interactuar con la API de WooCommerce utilizando el lenguaje de programación de Python, que muestra cómo enumerar, crear, actualizar y eliminar productos y categorías.

En este tutorial aprenderás:

  • Cómo generar credenciales de API REST de WooCommerce y habilitar enlaces permanentes bastante permanentes
  • Cómo interactuar con la API REST de WooCommerce usando Python y el paquete de WooCommerce
  • Cómo obtener información sobre las categorías de WooCommerce existentes, crearlas, actualizarlas y eliminarlas
  • Cómo obtener información sobre los productos de WooCommerce existentes
  • Cómo crear productos simples y variables con variaciones
  • Cómo actualizar y eliminar un producto

Requisitos y convenciones de software utilizados

Requisitos de software y convenciones de línea de comandos de Linux
Categoría Requisitos, convenciones o versión de software utilizada
Sistema Distribución independiente
Software Python3
Otro Una instancia de trabajo de WordPress con el complemento WooCommerce instalado
Convenciones # - requiere que los comandos de Linux dados se ejecuten con privilegios raíz directamente como un usuario raíz o mediante el uso de sudo dominio
$-Requiere que los comandos de Linux dados se ejecuten como un usuario regular no privilegiado

Generación de credenciales de API de REST de WooCommerce

En aras de este tutorial, asumiremos que tenemos una instancia de trabajo de WordPress con el complemento WooCommerce ya instalado. Lo primero que tenemos que hacer es generar nuestras credenciales de la API REST de WooCommerce: serán
utilizado en cada solicitud HTTP que realizaremos. Generando las credenciales es muy fácil; Todo lo que tenemos que hacer es navegar a WooCommerce -> Configuración En el menú vertical podemos encontrar en la página de administración de WordPress:

Una vez en la página de configuración del complemento, hacemos clic en la pestaña "Avanzado" y luego en
El enlace "REST API", que se encuentra en el menú de pestaña. En la página que
Se abrirá, hacemos clic en el botón "Crear una tecla API":

Se nos presentará el formulario de creación de clave API, y se nos pedirá que insertar:

  • Una descripción, que se utilizará como un nombre amigable para identificar fácilmente las credenciales
  • El usuario que utilizará la clave
  • Los permisos que se otorgarán a la clave (solo lea | Escribir solo | Leer y escribir)

Observe que tenemos la oportunidad de crear varias claves con diferentes permisos, para limitar las operaciones otorgadas para un usuario específico. En aras de este tutorial, crearemos una clave API con permisos de lectura y escritura:

Cuando está listo, hacemos clic en el botón "Generar la tecla API", y ambos llave del consumidor y el secreto del consumidor se nos generará y se mostrará. Tenemos que asegurarnos de almacenar ambos en un lugar seguro, ya que Una vez que salgamos de la página, estarán ocultos:

Una vez que se generan nuestras claves, hay otra acción que debemos realizar desde el backend de la administración de WordPress: tenemos que asegurarnos de que el derecho Bastante enlace permanente se utilizan, de lo contrario, los puntos finales de la API no funcionarán. Para lograr la tarea a la que navegamos Configuración -> enlaces permanentes En el menú vertical izquierdo de WordPress. En el menú de la página, seleccionamos "Nombre de publicación", y luego guardamos los cambios:



Eso es todo lo que tenemos que hacer WordPress-Side. En la siguiente sección, veremos cómo interactuar con las API REST de WooCommerce usando Python.

Instale el paquete WooCommerce

En esta sección veremos cómo interactuar con la API REST de WooCommerce usando el lenguaje de programación de Python. En lugar de escribir el código, necesitamos realizar las solicitudes HTTP desde cero, haremos uso de WooCommerce paquete, que aliviará nuestro trabajo. Para instalar el paquete podemos usar pepita, El Administrador de paquetes de Python. Si estamos trabajando dentro de un entorno virtual creado usando venado, Podemos correr:

$ Pip Install WooCommerce 

Si no estamos utilizando un entorno virtual, al menos debemos instalar el paquete solo para nuestro usuario. Para hacer eso, agregamos el --usuario opción para el comando, que se convierte en:

$ PIP Instale WooCommerce -User 

Una vez el WooCommerce El paquete está instalado, podemos comenzar a escribir nuestro código.

Inicializando la clase API

Lo primero que tenemos que hacer para interactuar con la API REST de WooCommerce, usando Python y el WooCommerce paquete, es importar el API clase y crear una instancia de ella, como se muestra a continuación:

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

El API El constructor de clases toma tres argumentos obligatorios:

  1. La URL de nuestro sitio
  2. La clave del consumidor de la API REST de WooCommerce
  3. El secreto del consumidor de la API REST de WooCommerce

En el ejemplo anterior, puede ver que pasamos un tercer argumento, se acabó el tiempo: es opcional y es predeterminado a 5 segundos. En este caso le proporcionamos un valor mayor: 50. En mi caso, esto era necesario para que las solicitudes tuvieran éxito, pero en un verdadero
escenario de la vida, no deberíamos necesitar cambiarlo, por lo que se puede omitir por completo.

Una vez que creamos una instancia del API clase, en este caso a la referencia por el WCAPI variable, podemos proceder y hacer nuestras llamadas de API.

Categorías

En aras de este tutorial solo trabajaremos solo con categorías y productos. Los ejemplos proporcionados deben ser suficientes para darle al lector una idea de cómo funciona la API. Comencemos con las categorías, ya que deben preexistir para que se haga referencia al crear productos.

Creando una categoría

Como primer ejemplo, veremos cómo crear una categoría. Comenzamos a definir los datos de categoría en un diccionario de Python:

category_data = "nombre": "Categoría de ejemplo", "Descripción": "Solo un ejemplo de categoría" 
Copiar

El único parámetro obligatorio que debemos usar al crear una categoría es nombre, que debe proporcionarse como una cadena. En el ejemplo anterior especificamos también el descripción clave, para proporcionar una breve descripción de la categoría (puede verificar la documentación oficial de la lista completa de propiedades de categoría).

Una vez que creamos el diccionario que contiene los datos de la categoría, podemos ejecutar la solicitud API utilizada para crear la categoría, que utiliza el CORREO Verbo http:

respuesta = wcapi.POST ("Productos/categorías", Category_Data) 
Copiar

Si la solicitud se ejecuta sin errores, llamando al json método en el respuesta objeto, devolverá la respuesta del servidor formateada como un diccionario de Python, que describe los datos utilizados para crear la categoría: esto incluirá el Identificación única Se utiliza para almacenar la categoría en la base de datos, que es una información esencial si queremos hacer referencia más tarde (por ejemplo, al crear una subcategoría o un producto que debe incluirse en la categoría misma). En nuestro caso, esto es lo que devuelve el servidor:

'id': 17, 'Nombre': 'Categoría de ejemplo', 'Slug': 'Ejemplo-Categoría', 'Parent': 0, 'Descripción': 'Just a Category Ejemplo', 'Display': 'Predeterminado' , 'Imagen': Ninguno, 'Menu_order': 0, 'Count': 0, '_links': 'self': ['href': 'http: // localhost/wp-json/wc/v3/productos /categorías/17 '],' colección ': [' href ':' http: // localhost/wp-json/wc/v3/productos/categorías '] 
Copiar

Como podemos ver, la categoría se ha guardado con 17 Como identificación única.

Actualizar una categoría

Para actualizar una categoría existente, debemos hacer referencia a ella a través de su identificación, que debe incluirse como parte del punto final de solicitud. Primero creamos un diccionario que contiene los datos de categoría que deben actualizarse; En el siguiente ejemplo, cambiamos el Descripción de categoría:

category_data = "Descripción": "Ejemplo de categoría modificado" 
Copiar

Una vez que los datos están listos, podemos enviar nuestra solicitud, utilizando el poner método del WCAPI objeto, que, como puede adivinar, envía una solicitud utilizando el PONER Verbo http:

respuesta = wcapi.PUT ('Productos/categorías/17', Category_Data) 
Copiar

Tal como antes, ejecutando el json método del respuesta Objeto, recuperaremos la información de categoría actualizada devuelta por el servidor, ya convertida a un diccionario de Python:

'id': 17, 'nombre': 'Categoría de ejemplo', 'Slug': 'Ejemplo-Category', 'Parent': 0, 'Descripción': 'Ejemplo de categoría modificada', 'Display': 'predeterminado', predeterminado, 'Image': Ninguno, 'menú_order': 0, 'Count': 0, '_links': 'self': ['href': 'http: // localhost/wp-json/wc/v3/productos/ categorías/17 '],' colección ': [' href ':' http: // localhost/wp-json/wc/v3/productos/categorías '] 
Copiar

Obtener información sobre todas las categorías o una específica

Obtener una lista de todas las categorías existentes es realmente simple. Todo lo que tenemos que hacer es ejecutar el conseguir método del WCAPI objeto que creamos antes y especifique el punto final correcto (Productos/categorías)

respuesta = wcapi.Get ('Productos/categorías') 
Copiar

Como antes, se puede acceder al contenido de la respuesta como un diccionario de Python ejecutando el json Método en el objeto de respuesta. En este caso, el método devuelve lo siguiente:

['id': 17, 'Nombre': 'Categoría de ejemplo', 'Slug': 'Ejemplo-Categoría', 'Parent': 0, 'Descripción': 'Just a Category Ejemplo', 'Display': 'Predeterminado predeterminado ',' Imagen ': Ninguno,' Menu_order ': 0,' Count ': 0,' _links ': ' self ': [' href ':' http: // localhost/wp-json/wc/v3/ Productos/categorías/17 '],' colección ': [' href ':' http: // localhost/wp-json/wc/v3/productos/categorías '], ' id ': 16, 16, 'Nombre': 'Test', 'Slug': 'Test', 'Parent': 0, 'Descripción': 'Una prueba', 'Pantalla': 'predeterminada', 'Imagen': Ninguno, 'Menu_order': 0 , 'Count': 0, '_links': 'self': ['href': 'http: // localhost/wp-json/wc/v3/productos/categorías/16'], 'colección': ['href': 'http: // localhost/wp-json/wc/v3/productos/categorías'], 'id': 15, 'nombre': 'Uncategorized', 'Slug': ' Uncategorized ',' Parent ': 0,' Descripción ': ",' Display ':' predeterminado ',' Imagen ': Ninguno,' Menu_order ': 0,' Count ': 0,' _links ': ' self ': ['href': 'http:// localhost/wp-json/wc/v3/productos/categorías/15 '],' colección ': [' href ':' http: // localhost/wp-json/wc/v3/productos/categorías ' ]] 
Copiar

Si queremos recuperar información sobre una categoría específica, todo lo que tenemos que hacer es proporcionar su identificación como parte del punto final. Por ejemplo, para obtener detalles sobre la categoría con ID dieciséis (prueba), ejecutaríamos:

respuesta = wcapi.Get ('Productos/categorías/16') 
Copiar

Eliminar una categoría

El identificación de una categoría también se necesita para hacer referencia a ella cuando queramos eliminarla. En esos casos debemos ejecutar una solicitud HTTP que use el BORRAR Verbo http, nuevamente proporcionando el identificador de categoría como parte del punto final. Para eliminar la categoría de "prueba", por ejemplo, ejecutaríamos:

respuesta = wcapi.Eliminar ('Productos/categorías/16', Param = 'Force', True) 
Copiar

Al ejecutar el borrar método para eliminar una categoría, también necesitamos usar el fuerza parámetro, y configúrelo en Verdadero. Esto es requerido, Desde que mudó una categoría a la basura, no se admite a través de REST API; el recurso se eliminará permanentemente. Si todo va como se esperaba, al igual que en los ejemplos anteriores, llamando al json método en el objeto de respuesta devolverá un diccionario que contiene los datos de recursos eliminados.

Realizando múltiples acciones a la vez

Supongamos que queremos realizar múltiples acciones a la vez: es posible que deseemos eliminar algunas categorías, crear algunas nuevas y actualizar otras. ¿Cómo podemos hacerlo a la vez, ejecutando solo una solicitud?? Todo lo que tenemos que hacer es enviar una solicitud usando el CORREO Verbo http al Productos/categorías/lotes punto final, usando el correo método del WCAPI objeto. Aquí hay un ejemplo:

Batch_data = "Create": ["Nombre": "Nueva categoría 1", "Descripción": "Primera categoría nueva", "Nombre": "Nueva categoría 2", "Descripción:" Segunda nueva categoría " ], "actualizar": ["id": 17, "Descripción": "Descripción actualizada"], "Eliminar": [15] 
Copiar

Los datos por lotes se definen, tal como vimos en los ejemplos anteriores, utilizando un diccionario de Python. Dentro de este diccionario tenemos algunas claves con el nombre de las acciones que deben realizarse:

  • crear
  • actualizar
  • borrar

El valor asignado al crear La clave debe ser una lista de diccionarios, cada uno que describe los datos que deben usarse para crear una nueva categoría. En este caso, creamos dos nuevas categorías, llamada "nueva categoría 1" y "nueva categoría 2".

Del mismo modo, el valor correspondiente al actualizar La clave debe ser una lista de diccionarios, cada uno que describe los datos que deben usarse para actualizar una determinada categoría, identificada por su identificación.

Finalmente, el valor asociado al borrar La clave debe ser una lista de la identificación de las categorías que deben eliminarse. En este caso decidimos eliminar la categoría con dieciséis Como identificador único. Una vez que nuestros datos están listos, ejecutamos el
pedido:

respuesta = wcapi.POST ('Productos/categorías/Batch', Batch_data) 
Copiar

El respuesta El objeto contendrá la representación orientada al objeto de la respuesta enviada por el servidor. Como siempre, ejecutando el json Método de este objeto recuperaremos el diccionario de Python que contiene un resumen de la operación realizada, y la descripción de las categorías involucradas:

'Create': ['id': 18, 'Nombre': 'Nueva categoría 1', 'Slug': 'New-Category-1', 'Parent': 0, 'Descripción': 'Primera categoría nueva' , 'Display': 'Default', 'Imagen': Ninguno, 'Menu_order': 0, 'Count': 0, '_links': 'self': ['href': 'http: // localhost/wp -json/wc/v3/productos/categorías/18 '],' colección ': [' href ':' http: // localhost/wp-json/wc/v3/productos/categorías '], 'id': 19, 'Nombre': 'Nueva categoría 2', 'Slug': 'New-Category-2', 'Parent': 0, 'Descripción': 'Segunda nueva categoría', 'Display': ' predeterminado ',' imagen ': ninguno,' menú_order ': 0,' contar ': 0,' _links ': ' self ': [' href ':' http: // localhost/wp-json/wc/v3 /Productos/categorías/19 '],' colección ': [' href ':' http: // localhost/wp-json/wc/v3/productos/categorías ']]],' actualizar ': [ 'id': 17, 'Nombre': 'Categoría de ejemplo', 'Slug': 'Ejemplo-Category', 'Parent': 0, 'Descripción': 'Descripción actualizada', 'Pantalla': 'predeterminada', ' imagen ': ninguno,'Menu_order': 0, 'Count': 0, '_links': 'self': ['href': 'http: // localhost/wp-json/wc/v3/productos/categorías/17'] , 'colección': ['href': 'http: // localhost/wp-json/wc/v3/productos/categorías']]], 'delete': ['id': 16, nombre ':' Test ',' Slug ':' Test ',' Parent ': 0,' Descripción ':' A Test ',' Display ':' Predeterminado ',' Imagen ': Ninguno,' Menu_order ': 0,' Count ': 0,' _links ': ' self ': [' href ':' http: // localhost/wp-json/wc/v3/productos/categorías/16 '],' colección ': [ 'href': 'http: // localhost/wp-json/wc/v3/productos/categorías']] 
Copiar

Productos

Hasta ahora vimos cómo realizar lo básico Río Operaciones en categorías. Trabajemos con productos ahora. El código que debe usarse es bastante similar; Los cambios, por supuesto, son los puntos finales de la API y los atributos que deberían
ser utilizado al crear un producto.

Creando un producto simple

El primer ejemplo que veremos es cómo crear un producto "simple", sin variaciones (las variaciones son versiones ligeramente diferentes del mismo producto, basados, por ejemplo, en diferentes tamaños o colores). Primero definimos el producto
datos:

product_data = "nombre": "producto de ejemplo simple", "tipo": "simple", "regular_price": "22.50 "," stock_quantity ": 10," short_description ":" solo un producto de ejemplo "," descripción ":" Este es solo un producto de ejemplo, creado con la api REST de WooCommerce "," categorías ": [" id ": 17], "Imágenes": ["src": "https: // linuxconfig.org/imágenes/linuxconfig_logo.png "," Alt ":" Ejemplo-Image "] 
Copiar

Echemos un vistazo a la información del producto que usamos dentro del datos del producto diccionario. Definimos el producto nombre (Producto de ejemplo simple), luego especificamos su tipo, que en este caso es "simple", ya que estamos creando el listado para un producto físico sin variaciones. Ambas información deben especificarse como instrumentos de cuerda.

También especificamos el producto precio regular (cadena), el Cantidad de stock (entero), el Breve descripción y el regular descripción, Ambos como cadenas: se muestran en diferentes partes de la página cuando el producto
es visualizado por un cliente potencial.

Lo siguiente que hicimos fue especificar la lista de categorías de productos en las que debe incluirse el producto. Cada categoría debe ser referenciada por su identificación (entero). En este caso, acabamos de hacer referencia a la categoría con 17 tan único
Identificador ("Categoría de ejemplo").

Lo último que definimos fue la lista de las imágenes que deberían estar asociadas con el producto. Cada imagen se describe utilizando un diccionario. Aquí acabamos de usar una imagen, proporcionando su SRC (cadena) y alternativo (El texto alternativo, como
una cuerda).

El que utilizamos es solo un subconjunto muy pequeño de todas las propiedades posibles del producto. Una vez que nuestros datos están listos, enviamos un CORREO Solicitud http, utilizando el correo método del WCAPI objeto. El punto final al que debe enviarse la solicitud es
"Productos":

respuesta = wcapi.Post ('Productos', Product_Data) 
Copiar

Si la solicitud es exitosa, ejecutando respuesta.json () Obtendremos un diccionario de Python que contiene la información del producto recién creado:

'id': 29, 'Nombre': 'Producto de ejemplo simple', 'Slug': 'Simple-Example-Product', 'Permalink': 'http: // localhost/producto/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 ':' 2021-03-22T14: 53: 44 ',' tipo ':' simple ',' status ':' publicar ',' presentado ': falso,' catalog_visibility ':' visible ',' descripción ':' esto es solo un producto de ejemplo, creado con la API REST de WooCommerce ',' short_description ':' solo un producto de ejemplo ',' sku ': ",' precio ': '22.50 ',' regular_price ': '22.50 ',' Sale_Price ': ",' date_on_sale_from ': none,' date_on_sale_from_gmt ': none,' date_on_sale_to ': none,' date_on_sale_to_gmt ': none,' on_sale ': false,' compre ': true,' total_sales ': 0 , 'Virtual': False, 'Downloadable': False, 'Downloads': [], 'download_limit': -1, 'download_expiry': -1, 'externo_url': ", 'button_text':", 'tax_status': 'Taxable', 'Tax_class': ", 'Manage_stock': false, 'stock_quantity': ninguno, 'backorders': 'no', 'backorders_allowed': falso, 'backordered': falso, 'vell_individual': falso, 'peso ': ",' dimensiones ': ' longitud ':",' ancho ': ",' altura ':",' shipping_required ': true,' shipping_taxable ': true,' shipping_class ': ",' shipping_class_id ': 0, 'revisos_allowed': true, 'promedio_rating': '0', 'rating_count': 0, 'upsell_ids': [], 'cross_sell_ids': [], 'parent_id': 0, 'compra_note': ", 'categorías ': [' id ': 17,' nombre ':' Categoría de ejemplo ',' Slug ':'Ejemplo-Category'], 'Etiquetas': [], '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 ',' Nombre ':' Linuxconfig_logo-3.png ',' alt ':' Ejemplo-Image '],' atributes ': [],' default_attributes ': [],' variaciones ': [],' grouped_products ': [],' menú_order ': 0,' Price_html ': '22, 50 €', 'Relation_ids': [], 'meta_data': [], 'stock_status': 'instock', '_links': 'self': ['href': 'http: // localhost/wp-json/wc/v3/productos/29 '],' colección ': [' href ':' http: // localhost/wp-json/wc/v3/productos '] 
Copiar

Creación de un producto variable y sus variaciones

En el ejemplo anterior creamos un producto "simple". Ahora veamos cómo crear un producto "variable". La definición básica es la misma que la que usamos anteriormente. Todo lo que tenemos que hacer es agregar los atributos que, combinados representarán las variaciones del producto. Por ejemplo, suponga que nuestro producto es una camiseta disponible en múltiples colores y tamaños: cada variación estará compuesta por un cierto color asociado con un cierto tamaño:

variable_product_data = "nombre": "producto de ejemplo variable", "tipo": "variable", "short_description": "solo un producto variable", "descripción": "Este es un producto variable, creado con la API REST de WooCommerce" , "Categorías": ["id": 17], "Imágenes": ["Src": "https: // linuxconfig.org/imágenes/linuxconfig_logo.png "," Alt ":" Ejemplo-Image "]," Atributos ": [" Nombre ":" Color "," Visible ": True," Variación ": True," Opciones ": [" Negro ", "White"], "nombre": "tamaño", "visible": verdadero, "variación": true, "opciones": ["s", "m", "l"]] 
Copiar

Proporcionamos una lista de atributos utilizando la clave "Atributos" en el diccionario de productos. El primer atributo se llama "color" y el segundo "tamaño". Los establecemos para que ambos sean visibles, y declaramos que deberían usarse para variaciones asignando Verdadero como el valor del variación clave en los diccionarios que los define. La lista asociada con el opción clave, contiene todos los valores posibles que cada atributos podría asumir.

Acerca de un producto atributos: podemos usar ambos global y no global atributos. Cuál es la diferencia? Los atributos especificados solo por su nombre como lo hicimos en el ejemplo anterior se creará "sobre la mosca" para el producto específico, por lo que no serán "no globales". Si quise usar el mismo atributo para varios productos, es mejor que lo definamos de antemano con una llamada específica y luego lo referimos por su identificación. Suponiendo que creamos el Color y Tamaño atributos globales, y tienen respectivamente 1 y 2 Como identificadores únicos, escribiríamos:

"Atributos": ["id": 1 "visible": true, "variación": true, "opciones": ["negro", "blanco"], "id": 2, "visible": true , "Variación": Verdadero, "Opciones": ["S", "M", "L"]] 
Copiar

Muy importante: El código no creará las variaciones del producto reales, que debe definirse con solicitudes separadas.

Puede notar que omitimos proporcionar la cantidad de acciones del producto, ya que el valor total de las acciones estará representado por la suma de la cantidad de existencias de cada variación.

El siguiente paso es crear las variaciones del producto reales. Al definir los datos de variaciones, debemos usar los mismos atributos que definimos en la solicitud que utilizamos para crear el producto variable. Aquí hay un ejemplo sobre cómo crear una variación:

product_variation_data = "regular_price": "18.00 "," stock_quantity ": 10," atributos ": [" id ": 1," opción ":" blanco ", " id ": 2," opción ":" s "] 
Copiar

Definimos la variación producida por la combinación del atributo de color "blanco" y el atributo de tamaño "S". Ponemos su precio regular y Cantidad de stock. Ahora deberíamos enviar la solicitud con el siguiente código:

respuesta = wcapi.Post ('Productos/34/Variaciones', Product_Variation_Data) 
Copiar

Como puede ver en el fragmento de arriba, como punto final para la solicitud, utilizamos productos/34/variaciones, dónde 34 es el identificación del producto matriz que creamos anteriormente.

Solicitar información sobre todos los productos o uno específico

Tal como lo hicimos para las categorías, podemos solicitar información sobre todos los productos existentes a través de la API REST de WooCommerce:

respuesta = wcapi.Get ('Productos') 
Copiar

La solicitud podría personalizarse aún más mediante el uso de parámetros: con el por página Parámetro, por ejemplo, podemos especificar cuántos elementos deben devolverse en el conjunto de resultados de una sola solicitud (el valor predeterminado es 10), y con el página Parámetro Podemos solicitar la página específica que debe devolverse (el valor predeterminado es 1). Para extender el número de artículos devueltos en una sola solicitud, escribiríamos:

respuesta = wcapi.Get ('Productos', Params = 'Per_page': 20) 
Copiar

Solicitar información sobre un producto específico Es igual de simple: todo lo que tenemos que hacer es especificar su identificación En el punto final de solicitud:

respuesta = wcapi.Obtener ('Productos/34') 
Copiar

Actualizar un producto

La lógica utilizada para actualizar un producto es la misma que utilizamos para actualizar una categoría (y todas las demás "entidades" administradas a través de REST API). Especificamos los datos del producto que deben actualizarse y enviar un PONER Solicitud al punto final que incluye el producto identificación:

actualizado_product_data = "Descripción": "Esta es la descripción del producto variable actualizado" Respuesta = WCAPI.PUT ('Productos/34', Actualated_Product_Data) 
Copiar

Eliminar un producto

Para eliminar un producto, todo lo que tenemos que hacer es enviar un BORRAR Solicitud al punto final que incluye el producto identificación:

respuesta = wcapi.Eliminar ('Productos/34') 
Copiar

Aquí puede notar que, a diferencia de lo que sucede para las categorías, el uso del fuerza El parámetro no es obligatorio. Si no se usa el parámetro, el producto se moverá a la "basura", por lo que será posible recuperarlo últimamente. Si el fuerza Se utiliza el parámetro y se establece en Verdadero, en su lugar, el producto se eliminará permanentemente.

Conclusiones

En este tutorial vimos algunos ejemplos de cómo interactuar con la API REST de WooCommerce con el lenguaje de programación de Python. Vimos cómo generar credenciales de API, cómo instalar el paquete Python "WooCommerce" que proporciona métodos útiles que simplifican el código que debemos escribir para interactuar con ellos, y algunos ejemplos de cómo crear, leer, eliminar y actualizar las categorías y productos de WooCommerce y productos. Consulte la documentación oficial de la API de REST de WooCommerce para obtener una descripción completa de las capacidades de API.

Tutoriales de Linux relacionados:

  • Ubuntu 20.04: WordPress con instalación de Nginx
  • Ubuntu 20.04 WordPress con instalación de Apache
  • Instalación de WordPress OpenLitespeed
  • Una introducción a la automatización, herramientas y técnicas de Linux
  • Cosas para instalar en Ubuntu 20.04
  • La mejor distribución de Linux para desarrolladores
  • Mastering Bash Script Loops
  • Lista de las mejores herramientas de Kali Linux para pruebas de penetración y ..
  • Use WPSCan para escanear WordPress para vulnerabilidades en Kali
  • Mint 20: Mejor que Ubuntu y Microsoft Windows?