2013-07-29 57 views
2

我創建了一些超出默認Magento狀態的自定義狀態。Magento中的自定義狀態history.phtml

當我抓取訂單發送到生產環境時,我通過API在Magento中設置了狀態。問題是,如果訂單設置爲這些自定義狀態之一,則不會在客戶的「我的賬戶訂單歷史記錄」區域中顯示訂單。

我需要做什麼才能在我的賬戶訂單歷史記錄區域顯示這些訂單,這些訂單有我的當前自定義狀態?

出於問題的原因,此狀態被稱爲「新狀態」,我已將其分配到處理狀態。

回答

3

簡短的回答...合併這與app/code/core/Mage/Sales/config.xml或(更好)將其添加到​​3210在您自己的本地模塊。修改核心文件是(但發生)皺起了眉頭。

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') 

第二addFieldToFilter尋找有序狀態一組「可見」狀態中的一塊。這些狀態組由Mage_Sales_Order_Config提取,並在配置中設置。請參閱上面的配置更改。您可以查看Mage_Sales_Order_Config和函數_getStates()以查看它如何從配置中獲取這些值。

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>