Как добавить более одной продукции одного и того же идентификатора с разными размерами в корзину Laravel Moltin?

Я пытаюсь добавить более одного продукта с одинаковым идентификатором, но разных размеров, с помощью корзины Moltin. Проблема здесь в том, что если я пытаюсь добавить в корзину один и тот же товар с разными размерами, он просто увеличивает количество, а не добавляет его. Я гуглил решение, но обнаружил, что это происходит из-за передачи того же идентификатора в Cart::insert() метод.

Метод вставки в корзину:

Cart::insert(array(
'id' => $product->id,
'name' => $product->title,
'price' => $product->price,
'dimension'=>null,
'unit'=>$product->unit,
'quantity' => $quantity,
'image' => $product->image,
'tax' =>$product->taxvalue,
'taxtype'=>$product->tax,
'pincode' =>$pincode,
'shippingfee'=>Session::get('shippingfee'),
'retailerId' =>$retailerIdfromProductId
));

Я хочу добавить новый продукт, если измерение не равно нулю. Как мне это сделать?

1

Решение

Я никогда не использовал Moltin пакет корзины, но глядя на код похоже, он строит идентификатор элемента, используя комбинацию id поле и options поле массива. Поэтому, если id то же самое, но options разные, он должен вставить два разных товара в корзину.

Можете ли вы сделать что-то вроде этого:

// first item with no dimension
Cart::insert(array(
'id' => $product->id,
'name' => $product->title,
'price' => $product->price,
'unit' => $product->unit,
'quantity' => $quantity,
'image' => $product->image,
'tax' => $product->taxvalue,
'taxtype' => $product->tax,
'pincode' => $pincode,
'shippingfee' => Session::get('shippingfee'),
'retailerId' => $retailerIdfromProductId,
'options' => array(
'dimension' => null
)
));

// second item with 'M' dimension
Cart::insert(array(
'id' => $product->id,
'name' => $product->title,
'price' => $product->price,
'unit' => $product->unit,
'quantity' => $quantity,
'image' => $product->image,
'tax' => $product->taxvalue,
'taxtype' => $product->tax,
'pincode' => $pincode,
'shippingfee' => Session::get('shippingfee'),
'retailerId' => $retailerIdfromProductId,
'options' => array(
'dimension' => 'M'
)
));
2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]