This topic covers less common use cases for working with baskets.
Add a Coupon to a Basket
- Configure coupons using the information in Using Coupons as Promotion Qualifiers for B2C Commerce.
- Get a guest token.
- Create a basket.
- Add a coupon to the basket using the addCouponToBasket endpoint.
echo '--> Create basket...'
curl "$BASE_BASKET/baskets?siteId=$SITE" \
-sSfH "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"productItems": [{ "quantity": 1, "productId": "750518699585M"}],
"couponItems": [{ "code": "menssuits" }]
}' | jq -r '.couponItems'
For additional code examples, see addCouponToBasket.
Gift Certificates
For gift certificate overview information and how to create a gift certificate, see Gift Certificates.
Use the Shopper Baskets addGiftCertificateItemToBasket endpoint to add a gift certificate to a basket, as shown in the following example:
curl "$BASE_BASKETS/$BASKET_ID/gift-certificate-items?siteId=$SITE" \
-sS --fail-with-body \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"amount": 1,
"recipientEmail": "miller@salesforce-test.com",
"shipmentId": "me"
}'
Create a Basket and Add Bonus Products With Choice
- Configure the bonus product in Business Manager.
- Get a guest token.
- Create a basket.
- Add one or more products that are associated with a bonus product choice promotion using the createBasket or addItemToBasket endpoint.
- After a product is added to the basket, applicable bonus items become available. The basket response includes a property called
bonusDiscountLineItems, which is a set of bonus products from which a customer can choose. - Copy the
productIdand thebonusDiscountLineItemIdfrom the response and use it to select the bonus product using the addItemToBasket endpoint. Quantity is a compulsory field and cannot exceed the number of bonus products allowed in the promotion. In this case, it is 1.
echo '--> Create basket...'
RESPONSE=$(
curl "$BASE_BASKET/baskets?siteId=$SITE" \
-sS --fail-with-body \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"productItems": [{ "quantity": 1, "productId": "750518894553M"}]}'
)
BASKET=$(echo $RESPONSE | jq -r '.basketId')
echo $RESPONSE | jq -r '.bonusDiscountLineItems'
BONUS=$(echo $RESPONSE | jq -r '.bonusDiscountLineItems[0].id')
echo '--> Add the bonus product...'
curl "$BASE_BASKET/baskets/$BASKET/items?siteId=$SITE" \
-sS --fail-with-body \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '[{ "quantity": 1, "productId": "793775370033M", "bonusDiscountLineItemId": "'$BONUS'"}]' \
| jq '.productItems'
The previous script adds a product with bonus products to the basket. The first bonus product available in the bonusDiscountLineItems array is added to the basket.