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上,数据库没有配置

Magento安装卡在重定向循环中[关闭]

多网站magento安装上的错误路径

在 Windows 10 上安装 Magento 2.3 后的空白管理页面

在多站点 Magento 设置上配置博客

在服务器上安装 magento 时出现致命错误