Concept - Basket Handling and Checkout (valid to 7.6)

1 Introduction

This document describes the basic concept of the basket handling and the checkout process. It lists the features involved in the checkout process and points to relevant API elements and further documentation.

2 References

Please also have a look at related concepts and cookbooks:

Address Check
Basket Calculation
Business Object Layer
Cross-site request forgery guard
Gifting
Inventory
OrderBO Export
Payment
Promotions
Shipping
Warranties
Cartridges

You will find some API documentation in the Application Programming Guide or in the Knowledge Base.

3 Architecture Layers and API Elements

The picture below shows the cartridges relevant for basket handling and for the checkout processes. In Intershop 7 we have a business layer containing reusable business components, mostly Java classes, pipelets and process pipelines. Based on business components, applications can be built in the application layer.

The order process is a core e-commerce business process that integrates many features like shipping, payment, promotions, etc. The glue code to integrate these features is located in cartridges bc_orderprocess and sld_ch_b2c_app. Most process pipelines and business object extensions are located there.

concept_basketcheckout_cartridge_layers

4 Basket Handling

4.1 Basket Types

Baskets are differentiated according to their lifetimes. This way, currently there are two types of baskets:

  • Session-based basket: Basket is assigned to current user session and only retrievable during this session. Basket is not retrievable any longer and moved to basket history after the session timed out.
  • Time-based basket: Basket is retrievable in the - explicitly - configured inactivity time period. Basket is no longer retrievable and moved to basket history after the configured time period ended.

4.2 Basket Lifecycle

During its lifetime a basket is in one of the following states:

  • BASKET_OPEN - Basket is open for every kind of manipulation, such as adding products, warranties and coupons, removing line items. Furthermore, a basket in this state is ready for checkout.
  • BASKET_ORDERED - Checkout of basket has been successfully finished.
  • BASKET_EXPIRED - A basket in the state BASKET_OPEN expires, because:
    • session-based basket - The user session expires.
    • time-based basket - Basket has not been touched/manipulated in the configured time period.
  • BASKET_INVALID - Basket is ready for removal.
  • BASKET_UNSPECIFIED - This state is currently not used but has to be kept for compatibility reasons.

After the basket creation (1) the basket is in the state BASKET_OPEN. The creation is triggered when a customer adds a product to the basket for the first time. When a customer successfully finishes his/her checkout (4), the basket gets the state BASKET_ORDERED. The transition (2) from BASKET_OPEN to BASKET_EXPIRED depends on the basket type. A session-based basket will get this state when the session times out or user logs out. A time-based basket which reaches the configured inactivity time period is moved to the basket history by a background job. As soon as the basket reaches the state BASKET_EXPIRED, it is treated in the same way independent from its type.

Basket Status

Either the basket is marked as removable by changing its state to BASKET_INVALID (5) after a configurable period of time (removed from history and DB) or it is "reactivated" for some reasons (3). The functionality that "reactivates" the basket from the basket history is in charge of removing certain parts of the basket, e.g., payment methods, addresses, item prices, etc.
The transition to BASKET_INVALID is made by a job. It updates the field status only. Another job purges (7) all invalid baskets from the database.

4.3 Basket Jobs

4.3.1 Move Outdated Baskets To History

This job moves outdated time-based baskets into the basket history. A basket becomes part of the history ("historic"), when the state changes to BASKET_EXPIRED and the history date is set. Empty baskets are not kept in the history, but removed directly. The job is configured per organization. Since the baskets are still accessible by the repository and in the cache, the job has to be implemented in the Java layer. By doing so, the ORM layer will take care of the cache update.

Accessing the PLIs triggers the loading of the related objects. But we need to decide to delete directly. How to avoid that?

Preferences:

Preference name

Type

Comment

BasketLifetime

Long

The amount of time that is configured in minutes as the lifetime of a time-based basket.

BasketInHistoryLifetime

Long

The amount of time a basket is kept in the history that is configured in hours. A value of 0 means that the baskets are not kept in the history.

All baskets which meet the following requirements have to be handled:

Field

Comparison

Value

Comment

basket expiration type

Equals

BASKET_EXPIRATION_TYPE_TIME

 

status

Equals

BASKET_OPEN

 

domain

Equals

Organization domain

The domain the job runs for.

last-touch-date

Smaller

current date - basket life time

Previously checked against creation date.

