0

如何在 ordercontroller Magento 后端获取 sales_quote 模型?我需要在 ordercontroller 中获取报价详细信息,因此我使用以下代码。

$quote= Mage::getModel('sales/quote')->load($quoteid);

上面的查询返回空数据。这是下面

  Mage_Sales_Model_Quote Object
(
    [_eventPrefix:protected] => sales_quote
    [_eventObject:protected] => quote
    [_customer:protected] => 
    [_addresses:protected] => 
    [_items:protected] => 
    [_payments:protected] => 
    [_errorInfoGroups:protected] => Array
        (
        )

    [_preventSaving:protected] => 
    [_resourceName:protected] => sales/quote
    [_resource:protected] => 
    [_resourceCollectionName:protected] => sales/quote_collection
    [_cacheTag:protected] => 
    [_dataSaveAllowed:protected] => 1
    [_isObjectNew:protected] => 
    [_data:protected] => Array
        (
        )

    [_hasDataChanges:protected] => 
    [_origData:protected] => 
    [_idFieldName:protected] => 
    [_isDeleted:protected] => 
    [_oldFieldsMap:protected] => Array
        (
        )

    [_syncFieldsMap:protected] => Array
        (
        )

)

有什么办法可以得到报价吗?

4

2 回答 2

4

我遇到了同样的问题。在浏览了一段时间的代码后,我遇到了这个函数:

Mage_Sales_Model_Quote::loadByIdWithoutStore()

我猜常规Mage_Sales_Model_Quote::load()函数会自动附加当前的 storeview 来加载报价对象。在这种情况下,storeview 是 admin,这意味着不会为报价 ID 找到任何结果,并且返回的对象是空的。

在您的情况下,这应该按预期工作:

$quote= Mage::getModel('sales/quote')->loadByIdWithoutStore($quoteid); 
于 2014-03-20T14:23:38.840 回答
0

我想,您的报价 ID 丢失了,在加载模型之前检查一下,试试这个代码

if($quoteID)
{
    try {
        $quote = Mage::getModel("sales/quote")->load($quoteID);

    } catch(Exception $e) {
        return $e->getMessage();
    }
}else{
    return "no quote found";
}
于 2013-08-31T09:47:09.033 回答