使用自定义模块将SKU添加到Magento中的sales_flat_报价中

使用自定义模块将SKU添加到Magento中的sales_flat_报价中,magento,moodle,Magento,Moodle,为了将Magento与Moodle(LMS)集成,我需要用户数据和在单个表中购买的物品的SKU。最接近的表格是销售报价表。如果我可以将购买的SKU与之匹配,那么Moodle可以在登录时检查该表,并将购买的课程添加到用户配置文件中 使用,this和this,我成功地创建了一个模块,用于写入测试服务器上的日志。现在它什么都不做了 我在\app\etc\modules\minerva\u moodleConnect.xml中找到了这个: <?xml version="1.0" encoding=

为了将Magento与Moodle(LMS)集成,我需要用户数据和在单个表中购买的物品的SKU。最接近的表格是销售报价表。如果我可以将购买的SKU与之匹配,那么Moodle可以在登录时检查该表,并将购买的课程添加到用户配置文件中

使用,this和this,我成功地创建了一个模块,用于写入测试服务器上的日志。现在它什么都不做了

我在\app\etc\modules\minerva\u moodleConnect.xml中找到了这个:

<?xml version="1.0" encoding="utf-8"?>
<config>
  <modules>
    <minerva_moodleConnect>
      <active>true</active>
      <codePool>local</codePool>
    </minerva_moodleConnect>
  </modules>
</config>

真的
地方的
我在\app\code\local\minerva\moodleConnect\etc\config.xml中找到了这个:

<?xml version="1.0" encoding="utf-8"?>
<config>
  <modules>
    <minerva_moodleConnect>
      <version>0.0.1</version>
    </minerva_moodleConnect>
  </modules>
  <global>
    <models>
      <minerva_moodleConnect>
        <class>minerva_moodleConnect_Model</class>
      </minerva_moodleConnect>
    </models>
    <resources>
      <minerva_moodleConnect>
        <setup>
          <module>minerva_moodleConnect</module>
          <class>Mage_Sales_Model_Mysql4_Setup</class>
        </setup>
      </minerva_moodleConnect>
    </resources>
    <events>
      <sales_order_place_after>
        <observers>
          <minerva_moodleConnect>
            <type>singleton</type>
            <class>minerva_moodleConnect_Model_observer</class>
            <method>registerCourse</method>
          </minerva_moodleConnect>
        </observers>
      </sales_order_place_after>
    </events>
  </global>
</config>

0.0.1
minerva_moodleConnect_模型
minerva_moodleConnect
Mage_销售_型号_Mysql4_设置
独生子女
minerva_moodleConnect_模型观察者
注册课程
我在\app\code\local\minerva\moodleConnect\model\observer.php中找到了这个:

<?php
class minerva_moodleConnect_Model_Observer
{
    public function __construct()
    {

    }
    public function registerCourse(Varien_Event_Observer $observer)
    {


        // Retrieve the product being updated from the event observer


        Mage::log("register course called");
        /* @var $resource Mage_Sales_Model_Mysql4_Order */

        /*$resource = $observer->getEvent()->getResource();
        $resource->addVirtualGridColumn(
            'sku',
            'sales/flat_quote',
            array('sku' => 'sku'),
            'sku'
        );*/

    }
}

我正在使用类似的方法向订单和报价表添加一些字段:

<?php
/* @var $installer Mage_Core_Model_Resource_Setup */
$installer = $this;
$installer->startSetup();

Mage::app()->setCurrentStore(Mage::getModel('core/store')->load(Mage_Core_Model_App::ADMIN_STORE_ID));

$installer = new Mage_Sales_Model_Mysql4_Setup;

$attribute  = array(
    'type'          => 'text',
    'backend_type'  => 'text',
    'frontend_input' => 'text',
    'is_user_defined' => true,
    'label'         => 'External Reference',
    'visible'       => true,
    'required'      => false,
    'user_defined'  => false,
    'searchable'    => false,
    'filterable'    => false,
    'comparable'    => false,
    'default'       => ''
);

$installer->addAttribute('order', 'ext_reference', $attribute);
$installer->addAttribute('quote', 'ext_reference', $attribute);

$attribute  = array(
    'type'          => 'text',
    'backend_type'  => 'text',
    'frontend_input' => 'text',
    'is_user_defined' => true,
    'label'         => 'License Plate',
    'visible'       => true,
    'required'      => false,
    'user_defined'  => false,
    'searchable'    => false,
    'filterable'    => false,
    'comparable'    => false,
    'default'       => ''
);

$installer->addAttribute('order', 'licenseplate', $attribute);
$installer->addAttribute('quote', 'licenseplate', $attribute);

$installer->endSetup();

moodle是否需要将其放在同一个表中?sales\u flat\u quote\u项目毕竟包含SKU,因此您应该能够使用查询或视图,不是吗?感谢您的回复。是的,Moodle需要一张表(SKU和用户信息)的所有内容。我得到的一个提示是“它基本上是使用客户数据、产品数据和订单数据创建一个视图表。将所有这些都放到一张整洁的表中”
<?php
/* @var $installer Mage_Core_Model_Resource_Setup */
$installer = $this;
$installer->startSetup();

Mage::app()->setCurrentStore(Mage::getModel('core/store')->load(Mage_Core_Model_App::ADMIN_STORE_ID));

$installer = new Mage_Sales_Model_Mysql4_Setup;

$attribute  = array(
    'type'          => 'text',
    'backend_type'  => 'text',
    'frontend_input' => 'text',
    'is_user_defined' => true,
    'label'         => 'External Reference',
    'visible'       => true,
    'required'      => false,
    'user_defined'  => false,
    'searchable'    => false,
    'filterable'    => false,
    'comparable'    => false,
    'default'       => ''
);

$installer->addAttribute('order', 'ext_reference', $attribute);
$installer->addAttribute('quote', 'ext_reference', $attribute);

$attribute  = array(
    'type'          => 'text',
    'backend_type'  => 'text',
    'frontend_input' => 'text',
    'is_user_defined' => true,
    'label'         => 'License Plate',
    'visible'       => true,
    'required'      => false,
    'user_defined'  => false,
    'searchable'    => false,
    'filterable'    => false,
    'comparable'    => false,
    'default'       => ''
);

$installer->addAttribute('order', 'licenseplate', $attribute);
$installer->addAttribute('quote', 'licenseplate', $attribute);

$installer->endSetup();