A basket (also known as a Cart, Order or Transaction) is a collection of information about a sale that is in progress or has been completed.
Typically within a basket, the following information will be provided:
oA unique reference for the basket (this can be an order number, transaction number, or customer session)
oThe sale date of the basket. In the case of amendments the sale date may be in the past.
oA channel, which indicates the source of the basket. For example, this could be Web indicating the basket originated from a website.
oDelivery details (where applicable) including the delivery charge and selected delivery method.
oOrder totals and manual discounts.
oAn anonymized customer Id
oWhere available, coupon/voucher codes supplied by the customer.
oA flag indicating whether the basket is confirmed (see below for further details)
oAdditional attribute values to provide extended information for the basket, specific to the company/implementation.
Each product in the basket will be provided as a Basket Item, and will typically include the following information:
oA unique line number for the basket item. This is an incrementing number and will be used to map against response items, and where basket items are split in the response.
oThe Product Code and Variant Code which identifies the product being purchased.
oA quantity indicating how many of the product is being purchased by the customer.
oThe selling price of the product.
oFlags indicating whether the product should always be excluded from promotions, is a delivery product or a gift card.
oA manual discount amount where applicable.
oAdditional attribute values to override/extend those defined against the product.
Baskets are submitted to the Promo API as either JSON or XML from an integrated system to be validated. The response includes details on all promotions applied, whether supplied coupon/voucher codes have been utilized and more. The response can then be displayed to the customer in the integrated system.
For full details on the basket request and responses, see the schema and sample for Promo API request 10300.
Test baskets can be submitted for validating using the Basket Builder.
Delivery charges can either be provided against the basket detail (as a header delivery charge), or as one or more lines in the basket that are flagged to be a delivery line. When the Promo engine is processing the basket and a delivery charge has been supplied against the basket header it will be converted to be a line in the basket. When the response is returned, if the delivery charge has been discounted a new line will be returned with the delivery charge discounts against it.