我创建了一些超出默认Magento状态的自定义状态。
当我抓住订单发送到制作时,我通过API在Magento中设置状态。问题是,如果订单设置为这些自定义状态之一,则不会在客户的“我的帐户订单历史记录”区域中显示订单。
在“我的帐户订单历史记录”区域显示这些订单时,我需要做些什么?我的自定义状态目前已设置?
出于问题的缘故,这个状态被称为“新状态”,我已将其分配给处理状态。
答案 0 :(得分: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')
第二个addFieldToFilter
查找一组“可见”状态中的顺序状态。这些状态集由Mage_Sales_Order_Config
提取,并在配置中设置。请参阅上面的配置更改。您可以查看Mage_Sales_Order_Config
和函数_getStates()
,了解它如何从配置中提取这些内容。
答案 1 :(得分: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>