Saltar al contenido principal
En esta página▾

Un pedido comienza cuando su cliente confirma un presupuesto en el configurador. A partir de ese momento es un registro almacenado y firmado, y CutOptim se lo comunica de dos maneras.

Qué es un pedido

Un documento de pedido contiene la lista de corte, las planchas completas utilizadas, los herrajes, los paneles encolados, el plan de corte y el presupuesto con sus líneas y totales en unidades menores enteras de la moneda. Está firmado, por lo que no puede modificarse después. Enviar dos veces la misma solicitud de pedido devuelve el mismo pedido, nunca un segundo.

Como el precio procede de sus reglas publicadas en el servidor, su tienda no confía en el navegador para obtenerlo. Antes de que su carrito acepte una línea, su servidor pide a CutOptim que verifique el presupuesto con su clave secreta. La vía lista para usar es el plug-in de WooCommerce; para otras tiendas, vea las plataformas propias.

Entrega por webhook

Añada un webhook a la lista channels.webhooks de su configuración (categoría Advanced, editor JSON) y publique. Cada entrada tiene un id, una url y los events que desea. La URL debe ser una dirección HTTPS pública; las direcciones privadas, locales e internas se rechazan al guardar y de nuevo al enviar. Se envían dos eventos:

  • order.created cuando un cliente hace un pedido.
  • order.status_changed cuando usted mueve un pedido a un nuevo estado.

Cada entrega es un POST con un cuerpo JSON canónico y estas cabeceras: CutOptim-Signature, CutOptim-Event-Id, CutOptim-Event-Type, CutOptim-Delivery-Attempt y CutOptim-Delivery-Id. La firma es t=<unix seconds>,v1=<hex>, un HMAC-SHA256 de <t>.<raw body> con el secreto del receptor. Su receptor debería:

  1. leer el cuerpo sin procesar antes de analizarlo;
  2. comprobar que la marca de tiempo está dentro de unos pocos minutos y comparar la firma en tiempo constante;
  3. aceptar cualquiera de varios valores v1, que aparecen mientras se rota un secreto;
  4. responder rápidamente con un estado 2xx y tratar un id de evento una sola vez.

El secreto del receptor se revela a su servidor mediante POST /cfg/v1/admin/webhooks/<id>/secret en el servicio, con su clave secreta. No se muestra en la consola.

Una respuesta que no sea 2xx, un tiempo de espera agotado o una redirección cuentan como fallo. Los reintentos esperan 1, 5, 25 y 125 minutos, y después 6 horas, y el sexto intento fallido marca la entrega como muerta. Una reentrega repite el mismo id de evento para que su receptor pueda reconocerla. Otros tipos de evento de la configuración, como los de presupuesto o proyecto, se aceptan pero nunca se envían.

Correo electrónico

En la sección channels.email de su configuración enumera las direcciones destinatarias de la tienda (tenantRecipients) y puede activar una copia al cliente (sendCustomerCopy). El correo de la tienda lleva una hoja de trabajo y un PDF de etiquetas; la copia al cliente solo se envía cuando usted la ha activado y el pedido lleva una referencia de cliente con una dirección registrada, y responder a ella llega a su primer destinatario. El correo de estado solo se envía cuando usted lo solicita al cambiar un estado. Un fallo de envío nunca bloquea el pedido. Un sandbox escribe solo a la dirección confirmada del propietario y nunca a un cliente.

La consola de pedidos

El área Orders de la consola enumera los pedidos por estado y fecha, y abre un pedido para mostrar su lista de corte, sus líneas de precio, sus totales y su historial. Propietario y administrador ven además los registros de entrega de webhook y correo, con un botón Redeliver que pone en cola una copia de una entrega finalizada, fallida o muerta. Una entrega que sigue en espera o en ejecución no puede reenviarse.

Para cambiar un estado, elige el siguiente estado, añade una nota opcional y decide si envía un correo al cliente. Los movimientos permitidos son:

Desde Hasta
recibido (received) confirmado (confirmed), cancelado (cancelled)
confirmado (confirmed) en producción (in production), cancelado (cancelled)
en producción (in production) enviado (shipped), cancelado (cancelled)
enviado (shipped) completado (completed)

