Я наконец-то понял. Вот что я делаю.
Получить один продукт
curl -g -X GET "$base_url/index.php/rest/V1/products/24-MB05/" \
-H "Authorization: Bearer $token"
Создать корзину
curl -g -X POST "$base_url/index.php/rest/V1/guest-carts/" \
-H "Authorization: Bearer $token"
Получить корзину
curl -g -X GET "$base_url/index.php/rest/V1/guest-carts/56241bf6bc084cd7589426c8754fc9c5" \
-H "Authorization: Bearer $token"
Добавить продукт в корзину
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 } }'
Добавить информацию о доставке
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": "abc@abc.com",
"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": "abc@abc.com",
"prefix": "address_",
"region_code": "MH"
},
"shipping_method_code": "flatrate",
"shipping_carrier_code": "flatrate"
}
}
'
Получить способ оплаты
curl -g -X GET "$base_url/index.php/rest/V1/guest-carts/56241bf6bc084cd7589426c8754fc9c5/payment-information" \
-H "Authorization: Bearer $token"
Разместить заказ
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"
}
}'
Я думаю, что есть небольшая ошибка: для размещения заказа на теле, это должен быть способ оплаты первым ключом, например так:
источник
создать пустую корзину URL: http: // www. [yoursite] .com / rest / V1 / carts / mine call: отправьте ответ: cartID например: 4290
Добавьте товар в корзину URL: http: // www. [Yoursite] .com / rest / V1 / carts / mine / items body:
Добавьте информацию о билле: http: // www. [Yoursite] .com / rest / V1 / carts / mine / billing-address body:
Получить методы доставки URL: http: // www. [yoursite] .com / rest / V1 / carts / mine / shipping-Methods
}
добавить информацию о доставке URL: http: // www. [yoursite] .com / rest / V1 / carts / mine / shipping-information body:
ответ: способ оплаты и информация о корзине
URL места заказа: http: // www. [Yoursite] .com / rest / V1 / carts / mine / тело заказа :
ответ: orderid
источник
Существует официальный учебник, показывающий, как сделать заказ через REST API: учебник по обработке заказов
для Magento 2.2
Они включали очень подробные шаги:
Учебное пособие включало в себя, как добавлять различные виды продуктов, разные способы доставки и много другой полезной информации с примерами кодов.
источник