Finalmente lo resolví. Esto es lo que estoy haciendo.
Obtén un solo producto
curl -g -X GET "$base_url/index.php/rest/V1/products/24-MB05/" \
-H "Authorization: Bearer $token"
Crear carro
curl -g -X POST "$base_url/index.php/rest/V1/guest-carts/" \
-H "Authorization: Bearer $token"
Consigue el carro
curl -g -X GET "$base_url/index.php/rest/V1/guest-carts/56241bf6bc084cd7589426c8754fc9c5" \
-H "Authorization: Bearer $token"
Añadir producto al carrito
curl -g -X POST "$base_url/index.php/rest/V1/guest-carts/56241bf6bc084cd7589426c8754fc9c5/items" \
-H "Authorization: Bearer $token" \
-H "Content-Type:application/json" \
-d '{ "cartItem": { "quote_id": "56241bf6bc084cd7589426c8754fc9c5", "sku": "24-MB05", "qty": 1 } }'
Agregar información de envío
curl -g -X POST "$base_url/index.php/rest/V1/guest-carts/56241bf6bc084cd7589426c8754fc9c5/shipping-information" \
-H "Authorization: Bearer $token" \
-H "Content-Type:application/json" \
-d '
{
"addressInformation": {
"shippingAddress": {
"region": "MH",
"region_id": 0,
"country_id": "IN",
"street": [
"Chakala,Kalyan (e)"
],
"company": "abc",
"telephone": "1111111",
"postcode": "12223",
"city": "Mumbai",
"firstname": "Sameer",
"lastname": "Sawant",
"email": "[email protected]",
"prefix": "address_",
"region_code": "MH",
"sameAsBilling": 1
},
"billingAddress": {
"region": "MH",
"region_id": 0,
"country_id": "IN",
"street": [
"Chakala,Kalyan (e)"
],
"company": "abc",
"telephone": "1111111",
"postcode": "12223",
"city": "Mumbai",
"firstname": "Sameer",
"lastname": "Sawant",
"email": "[email protected]",
"prefix": "address_",
"region_code": "MH"
},
"shipping_method_code": "flatrate",
"shipping_carrier_code": "flatrate"
}
}
'
Obtener método de pago
curl -g -X GET "$base_url/index.php/rest/V1/guest-carts/56241bf6bc084cd7589426c8754fc9c5/payment-information" \
-H "Authorization: Bearer $token"
Realizar pedido
curl -g -X PUT "$base_url/index.php/rest/V1/guest-carts/56241bf6bc084cd7589426c8754fc9c5/order" \
-H "Authorization: Bearer $token" \
-H "Content-Type:application/json" \
-d '
{
"paymentMethod": {
"method": "checkmo"
}
}'
Creo que hay un pequeño error: para realizar un pedido, en el cuerpo, debe ser el método de pago la primera clave, como esta:
fuente
crear url de carrito vacía: http: // www. [yoursite] .com / rest / V1 / carts / mine call: post response: cartID eg: 4290
Agregue un elemento a la url del carrito: http: // www. [Yoursite] .com / rest / V1 / carts / mine / items body:
Agregue la URL de información de facturación: http: // www. [Yoursite] .com / rest / V1 / carts / mine / billing-address body:
obtener url de métodos de envío: http: // www. [yoursite] .com / rest / V1 / carts / mine / shipping-method
}
agregar url de información de envío: http: // www. [yoursite] .com / rest / V1 / carts / mine / shipping-information body:
respuesta: método de pago y detalles del carrito
URL del lugar de pedido: http: // www. [Yoursite] .com / rest / V1 / carts / mine / order body:
respuesta: orderid
fuente
Hay un tutorial oficial que muestra cómo hacer un pedido a través de REST API:
Tutorial de procesamiento de pedidos para Magento 2.2
Incluyeron pasos muy detallados:
El tutorial incluía cómo agregar diferentes tipos de productos, diferentes métodos de envío y mucha otra información útil con códigos de muestra.
fuente