history.phtml 上 Magento 中的自定义状态
Posted
技术标签:
【中文标题】history.phtml 上 Magento 中的自定义状态【英文标题】:Custom Statuses in Magento on history.phtml 【发布时间】:2013-07-29 21:22:36 【问题描述】:除了默认的 Magento 状态之外,我还创建了一些自定义状态。
当我收到要发送到生产的订单时,我通过 API 在 Magento 中设置状态。问题是,如果订单设置为这些自定义状态之一,它不会在客户的“我的帐户订单历史记录”区域中显示该订单。
我需要做什么才能在“我的帐户订单历史记录”区域中显示这些订单,这些订单当前设置了我的自定义状态?
出于疑问,此状态称为“新状态”,我已将其分配给处理状态。
【问题讨论】:
【参考方案1】:简答...将其与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()
以了解它是如何从配置中提取这些内容的。
【讨论】:
【参考方案2】: 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>
【讨论】:
以上是关于history.phtml 上 Magento 中的自定义状态的主要内容,如果未能解决你的问题,请参考以下文章
magento没有安装在ubuntu 14.04上,数据库没有配置