Skip to content

Commit fe0d4dd

Browse files
Remove redundant eav via observer after product import is finished + add config
1 parent 4b208c5 commit fe0d4dd

File tree

4 files changed

+18
-10
lines changed

4 files changed

+18
-10
lines changed
Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,34 @@
11
<?php
22

3-
namespace JustBetter\AkeneoBundle\Plugin;
3+
namespace JustBetter\AkeneoBundle\Observer;
44

55
use Akeneo\Connector\Executor\JobExecutor;
66
use Akeneo\Connector\Helper\Import\Entities;
77
use Akeneo\Connector\Helper\Output;
88
use Magento\Framework\App\ResourceConnection;
9+
use Magento\Framework\Event\Observer;
10+
use Magento\Framework\Event\ObserverInterface;
11+
use Magento\Framework\App\Config\ScopeConfigInterface;
912

10-
class RemoveRedundantEav
13+
class RemoveRedundantEav implements ObserverInterface
1114
{
1215
public const CATALOG_PRODUCT_ENTITY_DATA_TYPES = ['int', 'text', 'decimal', 'gallery', 'varchar', 'datetime'];
1316

1417
public function __construct(
1518
protected Entities $entities,
1619
protected ResourceConnection $resourceConnection,
20+
protected Output $outputHelper,
1721
protected JobExecutor $jobExecutor,
18-
protected Output $outputHelper
22+
protected ScopeConfigInterface $scopeConfig
1923
) {
2024
}
2125

22-
public function beforeRefreshIndex(): void
26+
public function execute(Observer $observer): void
2327
{
24-
self::removeRedundantEAV();
25-
}
28+
if (!$this->scopeConfig->isSetFlag('akeneo_connector/justbetter/remove_redundant_eav')) {
29+
return;
30+
}
2631

27-
public function removeRedundantEAV(): void
28-
{
2932
$this->jobExecutor->displayInfo((string)$this->outputHelper->getPrefix() . __('Remove Redundant EAV attribute values'));
3033
$connection = $this->resourceConnection->getConnection();
3134

@@ -44,4 +47,4 @@ public function removeRedundantEAV(): void
4447
$connection->query($query);
4548
}
4649
}
47-
}
50+
}

etc/adminhtml/system.xml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -138,6 +138,11 @@
138138
<field id="akeneo_connector/justbetter/defaultstorevalues">1</field>
139139
</depends>
140140
</field>
141+
<field id="remove_redundant_eav" translate="label" type="select" sortOrder="160" showInDefault="1" showInWebsite="0" showInStore="0">
142+
<label>Remove Redundant EAV</label>
143+
<source_model>Magento\Config\Model\Config\Source\Yesno</source_model>
144+
<comment>Enable or disable the removal of redundant EAV attribute values. (Default: no)</comment>
145+
</field>
141146
<group id="slack" translate="label" type="text" sortOrder="160" showInDefault="1" showInWebsite="0"
142147
showInStore="0">
143148
<label>Slack Akeneo import notifications</label>

etc/di.xml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
<plugin name="JustBetter_SetStockStatus" type="JustBetter\AkeneoBundle\Plugin\SetStockStatus" sortOrder="2" />
1010
<plugin name="JustBetter_ImportFinished" type="JustBetter\AkeneoBundle\Plugin\ImportFinished" sortOrder="10" />
1111
<plugin name="JustBetter_CheckWebsiteAssociation" type="JustBetter\AkeneoBundle\Plugin\CheckWebsiteAssociation" />
12-
<plugin name="JustBetter_RemoveRedundantEav" type="JustBetter\AkeneoBundle\Plugin\RemoveRedundantEav" />
1312
</type>
1413

1514
<type name="Akeneo\Connector\Job\Category">

etc/events.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,5 +4,6 @@
44
</event>
55
<event name="akeneo_connector_import_finish_product">
66
<observer name="set_not_visible" instance="JustBetter\AkeneoBundle\Observer\SetNotVisible"/>
7+
<observer name="remove_redundant_eav" instance="JustBetter\AkeneoBundle\Observer\RemoveRedundantEav" />
78
</event>
89
</config>

0 commit comments

Comments
 (0)