Buy Now Functionality Enhanced

This commit is contained in:
devansh bawari 2021-09-09 19:30:01 +05:30
parent 2696757207
commit 1d216d1f3e
4 changed files with 44 additions and 0 deletions

View File

@ -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
*

View File

@ -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)) {

View File

@ -206,6 +206,8 @@ class OnepageController extends Controller
Cart::deActivateCart();
Cart::activateCartIfSessionHasDeactivatedCartId();
session()->flash('order', $order);
return response()->json([

View File

@ -59,6 +59,8 @@ class ProductsCategoriesProxyController extends Controller
*/
public function index(Request $request)
{
\Cart::mergeDeactivatedCart();
$slugOrPath = trim($request->getPathInfo(), '/');
$slugOrPath = urldecode($slugOrPath);