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.