* @copyright Since 2007 PrestaShop SA and Contributors * @license https://opensource.org/licenses/OSL-3.0 Open Software License (OSL 3.0) */ declare(strict_types=1); namespace PrestaShop\PrestaShop\Adapter\CartRule\CommandHandler; use PrestaShop\PrestaShop\Adapter\CartRule\AbstractCartRuleHandler; use PrestaShop\PrestaShop\Core\Domain\CartRule\Command\BulkDeleteCartRuleCommand; use PrestaShop\PrestaShop\Core\Domain\CartRule\CommandHandler\BulkDeleteCartRuleHandlerInterface; use PrestaShop\PrestaShop\Core\Domain\CartRule\Exception\BulkDeleteCartRuleException; use PrestaShop\PrestaShop\Core\Domain\CartRule\Exception\CartRuleException; /** * Deletes cart rules in bulk action using legacy object model */ final class BulkDeleteCartRuleHandler extends AbstractCartRuleHandler implements BulkDeleteCartRuleHandlerInterface { /** * {@inheritdoc} */ public function handle(BulkDeleteCartRuleCommand $command): void { $errors = []; foreach ($command->getCartRuleIds() as $cartRuleId) { try { $cartRule = $this->getCartRule($cartRuleId); if (!$this->deleteCartRule($cartRule)) { $errors[] = $cartRuleId->getValue(); } } catch (CartRuleException $e) { $errors[] = $cartRuleId->getValue(); } } if (!empty($errors)) { throw new BulkDeleteCartRuleException($errors, 'Failed to delete all of selected cart rules'); } } }