在Magento的Checkout中将自定义属性保存到订单对象 - 我该如何确认?

时间:2014-05-12 15:52:09

标签: magento magento-1.7 observers

我在这几天遇到了麻烦,基本上我需要添加一个自定义的 organisation_id 属性(我通过安装程序脚本创建)以添加到在onepage checkout结束时客户对象和订单对象。

安装程序脚本工作正常(我可以在数据库中看到eav_attribute和core_resources表中的值。

在最终“订单审核”的结帐阶段。部分,单击下订单按钮后,将执行以下观察者:

sales_order_place_after

执行此操作后,它将在Observer中运行以下功能:

public function afterOrderPlaced($observer)
{
    // this id below comes from a select dropdown within the checkout onepage & already saved to session
    $organisation_id = Mage::getSingleton('customer/session')->getCustomerOrganisationId();

    $this->_order = $observer->getEvent()->getOrder();
    $this->_order->setOrganisationId($organisation_id)->save(); // e.g 25621

    // Customer stuff
    $this->_customer_id = $this->_order->getCustomerId();
    $this->_customer = $this->_order->getCustomer();
    $this->_customer->setOrganisationId($organisation_id)->save(); // e.g 25621
}

在这种情况下,我只想在客户和订单对象上设置 organisationId 值为' 25621'。

完成结帐流程并点击“确认”后,第I页我希望能够确认 organisation_id 确实已正确添加到客户和订单对象中,是否有人可以确认最简单/最好的方法?我认为这需要包含对sales html for Sales的一些修改,以包含这些信息。

请注意 - 我的Magento技能组合相当有限

我的安装程序脚本如下:

$installer = new Mage_Eav_Model_Entity_Setup();
$installer->startSetup();

$installer = new Mage_Eav_Model_Entity_Setup();
$installer->startSetup();

$installer->addAttribute('customer', 'organisation_id', array(
    'input'         => 'select', //or select or whatever you like
    'type'          => 'int', //or varchar or anything you want it
    'label'         => 'Organisation ID',
    'visible'       => 1,
    'required'      => 0, //mandatory? then 1
    'user_defined'  => 1,
    'global'        => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_STORE,
));

$installer->addAttribute('quote', 'organisation_id', array(
    'input'         => 'select', //or select or whatever you like
    'type'          => 'int', //or varchar or anything you want it
    'label'         => 'Organisation ID',
    'visible'       => 1,
    'required'      => 0, //mandatory? then 1
    'user_defined'  => 1,
    'global'        => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_STORE,
));

$installer->addAttribute('order', 'organisation_id', array(
    'input'         => 'select', //or select or whatever you like
    'type'          => 'int', //or varchar or anything you want it
    'label'         => 'Organisation ID',
    'visible'       => 1,
    'required'      => 0, //mandatory? then 1
    'user_defined'  => 1,
    'global'        => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_STORE,
));

$installer->endSetup();

1 个答案:

答案 0 :(得分:1)

您可以在数据库sales_flat_order_address表和sales_flat_quote_address表中检查自定义值。

如果您有任何疑问,请告诉我