2015-10-14 64 views
0

我能够使用我的自定义模块以编程方式创建订单。Magento - 区分正常订单和以编程方式创建的订单

我希望添加一个标记来区分可以从admin /网站创建的各种类型的订单以及从我的自定义模块创建的订单。

据我所知,管理员和网站的订单可以通过

if(!empty($order->getRemoteIp()){ 
    //place online 
} 
else{ 
    // place by admin 
} 

分化但是,我还是要听命于管理员手动放置和订单从我的自定义模块放置区分。

以下是一些解决方案,我认为

1)添加前缀订单或订单增量ID。

2)在创建模块期间创建新的商店,并使用该商店从我的自定义模块添加所有订单。但是,我不确定这可能会造成什么影响。

3)我能够为了创作过程中更改店名使用

$order->setStoreName('customName'); 

但是,这是不是在管理网格或订单详情页面可见。我猜他们从商店ID中获取“购买自”的信息。

我在找什么,可能是上述的最佳解决方案,或者更好的解决方案(如果有的话)。

注意:我的模块目前兼容magento v1.4及以上版本。所以我需要一个覆盖大多数版本的解决方案。

回答

0

您可以创建订单属性并在创建订单时进行设置。

要创建订单属性,你可以像这样,在你的模块文件夹,在sql/mymodule_setup/mysql4-upgrade-VNUMBER.php

$installer = $this; 
$installer->startSetup(); 
$setup = new Mage_Eav_Model_Entity_Setup ('core_setup'); 

$installer->getConnection() 
->addColumn ( 
    $installer->getTable ('sales_flat_order'), 
    'my_attribute_code', // this is where you set the attribute code 
    'varchar(255) DEFAULT NULL'); 

$setup->startSetup(); 
$setup->addAttribute ( 
    'order', 
    'my_attribute_code', 
    array (
     'type' => 'int', // or text or whatever 
     'label' => 'My attribute Label' 
)); 
$installer->endSetup(); 

然后与订单处理时,只需使用

$order->setMyAttributeCode($value); 
+0

谢谢。我正在考虑这一点。但是,您能否告诉我为此创建新商店的含义?你认为它不必要?为什么是因为它很容易显示在订单详细信息页面的“从...中购买”部分。 –

+0

也许你可以检查这个答案http://stackoverflow.com/a/16953750/1398056它总结了网站,商店,商店的意见之间的差异。因为我不知道你在做什么,可能会帮助你做出决定。虽然在我看来(初看起来)创建一个全新的商店只是为了标记一些订单会有点过分,但我不能确定,这篇文章应该帮助您做出决定。干杯。 – baoutch