Apa yang akan menjadi praktik terbaik terbaru untuk memuat Pesanan menggunakan ID kenaikan (bukan ID Pesanan) menggunakan OrderRepository
magento2
module
orders
magento-2.1
frostshoxx
sumber
sumber
Jawaban:
Magento 2 menggunakan Kontrak Layanan untuk mengambil dan menyimpan objek. Dalam Magento lapisan ini dibentuk oleh Repositori, yang manajer dengan
get()
dansave()
metode. Ini menjaga kode pengguna dari Panggilan model. Jangan panggil metode model (sepertiload()
atausave()
atauloadByIncrementId()
) secara langsung, mereka sudah ditinggalkan karena kode kustom harus menggunakan Kontrak Layanan. Juga, jangan gunakan API dari dalam Magento seperti yang disarankan Khoa, itu tidak masuk akal. API adalah untuk menghubungkan Magento dengan sistem lain.Suntikkan OrderRepository dan SearchCriteriaBuilder di konstruktor Anda:
Dan dalam fungsi Anda:
Panduan Pengembang PHP Magento Resmi di magento.com
Kode oleh Mulderea di github
sumber
$order = $orderList[0]
dengan$order = $orderList->getFirstItem()
untuk mendapatkan item pertama (dan hanya) dari koleksi.$order = $orderList->getFirstItem(); $payment = $order->getPayment();
Tapi tidak mendapatkan apa-apa di$payment
Silakan periksa masalah saya di sini magento.stackexchange.com/questions/158935/…$order = $orderList['000000001'];
Sejauh yang saya tahu, kita harus menggunakan
\Magento\Sales\Api\Data\OrderInterface
.Muat objek pesanan dengan penambahan id:
[EDIT] harus mencoba dengan kontrak layanan. Coba jawaban Jacco.
sumber
\Magento\Sales\Api\OrderRepositoryInterface
danget()
metodenya