All empty baskets found for the conditions above can be removed directly. For all other baskets, the basket state is set to BASKET_EXPIRED and the history date is filled with the current date. In case of a disabled basket history feature ( BasketInHistoryLifetime = 0), the state is changed directly to BASKET_INVALID afterwards.

4.3.2 Invalidate History Baskets

This job cleans up the history from old baskets. A basket stays in the history only for a defined amount of time. As soon as the state changes to BASKET_INVALID, it is no longer part of the history. The job is configured per organization. Since the baskets are still accessible by the repository and possibly in the cache, the job has to be implemented in the Java layer. By doing so, the ORM layer will take care of the cache update.

Preferences:

Preference name

Type

Comment

BasketInHistoryLifetime

Long

The amount of time a basket is kept in the history that is configured in hours. A value of 0 means that the baskets are not kept in the history.

All baskets which meet the following requirements have to be handled:

Field

Comparison

Value

Comment

status

Equals

BASKET_EXPIRED

 

domain

Equals

Organization domain

 

history-date

Smaller

current date - (configured) historic basket life time

 

The state of all baskets found for the conditions above, is set to BASKET_INVALID.

Note

If the preference BasketInHistoryLifetime has the value 0, the baskets will not be kept in the history. In that case the job Cleanup Outdated Basket will bring the baskets into the state BASKET_INVALID and this job may be disabled.

4.3.3 Remove Invalid Baskets

This job is defined for SLDSystem and removes all invalid baskets for all organizations from the database. The product line items assigned to the baskets qualified for cleanup are removed from the database too. For performance reasons this should not be done in the Java layer. Since the baskets are invalid and not used anymore, they are not accessible via the repository and are not present in the cache.

Job Parameters:

Parameter name

Type

Comment

MaxNumberOfBaskets

Integer

Limits the loop over to this number of baskets to avoid long running Tx. A value 0 or smaller means unlimited.

All baskets which meet the following requirements have to be handled:

Field

Comparison

Value

Comment

status

Equals

BASKET_INVALID

 

For all baskets to be purged, the assigned product line items need to be retrieved and purged too.

4.4 Basket Configurations

4.4.1 Application Level Preferences

The following settings can be set on the application level:

No.

Preference

Description

Necessity

Values

Value Description

Comment

1.

Expiration Type

Determines the time-out behavior of shopping carts.
(Type of saving the shopping cart by the system)

One value mandatory (e.g. by drop down)

Time (default)

A time-based shopping cart expires after it is left untouched for a defined amount of time (see Shopping Cart Lifetime below). A user always gets the same shopping cart as in the last session until the shopping cart expires.

 

 

 

 

One value mandatory (e.g. by drop down)

Session

A session-based shopping cart expires when the user ends the session. A new shopping cart will be created for every session the user starts.

 

2.

Shopping Cart Lifetime

Specifies the time (in minutes) during which a time-based shopping cart is kept alive. A shopping cart where the lifetime has not expired is shown as current basket if a registered customer logs on for a new session. Note: Only available if the expiration type "Time" is selected.
(Amount of time that a shopping cart will be saved by the system.)

Mandatory if expiration type " time" is selected

Default: 28,800 minutes

 

 

3.

Maximum Number of Line Items

Defines the allowed number of line items inside a shopping cart

Mandatory

Default: 50

 

 

4.

Maximum Quantity for one Line Item

Defines the allowed item quantity of a line item inside a shopping cart

Mandatory

Default: 100

 

 

5.

Maximum Shopping Cart Value

Defines the maximum shopping cart value for all currencies used in the system.

Optional

If there is no value defined, the maximum shopping cart value is unlimited.

The Maximum Shopping Cart Value is independent from the taxation settings. So, if the taxation setting is gross, the MSV is the Shopping Cart Subtotal including the taxes. If the taxation setting is net, the MSV is the Shopping Cart Subtotal without taxes.

The base for the Maximum Shopping Cart Value is the sum of all line item totals minus item-based discounts (= subtotal of the shopping cart). This means that only the product prices will be considered. Additional downstreamed costs like shipping, surcharges, gifting or payment costs are not a part of the MSV. So, a customer is able to add a product to the cart which is under the MSV although the additional costs cause a higher Total Cart Value than the MSV.

