견적서 개체를로드 할 수 없습니다


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

아니요, Mage_Sales_Model_Quote다른 모든 DB 기반 모델과 같습니다. 당신은 뭔가 잘못합니다. 어쩌면 $quoteId? 그것이 맞습니까? 두 코드 모두 작동해야합니다.


네, 대신 정수를 사용해 보았습니다 $quoteId. 아마도 $quoteId문자열이나 무언가가 필요할 것이라고 생각하기 시작했습니다 . 내 스크립트가 현재 실행 중이므로 내일 확인하겠습니다.
musicliftsme

흠, 그것은 엔터티 ID가 문자열이나 정수로 하드 코드 된 다른 인스턴스에서도 작동하지 않습니다. 파비안, 내가 게시 한 코드 조각을 사용해 보셨습니까?
musicliftsme

1
모델이 다른 db 모델과 같지만 자원 모델 Mage_Sales_Model_Resource_Quote는 _getLoadSelect ()에 의해 상점 ID에 하드 코드 된 필터를 구현합니다. 그 방법은 사용하는 것 Mage::getResourceSingleton('sales/quote')->loadByIdWithoutStore($quote, $order->getQuoteId())입니다. 이제 전체 고객 객체를로드하지 않고 세션을 시작하지 말라고 말할 수 있다면 나는 행복한 캠핑입니다.
Melvyn

3
동일하게 직면하는 사람 : 견적 항목로드시 세션을 인스턴스화하는 것은 SalesRule / Model / Observer.php입니다. customerGroupId로 이동하십시오. Sales_Model_Quote를 다시 작성하고 Mage :: registry에서 고객 그룹 ID를 설정하고 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.