From cb470f69a387feb5d3eb642ca41c348273d9c43b Mon Sep 17 00:00:00 2001 From: Andrew Savchenko Date: Thu, 31 Oct 2019 21:04:34 +0100 Subject: [PATCH] Fix products sequence after changing cart item options --- src/Cart.php | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/Cart.php b/src/Cart.php index 97097a0..17cbb3a 100644 --- a/src/Cart.php +++ b/src/Cart.php @@ -180,6 +180,8 @@ class Cart $content = $this->getContent(); if ($rowId !== $cartItem->rowId) { + $itemOldIndex = $content->keys()->search($rowId); + $content->pull($rowId); if ($content->has($cartItem->rowId)) { @@ -193,7 +195,14 @@ class Cart return; } else { - $content->put($cartItem->rowId, $cartItem); + if (isset($itemOldIndex)) + { + $content = $content->slice(0, $itemOldIndex) + ->merge([$cartItem->rowId => $cartItem]) + ->merge($content->slice($itemOldIndex)); + } else { + $content->put($cartItem->rowId, $cartItem); + } } $this->events->dispatch('cart.updated', $cartItem);