Пример #1
0
 private function getNewOrderItem(Address $address = null, CartItem $cartItem, ShippingOption $shippingOption = null)
 {
     $product = $cartItem->getProduct();
     $feeType = $address ? $address->getFeeType() : null;
     /** @var \App\Modules\OrderModule\Entities\OrderItem $orderItem */
     $orderItem = $this->orderItemRepository->createModel(['product_name' => $product->name, 'price' => $product->price, 'sale_price' => $product->sale_price, 'products_total' => $cartItem->products_total ?? 0, 'shipping_total' => $shippingOption && $feeType ? $shippingOption->{$feeType} * $cartItem->quantity : 0, 'quantity' => $cartItem->quantity]);
     $orderItem->setAttributes($cartItem->getAttributeOptions());
     if ($shippingOption && $address) {
         $orderItem->setShiping($shippingOption->snapshot($feeType, $cartItem->quantity));
     }
     $orderItem->setProduct($cartItem->getProduct());
     $this->cartItemRepository->delete($cartItem);
     return $orderItem;
 }
Пример #2
0
 public function delete(User $user, CartItem $cartItem)
 {
     return $user->is($cartItem->getUser());
 }
Пример #3
0
 public function update(UpdateCartItemRequest $request, CartItem $cartItem, StockValidator $stockValidator)
 {
     $stockValidator->validate($cartItem->getProduct(), $cartItem->getVariant(), $request->input('quantity'));
     $this->cartManager->updateItem($cartItem, $request->all());
     return $this->success('update');
 }