The addProductToCollection
hook is triggered every time a product is added to the cart.
It allows manipulating the number of items added to the cart.
\Isotope\Interfaces\IsotopeProduct $product
The product that is added to the collection.
int $quantity
The quantity of the product that is added to the collection.
\Isotope\Interfaces\IsotopeProductCollection $collection
The collection the product is added to.
array $config
The model configuration.
// src/EventListener/Isotope/AddProductToCollectionListener.php
namespace App\EventListener\Isotope;
use Isotope\Interfaces\IsotopeProduct;
use Isotope\Interfaces\IsotopeProductCollection;
use Isotope\ServiceAnnotation\IsotopeHook;
/**
* @IsotopeHook("addProductToCollection")
*/
class AddProductToCollectionListener
{
public function __invoke(IsotopeProduct $product, int $quantity, IsotopeProductCollection $collection, array $config): int
{
// example for allowing max 5 items per product
if ($quantity > 5) {
return 5;
}
return $quantity
}
}