[GELÖST - Quickfix] Sales_Channel Spalte importieren

Hi Leute,

ich verstehe es nicht mit der sales_channel Spalte. Weise einem Produkt manuell den Channel zu, exportiere die CSV und die sales_channel Spalte bleibt immer leer. Habe auch beim CSV-Import die unterschiedlichen ID’s aus der Datenbank der salen_channel Spalte zugewiesen, es funktioniert aber nicht. 

Es geht um einen Import von über 10.000 Artikel, welcher auch sehr gut funktioniert, ich kann nur nicht dem Kunden sagen das die Channels manuell zugewiesen werden müssen. Es muss doch über den Import funktionieren.

Bitte um Hilfe. Danke

 

Hey! Kann ich irgendwie nicht verstehen. Meine Entwickler mußten den Bereich Sales_Channels komplett weiterentwickeln im Import-Plugin. Jetzt funktioniert alles. Falls jmnd. das gleiche Problem hat, kann sich melden.

Gruß

Hallo CCA,

wir haben das gleiche Problem. Hast Du eine Lösung, die Du (kostenfrei oder kostenpflichtig) weitergben würdest?

VG

Joachim 

Hi @Joachim‍, ich bin kein Entwickler, daher versuche ich es genau zu erklären. Es ist ein Hotfix! Wir brauchten eine schnelle Lösung.

 

Schritt 1. 

 vendor/shopware/core/Content/ImportExport/ImportExport.php --- line ~142 -- replace tryCatch

Schritt 2.

 

 try { // ----------------- CC ------ // // ----------------- CC ------ // // ----------------- CC ------ // $salesChannelsCell = $row['sales\_channel']; $salesChannelsArr = explode ("|", $salesChannelsCell); $record['visibilities'] = []; foreach ($salesChannelsArr as $salesChannelId) { $criteria2 = new Criteria(); // $criteria2-\>addFilter(new MultiFilter( // MultiFilter::CONNECTION\_AND, [// new EqualsFilter('id', $record['id']), // new EqualsFilter('product.visibilities.salesChannelId', $salesChannelId) // ] // )); $prodVisibilityRes = $this-\>repository-\>search($criteria2, Context::createDefaultContext()); // if ($prodVisibilityRes-\>getTotal() === 0) { $record['visibilities'][] = ['salesChannelId' =\> $salesChannelId, 'visibility' =\> ProductVisibilityDefinition::VISIBILITY\_ALL]; // } } // ----------------- CC ------ // // ----------------- CC ------ // // ----------------- CC ------ // // TODO: event before import record $this-\>repository-\>upsert([$record], $context); $progress-\>addProcessedRecords(1); // TODO: event after import record } catch (\Throwable $exception) { // TODO: event on exception - can rethrow $record['\_error'] = mb\_convert\_encoding($exception-\>getMessage(), 'UTF-8', 'UTF-8'); $failedRecords[] = $record; }

Schritt 3.
Ganz oben wo sich die dependencies befinden das hier zusätzlich hinzufügen:

 

 use Shopware\Core\Framework\DataAbstractionLayer\Search\Filter\EqualsFilter; use Shopware\Core\Framework\DataAbstractionLayer\Search\Filter\MultiFilter; use Shopware\Core\Content\Product\Aggregate\ProductVisibility\ProductVisibilityDefinition;

**WICHTIG

Es funktioniert nur beim Erstimport. Die SC ID’s findest du ganz einfach im SC Link (Im Chrome-Browser unten links) im Admin-Bereich. Die SC einfach mit einen “|” Pipe trennen.**

1 „Gefällt mir“

Hallo CCA,

vielen Dank! Ich gebe es an meinen Team-Kollegen weiter. Wäre super, wenn uns das weiter bringt.

Hallo,

ich habe das selbe Problem und habe es mit diesem Hotfix vorerst auf einer Stagging Umgebung probiert.

Leider bekomme ich folgenden Fehler:

“Undefined variable: salesChannelsCell”

Was mache ich hier falsch?

Gruß