¿Cuál sería la mejor práctica más reciente para cargar Order usando el ID de incremento (en lugar del ID de Order) usando OrderRepository
magento2
module
orders
magento-2.1
frostshoxx
fuente
fuente
Respuestas:
Magento 2 utiliza contratos de servicio para recuperar y guardar objetos. En Magento, esta capa está formada por repositorios, que son administradores
get()
ysave()
métodos. Esto mantiene el código de usuario alejado de las llamadas de Modelo. No llame a métodos como modelo (load()
osave()
oloadByIncrementId()
) directamente, que están siendo obsoleta, ya que el código personalizado debe utilizar los contratos de servicio. Además, no use la API desde Magento como sugiere Khoa, no tiene sentido. La API es para conectar Magento con otros sistemas.Inyecte OrderRepository y SearchCriteriaBuilder en su constructor:
Y en tu función:
Guía oficial para desarrolladores de PHP de Magento en magento.com
Código de Mulderea en github
fuente
$order = $orderList[0]
con$order = $orderList->getFirstItem()
para conseguir el primer punto (y única) de la colección.$order = $orderList->getFirstItem(); $payment = $order->getPayment();
pero no recibí nada.$payment
Por favor revise mi problema aquí magento.stackexchange.com/questions/158935/…$order = $orderList['000000001'];
Que yo sepa, deberíamos usar
\Magento\Sales\Api\Data\OrderInterface
.Cargar objeto de pedido por ID de incremento:
[EDITAR] debería intentar con contratos de servicio. Prueba la respuesta de Jacco.
fuente
\Magento\Sales\Api\OrderRepositoryInterface
y suget()
método