Concept - Basket Handling and Checkout

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:

You will find some API documentation in the Application Programming Guide or other sources on 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 provides 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 to load 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 Invalidate History Baskets will bring the baskets into the state BASKET_INVALID.

4.3.3 Remove Invalid Baskets

This job is defined for SLDSystem and removes all invalid baskets that have exceeded the expiration date 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


history-dateSmallercurrent date - (configured) historic basket life time

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.Minimum Item TotalDefines the minimum item total for a currencyOptionalIf there is no value defined, the minimum shopping cart value is 0.The Minimum Item Total (MinIT) is independent of the taxation settings. So, if the taxation setting is gross, the MinIT refers to the Shopping Cart Subtotal including the taxes. If the taxation setting is net, the MinIT refers to the Shopping Cart Subtotal without taxes.

The base for the Minimum Item Total (MinIT) 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 down-streamed costs like shipping, surcharges, gifting or payment costs are not a part of the MinIT. So, a customer has to add more products to the cart which is under the MinIT even if the additional costs cause a higher Total Cart Value than the MinIT.

Example:
The MinIT is defined with $ 10.
The customer adds a product with a price of $ 9 to his cart.
This product causes $ 3 shipping costs.
= The customer is not able to place the order although the cart total ($ 9 + $3) is higher than the MinIT

5.

Maximum Item Total

Defines the maximum item total for a currency

Optional

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

The Maximum Item Total (MaxIT) is independent of the taxation settings. So, if the taxation setting is gross, the MaxIT is the Shopping Cart Subtotal including the taxes. If the taxation setting is net, the MaxIT is the Shopping Cart Subtotal without taxes.

The base for the Maximum Item Total 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 down-streamed costs like shipping, surcharges, gifting or payment costs are not a part of the MaxIT. So, a customer is able to add a product to the cart which is under the MaxIT although the additional costs cause a higher Total Cart Value than the MaxIT.

Example:
The MaxIT 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 MaxIT.

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 of 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 e-mail/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 has already added. They can only change the quantity.)

It is not supported to add the same product (equal SKU) with different packaging units since that could cause problems in return management, inventory etc.





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.

Enable Sending as Email

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)



4.5 Basket Handling

4.5.1 Pipeline

Cartridge

Pipeline Name

Description

Start Nodes

Extension Points

bc_orderprocess

ProcessBasket

Functions for basic basket handling

AddProduct
AddProducts
CreateBasket
MergeBaskets
SetInvoiceToAddress

....

AddedItemToBasket
RemoveItemFromBasket

4.5.2 Pipelet

Below you can find a partial 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

bc_orderprocess

CreateBasket

Creates the basket for the given domain and user and returns the relating BasketBO

bc_orderprocess

MoveBasketToBasketHistory

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

bc_orderprocess

AddProduct

Adds a single product with the given quantity to the given basket

bc_orderprocess

RemoveLineItem

Removes the single line item

bc_orderprocess

GetBasketByID

Retrieves BasketBO for the given BasketID and BasketBORepository instance

sld_ch_b2c_base

GetBasketProductLineItemBO

Retrieves BasketProductLineItemBO with the given ID from the given BasketBO instance

bc_orderprocess

AddWarranty

Adds a WarrantyBO to the given BasketProductLineItemBO instance

bc_orderprocess

RemoveWarranty

Removes a warranty from the given BasketProductLineItemBO instance

4.5.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

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_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

ProcessBasketCalculation

Functions for calculation of an entire basket

Start


4.6.2 Pipelet

Pipelet 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

5.1 Address Handling

5.1.1 Related Documentation

See also Concept - Address Check FW.

5.1.2 Basket/Checkout Address Handling API

concept_checkout_addresses

5.1.2.1 Pipeline

Pipeline 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.1.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.1.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

5.2 Shipping

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

5.2.1 Basket/Checkout Shipping API

concept_checkout_shipping

5.2.1.1 Pipeline

Pipeline 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

5.2.1.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

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

5.2.1.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

bc_basket

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

bc_basket

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

Extension of the basket to access shipping bucket functionality

bc_basket

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

5.3 Gifting

5.3.1 Related Documentation

Please see: Concept - Gifting / Cookbook - Gifting

5.3.2 Basket/Checkout Gifting API

concept_checkout_gifting

5.3.2.1 Pipeline

Pipeline 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


5.3.2.2 Pipelet

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

CartridgePipeline NameDescription

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

5.3.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

bc_basket

com.intershop.component.basket.capi.BasketProductLineItemBOGiftingExtension

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

