8
8
9
9
namespace Magento \ConfigurableProduct \Plugin \CatalogWidget \Block \Product ;
10
10
11
+ use Magento \Catalog \Model \Product ;
11
12
use Magento \Catalog \Model \Product \Visibility ;
12
13
use Magento \Catalog \Model \ResourceModel \Product \Collection ;
13
14
use Magento \Catalog \Model \ResourceModel \Product \CollectionFactory ;
@@ -68,7 +69,8 @@ public function __construct(
68
69
public function afterCreateCollection (ProductsList $ subject , Collection $ result ): Collection
69
70
{
70
71
$ notVisibleCollection = $ subject ->getBaseCollection ();
71
- $ searchProducts = array_merge ($ result ->getAllIds (), $ notVisibleCollection ->getAllIds ());
72
+ $ currentIds = $ result ->getAllIds ();
73
+ $ searchProducts = array_merge ($ currentIds , $ notVisibleCollection ->getAllIds ());
72
74
73
75
if (!empty ($ searchProducts )) {
74
76
$ linkField = $ this ->metadataPool ->getMetadata (\Magento \Catalog \Api \Data \ProductInterface::class)
@@ -90,8 +92,11 @@ public function afterCreateCollection(ProductsList $subject, Collection $result)
90
92
$ configurableProductCollection ->setVisibility ($ this ->catalogProductVisibility ->getVisibleInCatalogIds ());
91
93
$ configurableProductCollection ->addIdFilter ($ productIds );
92
94
95
+ /** @var Product $item */
93
96
foreach ($ configurableProductCollection ->getItems () as $ item ) {
94
- $ result ->addItem ($ item );
97
+ if (false === in_array ($ item ->getId (), $ currentIds )) {
98
+ $ result ->addItem ($ item );
99
+ }
95
100
}
96
101
}
97
102
0 commit comments