Example:
The MSV is defined with $ 1,000.
The customer adds a product with a price of $ 995 to his cart.
This product causes $ 10 shipping costs.
= The customer is able to place the order although the cart total is higher than the MSV.

6.

Display Taxes

Defines how the taxes will be displayed in the shopping cart and during the checkout (e.g. summarized or separated) This option is independent from the taxation preference of the channel.

One value mandatory (e.g. by drop down)

No taxes are displayed

 

 

 

 

 

One value mandatory (e.g. by drop down)

Consolidated Taxes (default)

Taxes will be displayed in a summary.

 

 

 

 

One value mandatory (e.g. by drop down)

Breakdown Taxes

Taxes will be displayed broken down by the tax class.

 

 

 

 

One value mandatory (e.g. by drop down)

Consolidated Taxes and Consolidated Fees

Taxes and Fees will be displayed in a summary.
(This will show VAT on the order review page as "Total Order VAT" below the order total so that customers know that it is a different amount from the order total.)

 

 

 

 

One value mandatory (e.g. by drop down)

Breakdown Taxes and Breakdown Fees

Taxes and fees will be displayed broken down by the tax class and the fee type.

 

7.

Tax Service Unavailable

Defines the checkout behavior if a taxation service was connected and if this service was currently not available.

One value mandatory (e.g. by drop down)

Stop Checkout Processing (default)

The customer cannot continue his/her checkout and cannot place an order.

 

 

 

 

One value mandatory (e.g. by drop down)

Continue the Checkout Process

The customer can continue the checkout and can place an order. He/She gets a specific message that he/she will get the correctly calculated taxes via email/order confirmation mail.

 

8.

Add Product Behavior

Defines the behavior if a customer adds a product again which he/she has still added to the shopping cart

One value mandatory (e.g. by drop down)

Disallow Repeats

It is not possible to add the same product to the shopping cart twice.
(Customers cannot add a product to the shopping cart he/she still has added. They can only change the quantity. )

 

 

 

 

One value mandatory (e.g. by drop down)

Merge Quantities (default)

If a product is added to the shopping cart which the shopping cart already contains, the quantity is recalculated but the line item is listed only once.
(The same products will be summarized to one line item.)

 

 

 

 

One value mandatory (e.g. by drop down)

Allow Repeats

It is possible to add the same product to the shopping cart more than once.
(The same products will be one line item for itself.)

 

9.

Checkout Acceleration

Enable or disable the accelerated checkout.

---

enabled/disabled
(default: enabled)

 

 

10.

Confirmation of Terms and Conditions

Enable or disable Terms and Condition confirmation to place an order.

---

enabled/disabled
(default: enabled)

 

 

11.

Auto Email Opt-In

Defines whether specific customer options are pre-selected or not (e.g. newsletter sign-up).

---

enabled/disabled
(default: disabled)

 

 

12.

Email Shopping Cart

Enable or disable the feature to share a shopping cart snapshot via e-mail.

---

enabled/disabled
(default: enabled)

 

 

13.

Save Shopping Cart as PDF

Enable or disable the feature to save a shopping cart snapshot as pdf file.

---

enabled/disabled
(default: enabled)

 

 

14.

Print Shopping Cart

Enable or disable the feature to print a shopping cart snapshot.

---

enabled/disabled
(default: enabled)

 

 

4.5 Basket - Handling

4.5.1 Pipeline

Cartridge

Pipeline Name

Description

Start Nodes

Extension Points

bc_orderprocess

ProcessCart

Functions for basic basket handling

GetExistingCart
GetCurrentCart
GetCurrentCartBO
CreateNewCart
AddProduct / AddProducts
AddDependentProducts
AddWarranty / AddWarranties
RemoveProductLineItem
Calculate
Update
InitializeNewProductLineItems

AddedItemToBasket
RemoveItemFromBasket

4.5.2 Pipelet

Below you can find a list of pipelets relevant for basket handling. For more details see the pipelet API documentation.

Cartridge

Pipelet Name

Description

bts

GetBasket

Retrieves basket for the given domain (e.g. PrimeTech-PrimeTechSpecials / PrimeTech-PrimeTechSpecials-Anonymous) and user.

bts

CreateBasket

Retrieves basket for the given domain and user.

bts

AddBasketToBasketHistory

Moves the given basket to the basket history.

bc_foundation

VerifyQuantity

Converts the given string into a Quantity entry and optionally checks it against a limit and the quantity steps.

