This guide explains how to use Magento 2 APIs to add products to a cart and place an order programmatically. It includes example requests, responses, and payloads.
For more details, visit the official Magento 2 API Documentation.
Step 1: Create a Customer Token
Authenticate the user to retrieve a customer token for further API calls.
Request
POST /rest/V1/integration/customer/token
Headers:
- Content-Type: application/json
Body:
{
"username": "[email protected]",
"password": "customer_password"
}
Response
{
"token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1..."
}
Step 2: Create a Cart
Create a new cart (quote) for the customer using the customer token.
Request
POST /rest/V1/carts/mine
Headers:
- Authorization: Bearer {customer_token}
- Content-Type: application/json
Response
1234 // Cart ID
Step 3: Add a Product to the Cart
Add a product to the cart by specifying the product details and the cart ID.
Request
POST /rest/V1/carts/mine/items
Headers:
- Authorization: Bearer {customer_token}
- Content-Type: application/json
Body:
{
"cartItem": {
"sku": "product-sku",
"qty": 1,
"quote_id": "1234"
}
}
Response
{
"item_id": 1,
"sku": "product-sku",
"qty": 1,
"name": "Product Name",
"price": 100,
"quote_id": "1234"
}
Step 4: Set Shipping Information
Provide shipping address and carrier information for the cart.
Request
POST /rest/V1/carts/mine/shipping-information
Headers:
- Authorization: Bearer {customer_token}
- Content-Type: application/json
Body:
{
"addressInformation": {
"shipping_address": {
"region": "California",
"region_id": 12,
"country_id": "US",
"street": ["123 Main St"],
"telephone": "1234567890",
"postcode": "90001",
"city": "Los Angeles",
"firstname": "John",
"lastname": "Doe",
"email": "[email protected]"
},
"billing_address": {
"region": "California",
"region_id": 12,
"country_id": "US",
"street": ["123 Main St"],
"telephone": "1234567890",
"postcode": "90001",
"city": "Los Angeles",
"firstname": "John",
"lastname": "Doe",
"email": "[email protected]"
},
"shipping_carrier_code": "flatrate",
"shipping_method_code": "flatrate"
}
}
Response
{
"payment_methods": [
{
"code": "checkmo",
"title": "Check / Money order"
}
]
}
Step 5: Place the Order
Finalize the order by providing payment method details.
Request
POST /rest/V1/carts/mine/payment-information
Headers:
- Authorization: Bearer {customer_token}
- Content-Type: application/json
Body:
{
"paymentMethod": {
"method": "checkmo"
},
"billing_address": {
"region": "California",
"region_id": 12,
"country_id": "US",
"street": ["123 Main St"],
"telephone": "1234567890",
"postcode": "90001",
"city": "Los Angeles",
"firstname": "John",
"lastname": "Doe",
"email": "[email protected]"
}
}
Response
{
"order_id": 1001
}
Conclusion
Using the Magento 2 REST APIs outlined above, you can programmatically add products to the cart and complete the checkout process. For additional details, visit the Magento 2 API Documentation.