Cart Chains
The Cart service uses a microbase provided functionality (utils.Chain) to implement a Chain of Responsibility for each operation.
As a referencem this are the steps for each operation:
| subChain | addToCartChain | removeFromCartChain | calculateCartChain | checkoutChain | |
|---|---|---|---|---|---|
| getCart | getCartAndEntry | getCart | getCartAndLock | ||
| getCustomer | getCustomer | getCustomer | getCustomer | ||
| bulkAddToCart | checkMaxQuantityPerProduct | removeFromCart | |||
| bulkAddToCart | checkMaxNumberOfEntries | ||||
| bulkAddToCart | getProduct | ||||
| bulkAddToCart | checkProductAvailability | ||||
| bulkAddToCart | selectPrice | ||||
| bulkAddToCart | selectTitle | ||||
| bulkAddToCart | checkStockAvailability | ||||
| bulkAddToCart | addToCart | ||||
| calculateCart | getProduct | getProduct | getProduct | getProduct | |
| calculateCart | checkProductAvailability | checkProductAvailability | checkProductAvailability | checkProductAvailability | |
| calculateCart | selectPrice | selectPrice | selectPrice | selectPrice | |
| calculateCart | selectTitle | selectTitle | selectTitle | selectTitle | |
| calculateCart | renewReserves | renewReserves | renewReserves | renewReserves | |
| calculateCart | calculatePromotions | calculatePromotions | calculatePromotions | calculatePromotions | |
| calculateCart | calculateTaxes | calculateTaxes | calculateTaxes | calculateTaxes | |
| calculateCart | updateCartExpirationTime | updateCartExpirationTime | updateCartExpirationTime | updateCartExpirationTime | |
| calculateCart | postCalculateCart | postCalculateCart | postCalculateCart | postCalculateCart | |
| checkReserves | |||||
| checkPromotions | |||||
| checkTaxes | |||||
| validateShippingAddress | |||||
| getShippingMethods | |||||
| assignShippingMethod | |||||
| checkShippingMethod | |||||
| updateCartShippingAddressInfo | |||||
| checkShippingAddress | |||||
| validateBillingAddress | |||||
| updateCartBillingAddressInfo | |||||
| checkBillingAddress | |||||
| validateGateway | |||||
| updateCartGatewayInfo | |||||
| payment | |||||
| createOrder | |||||
| releaseCart | |||||
| saveCart | saveCart | saveCart | saveCart | ||
| postSaveCart | postSaveCart | postSaveCart | postSaveCart | ||
| unreserve |
