Guía de integración de ERPs - Pedidos

Integración

VTEX Team

VTEX Team

Última actualización

La única razón para la existencia de una tienda es vender. Esto significa no sólo recibir pedidos hechos por los clientes, sino también hacer el cumplimiento de estos pedidos de manera eficiente.

Cuanto mayor sea la operación, mayor será la necesidad de una plataforma automatizada para manejar los pedidos recibidos por diferentes canales.

En este artículo, usted encontrará el método principal para la entrada de los pedidos recibidos por su tienda en su plataforma de fulfillment.

Visión general

La integración de pedido comprende cuatro momentos distintos, cada uno de ellos siendo un pequeño proceso por sí solo.

ERP Orders 1

Pasos de la integración de pedidos

Vamos a ver con más detalle cada uno de los pasos de la integración de pedido.

Download de pedido

La primera cosa que usted necesita para descargar un pedido es saber el momento adecuado para hacerlo. Para ayudarle en esta tarea, VTEX ofrece el Feed de pedidos. Este servicio informa cambios importantes en el workflow del pedido, especialmente cambios en el status de los pedidos.

Después de decidir que es hora de llevar un pedido a su plataforma de fulfillment, sólo tiene que descargar los detalles de ese pedido y decirle al feed que no tiene que enviar ese evento de nuevo, una vez que su interés en él terminó.

Al final, para los pedidos procesados, usted envía al OMS un mensaje de "Start Handling".

ERP Orders 2

Llamadas de API

1. Take feed event: https://documenter.getpostman.com/view/487146/oms/6tjSKqi#49ba56c0-0358-4579-b99e-ad330bfc37d0

curl --request GET \
  --url 'http://{{accountName}}.vtexcommercestable.com.br/api/oms/pvt/feed/orders/status?maxLot={{maxLot}}' \
  --header 'accept: application/json' \
  --header 'content-type: application/json' \
  --header 'x-vtex-api-appkey: {{X-VTEX-API-AppKey}}' \
  --header 'x-vtex-api-apptoken: {{X-VTEX-API-AppToken}}’

2. Get order detail: https://documenter.getpostman.com/view/487146/oms/6tjSKqi#43524211-bbed-4f80-9a9b-d96b32347f0a

curl --request GET \
  --url 'http://{{accountName}}.vtexcommercestable.com.br/api/oms/pvt/orders/{{orderId}}' \
  --header 'accept: application/json' \
  --header 'content-type: application/json' \
  --header 'x-vtex-api-appkey: {{X-VTEX-API-AppKey}}' \
  --header 'x-vtex-api-apptoken: {{X-VTEX-API-AppToken}}'

3. start-handling: https://documenter.getpostman.com/view/487146/oms/6tjSKqi#d1f4d8fb-1173-4a1e-8a55-38ed5521704e

Usted también verá esta llamada en otros pasos del proceso de integración, con el cambio sólo del evento objetivo.

Es muy importante llamar a la transición "start-handling", ya que esa es la operación que conecta el pedido y el conteo de stock con la reserva de stock en el módulo de logística de VTEX. En este paso el pedido va a ser cambiado de "Listo para el manejo", va a pasar en "Iniciar manoseo" y va a parar en "Preparando Entrega".

curl --request POST \
  --url 'http://{{accountname}}.vtexcommercestable.com.br/api/oms/pvt/orders/{{orderId}}/start-handling' \
  --header 'accept: application/json' \
  --header 'content-type: application/json' \
  --header 'x-vtex-api-appkey: {{X-VTEX-API-AppKey}}' \
  --header 'x-vtex-api-apptoken: {{X-VTEX-API-AppToken}}'

4. Ack feed: https://documenter.getpostman.com/view/487146/oms/6tjSKqi#1befe019-2219-40ad-b693-ff16aaf51d84

curl --request POST \
  --url 'http://{{accountName}}.vtexcommercestable.com.br/api/oms/pvt/feed/orders/status/confirm' \
  --header 'accept: application/json' \
  --header 'content-type: application/json' \
  --header 'x-vtex-api-appkey: {{X-VTEX-API-AppKey}}' \
  --header 'x-vtex-api-apptoken: {{X-VTEX-API-AppToken}}' \
  --data '[
    {
        "commitToken": "Marketplace##{\"Receipt\":\"+eXJYhj5rDqHa28+XUcfebDO4pve3TvMpPlW0ivc5STyE/
40J6wxooXgBF8LZ9CdhZkFJnMYBVDwPwQtNEoZQrVtErDB2Yq2zs16QqsJuYxSrQtBfl9rMfmkO5orB9oDHSpvwL6DjDzcuJeQBBNxono/
m4F6BloJEsk9BmuTmPaRI+7xsrN5Oeg8NPUoNSnsT983JPr1B+Y+TbbFjC1R8ZkvFHGVfti1QbhOwmYWTHPG08YMqla+Qwh7kUONLBXPqpo
rF/CcqJo5YVTSu2uBcCuXkUo+OH9uUTn6hHkUROo=\",\"PublisheId\":\"C0111A50CEB244E59C95422870127A4F\",
\"PublisheId_Item\":\"C0111A50CEB244E59C95422870127A4F\",\"EventId\":\"0dc05b6b-48a5-4f03-975aa69fb6550aaa\",\"
LastSendOverwrite\":null}"
    }
]'

Factura

Ahora el pedido está siendo procesado por su plataforma de fulfillment. Durante este proceso, es posible que tenga que realizar cambios en el pedido original, ya sea por la ruptura de stock, ya sea por cualquier otra razón. Es posible que desee quitar, agregar o cambiar ítems, causando o no cambios en el valor del pedido.

