首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >magento是否销售eav

magento是否销售eav
EN

Stack Overflow用户
提问于 2013-01-31 17:52:51
回答 2查看 2.1K关注 0票数 4

通过检查sales模块的配置,可以看到如下所示的sales_entity部分

代码语言:javascript
复制
<models>
<sales>
    <class>Mage_Sales_Model</class>
    <resourceModel>sales_resource</resourceModel>
</sales>
<sales_entity>
    <class>Mage_Sales_Model_Entity</class>
    <entities>
        <quote>

这些类Mage_Sales_Model_Entity_xxx扩展了Mage_Eav_Model_Entity_Abstract,表明sales/order是EAV样式,但不是平面样式。我还可以发现表"eav_entity_type“有很多与"order”相关的记录。

但是,我看了一下代码,遗憾的是,在当前的代码库(至少是v1.7)中,EAV最终还没有到位。有人能帮我澄清一下吗?销售/订单的EAV是否已损坏?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-01-31 18:50:40

在Magento的最新版本中(即1.6和1.7,不能说是早期版本),sales实体属性不再存储在EAV属性-值表中。Mage_Sales模块的资源模型将sales实体连接到扁平表。

您还可以看到,基本销售模型类Mage_Sales_Model_Abstract扩展了Mage_Core_Model_Abstract,基本销售资源模型Mage_Sales_Model_Resource_Abstract扩展了Mage_Core_Model_Resource_Db_Abstract -这两种模型都不是EAV模型或EAV资源模型。

您在表eav_entity_type中找到的属性-实体元数据类似于Catalog和Customer模块的EAV实体,但属性值存储系统不是EAV。

我猜,您遇到的配置是为了向后兼容。

我整理了一个关于Magento的EAV系统的描述,你可能会发现它很有趣:http://www.divisionlab.com/solvingmagento/magento-eav-system/

票数 8
EN

Stack Overflow用户

发布于 2014-02-19 14:52:29

我比较了旧的Magento版本,发现1.4.0.1和1.4.1.0两个版本在销售订单模型上有很大的不同

添加此文件是为了创建sales_flat_order和删除订单EAV表Mage/Sales/sql/mysql4-upgrade-1.3.99-1.4.0.0.php -第1144行

代码语言:javascript
复制
// Remove previous tables
$tablesToDrop = array(
    'sales_order_entity_decimal',
    'sales_order_entity_datetime',
    'sales_order_entity_int',
    'sales_order_entity_text',
    'sales_order_entity_varchar',
    'sales_order_entity',
    'sales_order_decimal',
    'sales_order_datetime',
    'sales_order_int',
    'sales_order_text',
    'sales_order_varchar',
    'sales_order'
);

foreach ($tablesToDrop as $table) {
    $table = $installer->getTable($table);
    if (!$installer->tableExists($table)) {
        continue;
    }
    $installer->getConnection()->query(
        'DROP TABLE ' . $installer->getConnection()->quoteIdentifier($table)
    );
}

资源类文件Mage_Sales_Model_Mysql4_Order已更改为从Mage_Sales_Model_Mysql4_Order_Abstract扩展,而不是Mage_Eav_Model_Entity_Abstract

Magento还指出,这个版本从EAV到持平销售的变化可能是一个非常繁重的操作。

我相信我们不能再像产品或客户一样使用EAV来处理订单了。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14622845

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档