bts

AddProductToBasket

Adds a single or multiple products with the given quantity to the given basket.

bts

RemoveProductLineItemFromBasket

Removes the single product line item with the given ID from given basket.

bts

CreateStaticAddress

Creates a static address and assigns it either to a given basket or a product line item.

bc_basket

GetBasketBO

Retrieves BasketBO for the given Basket and BasketBORepository instance.

sld_ch_b2c_base

GetBasketProductLineItemBO

Retrieves BasketProductLineItemBO with the given ID from the given BasketBO instance.

sld_ch_b2c_base

CreateWarrantyLineItem

Creates a BasketWarrantyLineItemBO for the given BasketProductLineItemBO and WarrantyBO instance.

sld_ch_b2c_base

RemoveWarrantyLineItem

Removes a warranty from the given BasketProductLineItemBO instance.

4.5.3 Java

Cartridge

Package and Class

Description

core

com.intershop.beehive.core.capi.profile.Address

The persistent object for addresses.

bts

com.intershop.beehive.bts.capi.orderprocess.basket.Basket

The persistent object representing a basket.

bts

com.intershop.beehive.bts.capi.orderprocess.ProductLineItem

The persistent object representing a product line item.

bts

com.intershop.beehive.bts.capi.orderprocess.ServiceLineItem

The persistent object representing a service line item.

bts

com.intershop.beehive.bts.capi.orderprocess.basket.BasketMgr

Manager for basket handling.

bc_basket

com.intershop.component.basket.capi.BasketBO

The business object representing a basket.

bc_basket

com.intershop.component.basket.capi.BasketProductLineItemBO

The business object representing a product line item.

bc_basket

com.intershop.component.basket.capi.BasketProductLineItemBO

The business object representing a product line item.

bc_warranty

com.intershop.component.warranty.capi.BasketWarrantyLineItemBO

The business object representing a warranty line item.

4.6 Basket - Calculation

4.6.1 Pipeline

Cartridge

Pipeline Name

Description

Start Nodes

Extension Points

bc_orderprocess

ProcessCartCalculation

Functions for calculation of an entire basket.

Start

 

4.6.2 Pipelet

Below you can find a list of pipelets relevant for basket calculation. For more details see the pipelet API documentation.

Cartridge

Pipeline Name

Description

bts

CalculateLineItemCtnrRuleBased

Performs a basket calculation using a given calculation rule set.

5 Checkout - Address Handling

5.1 Related Documentation

See also Concept - Address Check FW.

5.2 Basket/Checkout Address Handling API

concept_checkout_addresses

5.2.1 Pipeline

Below you can find a list of pipelines relevant for address handling. For more details see the pipeline API documentation.

Cartridge

Pipeline Name

Description

Start Nodes

Extension Points

bc_orderprocess

ProcessCheckoutAddresses

Functions to add/change/delete addresses

CheckDefaultSettings
CreateShipToAddress
CreateInvoiceToAddress
DeleteAddress
UpdateAddress
SetAsShippingAddress
SetAsBillingAddress
GetAddressSuggest
ApplyAddressSuggest

AddressToBeCreated-AddressCreating
AddressToBeUpdated-Updating

5.2.2 Pipelet

Below you can find a list of pipelets relevant for address handling. For more details see the pipelet API documentation.

Cartridge

Pipeline Name

Description

bc_address_check

ValidateAddressBO

The pipelet validates the provided address.

bts

UpdateStaticAddress

Updates the fields of a static address.

bc_giftcard

UpdateShipToAddress

Updates the ship-to address of all items in the basket excluding gift cards.

bc_requisition

UpdateRequisitionAddresses

Updates invoice and ship-to address of a basket.

sld_ch_b2c_base

SetSplitShipToAddress

Sets a ship-to address ID for the given BasketProductLineItemSplitInfo.

bc_address

UpdateAddressBO

Updates an address business object.

bc_customer

UpdateCustomerBOPreferredAddresses

Updates the preferred ship-to address and preferred invoice address of the customer.

bc_user

UpdateUserBOPreferredAddresses

Updates the preferred ship-to address and preferred invoice address of the user.

5.2.3 Java

Below you can find the list of Java classes and interfaces relevant for address handling. For more details see the Java API documentation.

Cartridge

Package and Class

Description

core

com.intershop.beehive.core.capi.profile.Address

