Problem beim Bearbeiten der Bestellung im Shopware-Admin-Bereich beim Hinzufügen eines benutzerdefinierten Rabatts
<p>Ich habe einen benutzerdefinierten Warenkorbrabatt gemäß der Dokumentation https://developer.shopware.com/docs/guides/plugins/plugins/checkout/cart/add-cart-discounts geschrieben
Alles funktioniert einwandfrei, wenn der Kunde ein Produkt zum Warenkorb hinzufügt oder daraus entfernt, wird der Rabatt neu berechnet, aber wenn ich diese Bestellung im Admin-Bereich bearbeiten möchte, erhalte ich die Fehlermeldung: </p>
<blockquote>
<p>Nicht abgefangene PHP-Ausnahme ShopwareCoreCheckoutCartExceptionLineItemNotStackableException: „Die Position mit der Kennung ‚CHEAPEST_ITEM_CART_DISCOUNT‘ ist nicht stapelbar und die Menge kann in /var/www/shop/vendor/shopware/core/Checkout/Cart/LineItem/ LineItem nicht geändert werden.“ .php Zeile 233 {"Exception": "[Object](Shopware Core Checkout Cart Exception
LineItemNotStackableException (Code: 0): Der Einzelposten mit der Kennung „CHEAPEST_ITEM_CART_DISCOUNT“ ist nicht stapelbar und die Menge kann nicht geändert werden. unter /var/www/shop/vendor/shopware/core/Checkout/Cart/LineItem/LineItem.php:233)"} []</p>
</blockquote>
<p>Ich habe dieses Problem „gelöst“, indem ich diese Prüfung zu meinem Code hinzugefügt habe: </p>
<pre class="brush:php;toolbar:false;">if($behavior->hasPermission(self::SKIP_PROMOTION)){
$items = $original->getLineItems()->filterType(self::LINE_ITEM_TYPE);
foreach ($items als $item) {
$toCalculate->add($item);
}
zurückkehren;
}</pre>
<p>Wenn ich jetzt die Bestellung im Admin-Bereich bearbeite, wird der Fehler nicht angezeigt, aber der Rabatt wird nicht erneut berechnet und das Umschalten auf „Automatische Werbeaktionen deaktivieren“ funktioniert nicht. </p>
<p>Gibt es eine Lösung, um benutzerdefinierte Rabatte nacheinander bei Bearbeitungsvorgängen neu zu berechnen?
Wenn ich im Admin-Bereich eine neue Bestellung hinzufüge, funktioniert alles einwandfrei, das Problem besteht nur beim Bearbeiten.
Die Dokumentation sagt dazu nichts. </p>