Tidak dapat memuat objek kutipan


24

Apakah sales/quoteobjek bekerja berbeda dari objek lain saat memuat? Lihat yang berikut ..

Bekerja:

$quote = Mage::getModel('sales/quote')->getCollection()
    ->addFieldToFilter('entity_id', $quoteId)
    ->getFirstItem();
print_r($quote->getData()); // shows right data

Tidak bekerja:

$quote = Mage::getModel('sales/quote')->load($quoteId);
print_r($quote->getData()); // empty

Keduanya $quotebenar kelas Mage_Sales_Model_Quote,.


dengan 5 upvotes saya tidak mengerti bagaimana pertanyaan ini ditandai sebagai off-topic dan non-reproducible. masalah ini dapat direproduksi. Cukup memuat kutipan pada halaman tampilan pesanan frontend dan pada halaman tampilan pesanan admin, itu akan bekerja secara berbeda.
— Reena Parekh

Jawaban:


29

Tetapkan toko dulu:

$store = Mage::getSingleton('core/store')->load(1);

$quote = Mage::getModel('sales/quote')->setStore($store)->load($quoteId);

2

Tidak, Mage_Sales_Model_Quoteseperti semua model berbasis db lainnya. Anda membuat kesalahan. Mungkin hardcode $quoteId? Apakah Anda yakin itu benar? Kedua kode harus bekerja.


Ya, saya sudah mencoba menggunakan bilangan bulat sebagai pengganti $quoteId. Saya mulai berpikir mungkin $quoteIdperlu tali atau sesuatu. Script saya sedang berjalan, jadi saya akan memeriksa besok.
— musicliftsme

Hmm, itu tidak bekerja pada contoh lain, baik, dengan ID entitas kutipan dijalin dgn tali dalam string atau integer. Fabian, sudahkah Anda mencoba potongan kode yang saya posting?
— musicliftsme

1
Sementara modelnya sama seperti model db lainnya, model sumber daya Mage_Sales_Model_Resource_Quote mengimplementasikan filter hardcoded pada id toko oleh _getLoadSelect (). Cara mengatasinya adalah menggunakan Mage::getResourceSingleton('sales/quote')->loadByIdWithoutStore($quote, $order->getQuoteId()). Sekarang seandainya saya bisa mengatakannya untuk TIDAK memuat objek pelanggan penuh dan memulai sesi, saya adalah peserta yang senang.
— Melvyn

3
Bagi siapa pun yang menghadapi hal yang sama: itu adalah SalesRule / Model / Observer.php yang memulai sesi tentang memuat item kutipan. Hanya untuk sampai ke customerGroupId. Saya telah memecahkan ini dengan menulis ulang Sales_Model_Quote dan mengatur id grup pelanggan di Mage :: registry dan mengajar Mage_SalesRule_Model_Observer-> addProductAttributes untuk pertama kali melihat di sana.
— Melvyn

2
Baru saja melihat ini. Saya memilih untuk membuka kembali. Terima kasih Melvyn.
— musicliftsme

0

Anda bisa menggunakannya

$quote = Mage::getModel('sales/quote')->loadByIdWithoutStore($quoteId);

Ia bekerja di Magnto Enterprise ver. 1.14.2.4

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.