PrestaShop - Obtener Pedidos
Descripción
Sección titulada «Descripción»Este módulo permite consultar pedidos de tu tienda PrestaShop, ya sea un pedido específico por ID o una lista filtrada por estado, cliente, fechas y otros criterios.
Configuración
Sección titulada «Configuración»Credenciales
Sección titulada «Credenciales»Usa las mismas credenciales que para otros módulos PrestaShop. Asegúrate de que la API Key tenga permisos de lectura en “orders”.
Permisos Requeridos en PrestaShop
Sección titulada «Permisos Requeridos en PrestaShop»orders- GET (lectura)order_states- GET (opcional, para filtrar por estado)
Parámetros
Sección titulada «Parámetros»| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
credentials_id | string | Sí | ID de las credenciales de PrestaShop |
order_id | number | No | ID de pedido específico |
order_reference | string | No | Referencia del pedido (ej: ABCD1234) |
order_state | number | No | ID del estado del pedido |
customer_id | number | No | ID del cliente |
date_from | string | No | Fecha desde (YYYY-MM-DD) |
date_to | string | No | Fecha hasta (YYYY-MM-DD) |
limit | number | No | Límite de resultados (default: 50) |
sort_by | string | No | Campo para ordenar (default: id) |
sort_order | string | No | Orden: ASC o DESC (default: DESC) |
display_fields | string | No | Campos a mostrar: full, basic o lista separada por comas |
Estados de Pedido Comunes en PrestaShop
Sección titulada «Estados de Pedido Comunes en PrestaShop»| ID | Estado |
|---|---|
| 1 | En espera de pago por cheque |
| 2 | Pago aceptado |
| 3 | Preparación en curso |
| 4 | Enviado |
| 5 | Entregado |
| 6 | Cancelado |
| 7 | Reembolsado |
| 8 | Error de pago |
| 9 | En espera pago PayPal |
| 10 | Pago remoto aceptado |
Nota: Los IDs pueden variar según la configuración de tu tienda.
Lista de Pedidos
Sección titulada «Lista de Pedidos»{ "success": true, "orders": [ { "id": "123", "reference": "ABCD1234", "id_customer": "45", "current_state": "4", "total_paid": "89.99", "date_add": "2024-01-15 10:30:00", "...": "otros campos" } ], "total": 25, "filters_applied": { "order_state": 4, "limit": 50, "sort": "id_DESC" }}Pedido Específico
Sección titulada «Pedido Específico»{ "success": true, "order": { "id": "123", "reference": "ABCD1234", "id_customer": "45", "current_state": "4", "total_paid": "89.99", "total_products": "79.99", "total_shipping": "10.00", "payment": "PayPal", "date_add": "2024-01-15 10:30:00", "associations": { "order_rows": [...] } }, "total": 1}Ejemplo de Uso
Sección titulada «Ejemplo de Uso»Obtener un pedido específico
Sección titulada «Obtener un pedido específico»{ "credentials_id": "presta_tienda", "order_id": 123}Buscar por referencia
Sección titulada «Buscar por referencia»{ "credentials_id": "presta_tienda", "order_reference": "ABCD1234"}Pedidos pendientes de envío
Sección titulada «Pedidos pendientes de envío»{ "credentials_id": "presta_tienda", "order_state": 3, "limit": 100, "sort_by": "date_add", "sort_order": "ASC"}Pedidos de un cliente
Sección titulada «Pedidos de un cliente»{ "credentials_id": "presta_tienda", "customer_id": 456, "limit": 20}Pedidos de hoy
Sección titulada «Pedidos de hoy»{ "credentials_id": "presta_tienda", "date_from": "2024-01-15", "date_to": "2024-01-15", "display_fields": "basic"}Últimos 10 pedidos enviados
Sección titulada «Últimos 10 pedidos enviados»{ "credentials_id": "presta_tienda", "order_state": 4, "limit": 10, "sort_by": "date_add", "sort_order": "DESC"}Pedidos del último mes
Sección titulada «Pedidos del último mes»{ "credentials_id": "presta_tienda", "date_from": "2024-01-01", "date_to": "2024-01-31", "display_fields": "id,reference,total_paid,current_state,date_add"}Workflows de Ejemplo
Sección titulada «Workflows de Ejemplo»Workflow 1: Exportación Diaria de Pedidos
Sección titulada «Workflow 1: Exportación Diaria de Pedidos»[Schedule (diario)] -> [PrestaGetOrders] -> [Transform] -> [Google Sheets] -> [Slack]Configuración del nodo:
{ "credentials_id": "presta_tienda", "date_from": "{{moment().subtract(1,'day').format('YYYY-MM-DD')}}", "date_to": "{{moment().subtract(1,'day').format('YYYY-MM-DD')}}", "display_fields": "full"}Workflow 2: Alertas de Pedidos Pendientes
Sección titulada «Workflow 2: Alertas de Pedidos Pendientes»[Schedule (c/15min)] -> [PrestaGetOrders] -> [Decision] -> [Email Alert]{ "credentials_id": "presta_tienda", "order_state": 2, "date_from": "{{moment().subtract(2,'days').format('YYYY-MM-DD')}}"}Decision: data.total > 0 -> Enviar alerta
Workflow 3: Sincronización con ERP
Sección titulada «Workflow 3: Sincronización con ERP»[Trigger HTTP] -> [PrestaGetOrders] -> [Loop] -> [HTTP Request a ERP] -> [Log]Uso con ExecuteScript
Sección titulada «Uso con ExecuteScript»// Procesar pedidos obtenidosconst pedidos = ctx.data.orders;
// Filtrar pedidos mayores a 100EURconst pedidosGrandes = pedidos.filter(p => parseFloat(p.total_paid) > 100);
// Calcular total de ventasconst totalVentas = pedidos.reduce((sum, p) => sum + parseFloat(p.total_paid), 0);
ctx.data = { pedidos_procesados: pedidos.length, pedidos_grandes: pedidosGrandes.length, total_ventas: totalVentas.toFixed(2)};Campos Disponibles en display_fields
Sección titulada «Campos Disponibles en display_fields»| Campo | Descripción |
|---|---|
id | ID del pedido |
reference | Referencia única |
id_customer | ID del cliente |
current_state | Estado actual |
total_paid | Total pagado |
total_paid_tax_incl | Total con impuestos |
total_paid_tax_excl | Total sin impuestos |
total_products | Total de productos |
total_shipping | Coste de envío |
payment | Método de pago |
date_add | Fecha de creación |
date_upd | Fecha de actualización |
invoice_number | Número de factura |
delivery_number | Número de albarán |
- Si especificas
order_id, se ignoran el resto de filtros y se devuelve solo ese pedido - El campo
display_fieldspuede ser:full: Todos los campos (default)basic: Solo campos esenciales (id, reference, current_state, date_add, total_paid_tax_incl, id_customer)- Lista personalizada:
id,reference,total_paid,payment
- Las fechas deben estar en formato ISO (YYYY-MM-DD)
- El límite máximo recomendado es 100 para evitar timeouts
Errores Comunes
Sección titulada «Errores Comunes»| Error | Causa | Solución |
|---|---|---|
| ”Pedido no encontrado” | ID incorrecto | Verifica el ID del pedido |
| ”Timeout” | Demasiados pedidos | Reduce el límite o añade filtros de fecha |
| ”Sin permisos” | API Key limitada | Habilita permisos de orders en el backoffice |
Nodos Relacionados
Sección titulada «Nodos Relacionados»- PrestaUpdateProduct - Actualizar stock de productos de un pedido