我在这几天遇到了麻烦,基本上我需要添加一个自定义的 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();
答案 0 :(得分:1)
您可以在数据库sales_flat_order_address
表和sales_flat_quote_address
表中检查自定义值。
如果您有任何疑问,请告诉我