PrestaShop - Actualizar Stock
Descripción
Sección titulada «Descripción»Este módulo actualiza la cantidad de stock de un producto o combinación (variante) en una tienda PrestaShop a través de su API REST. El flujo de ejecución es:
- Obtiene las credenciales (apiKey y urlBase) de la tienda PrestaShop.
- Si se proporciona una referencia (
reference) y no se tiene el ID del producto, busca automáticamente en la API de PrestaShop:- Primero busca en combinaciones (
/api/combinations). - Si no encuentra, busca en productos (
/api/products). - Verifica que no sea una opción de producto (
product_option_values) que no se puede actualizar directamente.
- Primero busca en combinaciones (
- Obtiene el registro
stock_availabledel producto (o combinación) consultando la API con filtros porid_producteid_product_attribute. - Descarga el XML actual del stock, modifica la cantidad y lo envía de vuelta via PUT.
- Retorna confirmación con los IDs del producto, combinación, stock y cantidad actualizada.
Soporta tanto productos simples como productos con combinaciones (variantes por talla, color, etc.).
Configuración
Sección titulada «Configuración»Parámetros
Sección titulada «Parámetros»| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
| credentials_id | credentials | Sí | Credenciales de la API de PrestaShop (apiKey y urlBase). |
| is_combination | boolean | No | Indica si el producto es una combinación/variante. Default: true. |
| reference | text | No | Referencia del producto o combinación. Se usa para buscar automáticamente el product_id. |
| product_id | text | No | ID del producto en PrestaShop. Requerido si no se proporciona reference. |
| product_attribute_id | text | No | ID de la combinación/variante. Requerido para combinaciones si no se proporciona reference. |
| stock_quantity | number | Sí | Nueva cantidad de stock a establecer. |
Credenciales
Sección titulada «Credenciales»Se requiere credentials_id con un objeto que contenga:
apiKey: Clave de API de PrestaShop (generada en Backoffice > Parámetros Avanzados > Webservice).urlBase: URL base de la tienda (ej:https://mitienda.com).
{ "nextModule": "siguiente-nodo", "data": { "success": true, "product_id": 42, "product_attribute_id": 15, "is_combination": true, "stockId": 108, "updated_quantity": 25, "response": "<xml>...</xml>" }}Ejemplo de Uso
Sección titulada «Ejemplo de Uso»Caso básico - Por referencia
Sección titulada «Caso básico - Por referencia»{ "credentials_id": "credencial-prestashop", "reference": "REF-CAMISETA-L-AZUL", "stock_quantity": 50, "is_combination": true}Caso básico - Por IDs
Sección titulada «Caso básico - Por IDs»{ "credentials_id": "credencial-prestashop", "product_id": "42", "product_attribute_id": "15", "stock_quantity": 25, "is_combination": true}API Utilizada
Sección titulada «API Utilizada»- PrestaShop Webservice API:
GET {urlBase}/api/combinations?filter[reference]={ref}&display=[id,id_product]- Buscar combinación por referencia.GET {urlBase}/api/products?filter[reference]={ref}&display=[id]- Buscar producto por referencia.GET {urlBase}/api/stock_availables?filter[id_product]={id}&display=[id]- Obtener stock_available.GET {urlBase}/api/stock_availables/{id}- Obtener XML actual del stock.PUT {urlBase}/api/stock_availables/{id}- Actualizar stock (XML).
- Autenticación: Basic Auth con apiKey.
- La API de PrestaShop requiere que el Webservice esté habilitado y la clave tenga permisos sobre los recursos
products,combinations,stock_availablesyproduct_option_values. - La búsqueda por referencia primero intenta combinaciones y luego productos simples.
- Para productos simples (sin combinaciones), usar
is_combination: falseo dejarproduct_attribute_idvacío. - El stock se establece como valor absoluto (no incremental). Para incrementar, se debe leer el stock actual y sumar antes de llamar al módulo.
- Las respuestas XML se parsean internamente usando
xml2js.
Nodos Relacionados
Sección titulada «Nodos Relacionados»- Otros módulos de ecommerce (PrestaShop, WooCommerce)
- validate (Validador de datos - para validar datos antes de actualizar)