ไม่สามารถโหลดวัตถุคำพูด


24

ไม่sales/quoteทำงานวัตถุแตกต่างกว่าวัตถุอื่น ๆ เมื่อโหลด? ดูต่อไปนี้ ..

ผลงาน:

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

ไม่สำเร็จ:

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

ทั้งสองอย่าง$quoteนั้นถูกต้องของคลาส, Mage_Sales_Model_Quote.


ด้วย 5 upvotes ฉันไม่เข้าใจว่าคำถามนี้ถูกทำเครื่องหมายว่าไม่อยู่ในหัวข้อและไม่สามารถทำซ้ำได้ ปัญหานี้สามารถทำซ้ำได้ เพียงโหลดใบเสนอราคาในหน้ามุมมองคำสั่งซื้อส่วนหน้าและในหน้ามุมมองคำสั่งซื้อของผู้ดูแลระบบมันจะทำงานต่างกันคำตอบของ webbiedave ทำงานได้อย่างสมบูรณ์ในสถานการณ์นี้
Reena Parekh

คำตอบ:


29

ตั้งค่าร้านค้าก่อน:

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

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

2

Nope, Mage_Sales_Model_Quoteเป็นเหมือนทุกรุ่นอื่น ๆ ตามฐานข้อมูล คุณทำอะไรผิดไป บางที hardcode $quoteId? คุณแน่ใจหรือว่ามันถูกต้อง? รหัสทั้งสองควรทำงาน


$quoteIdใช่ฉันได้พยายามใช้จำนวนเต็มในสถานที่ของ ฉันเริ่มคิดว่าอาจ$quoteIdจะต้องเป็นสตริงหรืออะไรซักอย่าง สคริปต์ของฉันกำลังทำงานอยู่ดังนั้นฉันจะตรวจสอบในวันพรุ่งนี้
musicliftsme

อืมมันไม่สามารถใช้งานได้กับอินสแตนซ์อื่นด้วย ID การอ้างอิงที่มีสายแข็งในสตริงหรือจำนวนเต็ม เฟเบียนคุณลองใช้ชิ้นส่วนของรหัสที่ฉันโพสต์หรือไม่
musicliftsme

1
ในขณะที่โมเดลนั้นเหมือนกับโมเดล db อื่น ๆ โมเดลรีซอร์ส Mage_Sales_Model_Resource_Quote ใช้ตัวกรอง hardcoded บน id ร้านค้าโดย _getLoadSelect () วิธีที่รอบ ๆ Mage::getResourceSingleton('sales/quote')->loadByIdWithoutStore($quote, $order->getQuoteId())ก็คือการใช้ ตอนนี้ถ้าเพียง แต่ฉันบอกได้ว่าอย่าโหลดวัตถุลูกค้าเต็มและเริ่มเซสชันฉันเป็นผู้พักแรมที่มีความสุข
Melvyn

3
สำหรับทุกคนที่หันหน้าไปทางเดียวกัน: เป็น SalesRule / Model / Observer.php เพียงแค่ไปที่ customerGroupId ฉันได้แก้ไขปัญหานี้แล้วโดยเขียน Sales_Model_Quote ใหม่และตั้งค่ารหัสกลุ่มลูกค้าใน Mage :: registry และการสอน Mage_SalesRule_Model_Observer-> addProductAttributes เพื่อดูที่นั่นเป็นครั้งแรก
Melvyn

2
เพิ่งเห็นสิ่งนี้ ฉันโหวตให้เปิดอีกครั้ง ขอบคุณ Melvyn
musicliftsme

0

คุณสามารถใช้

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

มันทำงานได้ใน Magnto Enterprise ver 1.14.2.4

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.