Buy Now Functionality Enhanced
This commit is contained in:
parent
2696757207
commit
1d216d1f3e
|
|
@ -795,6 +795,38 @@ class Cart
|
|||
return $item->product->getTypeInstance()->isItemHaveQuantity($item);
|
||||
}
|
||||
|
||||
public function mergeDeactivatedCart(): void
|
||||
{
|
||||
if (session()->has('deactivated_cart_id')) {
|
||||
$deactivatedCartId = session()->get('deactivated_cart_id');
|
||||
|
||||
if ($this->getCart()) {
|
||||
$deactivatedCart = $this->cartRepository->find($deactivatedCartId);
|
||||
|
||||
foreach ($deactivatedCart->items as $deactivatedCartItem) {
|
||||
$this->addProduct($deactivatedCartItem->product_id, $deactivatedCartItem->additional);
|
||||
}
|
||||
|
||||
$this->collectTotals();
|
||||
} else {
|
||||
$this->cartRepository->update(['is_active' => true], $deactivatedCartId);
|
||||
}
|
||||
|
||||
session()->forget('deactivated_cart_id');
|
||||
}
|
||||
}
|
||||
|
||||
public function activateCartIfSessionHasDeactivatedCartId(): void
|
||||
{
|
||||
if (session()->has('deactivated_cart_id')) {
|
||||
$deactivatedCartId = session()->get('deactivated_cart_id');
|
||||
|
||||
$this->cartRepository->update(['is_active' => true], $deactivatedCartId);
|
||||
|
||||
session()->forget('deactivated_cart_id');
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Deactivates current cart
|
||||
*
|
||||
|
|
|
|||
|
|
@ -68,6 +68,14 @@ class CartController extends Controller
|
|||
public function add($id)
|
||||
{
|
||||
try {
|
||||
if (request()->get('is_buy_now')) {
|
||||
if ($deactivatedCart = Cart::getCart()) {
|
||||
session()->put('deactivated_cart_id', $deactivatedCart->id);
|
||||
|
||||
Cart::deActivateCart();
|
||||
}
|
||||
}
|
||||
|
||||
$result = Cart::addProduct($id, request()->all());
|
||||
|
||||
if ($this->onFailureAddingToCart($result)) {
|
||||
|
|
|
|||
|
|
@ -206,6 +206,8 @@ class OnepageController extends Controller
|
|||
|
||||
Cart::deActivateCart();
|
||||
|
||||
Cart::activateCartIfSessionHasDeactivatedCartId();
|
||||
|
||||
session()->flash('order', $order);
|
||||
|
||||
return response()->json([
|
||||
|
|
|
|||
|
|
@ -59,6 +59,8 @@ class ProductsCategoriesProxyController extends Controller
|
|||
*/
|
||||
public function index(Request $request)
|
||||
{
|
||||
\Cart::mergeDeactivatedCart();
|
||||
|
||||
$slugOrPath = trim($request->getPathInfo(), '/');
|
||||
|
||||
$slugOrPath = urldecode($slugOrPath);
|
||||
|
|
|
|||
Loading…
Reference in New Issue