Skip to content

Commit 58c13d6

Browse files
committed
MAGETWO-95483: Can't delete a cart entry when the cart has a shipping address
- Added test assertion for bugfix
1 parent 87dce54 commit 58c13d6

File tree

2 files changed

+10
-5
lines changed

2 files changed

+10
-5
lines changed

app/code/Magento/Checkout/Plugin/Model/Quote/ResetQuoteAddresses.php

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -27,11 +27,10 @@ public function afterRemoveItem(Quote $quote, Quote $result, $itemId): Quote
2727
if (empty($result->getAllVisibleItems())) {
2828
foreach ($result->getAllAddresses() as $address) {
2929
$result->removeAddress($address->getId());
30-
31-
$extensionAttributes = $result->getExtensionAttributes();
32-
if (!$result->isVirtual() && $extensionAttributes && $extensionAttributes->getShippingAssignments()) {
33-
$extensionAttributes->setShippingAssignments([]);
34-
}
30+
}
31+
$extensionAttributes = $result->getExtensionAttributes();
32+
if (!$result->isVirtual() && $extensionAttributes && $extensionAttributes->getShippingAssignments()) {
33+
$extensionAttributes->setShippingAssignments([]);
3534
}
3635
}
3736

dev/tests/integration/testsuite/Magento/Checkout/Plugin/Model/Quote/ResetQuoteAddressesTest.php

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,9 +52,15 @@ public function testAfterRemoveItem(): void
5252
$cart = Bootstrap::getObjectManager()->create(Cart::class);
5353

5454
$activeQuote = $cart->getQuote();
55+
// Dummy data is still persisted here. This is sufficient to check that it is removed
56+
$activeQuote->getExtensionAttributes()->setShippingAssignments(['test']);
57+
5558
$cart->removeItem($activeQuote->getAllVisibleItems()[0]->getId());
5659
$cart->save();
5760

61+
// Check that the shipping assignments were also unset
62+
$this->assertEmpty($activeQuote->getExtensionAttributes()->getShippingAssignments());
63+
5864
/** @var Quote $quote */
5965
$quote = Bootstrap::getObjectManager()->create(Quote::class);
6066
$quote->load('test_order_with_virtual_product', 'reserved_order_id');

0 commit comments

Comments
 (0)