Cart Processor
The Cart Processor in CoreShop is responsible for refreshing the state and prices of carts. It is automatically
triggered every time the persistCart
function of the Cart-Manager is called on a cart,
ensuring that the cart is re-calculated.
The following processors are implemented by default:
- Cart Adjustment Clearer
- Item Processor
- Item Tax Processor
- Cart Price Rule Voucher Processor
- Cart Rule Auto Processor
- Cart Shipping Processor
- Cart Tax Processor
These processors handle all necessary price calculations for the cart. To extend cart calculations, a new processor should be created.
Creating a Cart Processor
To create a Cart Processor, implement the
interface CoreShop\Component\Order\Processor\CartProcessorInterface
.
Register this in the container with the tag coreshop.cart_processor
and a priority
attribute.
Example of a Cart Processor
Here's an example of a custom Cart Processor that calculates a unique field for the cart:
<?php
namespace App\CoreShop\Order\Cart\Processor;
use CoreShop\Component\Order\Model\OrderInterface;
use CoreShop\Component\Order\Processor\CartProcessorInterface;
final class CustomCartProcessor implements CartProcessorInterface
{
public function process(OrderInterface $cart): void
{
$cart->setCustomField(uniqid());
}
}
Registration of the processor:
App\CoreShop\Order\Cart\Processor\CustomCartProcessor:
tags:
- { name: coreshop.cart_processor, priority: 200 }
This custom processor will now assign a new unique ID to the custom field on every cart update.