API: importierte Artikel in Storefront nicht angezeigt

Hallo, ich bin Shopware Neuling und stehe vor einem Problem :slight_smile: Meine Artikel, die ich über den internen API-Zugriff importiert habe, werden in der Storefront nicht angezeigt. Ich muss den Artikel erst im Backend öffnen und (ohne Änderung) speichern, dann wird er angezeigt. Habe ich beim importieren etwas vergessen? Mit besten Grüßen Steven

Hi, das kann theoretisch mehrere Ursachen haben: * fehlende / falsche Preise * fehlender Attribut-Eintrag in der s_articles_attributes * fehlende denormalisierte Kategorie (s_articles_categories_ro) * nicht vorhandene Cache-Invalidierung Das wäre auch so die Sachen, die ggf. beim Speichern im Backend “automatisiert” passieren, das sollte die API aber eigentlich auch machen. Von daher müsstest du jetzt erstmal versuchen, das auf eine dieser Ursachen runter zu brechen. Besten Gruß, Daniel

Ich tippe auf Cache. In der Datenbank ändert sich durch das speichern nichts. :wtf:

Aber auch Cache leeren bringt nix.

Hallo Steven, Importierst Du Artikel mit Varianten? Wir hatten die selbe Problematik. Der Link unten hat uns geholfen. Da wir den Hauptartikel nicht als Variante geführt hatten. Schau mal in die s_articles_details ob dort die “kind 1” Datensätze auf inaktiv stehen. http://wiki.shopware.com/Shopware-4-REST-API-verwenden_detail_989.html#Varianten_Ressource_ab_4.2 Beste Grüße Patrick

Aha! Stimmt, der Hauptartikel ist inaktiv. Das hab ich wohl übersehen. :slight_smile: Ich importiere die Hauptartikel und die Varianten getrennt voneinander, über die Article- und die Variant-Resource. Das heißt ich muss den Hauptartikel mit in dem Varianten-Import nochmal auf aktiv setzen?

Im Hauptartikel fehlte unter mainDetail ein „active“ :shock: :stuck_out_tongue:

1 Like

Hallo Zusammen, weiß noch jemand einen anderen Grund warum nach einem Import von Produkten über die REST API Varianten im Backend angezeigt werden, im Frontend aber nicht? Ich bin die Themen hier aus diesem Thread bereits durch gegangen. Produkte und Varianten sind aktiv, die Attribute sind gesetzt, Preise ebenso und der Cache ist leer (Per clear_cache script). Das einzige was hilft, ist wenn ich das Produkt im Backend öffne und dann auf speichern drücke. Leider konnte ich aber bis jetzt nicht fest stellen, ob diese Aktion irgend ein Feld in der Datenbank abändert… Ich danke für jede Idee…

Hallo, wir haben exakt das gleiche Problem wie guille.

erst wenn man den Artikel öffnet und speichert wird er angezeigt.

Schau mal die beiden Felder im SQL nach:

in s_articles -> active

UND s_articles_details -> active

Hatte ich auch schonmal, dass eins von beiden nicht 1 war

folgendes rausgefunden. man muss bei den mainDetail’s auch einen active Status mitgeben dann geht es:

Beispiel:

$articleDataArry = array(
        'name' => $xmpdata[0]->XMP->Title,
        'taxId' => $tax,   
        'descriptionLong' => $xmpdata[0]->XMP->Description,
        'supplier' => $supplier,
        'metaTitle' => $metaTitlePre.$xmpdata[0]->XMP->Title.$metaTitlePost,
        'categories' => array(
            array('id' => 14),
        ),    
        'active' => $active, // array(
            'number' => $xmpdata[0]->XMP->Bildnummer,
            'weight' => $weight,
            'inStock' => $qty,
            'active' => $active, // array(
                array(
                    'price' =>$price,
                    ),
            )
        ),
)

Is aber n Bug ne?

 

1 Like

sag ich ja. Details muss auch activ gesetzt sein.

Da gab es mal ein Beitrag im Forum wo es darum ging. Find es aber gerade nicht.

Ich habe dieses Problem auch gerade.

Ich verwende das Beispiel um einen miminalen Test-Artikel zu erfassen. Das klappt auch, und der Artikel ist aktiv.

Trotzdem wird er auch nach leeren des Caches im Frontent nicht angezeigt.

Hab das gleiche Problem. Artikel, welche über PUT (Batch) neu angelegt werden erscheinen nicht im Storefront. Cache(s) leeren hilft nichts. Artikel sind aktiv, haben eine Kategorie und die Daten sind korrekt. Wenn ich zwei Artikel importiere (mit den selben Daten, nur anderer Nummer) sind beide Artikel bei mir nicht im Listing. Wenn ich einen davon im Backend öffne, direkt speichere ohne was zu Ändern erscheint dieser Artikel sofort im Listing.

Hatte das Problem auch, aber seit dem ich ‘active’ im Artikel und im ‘mainDetail’ (wie @kommad bereits geschrieben hat) auf true setze, erscheint der Artikel sofort.

$data=[
	'name' => $erpdata->Bezeichnung,
	'active' => $erpdata->ShopAktiv == 1 ? true : false,
	'tax' => '19', // Issue: #5, #20
	'description' => $erpdata->Zusatz,
	'descriptionLong' => $erpdata->TEXT,
	'supplier' => $erpdata->HstName ?: 'N/A',
	'mainDetail' => [
		'number' => $artikelnummer,
		'active' => $erpdata->ShopAktiv == 1 ? true : false,
		'supplierNumber' => $erpdata->HstArtikelnummer,
		'ean' => $erpdata->EANNummer,
		'__options_prices' => ['replace' => true],
		'prices' => [
			[
				'customerGroupKey' => 'EK',
				'price' => $erpdata->Listenpreis,
				'from' => 1
			],
		]
	],
];

 

Wenn jetzt aber noch Varianten hinzukommen, geht das Theater bei den Optionen weiter. Siehe Post “Optionen über die API angelegt sind inaktiv”.

 

 

 

Wie setze ich Main Detail beim Import auf true? Im Shopware Import/Export Plugin finde ich so eine Funktion nicht.