2011-12-15 78 views
2

我正在嘗試將自定義訂單狀態添加到我的magento安裝中。 I've found several tutorials detailing how to do this ,他們都講編輯app/code/core/Mage/Sales/etc/config.xml在magento 1.5中創建自定義訂單狀態

,但是,當我看到這個文件,它包含的語句: @depraceted after 1.4.2, statuses are saved into sales_order_status table

我不確定如何將新狀態添加到數據庫。

它看起來好像所有我需要做的是插入新行到sales_order_status與我的身份代碼和前端標籤,然後通過添加一行到sales_order_status_state與狀態的代碼和所有的代碼狀態的狀態相關聯我想要的狀態是可用的狀態。

但是我對狀態/狀態關係有些模糊,過去我通過使用帶有magento安裝的原始SQL進行刻錄。所以,我想知道是否有其他人在1.5中添加了自定義狀態,以及他們是如何做到的。

回答

5

由於Magento 1.5自定義訂單狀態可以通過後端進行配置。導航到系統 - >訂單狀態,您可以創建和編輯訂單狀態和代碼。

+1

恕我直言,這不是一個答案。 OP詢問如何將此過程添加到安裝中;安裝後的手動步驟不一樣。 – Ryre 2014-02-24 20:13:18

3

以編程方式創建的狀態爲您的擴展使用使用擴展安裝程序使用,以在數據庫中創建的狀態下:

<?php 
$installer = $this; 
$installer->startSetup(); 
$installer->run(" 
    INSERT INTO `{$this->getTable('sales/order_status')}` (
     `status` , 
     `label` 
    ) VALUES (
     'status_code', 'Status Label' 
    ); 
    INSERT INTO `{$this->getTable('sales/order_status_state')}` (
     `status` , 
     `state` , 
     `is_default` 
    ) VALUES (
     'status_code', 'processing', '0' 
    ); 
"); 
$installer->endSetup(); 
9

這是如何使用Magneto創建自定義狀態:

$installer = $this; 
/** 
* Prepare database for install 
*/ 
$installer->startSetup(); 

$status = Mage::getModel('sales/order_status'); 

$status->setStatus('your_status_code')->setLabel('Your Status Label') 
    ->assignState(Mage_Sales_Model_Order::STATE_PAYMENT_REVIEW) //for example, use any available existing state 
    ->save(); 

/** 
* Prepare database after install 
*/ 
$installer->endSetup(); 
0

我正在使用。

$status = Mage::getModel('sales/order_status'); 
$status->setStatus('xyz')->setLabel('Your Status Label'); 
$status->save(); 
$status->assignState(Mage_Sales_Model_Order::STATE_PROCESSING); 

您可以在安裝程序中使用它。

相關問題