Bei der Fehlersuche bin ich nun ein Stück weiter gekommen, Lösung habe ich aber dennoch noch nicht gefunden. Nun ja, folgender Sachverhalt:
Alle ESD-Produkte werden per API eingelesen. Alle Produkte die vor dem Update eingelesen wurden, werden im Warenkorb als Download angezeigt und können später auch heruntergeladen werden.
Alle ESD-Produkte, die nach dem Update per API einlesen wurden, werden im Details zwar als Download erkannt, aber ab dem Warenkorb nicht mehr. Auch nach der Bestellung ist der Status ESD wie weg gezaubert. Das Produkt lässt sich nicht herunterladen.
Ein Test-Produkt habe ich nun per Hand im Backend mit ESD angelegt. Auch dieses geht ganz normal im Warenkorb und ist downloadbar.
Fazit:
Irgendetwas muss sich bei der API geändert haben. In der Datenbank konnte ich rein optisch keinen Unterschied zwischen den Produkten vor dem Update und den Produkten nach dem Update erkennen. Alle Produkte werden bei Details richtig angezeigt, aber beim Reinlegen in den Warenkorb werden Produkte nach dem Update nicht mehr als ESD erkannt.
Tabellen:
s_articles_esd - hier ist kein Unterschied erkenntbar
s_articles_details - hier ist auch kein Unterschied erkennbar
s_order_basket - nach dem Update eingepflegte Artikel haben bei Spalte “esdarticle” eine 0
s_order_details - nach dem Update eingepflegte Artikel haben bei Spalte “esdarticle” eine 0
s_order_esd - nach dem Update eingepflegte Artikel stehen hier gar nicht drin
Vereinfache Darstellung wie ich das ganze einlese:
// Produkt einlesen
$new = Array(
'name' => 'text',
'description' => 'text',
'descriptionLong' => 'text',
'taxId' => 1,
'supplier' => 'text',
'priceGroupId' => 1,
'active' => 1,
'categories' => array( array('id' => 99) ),
'keywords' => 'text',
'metaTitle' => 'text',
'mainDetail' => array(
'number' => 'nummer',
'inStock' => 1,
'minPurchase' => 0,
'maxPurchase' => 1,
'supplierNumber' => 'text',
'active' => 1,
'prices' => array( array( 'customerGroupKey' => 'EK', 'price' => 0.00 ) ),
'attribute' => array(
'attr5' => 'text',
),
),
);
id = $SW->post('articles', $new );
// ESD einspielen unter Angabe der ID vom Artikel-Import
$query = "
INSERT INTO s_articles_esd
(`articleID`, `articledetailsID`, `file`, `datum`)
VALUES
(id, id, 'file', NOW() )
";
Vor dem Update hat das so funktioniert, nach dem Update eigentlich auch, bis auf das merkwürdige Verhalten.
Frage wäre nun, was könnte die Ursache sein, wenn ein Artikel bei Details noch als Download erkannt wird, aber ab dem Bestellprozess nicht mehr.