- Orders
A typical order includes one or more products, billing and shipping addresses, payment details, and the total cost including shipping charges and taxes. Comments and price adjustments can also be included in an order.
- Performance improvements for large shopping cart
The following shopping cart commands have been optimized for performance: OrderItemAdd, OrderItemUpdate, OrderItemDisplay. These changes optimize the commands so that performance gains can be achieved, especially in cases where shopping carts typically contain hundreds of order items.
- Inventory allocation
HCL Commerce supports five inventory systems: Available to promise (ATP), non-ATP, no inventory, external inventory, and DOM inventory. The interface to inventory is encapsulated by a single inventory task command, which in turn invokes the appropriate task commands.
- Calculation codes for orders
Calculation codes represent ways of determining monetary amounts associated with OrderItems. The CalculationCode object and its associated CalculationMethod objects define how to calculate amounts such as price adjustments (coupons and discounts), shipping charges, and taxes.
- Discount codes
A discount is a price incentive offered to customers to promote a purchase. A discount code is a calculation code whose calculation usage is "discount." It is used to calculate order item adjustments. Each row in the CALCODE table represents a CalculationCode. CalculationCodes represent ways of determining monetary amounts associated with OrderItems. They are used to calculate discounts, shipping charges, sales tax, and shipping tax. A CalculationCode attachment can be limited to specific TradingAgreements.
- Fulfillment centers
Stores use fulfillment centers as both inventory warehouses and shipping and receiving centers. One store can have one or many fulfillment centers.
- Fulfillment centers and shipping arrangements
A fulfillment center represents a place from which products are shipped to customers. Inventory counts are maintained separately for each fulfillment center. The OrderItemAdd and OrderItemUpdate commands assign a fulfillment center to each item in an order by calling the task command DoInventoryActionCmd for both ATP and non-ATP stores. By default, the ResolveFulfillmentCenterCmd task command for non-ATP stores, and the AllocateInventoryCmd task command for ATP stores, assign fulfillment centers based on inventory availability, shipping address, and the precedence attributes of the applicable shipping arrangements.
- Pricing and offers
Offers present different prices for the same product or SKU to different customers. In HCL Commerce, an offer is also known as a trading position. An offer represents the price of a catalog entry and criteria that the customer must satisfy in order to pay that price.
- Orders and order items
From a customer perspective, an order is a list of selected products. For example, an order might contain two books and a CD. Each product on that list is an order item. From a store perspective, an order is a list of order items. It is part of the store's data.
- Order capture mechanisms
HCL Commerce supports several mechanisms for submitting orders. A customer or Customer Service Representative can submit an order using any of the following methods:
- Order method URLs
HCL Commerce supports several methods of order submission.
- Extended order and order item attributes
You can use the order command or the REST interface to add, update, or get extended attributes.
- Quantity units
Products can be sold, and inventory tracked, in a variety of quantity units, such as kilograms, inches, liters, and so on. Of these units, products can be ordered in minimum quantities, and by multiples of specific quantities.
- Shipping codes
Shipping information can be defined at the store level. Attributes such as shipping mode, shipping code and ship jurisdiction can be defined at the store relationship level also. In most cases, products are shipped from a fulfillment center, a separate agency that is responsible for warehousing the store's goods.
- Filtering shipping modes
Sometimes a shipping mode might not be applicable to all products. If you choose not to associate a shipping mode with a product, then no shipping charge is applied to that product. You can filter applicable shipping modes by customizing according to the following instructions.
- Customizing shipping charges
In some cases you may need to customize your shipping calculation. For example, if an item and its parent product are under different categories and each category has a different shipping calculation code attached, then both shipping calculation codes will be picked up by the runtime, and the final result will be cumulative. To avoid this, you can customize the code, by overriding CalculationCodeCombineCmdImpl.getIndirectlyAttachedCodes().
- Store groups
The store group is used by all stores to share assets without having to create an asset store to hold them. For example, all TaxCategories, SupportedLanguages, SupportedCurrencies, CalculationCodes, and ShippingJurisdictions that are defined in the store group are automatically available for use by all stores.
- Tax codes
A tax calculation code indicates the tax calculation for order items. A store typically collects two type of taxes: sales or use tax, and shipping tax. The tax codes are unique within each tax type for a store. Only one tax calculation code of each tax type is applied to a particular order item.