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;
}