Skip to content

Commit

Permalink
Check if item added to cart is a gift card
Browse files Browse the repository at this point in the history
Only do gift card stuff if a gift card is added to the cart via api.
Fixes Setono#261 (Setono#261)
  • Loading branch information
TalkMarc committed Jan 31, 2024
1 parent d4128a6 commit bfa384b
Showing 1 changed file with 6 additions and 2 deletions.
8 changes: 6 additions & 2 deletions src/Api/CommandHandler/AddItemToCartHandler.php
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,11 @@ public function __invoke(SyliusAddItemToCart $addItemToCart): OrderInterface
$cartItem = $this->cartItemFactory->createNew();
$cartItem->setVariant($productVariant);

if ($addItemToCart instanceof SetonoSyliusGiftCardAddItemToCart) {
$isGiftCard = $addItemToCart instanceof SetonoSyliusGiftCardAddItemToCart
&& $productVariant->getProduct() instanceof ProductInterface
&& $productVariant->getProduct()->isGiftCard();

if ($isGiftCard) {
/** @var ProductInterface $product */
$product = $productVariant->getProduct();
if ($product->isGiftCardAmountConfigurable()) {
Expand All @@ -85,7 +89,7 @@ public function __invoke(SyliusAddItemToCart $addItemToCart): OrderInterface
$this->orderItemQuantityModifier->modify($cartItem, $addItemToCart->quantity);
$this->orderModifier->addToOrder($cart, $cartItem);

if ($addItemToCart instanceof SetonoSyliusGiftCardAddItemToCart) {
if ($isGiftCard) {
/** @var OrderItemUnitInterface $unit */
foreach ($cartItem->getUnits() as $unit) {
$giftCard = $this->giftCardFactory->createFromOrderItemUnitAndCart($unit, $cart);
Expand Down

0 comments on commit bfa384b

Please sign in to comment.