Example #1
0
 /**
  * Add CartProduct to Order Item
  *
  * @param \Extcode\Cart\Domain\Model\Cart\Product $cartProduct
  *
  * @return void
  */
 protected function addProduct(\Extcode\Cart\Domain\Model\Cart\Product $cartProduct)
 {
     /**
      * @var \Extcode\Cart\Domain\Model\Order\Product $orderProduct
      */
     $orderProduct = new \Extcode\Cart\Domain\Model\Order\Product($cartProduct->getSku(), $cartProduct->getTitle(), $cartProduct->getQuantity());
     $orderProduct->setPid($this->storagePid);
     $orderProduct->setProductType($cartProduct->getProductType());
     $orderProduct->setPrice($cartProduct->getPrice());
     $orderProduct->setDiscount($cartProduct->getDiscount());
     $orderProduct->setGross($cartProduct->getGross());
     $orderProduct->setNet($cartProduct->getNet());
     $orderProduct->setTaxClass($this->taxClasses[$cartProduct->getTaxClass()->getId()]);
     $orderProduct->setTax($cartProduct->getTax());
     $additionalArray = $cartProduct->getAdditionalArray();
     $data = ['cartProduct' => $cartProduct, 'orderProduct' => &$orderProduct, 'additionalArray' => &$additionalArray, 'storagePid' => $this->storagePid];
     $signalSlotDispatcher = $this->objectManager->get('TYPO3\\CMS\\Extbase\\SignalSlot\\Dispatcher');
     $signalSlotDispatcher->dispatch(__CLASS__, __FUNCTION__ . 'BeforeSetAdditionalData', [$data]);
     $orderProduct->setAdditionalData(json_encode($data['additionalArray']));
     $this->productRepository->add($orderProduct);
     $this->orderItem->addProduct($orderProduct);
     $this->addFeVariants($orderProduct, $cartProduct->getFeVariant());
 }
Example #2
0
 /**
  * @test
  */
 public function getCartProductTypeReturnsProductTypeSetByConstructor()
 {
     $this->assertSame($this->productType, $this->product->getProductType());
 }