diff --git a/CHANGELOG_de-DE.md b/CHANGELOG_de-DE.md index 858deff..1c05007 100644 --- a/CHANGELOG_de-DE.md +++ b/CHANGELOG_de-DE.md @@ -1,3 +1,6 @@ +# 3.0.2 +* Problem mit dem freien ESD-Element behoben. + # 3.0.1 - Verbessert den Upload der Seriennummer per csv-Datei diff --git a/CHANGELOG_en-GB.md b/CHANGELOG_en-GB.md index 70e9294..ecfced7 100644 --- a/CHANGELOG_en-GB.md +++ b/CHANGELOG_en-GB.md @@ -1,3 +1,6 @@ +# 3.0.2 +* Fixed issue that regarding the free ESD item + # 3.0.1 - Improved the upload serial number by csv file diff --git a/composer.json b/composer.json index 7d287f1..9182a3e 100644 --- a/composer.json +++ b/composer.json @@ -3,7 +3,7 @@ "description":"ESD / Download plugin", "type":"shopware-platform-plugin", "keywords": ["esd", "download"], - "version":"3.0.1", + "version":"3.0.2", "license":"proprietary", "authors":[ { diff --git a/src/Checkout/Cart/Subscriber/OrderPlacedSubscriber.php b/src/Checkout/Cart/Subscriber/OrderPlacedSubscriber.php index eb3d2e2..44124a1 100644 --- a/src/Checkout/Cart/Subscriber/OrderPlacedSubscriber.php +++ b/src/Checkout/Cart/Subscriber/OrderPlacedSubscriber.php @@ -18,9 +18,10 @@ use Shopware\Core\Framework\DataAbstractionLayer\EntityRepository; use Shopware\Core\Framework\DataAbstractionLayer\Search\Criteria; use Shopware\Core\System\SystemConfig\SystemConfigService; +use Symfony\Component\EventDispatcher\EventSubscriberInterface; use Symfony\Contracts\EventDispatcher\EventDispatcherInterface; -class OrderPlacedSubscriber +class OrderPlacedSubscriber implements EventSubscriberInterface { public function __construct( private readonly EntityRepository $productRepository, @@ -30,11 +31,18 @@ public function __construct( ) { } - public function __invoke(CheckoutOrderPlacedEvent $event): void + public static function getSubscribedEvents(): array + { + return [ + CheckoutOrderPlacedEvent::class => 'handle', + ]; + } + + public function handle(CheckoutOrderPlacedEvent $event): void { $orderLineItems = $event->getOrder()->getLineItems(); - if ($orderLineItems === null) { + if ($orderLineItems === null || $event->getOrder()->getAmountTotal() > 0.0) { return; } diff --git a/src/Resources/config/services.xml b/src/Resources/config/services.xml index 888bcfa..dd2cc8a 100644 --- a/src/Resources/config/services.xml +++ b/src/Resources/config/services.xml @@ -48,13 +48,13 @@ - - - - - - - + + + + + + + diff --git a/src/Subscriber/OrderStateChangedSubscriber.php b/src/Subscriber/OrderStateChangedSubscriber.php index 862757a..bc9982d 100644 --- a/src/Subscriber/OrderStateChangedSubscriber.php +++ b/src/Subscriber/OrderStateChangedSubscriber.php @@ -50,6 +50,7 @@ public function orderStatePaid(OrderStateMachineStateChangeEvent $event): void if ($this->esdOrderService->isEsdOrder($order) && !empty($order->getLineItems()) + && $order->getAmountTotal() > 0 ) { $orderLineItemIds = array_filter($order->getLineItems()->fmap(static function (OrderLineItemEntity $orderLineItem) { return $orderLineItem->getId();