我正在尝试为我的magento安装添加自定义订单状态。 I've found several tutorials detailing how to do this
他们都谈到编辑app/code/core/Mage/Sales/etc/config.xml
但是,当我查看该文件时,它包含以下语句:
@depraceted after 1.4.2, statuses are saved into sales_order_status table
我不确定如何向数据库添加新状态。
看起来我需要做的就是使用我的状态代码和前端标签在sales_order_status
中插入一个新行,然后通过向sales_order_status_state
添加一行来将该状态与状态相关联。状态的代码和所有状态的代码我不是可用的状态。
但我对状态/状态关系有点朦胧,过去使用原始SQL和magento安装我已经被烧毁了。所以,我想知道是否有其他人在1.5中添加了自定义状态,以及他们是如何做到的。
答案 0 :(得分:9)
这是使用Magento
创建自定义状态的方法:
$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();
答案 1 :(得分:5)
由于可以通过后端配置Magento 1.5自定义订单状态。导航到系统 - >订单状态,您可以创建和编辑订单状态和代码。
答案 2 :(得分: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();
答案 3 :(得分:0)
我正在使用。
$status = Mage::getModel('sales/order_status');
$status->setStatus('xyz')->setLabel('Your Status Label');
$status->save();
$status->assignState(Mage_Sales_Model_Order::STATE_PROCESSING);
您可以在安装程序中使用它。