Antes de usar el recurso orders
, sigue los pasos que se indican en Comienza a usar pedidos.
A continuación, le mostramos cómo realizar una transacción simple con el recurso Pedidos:
- Cree un pedido.
- Estado del pedido anticipado.
- Enumere todos los pedidos.
- Confirmar pedido.
- Asigna el ID de pedido del comercio.
- Cargo al cliente.
- Crear envío.
- Actualiza el estado del pedido.
Todos los ejemplos usan el modo de zona de pruebas mediante la especificación de /v2.1sandbox
en la URL. Puedes quitar sandbox
para ejecutar los ejemplos en un entorno de producción con /v2.1
.
Crea un pedido
Asegúrese de que puede autenticar su cuenta de Merchant Center mediante el recurso Pedidos. Luego, usa createtestorder
con la siguiente URL y una plantilla de pedido para crear un pedido en el modo de zona de pruebas.
POST https://www.googleapis.com/content/v2.1sandbox/merchant_ID/testorders { "templateName": "template1" }
Una llamada exitosa muestra el orderId
del pedido nuevo:
{ "kind": "content#ordersCreateTestOrderResponse", "orderId": "G-PLA-7877-86-2240" }
(Solo en zona de pruebas) Estado del pedido anticipado
Los pedidos aprobados tienen el estado pendingShipment
. En el modo de producción, el estado del pedido se actualiza automáticamente. En el modo de zona de pruebas, debes actualizar el estado a pendingShipment
tú mismo.
Para cambiar el estado de un pedido a pendingShipment
, llama a advancetestorder:
POST https://www.googleapis.com/content/v2.1sandbox/merchant_ID/testorders/order_ID/advance
A continuación, se incluye un ejemplo de llamada:
POST https://www.googleapis.com/content/v2.1sandbox/merchant_ID/testorders/G-PLA-7877-86-2240/advance { "orderId": "G-PLA-7877-86-2240" }
Para confirmar que se actualizó el estado, usa get
:
GET https://www.googleapis.com/content/v2.1sandbox/merchant_ID/orders/G-PLA-7877-86-2240
Enumerar todos los pedidos
Puedes usar list
para enumerar todos tus pedidos actuales:
GET https://www.googleapis.com/content/v2.1sandbox/merchant_ID/orders/
Recomendamos una tasa de encuesta de 10 minutos.
Puedes agregar acknowledged=false
a una llamada list
para que solo se enumeren los pedidos que aún no se confirmaron:
GET https://www.googleapis.com/content/v2.1sandbox/merchant_ID/orders/?acknowledged=false
Confirmar pedido
Puedes usar acknowledge
para establecer el estado del pedido en acknowledged
:
La llamada acknowledge
requiere un operationId
que puedes usar para volver a ejecutar solicitudes y evitar operaciones duplicadas. Tú mismo configuras el operationId
.
POST https://www.googleapis.com/content/v2.1sandbox/merchant_ID/orders/G-PLA-7877-86-2240/acknowledge { "operationId": "operation-1" }
Asignar ID de pedido del comercio
Después de confirmar un pedido, puedes asignar un ID de pedido del comercio con updatemerchantorderid
. El valor que asignes debe ser único dentro de la cuenta de Merchant Center, pero no hay restricciones más allá de eso. Le recomendamos que utilice el mismo ID de pedido que el sistema de administración de pedidos.
POST https://www.googleapis.com/content/v2.1sandbox/merchant_ID/orders/G-PLA-7877-86-2240/updateMerchantOrderId { "operationId": "operation-2", "merchantOrderId": "unique_value_within_mc_account" }
Después de asignar un ID de pedido del comercio, puedes consultar un pedido específico mediante getbymerchantorderid
.
Cobrar al cliente
Puedes realizar una llamada opcional al cliente captureOrder
antes de enviar su pedido. Solo debes llamar a captureOrder
una vez por pedido.
Ten en cuenta que cobrar de forma correcta a un cliente no genera un desembolso inmediato de dinero en tu cuenta.
POST https://www.googleapis.com/content/v2.1sandbox/merchant_ID/orders/G-PLA-7877-86-2240/captureOrder
captureOrder
muestra si el cobro se realizó correctamente o no.
Si lo haces correctamente, puedes enviar el pedido. Si no es posible, es posible que haya un problema con la facturación del cliente o del comercio. Puedes cancel
el pedido en lugar del envío o vuelve a intentarlo más tarde.
Crear envío
Puedes crear un nuevo envío con shiplineitems
.
Debes incluir lo siguiente en el cuerpo de la solicitud:
shipmentId
- El ID del envío.
operationId
- El ID que eliges cuando confirmas un pedido.
lineItems[].lineItemId
- El ID de artículo del recurso Orders en la respuesta de una llamada
get
olist
. lineItems[].quantity
- La cantidad de artículos que se enviarán. Debe ser 1 como mínimo.
Cuando la API crea un envío, establece el estado del pedido en shipped
si se envían todos los artículos del pedido, o en partiallyShipped
si solo se envían algunos artículos del pedido.
A continuación, se muestra un ejemplo de llamada a shiplineitems
:
POST https://www.googleapis.com/content/v2.1sandbox/merchant_ID/orders/G-PLA-7877-86-2240/shipLineItems { "operationId": "operation-4", "shipmentId": "shipment-1", "lineItems": [ { "lineItemId": "CYBIDQWXDKCZEYE", "quantity": 1 } ], "carrier": "FedEx", "trackingId": "ASDFGHJKL12347890" }
Actualizar estado del pedido
Cuando lleguen los envíos, podrás actualizar su estado a delivered
con updateshipment
.
Usa el shipmentId
que configuraste cuando creaste el envío con shiplineitems
. Puedes encontrar el shipmentID
en la respuesta de get
después de enviar el pedido.
A continuación, se muestra un ejemplo de llamada a updateshipment
:
POST https://www.googleapis.com/content/v2.1sandbox/merchant_ID/orders/G-PLA-7877-86-2240/updateShipment { "operationId": "operation-5", "shipmentId": "shipment-1", "status": "delivered" }
Luego, el pedido estará completo.
Puedes explorar las otras llamadas disponibles en la documentación de referencia y obtener información sobre los problemas conocidos en Límites y restricciones.