Qual seria a melhor prática mais recente para carregar o pedido usando o ID de incremento (em vez do ID do pedido) usando o OrderRepository
magento2
module
orders
magento-2.1
frostshoxx
fonte
fonte
Respostas:
O Magento 2 usa contratos de serviço para recuperar e salvar objetos. No Magento, essa camada é formada por Repositórios, que são gerentes
get()
esave()
métodos. Isso mantém o código do usuário longe das chamadas de modelo. Não chame métodos de modelo (comoload()
ousave()
ouloadByIncrementId()
) diretamente, pois eles estão sendo preteridos, pois o código personalizado deve usar os Contratos de Serviço. Além disso, não use a API do Magento, como sugere o Khoa, isso não faz sentido. A API é para conectar o Magento a outros sistemas.Injete OrderRepository e SearchCriteriaBuilder em seu construtor:
E na sua função:
Guia oficial do desenvolvedor do Magento PHP em magento.com
Code de Mulderea no github
fonte
$order = $orderList[0]
por$order = $orderList->getFirstItem()
para obter o primeiro (e único) item da coleção.$order = $orderList->getFirstItem(); $payment = $order->getPayment();
Mas conseguir nada em$payment
favor verificar o meu problema aqui magento.stackexchange.com/questions/158935/...$order = $orderList['000000001'];
Tanto quanto eu sei, devemos usar
\Magento\Sales\Api\Data\OrderInterface
.Carregar objeto de pedido por ID de incremento:
[EDIT] deve tentar contratos de serviço. Tente a resposta de Jacco.
fonte
\Magento\Sales\Api\OrderRepositoryInterface
e seuget()
método