gpt4 book ai didi

mysql - 报告中的 SQL magento 销售报告查询

转载 作者:可可西里 更新时间:2023-11-01 07:44:51 25 4
gpt4 key购买 nike

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

$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`)'));

enter image description here

谢谢吉腾德拉

最佳答案

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

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

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

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

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

您还需要事件观察者将属性移动到销售报价中,并在结帐时移动到销售订单对象中。否则,您的属性数据可能无法进入报告。

您可以通过 Magento 选项值 id 保存属性值,但是,您可能会在某个阶段更改属性选项,因此无法查找这些选项。因此,而不是存储 id,例如'412' 您需要存储标签,例如'红色的'。这样一来,这份报告将在明年的这个时候发挥作用,并在其中产生有意义的值(value)。

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

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

需要大量编码才能获得您想要的报告,并使其在未来不会因目录/属性选项值的更改而受到影响。一旦您明确了您希望报告的样子,就可以一次解决所有必需的步骤。

关于mysql - 报告中的 SQL magento 销售报告查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22140515/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com