/** * {@inheritdoc} */ public function createFromCartProduct(CartProductInterface $cartProduct) { $orderProduct = new OrderProduct(); $product = $cartProduct->getProduct(); $attribute = $cartProduct->getAttribute(); $orderProduct->setProductAttribute($attribute); $orderProduct->setProduct($product); $orderProduct->setSellPrice($cartProduct->getSellPrice()); $orderProduct->setBuyPrice($product->getBuyPrice()); $orderProduct->setQuantity($cartProduct->getQuantity()); $orderProduct->setWeight($cartProduct->getWeight()); return $orderProduct; }
/** * Returns an item from cart * * @param CartProductInterface $cartProduct * @param CartInterface $cart * * @return null|CartProductInterface */ protected function getCartProductInCart(CartProductInterface $cartProduct, CartInterface $cart) { return $this->getRepository()->findOneBy(['id' => $cartProduct->getId(), 'cart' => $cart]); }
/** * @param CartProductInterface $cartProduct * @param OrderInterface $order * * @return \WellCommerce\Bundle\OrderBundle\Entity\OrderProductInterface */ public function prepareOrderProduct(CartProductInterface $cartProduct, OrderInterface $order) { $orderProduct = $this->orderProductFactory->create(); $product = $cartProduct->getProduct(); $attribute = $cartProduct->getAttribute(); $sellPrice = $cartProduct->getSellPrice(); $baseCurrency = $sellPrice->getCurrency(); $targetCurrency = $order->getCurrency(); $grossAmount = $this->getCurrencyHelper()->convert($sellPrice->getFinalGrossAmount(), $baseCurrency, $targetCurrency); $netAmount = $this->getCurrencyHelper()->convert($sellPrice->getFinalNetAmount(), $baseCurrency, $targetCurrency); $taxAmount = $this->getCurrencyHelper()->convert($sellPrice->getFinalTaxAmount(), $baseCurrency, $targetCurrency); $sellPrice = new Price(); $sellPrice->setGrossAmount($grossAmount); $sellPrice->setNetAmount($netAmount); $sellPrice->setTaxAmount($taxAmount); $sellPrice->setTaxRate($sellPrice->getTaxRate()); $sellPrice->setCurrency($targetCurrency); $orderProduct->setSellPrice($sellPrice); $orderProduct->setBuyPrice($product->getBuyPrice()); $orderProduct->setQuantity($cartProduct->getQuantity()); $orderProduct->setWeight($cartProduct->getWeight()); $orderProduct->setProductAttribute($attribute); $orderProduct->setProduct($product); return $orderProduct; }