Skip to content

Commit f6298ac

Browse files
authored
Merge pull request #3820 from magento-arcticfoxes/pr
[2.3.1-release] Bug Fixes
2 parents 553547a + c8cd186 commit f6298ac

File tree

2 files changed

+82
-2
lines changed

2 files changed

+82
-2
lines changed

app/code/Magento/Catalog/Controller/Adminhtml/Product/Builder.php

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,11 @@
33
* Copyright © Magento, Inc. All rights reserved.
44
* See COPYING.txt for license details.
55
*/
6+
declare(strict_types=1);
7+
68
namespace Magento\Catalog\Controller\Adminhtml\Product;
79

10+
use Magento\Catalog\Api\Data\ProductInterface;
811
use Magento\Catalog\Model\ProductFactory;
912
use Magento\Cms\Model\Wysiwyg as WysiwygModel;
1013
use Magento\Framework\App\RequestInterface;
@@ -15,6 +18,11 @@
1518
use Magento\Catalog\Model\Product;
1619
use Magento\Catalog\Model\Product\Type as ProductTypes;
1720

21+
/**
22+
* Build a product based on a request
23+
*
24+
* @SuppressWarnings(PHPMD.CouplingBetweenObjects)
25+
*/
1826
class Builder
1927
{
2028
/**
@@ -79,10 +87,11 @@ public function __construct(
7987
* Build product based on user request
8088
*
8189
* @param RequestInterface $request
82-
* @return \Magento\Catalog\Model\Product
90+
* @return ProductInterface
8391
* @throws \RuntimeException
92+
* @throws \Magento\Framework\Exception\LocalizedException
8493
*/
85-
public function build(RequestInterface $request)
94+
public function build(RequestInterface $request): ProductInterface
8695
{
8796
$productId = (int) $request->getParam('id');
8897
$storeId = $request->getParam('store', 0);
@@ -92,6 +101,9 @@ public function build(RequestInterface $request)
92101
if ($productId) {
93102
try {
94103
$product = $this->productRepository->getById($productId, true, $storeId);
104+
if ($attributeSetId) {
105+
$product->setAttributeSetId($attributeSetId);
106+
}
95107
} catch (\Exception $e) {
96108
$product = $this->createEmptyProduct(ProductTypes::DEFAULT_TYPE, $attributeSetId, $storeId);
97109
$this->logger->critical($e);
@@ -113,6 +125,8 @@ public function build(RequestInterface $request)
113125
}
114126

115127
/**
128+
* Create a product with the given properties
129+
*
116130
* @param int $typeId
117131
* @param int $attributeSetId
118132
* @param int $storeId
Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<!--
3+
/**
4+
* Copyright © Magento, Inc. All rights reserved.
5+
* See COPYING.txt for license details.
6+
*/
7+
-->
8+
<tests xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
9+
xsi:noNamespaceSchemaLocation="urn:magento:mftf:Test/etc/testSchema.xsd">
10+
<test name="AdminChangeProductAttributeSet">
11+
<annotations>
12+
<features value="Checkout"/>
13+
<stories value="The required product attribute is not displayed when change attribute set"/>
14+
<title value="Attributes from the selected attribute set should be shown"/>
15+
<description value="Attributes from the selected attribute set should be shown"/>
16+
<severity value="CRITICAL"/>
17+
<testCaseId value="MAGETWO-98452"/>
18+
<useCaseId value="MAGETWO-98357"/>
19+
<group value="catalog"/>
20+
</annotations>
21+
<before>
22+
<createData entity="SimpleSubCategory" stepKey="createCategory"/>
23+
<createData entity="_defaultProduct" stepKey="createSimpleProduct">
24+
<requiredEntity createDataKey="createCategory"/>
25+
</createData>
26+
27+
<createData entity="productAttributeWithTwoOptions" stepKey="createProductAttribute"/>
28+
<createData entity="productAttributeOption1" stepKey="createProductAttributeOption1">
29+
<requiredEntity createDataKey="createProductAttribute"/>
30+
</createData>
31+
<createData entity="productAttributeOption2" stepKey="createProductAttributeOption2">
32+
<requiredEntity createDataKey="createProductAttribute"/>
33+
</createData>
34+
<createData entity="CatalogAttributeSet" stepKey="createAttributeSet"/>
35+
36+
<actionGroup ref="LoginAsAdmin" stepKey="login"/>
37+
<amOnPage url="{{AdminProductAttributeSetEditPage.url}}/$$createAttributeSet.attribute_set_id$$}}/" stepKey="onAttributeSetEdit"/>
38+
<actionGroup ref="AssignAttributeToGroup" stepKey="assignAttributeToGroup">
39+
<argument name="group" value="Product Details"/>
40+
<argument name="attribute" value="$$createProductAttribute.attribute_code$$"/>
41+
</actionGroup>
42+
<actionGroup ref="SaveAttributeSet" stepKey="SaveAttributeSet"/>
43+
</before>
44+
<after>
45+
<deleteData createDataKey="createSimpleProduct" stepKey="deleteProduct"/>
46+
<deleteData createDataKey="createCategory" stepKey="deleteCategory"/>
47+
<deleteData createDataKey="createProductAttribute" stepKey="deleteProductAttribute"/>
48+
<deleteData createDataKey="createAttributeSet" stepKey="deleteAttributeSet"/>
49+
<actionGroup ref="ClearProductsFilterActionGroup" stepKey="clearProductsFilter"/>
50+
</after>
51+
52+
<actionGroup ref="SearchForProductOnBackendActionGroup" stepKey="searchForSimpleProduct">
53+
<argument name="product" value="$$createSimpleProduct$$"/>
54+
</actionGroup>
55+
56+
<actionGroup ref="OpenEditProductOnBackendActionGroup" stepKey="openEditProduct1">
57+
<argument name="product" value="$$createSimpleProduct$$"/>
58+
</actionGroup>
59+
60+
<click selector="{{AdminProductFormSection.attributeSet}}" stepKey="startEditAttrSet"/>
61+
<fillField selector="{{AdminProductFormSection.attributeSetFilter}}" userInput="$$createAttributeSet.attribute_set_name$$" stepKey="searchForAttrSet"/>
62+
<click selector="{{AdminProductFormSection.attributeSetFilterResult}}" stepKey="selectAttrSet"/>
63+
64+
<waitForText userInput="$$createProductAttribute.default_frontend_label$$" stepKey="seeAttributeInForm"/>
65+
</test>
66+
</tests>

0 commit comments

Comments
 (0)