/**
  * @param OrderCore $order
  *
  * @return array
  */
 protected function _getOrderItems($order)
 {
     $result = array();
     if (method_exists($order, 'getOrderDetailList')) {
         $orderItems = $order->getOrderDetailList();
     } else {
         $orderItems = $order->getProducts();
     }
     foreach ($orderItems as $item) {
         /** @var OrderDetailCore $orderItemCore */
         $orderItemCore = new OrderDetail($item['id_order_detail']);
         $orderItem = new ShopgateExternalOrderItem();
         $orderItem->setItemNumber($orderItemCore->product_id);
         //$orderItem->setItemNumberPublic()
         $orderItem->setQuantity($orderItemCore->product_quantity);
         $orderItem->setName($orderItemCore->product_name);
         $orderItem->setUnitAmount($orderItemCore->unit_price_tax_excl);
         $orderItem->setUnitAmountWithTax($orderItemCore->unit_price_tax_incl);
         $orderItem->setTaxPercent($orderItemCore->tax_rate);
         /** @var CurrencyCore $currency */
         $currency = Currency::getCurrency($order->id_currency);
         $orderItem->setCurrency($currency['iso_code']);
         if (!array_key_exists($orderItemCore->tax_rate, $this->_orderTaxes)) {
             $this->_orderTaxes[$orderItemCore->tax_rate] = array('tax_name' => $orderItemCore->tax_name, 'price_tax_excl' => $orderItemCore->unit_price_tax_excl * $orderItemCore->product_quantity);
         } else {
             $taxInfoItem = $this->_orderTaxes[$orderItemCore->tax_rate];
             $taxInfoItem['price_tax_excl'] = $taxInfoItem['price_tax_excl'] + $orderItemCore->unit_price_tax_excl * $orderItemCore->product_quantity;
             $this->_orderTaxes[$orderItemCore->tax_rate] = $taxInfoItem;
         }
         $result[] = $orderItem;
     }
     return $result;
 }