【问题标题】:SQL magento sales report query in reports报表中的 SQL magento 销售报表查询
【发布时间】:2014-03-03 06:56:23
【问题描述】:

我想在下面的查询中添加颜色、大小等属性以及更多属性 不知道什么是属性查询请帮我看看这个

$form = Start Date 
$to = End Date
$this->_reset();
$this->getSelect()        
    ->joinInner(array(
          'i' => $this->getTable('sales/order_item')),
          'i.order_id = main_table.entity_id'
   ) 
   ->where('i.parent_item_id is null')
   ->where("i.created_at BETWEEN '".$from."' AND '".$to."'")
   ->where('main_table.state = \'complete\'')
   ->columns(array('ordered_qty' => 'count(distinct `main_table`.`entity_id`)'));

谢谢 吉腾德拉

【问题讨论】:

  • Jitendra,能不能把孔模块放好...
  • 对此有任何帮助
  • 你能告诉我,你使用的是可配置产品吗?简单产品...
  • 两种产品都可用,我的报告标题类似于产品名称尺寸颜色订购数量

标签: mysql magento


【解决方案1】:

销售订单项目表不存储每个已售产品的每个属性。因此,您必须决定是否要在创建销售订单时将这些属性添加到销售订单项目表中 - 或者 - 是否只想在产品目录中查找它们。

采用第一种方法的问题是,您将无法获取迄今为止的订单数据,只能获取从现在开始的订单。

第二种方法的问题是,如果您更改或删除主目录中的产品,那么您的报告中将不再包含该数据。如果您永远不会更改产品,这可能不是问题,但是为什么要冒风险呢?还有另一个问题——性能。对于您的报告必须对产品目录运行查询以获取属性值的每个订单项,这会带来相当大的性能损失,在您获得大量订单之前可能并不明显。

如果我们采用第一种方法,那么修改 Magento 提供的原始报告就没什么意义了。您不妨为它编写自己的模块。

在此模块中,您将需要一个设置脚本来将所需的列添加到您的销售订单项目表中。

您还需要事件观察器将属性移动到销售报价和结帐时的销售订单对象中。如果没有这个,您的属性数据可能无法进入报告。

您可以通过 Magento 选项值 id 保存属性值,但是,您可能会在某个阶段更改属性选项,因此无法查找这些选项。因此,而不是存储 id,例如'412' 您将需要存储标签,例如'红色的'。这样,该报告将在明年的这个时候起作用,并且具有有意义的价值。

您还需要一个管理网格,从简单产品而不是销售订单项目表中的“可见”(即包括可配置的)行项目中收集。

如果您不想在销售订单项目表中添加额外的列,因为您不希望表变得太大,您可以将属性值添加到 Magento 用于存储超属性选项选择的序列化数据中并写入您自己的自定义列渲染器来提取数据并将其显示在您的报告中。

要获得您想要的报告并使其在未来不受目录/属性选项值更改的影响,需要进行大量编码。一旦您明确说明您希望报告是什么样的,就可以一次完成所有必需的步骤。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多