2

デフォルトの Magento ステータスを超えるカスタム ステータスをいくつか作成しました。

生産に送信する注文を取得すると、API を介して Magento でステータスを設定します。問題は、注文がこれらのカスタム ステータスのいずれかに設定されている場合、顧客の [マイ アカウントの注文履歴] 領域に注文が表示されないことです。

カスタム ステータスが現在設定されているこれらの注文を [マイ アカウントの注文履歴] エリアに表示するには、どうすればよいですか?

質問のために、このステータスを「新規ステータス」と呼び、処理中ステータスに割り当てました。

4

2 に答える 2

3

簡単な答え...これをマージするか、(より良い)これを独自のローカルモジュールにapp/code/core/Mage/Sales/config.xml追加します。config.xmlコア ファイルの変更は嫌われます (しかし起こります)。

ステータスに変更new_statusします。

<config>
    <global>
        <sales>
            <order>
                <statuses>
                    <new_status translate="label">
                        <label>New Status</label>
                    </new_status>
                </statuses>
                <states>
                     <new_status translate="label">
                          <label>New Status</label>
                          <statuses>
                              <new_status default="1"/>
                          </statuses>
                          <visible_on_front>1</visible_on_front>
                     </new_status>
                 </states>
             </order>
        </sales>
    </global>
</config>

長い答え:Mage_Sales_Block_Order_History具体的には、注文コレクションをつかむ部分を参照してください

$orders = Mage::getResourceModel('sales/order_collection')
    ->addFieldToSelect('*')
    ->addFieldToFilter('customer_id', Mage::getSingleton('customer/session')->getCustomer()->getId())
    ->addFieldToFilter('state', array('in' => Mage::getSingleton('sales/order_config')->getVisibleOnFrontStates()))
    ->setOrder('created_at', 'desc')

2 つ目addFieldToFilterは、一連の「可視」状態の中で注文状態を探します。これらの一連の状態は によって取得さMage_Sales_Order_Configれ、構成で設定されます。構成の変更については、上記を参照してください。Mage_Sales_Order_Config関数を調べ_getStates()て、構成からこれらを取得する方法を確認できます。

于 2013-07-30T00:27:37.430 に答える
0
    Suppose your custom order status is paymentsuccess in magento   order_status table
<config>
  <global>    
   <sales>
        <order>
            <statuses>
                <paymentsuccess translate="label">
                    <label>Payment Successful</label>
                </paymentsuccess>
            </statuses>
            <states>
                 <paymentsuccess translate="label">
                      <label>Payment Successful</label>
                      <statuses>
                          <paymentsuccess default="1"/>
                      </statuses>
                      <visible_on_front>1</visible_on_front>
                 </paymentsuccess>
             </states>
         </order>
    </sales>
</global>
</config>
于 2015-08-04T13:44:03.547 に答える