Not logged in - Login

Baskets, Lines and Products

Go to Promo Help Home


In this help topic we will provide an in depth look into what the terms Basket, Line and Products are in the context of retail applications and specifically how these common terms map to entities in Promo.


A basket (also known as an 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:

  • A unique reference for the basket (this can be an order number, transaction number, or customer session)

  • A sale date, which may not be the current date and time where an amendment is taking place to a historic basket, or where a customer is changing their basket over time and so the sale date would usually be the date and time when they started their session.

  • A channel, which indicates the source of the basket. For example, this could be WEB indicating the basket originated from a website.

  • Delivery details (where applicable) including the delivery charge and selected delivery method.

  • Order totals and manual discounts.

Typically this small set of information about a basket is extended for each company, as they will capture additional information against each basket. This may include customer details, customer segmentation, store or store group details, loyalty card numbers and more. Promo is designed to be flexible with its definition of a Basket, using Attributes to allow additional information to be defined about baskets.

For more information on Attributes, see the article: Entities and Attributes

Completed Baskets

A basket can go through multiple iterations as a customer decides what they would like to buy; adding and removing items as they see fit. Typically there will be a checkout or order completion process which will indicate that the customer is ready to finalise their purchase and provide payment details. Once the payment details have been completed and the order is placed the basket is referred to as Completed.

Promo needs to know whether a basket is completed or not so that it can confirm actions for the customer's basket. For example where a customer has utilized a Coupon Code (also referred to as Media or Source code) Promo will only capture usage of that code at the point when the customer's basket is Completed.


Lines are provided with a basket, listing the product(s) the customer has indicated they are interested in purchasing. Typically there will be one line in the basket for each distinct product (or distinct product and price combination), where the line will have the price that the product(s) are to be sold at, a quantity of products requested and where applicable any manual discount.

Further to this, additional information can also be provided with lines in the basket, where appropriate - and this will usually be specific to business needs. For example, a line may have additional information defined against it to indicate that the product(s) are being manually discounted due to being display stock, in which case they may have a manual discount amount and also a manual discount code.


A Product is the item being purchased by the customer. Extended information about the product will usually be used to aid in the categorization of the product, and it is this extended information that Promo will use to establish whether products found against lines in the basket qualify to be discounted. Extended information is captured against products in Promo using Attributes.

To avoid providing the extended product information with Basket Lines (as this would significantly increase the complexity of a basket line, as well as duplicating information with each basket), Products and their extended information (Attributes) are provided to Promo as a bulk upload, usually as a scheduled task. Products can also be maintained directly in Promo where required.

For more information on Attributes, see the article: Entities and Attributes