The persistent object for addresses.

bc_address

com.intershop.component.address.capi.AddressBO

The business object for addresses.

6 Checkout - Shipping

Please see: Concept - Shipping (valid to 7.7) / Cookbook - Shipping .

6.1 Checkout Shipping Configurations

6.2 Basket/Checkout Shipping API

concept_checkout_shipping

6.2.1 Pipeline

Below you can find a list of pipelines relevant for shipping. For more details see the pipeline API documentation.

Cartridge

Pipeline Name

Description

Start Nodes

Extension Points

bc_orderprocess

ProcessShipping

Handle shipping settings of the basket

DefaultSettings
CheckDefaultSettings
IsDigitalOnly
ProcessGiftOptionMarkes
SetShippingMethod
UpdatePackSlipMessages
PrepareShippingInstruction
PrepareRequestedDeliveryDate
SetDefaultShippingMethod

ProcessShipping-StartHook

6.2.2 Pipelet

Below you can find a list of pipelets relevant for inventory handling. For more details see the pipelet API documentation.

Cartridge

Pipeline Name

Description

sld_ch_b2c_app

VerifyShippingMethods

Verifies whether the shipping methods are set correctly on the given BasketBO.

bc_shipping

VerifyShippingRestrictions

This pipelet is used to display the shipping restriction error message.

bc_shipping

SetDefaultShippingMethod

Sets all product line items of the provided basket to their default shipping method.

6.2.3 Java

Below you can find the list of Java classes and interfaces relevant for shipping. For more details see the Java API documentation.

Cartridge

Package and Class

Description

bc_shipping_data

com.intershop.component.shipping_data.capi.shippingmethod

The persistent object for shipping methods.

sld_ch_b2c_base

com.intershop.sellside.appbase.b2c.capi.shipping.BasketShippingBucketBO

A group of multiple product line item objects that have the same shipping method and shipping address.

sld_ch_b2c_base

com.intershop.sellside.appbase.b2c.capi.shipping.BasketShippingMethodSelectionBucketBO

The product line items grouped by shipping address and list of possible shipping methods. It is used to display it this way to the customer for easier shipping method selection.

sld_ch_b2c_base

com.intershop.sellside.appbase.b2c.capi.shipping.EligibleShippingMethodBO

Represents a shipping method eligible to ship the specified items to the specified destination.

sld_ch_b2c_base

com.intershop.sellside.appbase.b2c.capi.basket.BasketBOShippingBucketExtension

Extension of the basket to access shipping bucket functionality.

sld_ch_b2c_base

com.intershop.sellside.appbase.b2c.capi.basket.BasketBOShippingMethodExtension

Extension of the basket to access shipping method-related functionality.

sld_ch_b2c_base

UpdatePackSlipMessage

Updates/Creates the pack slip message at the provided shipping bucket.

7 Checkout - Gifting

7.1 Related Documentation

Please see: Concept - Gifting/ Cookbook - Gifting.

7.2 Basket/Checkout Gifting API

concept_checkout_gifting

7.2.1 Pipeline

Below you can find a list of pipelines relevant for gifting. For more details see the pipeline API documentation.

Cartridge

Pipeline Name

Description

Start Nodes

Extension Points

bc_orderprocess

ProcessCheckoutGifting

Gift wrap and gift message handling.

GetAllGiftMessages
UpdateGiftWrap
UpdateGiftMessage
IsGiftMessageEmpty
GetAllGriftWraps
GetWrapProductPO
GetMessageProductBO
AdjustGirftOptionMarker

 

7.2.2 Pipelet

Below you can find a list of pipelets relevant for inventory handling. For more details see the pipelet API documentation.

Cartridge

Pipeline Name

Description

sld_ch_b2c_base

CreateGiftMessageOption

Creates a GiftMessageOption for the provided ProductLineItem.

sld_ch_b2c_base

CreateGiftWrapOption

Creates a GiftWrapOption for the provided ProductLineItem.

sld_ch_b2c_base

UpdateGiftMessageOption

Updates the assigned GiftMessage of a GiftMessageOption.

sld_ch_b2c_base

UpdateGiftWrapOption

Updates the assigned GiftWrap of a GiftWrapOption.

sld_ch_b2c_base

RemoveGiftWrapOption

Removes the GiftWrapOption from a ProductLineItem.

