Cart Context
CoreShop uses a system of context and context resolvers to determine the current cart.
The Cart Context adheres to the
interface CoreShop\Component\Order\Context\CartContextInterface
and is implemented in the service coreshop.context.cart.
Getting the Current Cart
To obtain the current cart, use the coreshop.context.cart service:
$cartContext = $container->get('coreshop.context.cart');
// Get current cart, if none exists, a new one is created
$cart = $cartContext->getCart();
Context Types
The table below outlines the various contexts used for cart determination:
| Name | Priority | Description | 
|---|---|---|
| FixedCartContext | -100 | For testing or backend order creation. | 
| SessionAndStoreBasedCartContext | -555 | Searches for a valid session cart in the given store context. | 
| CustomerAndStoreBasedCartContext | -777 | Searches for a cart based on a customer, activates post-login to find the last cart a user left. | 
| CartContext | -999 | Creates a new cart if other contexts fail. | 
Create a Custom Resolver
To register a custom context, use the tag coreshop.context.cart with an optional priority attribute.