Неможливо завантажити об’єкт цитати


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 оновленнями я не розумію, як це питання позначене як позатематичне та не відтворюване. ця проблема може бути відтворена. Просто завантажте цитату на сторінку перегляду замовлень на замовлення та на сторінку перегляду адміністратора, вона буде працювати по-різному. Відповідь Webbiedave прекрасно працює в цьому сценарії.
Реена Парех

Відповіді:


29

Спершу встановіть магазин:

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

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

2

Ні, Mage_Sales_Model_Quoteяк і всі інші моделі на базі db. Ви робите щось не так. Може бути, жорсткий код $quoteId? Ви впевнені, що це правильно? Обидва коди повинні працювати.


Так, я намагався використовувати ціле число замість $quoteId. Я починаю думати, можливо, це $quoteIdмає бути струна чи щось таке. Наразі мій сценарій працює, тому завтра я перевірю.
musicliftsme

Гм, він також не працює в іншому екземплярі, з ідентифікатором сутності цитата, жорстко закресленим у рядку або цілому. Фабіян, ти спробував фрагмент коду, який я опублікував?
musicliftsme

1
Хоча модель подібно до інших db-моделей, модель ресурсу Mage_Sales_Model_Resource_Quote реалізує фільтр із твердим кодом на ідентифікатор магазину _getLoadSelect (). Шлях навколо цього - використовувати Mage::getResourceSingleton('sales/quote')->loadByIdWithoutStore($quote, $order->getQuoteId()). Тепер, якщо тільки я можу сказати, що НЕ завантажувати повний об’єкт клієнта і починати сеанс, я щасливий відпочивальник.
Мельвін

3
Для тих, хто стикається з тим же: саме SalesRule / Model / Observer.php створює сеанс на завантаження елементів цитування. Просто, щоб дістатися до customerGroupId. Я вирішив це, переписавши Sales_Model_Quote та встановивши ідентифікатор групи клієнтів у Mage :: реєстр та викладання Mage_SalesRule_Model_Observer-> addProductAttributes, щоб спочатку подивитися.
Мельвін

2
Щойно це побачив. Я проголосував за повторне відкриття. Дякую Мелвіну.
musicliftsme

0

Ви можете використовувати

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

Він працює в Magnto Enterprise ver. 1.14.2.4

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.