sld_ch_b2c_base

RemoveGiftMessageOption

Removes the GiftMessageOption from a ProductLineItem.

sld_ch_b2c_base

SetSplitGiftOptionMarker

Sets a GiftOptionMarker for the given OrderProductLineItemSplitInfo.

7.2.3 Java

Below you can find the list of Java classes and interfaces relevant for gifting. For more details see the Java API documentation.

Cartridge

Package and Class

Description

bc_basket

com.intershop.component.basket.capi.BasketProductLineItemBO

The basket line item business object.

bc_basket

com.intershop.component.basket.capi.BasketProductLineItemSplitInfo

Holds the information of the parameters set during the splitting of the ProductLineItemBO in a transient way. This is needed if the quantity of a product line item is greater than one, so that the gift options can be set separately per item.

sld_ch_b2c_base

com.intershop.sellside.appbase.b2c.capi.basket.BasketBOGiftingExtension

This extension adds gifting-related functionality to the basket.

sld_ch_b2c_base

com.intershop.sellside.appbase.b2c.capi.basket.BasketProductLineItemBOGiftingExtension

This extension adds gifting-related functionality to the product line item.

sld_ch_b2c_base

com.intershop.sellside.appbase.b2c.capi.basket.BasketGiftWrapLineItemBO

Represents a gift wrap in the basket.

sld_ch_b2c_base

com.intershop.sellside.appbase.b2c.capi.basket.BasketGiftMessageLineItemBO

Represents a gift message in the basket.

8 Checkout - Payment

8.1 Related Documentation

Please see also: Concept - Payment Framework (valid to 7.3)/ Cookbook - Payment (valid to 7.4) .

8.2 Basket/Checkout Payment API

concept_checkout_payment

8.2.1 Pipeline

Below you can find a list of pipelines relevant for payment. For more details see the pipeline API documentation.

Cartridge

Pipeline Name

Description

Start Nodes

Extension Points

bc_orderprocess

ProcessPaymentInstrumentInfo

This pipeline contains processing methods relevant for displaying and editing payment instruments.

GetPIIDataForCurrentUser
DeletePII
SetDefaultPII
CheckPIIBelongsToCurrentUser

 

bc_orderprocess

ProcessCheckoutPayment

The main logic around payment handling during checkout.

CreatePIIFromRedirectByUser
CreatePIIFromRedirectByRequisition
RemovePIIFromCart
ApplyGiftCard

 

bc_orderprocess

ProcessPayment

Payment handling.

GetActivePaymentMethods
SetDefaultPaymentMethod
AssignPIItoUser
...

 

bc_requisition

ProcessPaymentInstrument

Payment instrument handling.

GetActivePaymentMethodsForUser
GetActivePaymentMethodsForOrganization
IsPaymentMethodAvailableForUser
CreatePaymentInstrumentInfo
...

 

8.2.2 Java

Below you can find the list of Java classes and interfaces relevant for payment. For more details see the Java API documentation.

Cartridge

Package and Class

Description

bts

com.intershop.beehive.bts.capi.payment.PaymentInstrumentInfo

Information about the payment instrument, e.g. credit card number.

bts

com.intershop.beehive.bts.capi.payment.PaymentService

A service to process a specific payment method, e.g. credit card payment.

bts

com.intershop.beehive.bts.capi.payment.PaymentServiceConfiguration

Used to access the configuration of a payment service.

bts

com.intershop.beehive.bts.capi.payment.PIIDataVerificationResult

The result of a payment data verification.

bts

com.intershop.beehive.bts.capi.payment.PaymentAuthorizationStrategy

Determines the order in which the payment transaction objects should be authorized.

bts

com.intershop.beehive.bts.capi.payment.PaymentCost

Costs for the payment transaction.

bts

com.intershop.beehive.bts.capi.payment.PaymentTransaction

The payment transaction.

bts

com.intershop.beehive.bts.capi.payment.PaymentAuthorizationResult

The result of a payment authorization.

9 Checkout - Promotion

9.1 Related Documentation

Please see also: Overview - PromotionsCookbook - Promotions (valid to 7.7) [Cookbook - Promotions (valid to 7.3)].

9.2 Basket/Checkout Promotion API

concept_checkout_promotion

9.2.1 Pipeline

Below you can find a list of pipelines relevant for promotions. For more details see the pipeline API documentation.

Cartridge

