2 پاسخ

تنوع قیمت در محصولات براساس رنگ یا سایز محصول

سلام آقای موسوی . من در دوره آموزش پروژه محور لاراول شما شرکت کرده ام ولی به یه موضوع مهم نپرداختید.
به چه شکل میشه تنوع قیمت بر اساس سایز یا رنگ پیاده کرد؟ مثلا بشه برای سایز large قیمت بیشتری نسبت به سایز small قرار داد و این رو با سبد خریدی که شما در این دوره آموزش پروژه محور لاراول تدریس کردید پیاده کرد؟
من یه جدول مثلا به اسم prices درست کرده ام و در آن ستونهای جدول product_id , size_id, قیمت و موجودی محصول میباشد.
لطفا توضیح دهید.
@hesammousavi
@ali.bayat
@mhyeganeh


ثبت پرسش جدید
علیرضا کلانتریان
تخصص : Full-Stack Web Developer,C#,Ja...
@ali.kalan 3 سال پیش مطرح شد
0

این موضوع رو خیلی وقته حلش کردم . راهشو مینویسم شاید به درد کسی خورد.😁
اول واسم سخت اومد ولی به راحتی میشه در سایت تنوع قیمت ایجاد کرد .
من یه جدول مثلا به اسم prices ایجاد کردم که ما به التفاوت قیمت هر محصول رو ثبت میکنم داخلش دقیقا ستونهایی که در بالا هم گفته ام product_id , size_id,price قرار دادم. مثلا ما به التفاوت رنگ سفید محصول 5 هزار تومنه. و این قیمت به قیمت پایه محصول مثلا 45 هزار تومن اضافه میشه.
حالا مدیر فروشگاه از داخل خود محصول میتونه به محصول ما به التفاوت قیمت براساس سایز یا رنگ دلخواهش رو اضافه کنه.
حالا در فروشگاه با اون سبد خریدی که نوشته شده ( میتونید از پکیج های مختلف سبد خرید هم استفاده کنید فرقی نداره) موقع افزودن محصول به سبد خرید ما به التفاوت قیمت رو میگیرد با قیمت واحد جمع میکنید. و آی دی اون رنگ و سایز دلخواه رو به سبدتون اضافه میکنید کدشو در زیر مینویسم.

$total_price = $price_of_size + $product_price;
        if(! Cart::has($product)) {
            Cart::put(
                [
                    'quantity' => 1,
                    'price' => $total_price,
                    'size' =>$request->size,
                    'color' =>$request->color,
                ],
                $product
            );
        }

حالا محصول رو با رنگ و سایز دلخواه در سبد خرید داریم. توی مرحله پرداخت هم دوباره سبد رو چک میکنیم که خالی نباشه و بعد سبد خودمون رو داخل جدول orders ذخیره میکنیم.

$orderItems = $cartItems->mapWithKeys(function($cart) {
                    return [
                        $cart['product']->id => [
                            'quantity' => $cart['quantity'] ,
                            'size_id' =>intval($cart['size']),
                            'color_id' =>intval($cart['color'])
                        ]
                    ];
                });

$order->products()->attach($orderItems);

بعدش هم کاربر رو به درگاه وصل میکنیم تا پرداختش رو انجام بده .


احمد
@ahmad316948 3 سال پیش مطرح شد
0

@ali.kalan
با این روشی که شما این سیستمو پیاده کردین باگی ندیدید؟؟ من هم همین مشکلو داشتم که بر خلاف شما یه جدول colors ساختم که داخل این جدول فیلد های name و code و inventory و pricecolor قرار داره. خوب منم تونستم قیمت محصول رو بر اساس رنگ تقییر بدم. ولی یه باگ عجیب و غریب تویه سبد خرید من پیش اومده که تو این گفتگو مطرح کردم باگ در سبد خرید

میشه شما یه چک کنید ببینید این باگ تویه سبد خرید شمام هست یا نه. در ضمن سبد خرید من مثل دوره پروژه محور لاراول پیاده سازی شده.


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام