Recurso de pedidos

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:

  1. Cree un pedido.
  2. Estado del pedido anticipado.
  3. Enumere todos los pedidos.
  4. Confirmar pedido.
  5. Asigna el ID de pedido del comercio.
  6. Cargo al cliente.
  7. Crear envío.
  8. 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 o list.
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.