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,.

musicliftsme
sumber
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);
webbiedave
sumber
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.

Fabian Blechschmidt
sumber
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

Blaz
sumber