/** * @param OrderCore $order * * @return array * @throws PrestaShopDatabaseException */ protected function _getCartRules($order) { $result = array(); foreach ($order->getDiscounts() as $item) { if (array_key_exists('id_order_cart_rule', $item)) { /** @var OrderCartRuleCore $cartRuleItem */ $cartRuleItem = new OrderCartRule($item['id_order_cart_rule']); } else { /** @var OrderDiscountCore $cartRuleItem */ $cartRuleItem = new OrderDiscount($item['id_order_discount']); } $resultItem = new ShopgateExternalCoupon(); $resultItem->setCode($cartRuleItem->name); $resultItem->setAmountNet($cartRuleItem->value_tax_excl); $resultItem->setAmountGross($cartRuleItem->value); $resultItem->setIsFreeShipping($cartRuleItem->free_shipping); $result[] = $resultItem; } return $result; }