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();