Pipeline Name

Description

Start Nodes

Extension Points

bc_marketing

ProcessPromotion

Promotion handling.

GetPromotionDomainByOrganizatin
GetPromotionEvaluationTime
ValidatePromotionCodeLength
CreatePromotionCodeLineItem
DeletePromotionCodeLineItem

 

bc_orderprocess

ProcessPromotionBudget

Handles promotion budgets.

CreateAccountTransaction
SendBudgetNotificationMail
OnCreateOrder
OnCancelOrder

 

bc_orderprocess

ProcessBasketPromotion

Inherits all from bc_marketing ProcessPromotion and add the mapping for promotion objects from current customer, product, basket, ...

GetApplicablePromotionsFromBaskt
FilterApplicablePromotions
PreparePromotionCalculationData

 

9.2.2 Java

Below you can find the list of Java classes and interfaces relevant for promotions. For more details see the Java API documentation.

Cartridge

Package and Class

Description

bc_promotion

com.intershop.component.promotion.capi.PromotionBO

The business object representing a promotion.

bc_promotion

com.intershop.component.promotion.capi.RebateBO

Holds information about promotion rebates..

bc_promotion

com.intershop.component.promotion.capi.AppliedRebateBO

This class represents an applied rebate in a basket or an order. It allows to access the values that are stored in the computed items and gives access to the related promotion and rebate object as long as it exists.

bc_marketing

com.intershop.component.marketing.capi.promotion.PromotionBOCampaignExtension

This extension covers all campaign-related functionality of the promotion business object.

10 Checkout - Inventory

10.1 Related Documentation

Please see also: Concept - Inventory/ Cookbook - Inventory .

10.2 Basket/Checkout Inventory API

concept_checkout_inventory

10.2.1 Pipeline

Below you can find a list of pipelines relevant for inventory handling. For more details see the pipeline API documentation.

Cartridge

Pipeline Name

Description

Start Nodes

Extension Points

bc_orderprocess

ProcessCart

Main logic around the cart.

CheckInventory
AdjustBasketByInventoryStatus
BookBasketInventory
AdjustBasketByBookingStatus

 

10.2.2 Pipelet

Below you can find a list of pipelets relevant for inventory handling. For more details see the pipelet API documentation.

Cartridge

Pipeline Name

Description

bc_orderprocess

AdjustBasketByInventoryStatus

Get the adjusted quantities according to the given inventory status.

bc_orderprocess

BookBasketInventory

Takes a basket, and books all items in it against the inventory.

bc_orderprocess

CheckBasketInventory

Checks the inventory for the content of the basket.

bc_orderprocess

RollbackBasketInventoryBooking

Rollback of the inventory bookings.

bts

GetBookingStatusAdjustedQuantities

This pipelet uses a BookingStatus and puts the following in the pipeline dictionary: a list of products that could not be booked at all, a list of product line items that were only partially booked, the list of booked quantities and a flag saying if the basket is orderable or not.

10.2.3 Java

Below you can find the list of Java classes and interfaces relevant for promotions. For more details see the Java API documentation.

Cartridge

Package and Class

Description

xsc

com.intershop.beehive.xcs.capi.inventory.InventoryService

The interface for all inventory service implementations.

xsc

com.intershop.beehive.xcs.capi.inventory.InventoryStatus

Contains the current inventory state for a product.

xsc

com.intershop.beehive.xcs.capi.inventory.BookingStatus

BookingStatus is used as return value when booking inventory.

11 Checkout - Order Creation

11.1 Overview

concept_checkout_order

11.2 Order API

11.2.1 Pipeline

Cartridge

Pipeline Name

Description

Start Nodes

Extension Points

bc_orderprocess

ProcessOrders

Functions for creating an order from a given basket.

CreateOrder
CreateGiftCards
AfterCheckoutProcessing
CancelOrder
SendOrderNotificationEMail
SendCancelNotificationEMail

OrderCreated

11.2.2 Pipelet

Below you can find a list of Pipelets relevant for basket calculation. For more details see the pipelet API documentation.

Cartridge

Pipeline Name

Description

bc_requisition

CreateOrdersFromBasket2

Creates one order from the given basket. Note: Order splitting and multiple order functionality is no longer supported.

bts

AssignOrderDocumentNos

Creates one order from the given basket.

bts

UpdateOrderStatus

