Мы переезжаем в BC, и я получаю заказы через api, используя функцию usexml, поскольку я должен выводить файл для каждого заказа. Я успешно получаю заказы, продукты в заказах и адрес доставки от BC. Мне пришлось добавить в библиотеку bigcommerce.php ряд функций, чтобы сделать это, так как пока они могут быть указаны в онлайн-документах, они фактически не существуют в библиотеке. Мой последний шаг - получение купонов, связанных с заказом. Функции, которые я реализованы в библиотеке следующим образом:bigcommerce api php получить заказ купон
// Функция отсутствует из библиотеки addded 030215 PH - Получить продукты на заказ
public static function getOrderProducts($id)
{
return self::getCollection('/orders/' . $id . '/products','Order');
}
// Function missing form library added 030215 - Get Shipping adds on order
public static function getOrderShippingAddresses($id)
{
return self::getCollection('/orders/' . $id .'/shipping_addresses','Order');
}
// Функция отсутствует форма библиотеки добавлены 030215 - Получить купоны на заказ
public static function getOrderCoupons($id)
{
return self::getCollection('/orders/' . $id . '/coupons','Order');
}
Хотя аналогичный синтаксис я не могу получить getOrderCoupons, возвращающие купонную информацию для замены ссылки в нормальном getOrders вернуться.
Я использую ту же логику для купона, что и для получения адресов доставки, как показано ниже. Любые решения приветствуются.
N.B Bigcommerce :: useXML(); используется поэтому строки XML используются
$shipping_xml = Bigcommerce::getOrderShippingAddresses($order->id);
$shippings = simplexml_load_string($shipping_xml);
// Если есть только один адрес доставки в заказ
foreach($shippings as $shipping) {
$xmlship = $shipping->asXML();
$domship = new DOMDocument();
$domship = dom_import_simplexml($shipping);
$domordship = dom_import_simplexml($order->shipping_addresses);
$domship = $domordship->ownerDocument->importNode($domship, TRUE);
$domordship->appendChild($domship);
}
$coupon_xml = Bigcommerce::getOrderCoupons($order->id);
$coupons = simplexml_load_string($coupon_xml);
// Если есть только один купон за заказ
foreach($coupons as $coupon) {
$xmlcoup = $coupon->asXML();
$domcoup = new DOMDocument();
$domcoup = dom_import_simplexml($coupon);
$domordcoup = dom_import_simplexml($order->coupons);
$domcoup = $domordcoup->ownerDocument->importNode($domcoup, TRUE);
$domordcoup->appendChild($domcoup);
}
Благодаря Мильо var_dump ответил на вопрос. Мне нужно было справиться с тем случаем, когда купон не был, поскольку БК возвращал ложь. В кейсе для доставки всегда должны быть данные, но купон не имеет. Код изменен на: –