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 は 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 に答える