/** * @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; }