【问题标题】:Custom Statuses in Magento on history.phtmlhistory.phtml 上 Magento 中的自定义状态
【发布时间】:2013-07-29 21:22:36
【问题描述】:

除了默认的 Magento 状态之外,我还创建了一些自定义状态。

当我收到要发送到生产的订单时,我通过 API 在 Magento 中设置状态。问题是,如果订单设置为这些自定义状态之一,它不会在客户的“我的帐户订单历史记录”区域中显示该订单。

我需要做什么才能在“我的帐户订单历史记录”区域中显示这些订单,这些订单当前设置了我的自定义状态?

出于疑问,此状态称为“新状态”,我已将其分配给处理状态。

【问题讨论】:

    标签: 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>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-12-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-06-24
        相关资源
        最近更新 更多