Los pedidos completados y cancelados no se mueven. Los pedidos nunca se eliminan desde la consola; son registros de negocio.

La página de seguimiento

El enlace de seguimiento del cliente muestra el número de pedido, el nombre de su tienda, los pasos de estado con la hora de cada uno, el número de piezas y el total, en uno de diez idiomas. No muestra ninguna dirección ni correo electrónico, ninguna lista de corte y nunca sus notas, y no tiene scripts. El enlace no puede adivinarse, pertenece a un solo pedido y caduca 365 días después del pedido. Si necesita el enlace para una llamada telefónica, su servidor puede solicitarlo con la clave secreta; la consola no lo muestra.

Archivos de producción

Cada pedido puede descargarse como siete archivos desde el detalle del pedido:

Archivo Uso
Lista de piezas (CSV) las piezas con medidas y cantidades
Ubicaciones (CSV) dónde se sitúa cada pieza en cada plancha
Dibujo (SVG) el plan, para ver o imprimir
Dibujo CNC (DXF) para software CNC
Etiquetas (PDF) etiquetas de piezas
Hoja de trabajo (PDF) una hoja para el taller
Extracto ERP (JSON) para su sistema ERP

Los PDF se reconstruyen a partir del pedido y se rechazan cuando el plan no puede reproducirse exactamente; en ese caso los demás archivos siguen disponibles. Los PDF están en inglés. No hay exportación a Excel para un pedido, y los pedidos 1D o de madera todavía no existen, por lo que para ellos no se exporta nada.

Qué no está cubierto

  • El configurador no cobra ningún pago; el pago y el cumplimiento siguen en su tienda.
  • No hay cambio de estado en bloque.
  • Un enlace de seguimiento no puede revocarse uno a uno; caduca por sí solo.

FAQ

¿Cómo recibo un pedido?
De dos formas a la vez, según lo configure: un webhook firmado a su servidor y un correo electrónico a las direcciones que indique. El correo lleva una hoja de trabajo y etiquetas como archivos PDF. Además, cada pedido se almacena y es visible en la consola, de modo que un webhook perdido nunca hace perder un pedido.
¿Cómo sé que un webhook procede realmente de CutOptim?
Cada entrega lleva una cabecera CutOptim-Signature, un HMAC-SHA256 sobre los bytes exactos del cuerpo con una marca de tiempo. Su servidor la recalcula con el secreto del receptor, que su servidor obtiene de CutOptim con su clave secreta, y rechaza una firma incorrecta o una marca de tiempo antigua. Verifique el cuerpo sin procesar antes de analizarlo e ignore un id de evento que ya haya tratado, porque la entrega es al menos una vez.
¿Qué ocurre si mi servidor está caído cuando llega un pedido?
El pedido se almacena primero y la entrega se reintenta: tras 1, 5, 25 y 125 minutos y después 6 horas. Tras el sexto intento fallido, la entrega se marca como muerta (dead). Los propietarios y administradores pueden ver el registro de entregas en la consola y poner en cola una reentrega del mismo evento con un clic.
¿Cuáles son los estados del pedido?
Recibido, confirmado, en producción, enviado y completado, además de cancelado. Un pedido avanza un paso cada vez y puede cancelarse hasta que se haya enviado; completado y cancelado son finales. La base de datos lo impone, de modo que ninguna ruta puede mover un pedido hacia atrás. Cada cambio se registra con quién lo hizo.
¿Puede mi cliente seguir el pedido?
Sí. Al cambiar un estado puede marcar una casilla para enviar un correo al cliente, y ese correo lleva un enlace de seguimiento. La página muestra el número de pedido, el nombre de su tienda, los pasos de estado y cuándo ocurrió cada uno, el número de piezas y el total. No muestra ninguna dirección, ninguna lista de corte ni ninguna de sus notas. El enlace deja de funcionar 365 días después del pedido.
¿Qué archivos de producción puedo descargar?
Siete por pedido: la lista de piezas (CSV), las ubicaciones (CSV), un dibujo del plan (SVG), un dibujo CNC (DXF), un PDF de etiquetas, un PDF de hoja de trabajo y un extracto para ERP (JSON). Los archivos SVG, DXF y de ubicaciones son los mismos que produce el Engine API para el mismo plan.

Última actualización: 19 de octubre de 2026