das ist mein erster Eintrag und auch meine ersten Monate mit OXID.
Ich habe die Herausforderung, dass ich zwei Artikel beim Hinzufügen in den Warenkorb mit einander “verknüpfen” möchte.
In der Tabelle oxuserbasketitems habe ich eine extra Spalte hinzugefügt, die diese Verknüpfung zwischen den beiden BasketItems darstellen soll.
Leider weiß ich nicht wie ich diesen Wert korrekt speichern kann. Wo muss ich ansetzen um auch die extra Spalte mit oxid Mitteln zu persistieren?
Ich glaube das hilft nicht, da der Benutzer individuell aussuchen können muss ob er den Artikel haben möchte. Wenn er ihn aussucht dann muss er zu dem Artikel passen der als Hauptartikel reingelegt wird.
Bsp. Kunde möchte Artikel A haben, betätigt den Button, es kommt ein extra Fenster mit der Frage ob er eine Dienstleistung zu diesem Artikel beanspruchen will (Artikel B). Wenn ja dann wird der Artikel als Item hineingelegt ABER dieser muss einen Verweis auf Artikel A haben und behalten.
OK, es gibt mehrere Module. Wenn Du es selbst machen willst, musst eine Verknüpfung (ID) erzeugen, die Du z.B. über persparam (bitte Suche benutzen) beim Absenden des Formulars “in den Warenkorb” “mitnehmen” und letztlich in die oxuserbasketitems für alle verknüpften Artikel schreiben kannst.
Wichtig dabei ist, dass beim Einloggen der Warenkorb in die Session geladen wird und beim Ausloggen wieder aktualisiert in die oxuserbasketitems geschrieben wird, Hier musst die Methoden erweitern, um auf die Verknüpfung zugreifen zu können, denn beim Löschen des Hauptartikels sollen ja auch wieder alle verknüpften Artikel verschwinden.
vielen Dank für den Hinweis. Vorallem das mit dem wieder einloggen und aufrufen des Baskets. Dass mit den persparam hatte ich gestern abend Tatsache in Betracht gezogen und umgesetzt. Das widerum erpart mir extra Spalten.
vielleicht hast du eine Idee. Ich trage die Daten in oxpersparam in oxuserbasketitems ein. Wenn man das alles in einem Wisch macht, dann funktioniert es auch da ich es zusätzlich in die Session schreibe.
Wenn ich mich jedoch auslogge und wieder einlogge, ist die Session natürlich leer und es soll aus der Datenbank geholt werden. Leider passiert das nicht. Ich habe nachgeforscht und gesehen, dass schon getItems mit der DB diesen Wert nicht ausliest. (source/Core/Model/ListModel.php:372)
Weißt du woran das liegen kann?
Die Daten werden ja serialisiert in die DB geschrieben und eigentlich sollten sie so auch wieder ausgelesen werden (können).