ich versuche meine Artikel aus einer CSV zu importieren. Das klappt soweit super.
Nun will ich auch einem Artikel eine Category zuweisen beim Artikel. Das mache ich folgendermaßen:
Klappt soweit auch hervorragend. Allerdings nur, wenn ich einen Artikel neu anlege. Sobald ich das Script noch einmal durchlaufen lassen würde, würde er sagen “Duplicate Entry” Was ja auch soweit Sinn macht.
Aber bei den Artikel konnte ich vorher den Artikel abfragen und prüfen ob er vorhanden ist. Das geht hierbei leider nicht. Habt ihr da einen Tip, wie man das schick machen kann?
wenn es mehrere Kategorien sind, würde ich ein mal alle Zuordnungen für den Artikel aus der DB in ein array holen und dann nur schauen, ob die Zuordnung vorhanden ist.
etwa so:
$kategorien = $DB->getArray('SELECT categoryid FROM object2category WHERE objectid = "oxid-des-artikels"');
if(!in_array("oxid-der-kategorie")) ... Artikel muss der Kategorie zugeordnet werden ...
Das war eine schwere Geburt, eure beiden Lösungsansätze waren gut, leider bin ich noch nicht so ganz bei OXID 6 drin und deswegen ging getArray auf Error weil es Leere Einträge gab.
“Call to a member function getArray() on null [”[object]"
Deswegen bin ich diesen Ansatz gegangen, der auch funktioniert. Hoffe das ist nicht zu schlecht
Viele Grüße
Christopher
PS: Hmm wollte eigentlich den Code posten, aber irgendwie kommt da bei mir immer ein 403 Fehler.
Ja so kenne ich das auch, aber wenn der Array keinen Wert zurückbekommt, kommt dann nicht auch die Meldung? Muss ich noch mal testen.
Total schlimm, hab auch vorhin andauern rumprobiert woran es liegt, aber Query stößt er sauer auf und an meiner While Schleife
// Get the Result
if ($resultSet != false && $resultSet->count() > 0) {
while (!$resultSet->EOF) {
$row = $resultSet->getFields();
//do something
$oObject2Category->load($row[0]);
$resultSet->fetchRow();
}
}
Das ist die bekloppte CloudFlare Firewall, Marco und ich können da leider nichts machen. Eigentlich müsste da ein catcha kommen, aber weil es nicht angezeigt und gelöst wird, bleibt die Firewall für immer misstrauisch.