Задать вопрос
@photosho

Как получить объект заказа по XML_ID?

Как можно на D7 получить заказ по XML_ID ("Внешний код заказа")? Делаю так:

$order = \Bitrix\Sale\OrderBase::loadByFilter([
    'filter' => ['XML_ID' => $xml]
]);


Но происходит какая-то внутренняя ошибка в OrderBase. Что делаю не так?
  • Вопрос задан
  • 865 просмотров
Подписаться 1 Простой 3 комментария
Решения вопроса 1
winer
@winer
занимаюсь разработкой сайтов на 1c-bitrix
Так вы же смотрите ошибку.
[Bitrix\Main\NotImplementedException] 
 (140)
/bitrix/modules/sale/lib/orderbase.php:2069
#0: Bitrix\Sale\OrderBase::getList(array)
	/bitrix/modules/sale/lib/orderbase.php:363
#1: Bitrix\Sale\OrderBase::loadFromDb(array)
	/bitrix/modules/sale/lib/orderbase.php:292
#2: Bitrix\Sale\OrderBase::loadByFilter(array)
	/test/index.php:7


Вы вызываете метод класса \Bitrix\Sale\OrderBase. Данный класс абстрактный. И метод getList в нем требует переопределения, что и сделано в его наследнике \Bitrix\Sale\Order

В итоге ваш код будет выглядеть так:
$order = \Bitrix\Sale\Order::loadByFilter([
    'filter' => ['XML_ID' => $xml]
]);
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы