Какова будет последняя рекомендация по загрузке заказа с использованием идентификатора приращения (вместо идентификатора заказа) с использованием OrderRepository
magento2
module
orders
magento-2.1
frostshoxx
источник
источник
Ответы:
Magento 2 использует контракты на обслуживание для извлечения и сохранения объектов. В Magento этот слой образован репозиториями, которые являются менеджерами
get()
иsave()
методами. Это удерживает код пользователя от вызовов модели. Не вызывайте методы модели (например,load()
илиsave()
илиloadByIncrementId()
) напрямую, они устарели, поскольку пользовательский код должен использовать контракты на обслуживание. Кроме того, не используйте API из Magento, как предлагает Khoa, это не имеет смысла. API предназначен для подключения Magento к другим системам.Вставьте OrderRepository и SearchCriteriaBuilder в свой конструктор:
И в твоей функции:
Официальное руководство разработчика Magento PHP на magento.com
Код Mulderea на github
источник
$order = $orderList[0]
с ,$order = $orderList->getFirstItem()
чтобы получить первый (и единственный) элемент из коллекции.$order = $orderList->getFirstItem(); $payment = $order->getPayment();
но ничего не получил.$payment
Пожалуйста, проверьте мою проблему здесь magento.stackexchange.com/questions/158935/…$order = $orderList['000000001'];
Насколько я знаю, мы должны использовать
\Magento\Sales\Api\Data\OrderInterface
.Загрузить объект заказа по инкременту ID:
[РЕДАКТИРОВАТЬ] следует попробовать с контрактами на обслуживание. Попробуйте ответ Жако.
источник
\Magento\Sales\Api\OrderRepositoryInterface
и ееget()
метод