Cuando esté listo para la entrega del pedido, es el momento de informarle a VTEX. Así, la autorización de pago podrá ser capturada y el consumidor será notificado sobre el progreso.

ERP Orders 3

Llamadas de API

1. Enviar cambios a la tienda: https://documenter.getpostman.com/view/487146/oms/6tjSKqi#4701480a-d95f-4279-9e9d-da256ee8ea5c

curl --request POST \
  --url 'http://{{accountName}}.vtexcommercestable.com.br/api/oms/pvt/orders/{{orderId}}/changes' \
  --header 'accept: application/json' \
  --header 'content-type: application/json' \
  --header 'x-vtex-api-appkey: {{X-VTEX-API-AppKey}}' \
  --header 'x-vtex-api-apptoken: {{X-VTEX-API-AppToken}}' \
  --data '{
  "reason": "Promotion by phone.",
  "discountValue": 1000,
  "incrementValue": 0,
  "itemsRemoved": [
    {
      "id": "234794",
      "price": 600,
      "quantity": 2
    }
  ],
  "itemsAdded": [
    {
      "id": "234788",
      "price": 200,
      "quantity": 1
    }
  ]
}’

2. Enviar factura a la tienda: https://documenter.getpostman.com/view/487146/oms/6tjSKqi#102391a1-346d-4fa8-91fe-b11706922a77

curl --request POST \
    --url 'http://{{accountName}}.vtexcommercestable.com.br/api/oms/pvt/orders/{{orderId}}/invoice' \
    --header 'accept: application/json' \
    --header 'content-type: application/json' \
    --header 'x-vtex-api-appkey: {{X-VTEX-API-AppKey}}' \
    --header 'x-vtex-api-apptoken: {{X-VTEX-API-AppToken}}' \
    --data '{
  "type":"Output",
  "issuanceDate":"2010-01-31",
  "invoiceNumber":"9999",
  "invoiceValue":"10000",
  "invoiceKey": null,
  "invoiceUrl": null,
  "courier": null,
  "trackingNumber": null,
  "trackingUrl": null,
  "items": [
    {
      "id": "1234",
      "price": 10000,
      "quantity": 1
    }
  ]
}’

Rastreo de pedido

La última etapa de su gestión de pedidos es enviar información de rastreo del pedido a VTEX.

Aunque no es un paso necesario para que el pedido llegue al consumidor, esta es una de las features más importantes para una buena experiencia del usuario. No hay nada como saber con precisión la ubicación del producto comprado.

No hay límite para el número de mensajes de rastreo que se pueden agregar a una factura. Normalmente, se añade un mensaje para cada evento de rastreo hasta que los ítems se entreguen al comprador. En el caso de productos digitales, este último evento sería la URL para download.

Es importante resaltar que esa información es, en realidad, un conjunto de atributos de una factura. Por lo tanto, puede ser enviada junto a la factura, en el momento de envío a la tienda, si usted tiene esa información en esa etapa.

ERP Orders 4

Llamadas de API

1. Enviar información de entrega a la tienda: https://documenter.getpostman.com/view/487146/oms/6tjSKqi#2bc08480-cc43-4126-8368-6508a4358d28

curl --request PATCH \
  --url 'http://{{accountName}}.vtexcommercestable.com.br/api/oms/pvt/orders/{{orderId}}/invoice/
{{invoiceNumber}}' \
  --header 'accept: application/json' \
  --header 'content-type: application/json' \
  --header 'x-vtex-api-appkey: {{X-VTEX-API-AppKey}}' \
  --header 'x-vtex-api-apptoken: {{X-VTEX-API-AppToken}}' \
  --data '{
  "trackingNumber": "87658",
  "trackingUrl": "https://my.tracking.url/package",
  "courier": "WorldEx"
}’

2. Enviar mensajes de rastreo a la tienda: https://documenter.getpostman.com/view/487146/oms/6tjSKqi#97ec170c-076e-4347-870b-143704124e17

curl --request PUT \
  --url http://{{accountName}}.vtexcommercestable.com.br/api/oms/pvt/orders/{{orderId}}/invoice/
{{invoiceNumber}}/tracking \
  --header 'accept: application/json' \
  --header 'content-type: application/json' \
  --header 'x-vtex-api-appkey: {{X-VTEX-API-AppKey}}' \
  --header 'x-vtex-api-apptoken: {{X-VTEX-API-AppToken}}' \
  --data '{
  "isDelivered": true,
  "events": [
    {
      "city": "Rio de Janeiro",
      "state": "RJ",
      "description": "Left the distribution center.",
      "date": "2015-06-23"
    },
    {
      "city": "Sao Paulo",
      "state": "SP",
      "description": "On its way to Curitiba.",
      "date": "2015-06-24"
    }
  ]
}’

Paso extra: Cancelación de pedido

Cuando, por algún motivo operativo, tenga que cancelar el pedido que se está procesando, usted puede enviar un mensaje de cancelación al workflow del OMS. Si el pedido está en un status que no permite la cancelación, aparecerá un error.

Atención: los pedidos con factura no se pueden cancelar.

Llamada de API

https://documenter.getpostman.com/view/487146/oms/6tjSKqi#8e74afca-431d-413e-92ad-017102abdbe2

curl --request POST \
  --url 'http://{{accountName}}.{{environment}}.com.br/api/oms/pvt/orders/{{orderId}}/cancel' \
  --header 'accept: application/json' \
  --header 'content-type: application/json' \
  --header 'x-vtex-api-appkey: {{X-VTEX-API-AppKey}}' \
  --header 'x-vtex-api-apptoken: {{X-VTEX-API-AppToken}}'

¿Este artículo ha sido útil?