Skip to content

Commit

Permalink
Merge pull request #54 from vseager/patch-2
Browse files Browse the repository at this point in the history
Use config id_field for SkipExistingProducts
  • Loading branch information
bartoszkubicki authored Oct 24, 2022
2 parents a22fc80 + 40c7528 commit 918b68e
Show file tree
Hide file tree
Showing 3 changed files with 20 additions and 8 deletions.
6 changes: 3 additions & 3 deletions src/Filter/LoggingSkipNonExistingProducts.php
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ class LoggingSkipNonExistingProducts implements RequiresPreparation
/**
* @var string
*/
private $skuField = 'sku';
private $idField = '';

public function __construct(SkipNonExistingProducts $skipNonExistingProducts)
{
Expand All @@ -29,7 +29,7 @@ public function __construct(SkipNonExistingProducts $skipNonExistingProducts)
public function prepare(Config $config): void
{
$this->skipNonExistingProducts->prepare($config);
$this->skuField = $config->getIdField();
$this->idField = $config->getIdField();
}

public function __invoke(Record $record, ReportItem $reportItem): bool
Expand All @@ -39,7 +39,7 @@ public function __invoke(Record $record, ReportItem $reportItem): bool
if (!$found) {
//TODO: Make level configurable so we can cause import to fail
//warning will not cause a fail, whereas errror will
$reportItem->addWarning(sprintf('Product: "%s" does not exist.', $record->getColumnValue($this->skuField)));
$reportItem->addWarning(sprintf('Product: "%s" does not exist.', $record->getColumnValue($this->idField)));
}

return $found;
Expand Down
16 changes: 14 additions & 2 deletions src/Filter/SkipExistingProducts.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,16 +2,23 @@

namespace Jh\Import\Filter;

use Jh\Import\Config;
use Jh\Import\Import\Record;
use Jh\Import\Import\RequiresPreparation;
use Magento\Framework\App\ResourceConnection;

class SkipExistingProducts
class SkipExistingProducts implements RequiresPreparation
{
/**
* @var array
*/
private $existingSkus = [];

/**
* @var string
*/
private $idField = '';

public function __construct(ResourceConnection $connection)
{
$select = $connection->getConnection()
Expand All @@ -21,8 +28,13 @@ public function __construct(ResourceConnection $connection)
$this->existingSkus = $connection->getConnection()->fetchCol($select);
}

public function prepare(Config $config): void
{
$this->idField = $config->getIdField();
}

public function __invoke(Record $record): bool
{
return !in_array($record->getColumnValue('sku'), $this->existingSkus, true);
return !in_array($record->getColumnValue($this->idField), $this->existingSkus, true);
}
}
6 changes: 3 additions & 3 deletions src/Filter/SkipNonExistingProducts.php
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ class SkipNonExistingProducts implements RequiresPreparation
/**
* @var string
*/
private $skuField = 'sku';
private $idField = '';

public function __construct(ResourceConnection $connection)
{
Expand All @@ -30,11 +30,11 @@ public function __construct(ResourceConnection $connection)

public function prepare(Config $config): void
{
$this->skuField = $config->getIdField();
$this->idField = $config->getIdField();
}

public function __invoke(Record $record): bool
{
return in_array($record->getColumnValue($this->skuField), $this->existingSkus, true);
return in_array($record->getColumnValue($this->idField), $this->existingSkus, true);
}
}

0 comments on commit 918b68e

Please sign in to comment.