bc_basket

com.intershop.component.basket.capi.BasketGiftWrapLineItemBO

Represents a gift wrap in the basket

bc_basket

com.intershop.component.basket.capi.BasketGiftMessageLineItemBO

Represents a gift message in the basket

5.4 Payment

5.4.1 Related Documentation

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

5.4.2 Basket/Checkout Payment API

concept_checkout_payment

5.4.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

ProcessCheckoutPayment

The main logic around payment handling during checkout

CreatePIIFromRedirectByUser
CreatePIIFromRedirectByRequisition
RemovePIIFromCart
ApplyGiftCard


bc_payment

ProcessPayment

Payment and Payment Instrument handling

Authorize
CalculateRedirectURL
CreatePaymentInstrumentForUser
...


5.4.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

bc_payment

com.intershop.component.payment.capi.PaymentInstrumentBO

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

bc_payment

com.intershop.component.payment.capi.PaymentServiceBO

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

bc_payment

com.intershop.component.payment.capi.PaymentCostBO

Costs for the payment transaction.

bc_payment

com.intershop.component.payment.capi.PaymentTransactionBO

The payment transaction.

bc_payment

com.intershop.component.payment.capi.PaymentBO

Information about a payment, e.g., for credit card payment for an order.

5.5 Promotion

5.5.1 Related Documentation

Please see also: Overview - Promotions / Cookbook - Promotions (valid to 7.7).

5.5.2 Basket/Checkout Promotion API

concept_checkout_promotion

5.5.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

GetPromotionDomainByOrganization
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, ...

GetApplicablePromotionsFromBasket
FilterApplicablePromotions
PreparePromotionCalculationData


5.5.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 represents a promotion.

bc_promotion

com.intershop.component.promotion.capi.RebateBO

Holds information about promotion rebates

bc_promotion

com.intershop.component.promotion.capi.AppliedRebateBO

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.

5.6 Inventory

5.6.1 Related Documentation

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

5.6.2 Basket/Checkout Inventory API

concept_checkout_inventory

5.6.2.1 Pipeline

Pipeline relevant for inventory handling. For more details see the pipeline API documentation.

Cartridge

Pipeline Name

Description

Start Nodes

Extension Points

bc_orderprocess

ProcessBasket

Main logic around the cart.

CheckInventory
AdjustBasketByInventoryStatus


5.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

Pipelet 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.

5.6.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

xcs

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

The interface for all inventory service implementations.

xcs

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

Contains the current inventory state for a product.

xcs

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

BookingStatus is used as return value when booking inventory.

5.7 Order Creation

5.7.1 Overview

concept_checkout_order

5.7.2 Order API

5.7.2.1 Pipeline

Cartridge

Pipeline Name

Description

Start Nodes

Extension Points

bc_orderprocess

ProcessOrders

Creates an order from a given basket

CreateOrder
CreateGiftCards
AfterCheckoutProcessing
CancelOrder
SendOrderNotificationEMail
SendCancelNotificationEMail

OrderCreated

5.7.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

5.7.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

bc_order

com.intershop.component.order.capi.extension.OrderBOAppliedRebateExtension<T>

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

bc_payment

com.intershop.component.payment.capi.OrderBOPaymentExtension<T>

Offers methods for retrieval of payment methods applied to the order

bc_payment

com.intershop.component.payment.capi.PaymentInstrumentBO

Business object representing a payment instrument info set at the order

bc_payment

com.intershop.component.payment.capi.PaymentTransactionBO

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

bc_payment

com.intershop.component.payment.capi.PaymentCostBO

Business object representing costs charged for a payment transaction

bc_order

com.intershop.component.order.capi.extension.OrderBOShippingBucketExtension<T>

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

bc_order

com.intershop.component.order.capi.extension.OrderWarrantyLineItemBO

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

bc_order

com.intershop.component.order.capi.OrderGiftMessageLineItemBO

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

bc_order

com.intershop.component.order.capi.OrderGiftWrapLineItemBO

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

bc_order

com.intershop.component.order.capi.extension.OrderProductLineItemBOAppliedRebateExtension<T>

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

bc_order

com.intershop.component.order.capi.extension.OrderProductLineItemBOGiftingExtension<T>

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

bc_order

com.intershop.component.order.capi.extension.OrderProductLineItemBOWarrantyExtension<T>

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

bc_order

com.intershop.component.order.capi.OrderShippingBucketBO

Business object representing a shipping bucket of the order

bc_order

com.intershop.component.order.capi.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