/**
  * @param SyliusOrder $order
  *
  * @return Transaction
  */
 public static function createFromOrder(SyliusOrder $order)
 {
     $totalAmount = $order->getTotal() / 100;
     $taxAmount = $order->getAdjustmentsTotal(AdjustmentInterface::TAX_ADJUSTMENT) / 100;
     $shippingAmount = $order->getAdjustmentsTotal(AdjustmentInterface::SHIPPING_ADJUSTMENT) / 100;
     // $coupon = $order->getPromotionCoupons()->current();
     $coupon = null;
     $instance = new self();
     $instance->setId($order->getId())->setRevenue($totalAmount)->setTax($taxAmount)->setShipping($shippingAmount)->setCoupon($coupon);
     return $instance;
 }
 public function createInvoice(Order $order)
 {
     $invoice = array();
     $inFaktClient = $this->createClient($order->getCustomer()->getFirstName());
     $invoice['invoice']['client_id'] = $inFaktClient->id;
     //$invoice['invoice']['company_name'] = $client->company_name;
     $invoice['invoice']['bank_account'] = $this->bank_account;
     $invoice['invoice']['bank_name'] = $this->bank_name;
     /* @var $item OrderItem */
     foreach ($order->getItems() as $item) {
         $invoice['invoice']['services'][] = array('name' => $item->getProduct()->getName(), 'gross_price' => $item->getTotal(), 'tax_symbol' => 23, 'quantity' => $item->getQuantity());
     }
     return $this->executeCurl('invoices.json', 'post', $invoice);
 }
 /**
  * @param SyliusOrder $order
  */
 private function addProductsFromOrder(SyliusOrder $order)
 {
     /** @var \Sylius\Component\Core\Model\OrderItem $item */
     foreach ($order->getItems() as $item) {
         /** @var \Sylius\Component\Core\Model\ProductVariant $variant */
         $variant = $item->getVariant();
         /** @var \Sylius\Component\Core\Model\Product $product */
         $product = $variant->getProduct();
         $this->addProduct($product, ['variant' => $variant->__toString(), 'quantity' => $item->getQuantity()]);
     }
 }