skip to Main Content

I want it to reduce the number of products in the cart from stock after the order is placed. sample: The product stock with 5 IDs is 50 pieces, if 5 orders are received from this product,I want it updated to be 50 – 5 = 45.
note:number=the quantity of the product in the current order

more detailed: There is number in the cart_product table, stock in the products table,Number of products in cart_product,Taking the number from the cart_product table and subtracting it from the stock in the product table, but i didn’t succeed can you help me please

DB::table('products')
->join('products', 'products.id', 'cart_product.product_id')
->join('cart_product', 'cart.id', 'cart_product.main_cart_id')
->where(session('active_cart_id'),'=','cart_product.main_cart_id')
->orWhere('cart_product.product_id','=','products.id')
->update();

2

Answers


  1. Chosen as BEST ANSWER

    it worked like this

    // Fetch items in the cart
            $cartItems = DB::table('cart_product')
                ->where('main_cart_id', session('active_cart_id'))
                ->get();
            foreach ($cartItems as $cartItem) {
                // Update stocks in the "products" table
                DB::table('products')
                    ->where('id',$cartItem->product_id)
                    ->decrement(
                    'stock',
                    $cartItem->number
            );}
    

  2. 
    // Fetch items in the cart
    $cartItems = DB::table('cart_product')
        ->where('main_cart_id', session('active_cart_id'))
        ->get();
    
    foreach ($cartItems as $cartItem) {
    
        // Update stocks in the "products" table 
        DB::table('products')
            ->where('id',$cartItem->product_id)
            ->decrement(
                'AAAAA',
                $cartItem->BBBBB;
            );
    
    }
    
    

    I couldn’t use the column names since I don’t know. Keep in mind that you need to change the following texts in the code:

    • AAAAA => Column name of the purchased item amount in "cart_product" table.
    • $cartItem->BBBBB => Column name of item stock in "products" table.

    For more information about increment and decrement methods, you can look at https://laravel.com/docs/9.x/queries#increment-and-decrement

    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search