public function testCreate()
 {
     $option = $this->dummyData->getOption();
     $option->setName('Team Logo');
     $product = $this->dummyData->getProduct();
     $product->setSku('LAA');
     $product->setName('LA Angels');
     $optionProduct = $this->dummyData->getOptionProduct($option, $product);
     $orderItem = $this->dummyData->getOrderItem();
     $orderItemOptionProduct = new OrderItemOptionProduct();
     $orderItemOptionProduct->setOptionProduct($optionProduct);
     $orderItemOptionProduct->setOrderItem($orderItem);
     $this->assertSame('LAA', $orderItemOptionProduct->getSku());
     $this->assertSame('Team Logo', $orderItemOptionProduct->getOptionName());
     $this->assertSame('LA Angels', $orderItemOptionProduct->getOptionProductName());
     $this->assertSame($optionProduct, $orderItemOptionProduct->getOptionProduct());
     $this->assertSame($orderItem, $orderItemOptionProduct->getOrderItem());
 }
예제 #2
0
 public function getOrderItem(Order $order, PricingInterface $pricing)
 {
     $orderItem = new OrderItem($order);
     $orderItem->setProduct($this->getProduct());
     $orderItem->setQuantity($this->getQuantity());
     $orderItem->setPrice($this->getPrice($pricing));
     foreach ($this->getCartItemOptionProducts() as $cartItemOptionProduct) {
         $orderItemOptionProduct = new OrderItemOptionProduct();
         $orderItemOptionProduct->setOptionProduct($cartItemOptionProduct->getOptionProduct());
         $orderItem->addOrderItemOptionProduct($orderItemOptionProduct);
     }
     foreach ($this->getCartItemOptionValues() as $cartItemTextOptionValue) {
         $orderItemOptionValue = new OrderItemOptionValue();
         $orderItemOptionValue->setOptionValue($cartItemTextOptionValue->getOptionValue());
         $orderItem->addOrderItemOptionValue($orderItemOptionValue);
     }
     foreach ($this->getCartItemTextOptionValues() as $cartItemTextOptionValue) {
         $orderItemTextOptionValue = new OrderItemTextOptionValue();
         $orderItemTextOptionValue->setTextOption($cartItemTextOptionValue->getTextOption());
         $orderItemTextOptionValue->setTextOptionValue($cartItemTextOptionValue->getTextOptionValue());
         $orderItem->addOrderItemTextOptionValue($orderItemTextOptionValue);
     }
     return $orderItem;
 }
예제 #3
0
 public function getOrderItemOptionProduct(OptionProduct $optionProduct = null)
 {
     if ($optionProduct === null) {
         $optionProduct = $this->getOptionProduct();
     }
     $orderItemOptionProduct = new OrderItemOptionProduct();
     $orderItemOptionProduct->setOptionProduct($optionProduct);
     return $orderItemOptionProduct;
 }
예제 #4
0
 public function addOrderItemOptionProduct(OrderItemOptionProduct $orderItemOptionProduct)
 {
     $orderItemOptionProduct->setOrderItem($this);
     $this->orderItemOptionProducts[] = $orderItemOptionProduct;
     $this->setSku();
 }
 /**
  * @return static
  */
 public function withOptionProduct()
 {
     $this->entityDTO->optionProduct = $this->dtoBuilderFactory->getOptionProductDTOBuilder($this->entity->getOptionProduct())->withOption()->build();
     return $this;
 }