我想知道是否有任何方法在Magento中創建自定義訂單狀態。我正在開發一個Magento擴展,其中我必須將一些自定義訂單狀態添加到磁貼訂單中。如何使用Magento中的擴展/模塊創建自定義訂單狀態
我GOOGLE了很多,但沒有找到任何好的資源。
任何人都可以解釋如何做到這一點,任何資源引用。
我想知道是否有任何方法在Magento中創建自定義訂單狀態。我正在開發一個Magento擴展,其中我必須將一些自定義訂單狀態添加到磁貼訂單中。如何使用Magento中的擴展/模塊創建自定義訂單狀態
我GOOGLE了很多,但沒有找到任何好的資源。
任何人都可以解釋如何做到這一點,任何資源引用。
假設您要將「授權付款」狀態添加爲「授權」代碼。
添加以下到下配置您的模塊/全球的config.xml文件:
<sales>
<order>
<statuses>
<authorized translate="label">
<label>Authorized Payment</label>
</authorized>
</statuses>
<states>
<authorized translate="label">
<label>Authorized Payment</label>
<statuses>
<authorized default="1"/>
</statuses>
<visible_on_front>1</visible_on_front>
</authorized>
</states>
</order>
</sales>
早些時候,這是相當足夠的,但在最近的版本(1.5.xx如果我沒有記錯),還需要以下位。將以下內容添加到您的擴展的mysql安裝/更新文件中:
<?php
$installer = $this;
$statusTable = $installer->getTable('sales/order_status');
$statusStateTable = $installer->getTable('sales/order_status_state');
$statusLabelTable = $installer->getTable('sales/order_status_label');
$data = array(
array('status' => 'authorized', 'label' => 'Authorized Payment')
);
$installer->getConnection()->insertArray($statusTable, array('status', 'label'), $data);
$data = array(
array('status' => 'authorized', 'state' => 'authorized', 'is_default' => 1)
);
$installer->getConnection()->insertArray($statusStateTable, array('status', 'state', 'is_default'), $data);
?>
這在技術上爲您的系統增加了新的狀態。現在您可以將其設置爲您的訂單,如下所示:
$order->setState('authorized', true, 'Status history message')
->save();
如果您有任何問題,請讓我知道。
這樣的狀態可見在需要面前:
<config> <modules> <MyCompany_MyModule> <active>true</active> <codePool>local</codePool> <depends> <Mage_Sales/> </depends> </MyCompany_MyModule> </modules> </config>