Updates the order status.

bc_requisition

UpdateLineItemStatus

Updates the line item status.

11.2.3 Java

Cartridge

Package and Class

Description

bc_order

com.intershop.component.order.capi.OrderBORepository

The business object repository for orders.

bc_order

com.intershop.component.order.capi.OrderBO

Business object representing an order.

bc_order

com.intershop.component.order.capi.extension.OrderBOCompanyCustomerExtension

Offers methods for retrieval of customer-related data set at the order.

sld_ch_b2c_base

com.intershop.sellside.appbase.b2c.capi.order.OrderBOAppliedRebateExtension

Offers methods for retrieval of promotions and promotional discounts applied to the order.

sld_ch_b2c_base

com.intershop.sellside.appbase.b2c.capi.order.OrderBOGiftingExtension

Offers methods for retrieval of shipping buckets of the order.

sld_ch_b2c_base

com.intershop.sellside.appbase.b2c.capi.order.OrderBOLineItemExtension

Offers methods for retrieval of the order's line items.

sld_ch_b2c_base

com.intershop.sellside.appbase.b2c.capi.order.OrderBOPaymentExtension

Offers methods for retrieval of payment methods applied to the order.

sld_ch_b2c_base

com.intershop.sellside.appbase.b2c.capi.order.PaymentInstrumentInfoBO

Business object representing a payment instrument info set at the order.

sld_ch_b2c_base

com.intershop.sellside.appbase.b2c.capi.order.PaymentTransactionBO

Business object representing a payment transaction created as result of the payment process(es) during the checkout.

sld_ch_b2c_base

com.intershop.sellside.appbase.b2c.capi.payment.PaymentCostBO

Business object representing costs charged for a payment transaction.

sld_ch_b2c_base

com.intershop.sellside.appbase.b2c.capi.order.OrderBOShippingBucketExtension

Offers methods for retrieval of shipping buckets of the order.

bc_order

com.intershop.component.order.capi.OrderProductLineItemBO

Business object representing a (product) line item of the order.

sld_ch_b2c_base

com.intershop.sellside.appbase.b2c.capi.order.OrderWarrantyLineItemBO

Business object representing a warranty assigned to a (product) line item of an order.

sld_ch_b2c_base

com.intershop.sellside.appbase.b2c.capi.order.OrderGiftMessageLineItemBO

Business object representing a gift message assigned to a (product) line item of an order.

sld_ch_b2c_base

com.intershop.sellside.appbase.b2c.capi.order.OrderGiftWrapLineItemBO

Business object representing a gift wrap assigned to a (product) line item of an order.

sld_ch_b2c_base

com.intershop.sellside.appbase.b2c.capi.order.OrderProductLineItemBOAppliedRebateExtension

Offers methods for retrieval of promotions and promotional discounts applied to the (product) line item.

sld_ch_b2c_base

com.intershop.sellside.appbase.b2c.capi.order.OrderProductLineItemBOGiftingExtension

Offers method(s) for retrieval of gift options (messages/wraps) set at the (product) line item.

sld_ch_b2c_base

com.intershop.sellside.appbase.b2c.capi.order.OrderProductLineItemBOShippingExtension

Offers method(s) for retrieval of the shipping method set at the (product) line item.

sld_ch_b2c_base

com.intershop.sellside.appbase.b2c.capi.order.OrderProductLineItemBOWarrantyExtensionImpl

Offers method(s) for retrieval of a warranty set at the (product) line item.

sld_ch_b2c_base

com.intershop.sellside.appbase.b2c.capi.shipping.OrderShippingBucketBO

Business object representing a shipping bucket of the order.

sld_ch_b2c_base

com.intershop.sellside.appbase.b2c.capi.shipping.shippingmethod.OrderShippingMethodBO

Business object representing a shipping method set at an order shipping bucket.

bc_order

com.intershop.component.order.capi.OrderPackSlipMessageLineItemBO

Offers method(s) for retrieval of a pack slip message set at a shipping bucket.

Disclaimer

The information provided in the Knowledge Base may not be applicable to all systems and situations. Intershop Communications will not be liable to any party for any direct or indirect damages resulting from the use of the Customer Support section of the Intershop Corporate Web site, including, without limitation, any lost profits, business interruption, loss of programs or other data on your information handling system.

Customer Support
Knowledge Base
Product Resources
Support Tickets