for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
/*
* This file is part of the Sylius package.
*
* (c) Paweł Jędrzejewski
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Sylius\Component\Core\Promotion\Checker;
use Sylius\Component\Core\Model\OrderInterface;
use Sylius\Component\Core\Model\OrderItemInterface;
use Sylius\Component\Promotion\Checker\RuleCheckerInterface;
use Sylius\Component\Promotion\Exception\UnsupportedTypeException;
use Sylius\Component\Promotion\Model\PromotionSubjectInterface;
/**
* Checks if order contains products with given taxon.
* @author Saša Stamenković <[email protected]>
class TaxonRuleChecker implements RuleCheckerInterface
{
* {@inheritdoc}
public function isEligible(PromotionSubjectInterface $subject, array $configuration)
if (!$subject instanceof OrderInterface) {
throw new UnsupportedTypeException($subject, OrderInterface::class);
}
/* @var $item OrderItemInterface */
foreach ($subject->getItems() as $item) {
foreach ($item->getProduct()->getTaxons() as $taxon) {
if ($configuration['taxons']->contains($taxon->getId())) {
return !$configuration['exclude'];
return (Boolean) $configuration['exclude'];
public function getConfigurationFormType()
return 'sylius_promotion_rule_taxon_configuration';