Sonata\ProductBundle\Model\BaseProductProvider::createOrderElement PHP Method

createOrderElement() public method

public createOrderElement ( Sonata\Component\Basket\BasketElementInterface $basketElement, string $format = 'json' ) : Sonata\Component\Order\OrderElementInterface
$basketElement Sonata\Component\Basket\BasketElementInterface A basket element instance
$format string A format to obtain raw product
return Sonata\Component\Order\OrderElementInterface
    public function createOrderElement(BasketElementInterface $basketElement, $format = 'json')
    {
        /** @var OrderElementInterface $orderElement */
        $orderElement = new $this->orderElementClassName();
        $orderElement->setQuantity($basketElement->getQuantity());
        $orderElement->setUnitPriceExcl($basketElement->getUnitPrice(false));
        $orderElement->setUnitPriceInc($basketElement->getUnitPrice(true));
        $orderElement->setPrice($basketElement->getPrice(true));
        $orderElement->setVatRate($basketElement->getVatRate());
        $orderElement->setDesignation($basketElement->getName());
        $orderElement->setProductType($this->getCode());
        $orderElement->setStatus(OrderInterface::STATUS_PENDING);
        $orderElement->setDeliveryStatus(ServiceDeliveryInterface::STATUS_OPEN);
        $orderElement->setCreatedAt(new \DateTime());
        $orderElement->setOptions($basketElement->getOptions());
        $product = $basketElement->getProduct();
        $orderElement->setDescription($product->getDescription());
        $orderElement->setProductId($product->getId());
        $orderElement->setRawProduct($this->getRawProduct($product, $format));
        return $orderElement;
    }