2

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

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

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

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

4

2 回答 2

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()以了解它如何从配置中提取这些内容。

于 2013-07-30T00:27:37.430 回答
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>
于 2015-08-04T13:44:03.547 回答