在sales / Ordercontroller magento后端获取sales_quote模型

时间:2013-08-31 08:44:21

标签: php magento

如何在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
        (
        )

)

有什么方法可以获得报价吗?

2 个答案:

答案 0 :(得分:4)

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

Mage_Sales_Model_Quote::loadByIdWithoutStore()

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

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

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

答案 1 :(得分:0)

我想,你的报价ID丢失,在加载模型前检查,  试试这段代码

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

    } catch(Exception $e) {
        return $e->getMessage();
    }
}else{
    return "no quote found";
}