Skip to content

Commit fefe1d6

Browse files
author
Stanislav Idolov
committed
MAGETWO-39588: store_id value is not honored when creating simple product through API in multi-websites / multi-stores setup
1 parent 87e6182 commit fefe1d6

File tree

3 files changed

+31
-12
lines changed

3 files changed

+31
-12
lines changed

app/code/Magento/Catalog/Model/ProductRepository.php

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -286,7 +286,12 @@ protected function initializeProductData(array $productData, $createNew)
286286
if ($createNew) {
287287
$product = $this->productFactory->create();
288288
if ($this->storeManager->hasSingleStore()) {
289-
$product->setWebsiteIds([$this->storeManager->getStore(true)->getWebsite()->getId()]);
289+
$product->setWebsiteIds([$this->storeManager->getStore(true)->getWebsiteId()]);
290+
} elseif (isset($productData['store_id'])
291+
&& !empty($productData['store_id'])
292+
&& $this->storeManager->getStore($productData['store_id'])
293+
) {
294+
$product->setWebsiteIds([$this->storeManager->getStore($productData['store_id'])->getWebsiteId()]);
290295
}
291296
} else {
292297
unset($this->instances[$productData['sku']]);

app/code/Magento/CatalogSearch/Model/Indexer/Fulltext/Plugin/Product.php

Lines changed: 24 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -11,24 +11,38 @@ class Product extends AbstractPlugin
1111
/**
1212
* Reindex on product save
1313
*
14-
* @param \Magento\Catalog\Model\Product $product
15-
* @return \Magento\Catalog\Model\Product
14+
* @param \Magento\Catalog\Model\ResourceModel\Product $productResource
15+
* @param \Closure $proceed
16+
* @param \Magento\Framework\Model\AbstractModel $product
17+
* @return \Magento\Catalog\Model\ResourceModel\Product
18+
* @SuppressWarnings(PHPMD.UnusedFormalParameter)
1619
*/
17-
public function afterSave(\Magento\Catalog\Model\Product $product)
18-
{
20+
public function aroundSave(
21+
\Magento\Catalog\Model\ResourceModel\Product $productResource,
22+
\Closure $proceed,
23+
\Magento\Framework\Model\AbstractModel $product
24+
) {
25+
$result = $proceed($product);
1926
$this->reindexRow($product->getId());
20-
return $product;
27+
return $result;
2128
}
2229

2330
/**
2431
* Reindex on product delete
2532
*
26-
* @param \Magento\Catalog\Model\Product $product
27-
* @return \Magento\Catalog\Model\Product
33+
* @param \Magento\Catalog\Model\ResourceModel\Product $productResource
34+
* @param \Closure $proceed
35+
* @param \Magento\Framework\Model\AbstractModel $product
36+
* @return \Magento\Catalog\Model\ResourceModel\Product
37+
* @SuppressWarnings(PHPMD.UnusedFormalParameter)
2838
*/
29-
public function afterDelete(\Magento\Catalog\Model\Product $product)
30-
{
39+
public function aroundDelete(
40+
\Magento\Catalog\Model\ResourceModel\Product $productResource,
41+
\Closure $proceed,
42+
\Magento\Framework\Model\AbstractModel $product
43+
) {
44+
$result = $proceed($product);
3145
$this->reindexRow($product->getId());
32-
return $product;
46+
return $result;
3347
}
3448
}

app/code/Magento/CatalogSearch/etc/di.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@
3333
</argument>
3434
</arguments>
3535
</type>
36-
<type name="Magento\Catalog\Model\Product">
36+
<type name="Magento\Catalog\Model\ResourceModel\Product">
3737
<plugin name="catalogsearchFulltextProduct" type="Magento\CatalogSearch\Model\Indexer\Fulltext\Plugin\Product"/>
3838
</type>
3939
<type name="Magento\Catalog\Model\Product\Action">

0 commit comments

Comments
 (0)