Edit in GitHubLog an issue

Step 7. Create a cart and add products to it

Next, we'll create a cart and add the items that we modified in Step 5. Reassign products to custom sources.

Create a cart

The call to create a cart and add items must contain the customer's authorization token in the authorization header.

Endpoint:

POST <host>/rest/default/V1/carts/mine

Scope:

default store view

Headers:

Content-Type: application/json

Authorization: Bearer <customer_token>

Payload:

None

Response:

The response is the quoteId: 3

Check for product availability

In Step 5. Reassign products to custom sources, we defined the quantities of products 24-WB01 and 24-WB03 for the US source as follows:

ProductNortheast WarehouseBrooklyn StoreManhattan Store
24-WB01
35
10
10
24-WB03
50
0
0

Later in this step, we'll order 40 24-WB01 items and 20 24-WB03 items. We can see that we have enough salable items for both products, but let's check programmatically.

Check for product 24-WB01

The get-product-salable-quantity endpoint indicates how many items are available for sale for the specified product (24-WB01) and source (2).

Endpoint:

GET <host>/rest/default/V1/inventory/get-product-salable-quantity/24-WB01/2

Scope:

default store view

Headers:

Content-Type: application/json

Authorization: Bearer <admin_token>

Payload:

Not applicable

Response:

100

Check for product 24-WB03

Use the same endpoint to check the quantity available for product 24-WB03.

Endpoint:

GET <host>/rest/default/V1/inventory/get-product-salable-quantity/24-WB03/2

Scope:

default store view

Headers:

Content-Type: application/json

Authorization: Bearer <admin_token>

Payload:

Not applicable

Response:

100

Add items to the cart

We have ensured that we have enough physical products in stock to fulfill the potential order.

Add the first simple product

In this call, we'll add 20 24-WB03 items. This portion of the order can be fulfilled from the Northeast warehouse.

Endpoint:

POST <host>/rest/default/V1/carts/mine/items

Scope:

default store view

Headers:

Content-Type: application/json

Authorization: Bearer <customer_token>

Payload:

Copied to your clipboard
{
"cartItem": {
"sku": "24-WB03",
"qty": 20,
"quote_id": "3"
}
}

Response:

Note the item_id for use in subsequent steps.

The discount is a result of the "20% OFF Every $200-plus purchase!" cart price rule.

Copied to your clipboard
{
"item_id": 5,
"sku": "24-WB03",
"qty": 20,
"name": "Driven Backpack",
"price": 36,
"product_type": "simple",
"quote_id": "3",
"extension_attributes": {
"discounts": [
{
"discount_data": {
"amount": 144,
"base_amount": 144,
"original_amount": 144,
"base_original_amount": 144
},
"rule_label": "Discount",
"rule_id": 3
}
]
}
}

Add the second simple product

Use the same endpoint to add 40 items of 24-WB01 to the cart. Multiple sources will be required to fulfill this potential order.

Payload:

Copied to your clipboard
{
"cartItem": {
"sku": "24-WB01",
"qty": 40,
"quote_id": "3"
}
}

Response:

Note the item_id for use in subsequent steps.

Copied to your clipboard
{
"item_id": 6,
"sku": "24-WB01",
"qty": 40,
"name": "Voyage Yoga Bag",
"price": 32,
"product_type": "simple",
"quote_id": "3",
"extension_attributes": {
"discounts": [
{
"discount_data": {
"amount": 256,
"base_amount": 256,
"original_amount": 256,
"base_original_amount": 256
},
"rule_label": "Discount",
"rule_id": 3
}
]
}
}

Add a downloadable product

Finally, we'll add a single instance of a downloadable product to the cart.

Payload:

Copied to your clipboard
{
"cartItem": {
"sku": "240-LV06",
"qty": 1,
"quote_id": "3"
}
}

Response:

Copied to your clipboard
"item_id": 7,
"sku": "240-LV06",
"qty": 1,
"name": "Yoga Adventure",
"price": 22,
"product_type": "downloadable",
"quote_id": "3",
"product_option": {
"extension_attributes": {
"downloadable_option": {
"downloadable_links": [
3
]
}
}
},
"extension_attributes": {
"discounts": [
{
"discount_data": {
"amount": 4.4,
"base_amount": 4.4,
"original_amount": 4.4,
"base_original_amount": 4.4
},
"rule_label": "Discount",
"rule_id": 3
}
]
}
}

Verify this step

Sign in as the customer at http://<host> and click on the shopping cart. All the items you added display in the cart.

  • Privacy
  • Terms of Use
  • Do not sell or share my personal information
  • AdChoices
Copyright © 2024 Adobe. All rights reserved.