Skip to content

Commit 942bb7e

Browse files
committed
MAGETWO-75456: [Backport] - magento/magento2 #9196 - Products ordered report doesn't show simple (child) products of configurable products #9908 - for 2.2
1 parent 0414957 commit 942bb7e

File tree

5 files changed

+82
-5
lines changed

5 files changed

+82
-5
lines changed

app/code/Magento/Reports/Model/ResourceModel/Product/Sold/Collection.php

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -65,17 +65,19 @@ public function addOrderedQty($from = '', $to = '')
6565

6666
$this->getSelect()->reset()->from(
6767
['order_items' => $this->getTable('sales_order_item')],
68-
['ordered_qty' => 'SUM(order_items.qty_ordered)', 'order_items_name' => 'order_items.name']
68+
[
69+
'ordered_qty' => 'order_items.qty_ordered',
70+
'order_items_name' => 'order_items.name',
71+
'order_items_sku' => 'order_items.sku'
72+
]
6973
)->joinInner(
7074
['order' => $this->getTable('sales_order')],
7175
implode(' AND ', $orderJoinCondition),
7276
[]
7377
)->where(
74-
'parent_item_id IS NULL'
75-
)->group(
76-
'order_items.product_id'
78+
'order_items.parent_item_id IS NULL'
7779
)->having(
78-
'SUM(order_items.qty_ordered) > ?',
80+
'order_items.qty_ordered > ?',
7981
0
8082
);
8183
return $this;

app/code/Magento/Reports/view/adminhtml/layout/reports_report_product_sold_grid.xml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,16 @@
4141
<argument name="header_css_class" xsi:type="string">col-product</argument>
4242
</arguments>
4343
</block>
44+
<block class="Magento\Backend\Block\Widget\Grid\Column" as="sku">
45+
<arguments>
46+
<argument name="header" xsi:type="string" translate="true">SKU</argument>
47+
<argument name="type" xsi:type="string">text</argument>
48+
<argument name="index" xsi:type="string">order_items_sku</argument>
49+
<argument name="id" xsi:type="string">sku</argument>
50+
<argument name="column_css_class" xsi:type="string">col-sku</argument>
51+
<argument name="header_css_class" xsi:type="string">col-sku</argument>
52+
</arguments>
53+
</block>
4454
<block class="Magento\Backend\Block\Widget\Grid\Column" as="ordered_qty">
4555
<arguments>
4656
<argument name="header" xsi:type="string" translate="true">Ordered Quantity</argument>
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
<?php
2+
/**
3+
* Copyright © Magento, Inc. All rights reserved.
4+
* See COPYING.txt for license details.
5+
*/
6+
7+
namespace Magento\Reports\Controller\Adminhtml\Report\Product;
8+
9+
/**
10+
* @magentoAppArea adminhtml
11+
*/
12+
class SoldTest extends \Magento\TestFramework\TestCase\AbstractBackendController
13+
{
14+
public function testExecute2()
15+
{
16+
$this->dispatch('backend/reports/report_product/sold');
17+
$actual = $this->getResponse()->getBody();
18+
$this->assertContains('Ordered Products Report', $actual);
19+
//verify if SKU column is presented on grid
20+
$this->assertContains('SKU', $actual);
21+
}
22+
}
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
<?php
2+
/**
3+
* Copyright © Magento, Inc. All rights reserved.
4+
* See COPYING.txt for license details.
5+
*/
6+
namespace Magento\Reports\Model\ResourceModel\Report\Sold;
7+
8+
/**
9+
* Class CollectionTest
10+
*/
11+
class CollectionTest extends \PHPUnit\Framework\TestCase
12+
{
13+
/**
14+
* @var \Magento\Reports\Model\ResourceModel\Product\Sold\Collection
15+
*/
16+
private $collection;
17+
18+
protected function setUp()
19+
{
20+
/**
21+
* @var \Magento\Reports\Model\ResourceModel\Product\Sold\Collection
22+
*/
23+
$this->collection = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create(
24+
\Magento\Reports\Model\ResourceModel\Product\Sold\Collection::class
25+
);
26+
}
27+
28+
/**
29+
* @magentoDataFixture Magento/Sales/_files/order_item_with_configurable_for_reorder.php
30+
*/
31+
public function testFilterByProductTypeException()
32+
{
33+
$items = $this->collection->addOrderedQty()->getItems();
34+
$this->assertEquals(1, count($items));
35+
$orderItem = array_shift($items);
36+
$this->assertEquals('1.0000', $orderItem['ordered_qty']);
37+
$this->assertEquals('Configurable Product', $orderItem['order_items_name']);
38+
//verify if order_item_sku exists in return data
39+
$this->assertEquals('simple_20', $orderItem['order_items_sku']);
40+
}
41+
}

dev/tests/integration/testsuite/Magento/Sales/_files/order_item_with_configurable_for_reorder.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,8 @@
6161
$orderItem->setRowTotal($product->getPrice());
6262
$orderItem->setProductType($product->getTypeId());
6363
$orderItem->setProductOptions(['info_buyRequest' => $requestInfo]);
64+
$orderItem->setName($product->getName());
65+
$orderItem->setSku($simpleProduct->getSku());
6466
$orderItemSimple->setProductId($simpleProduct->getId());
6567
$orderItemSimple->setParentItem($orderItem);
6668
$orderItemSimple->setStoreId(0);

0 commit comments

Comments
 (0)