Dummy Artikel mit dynamischen Preisen

Hallo zusammen,

ich stehe gerade vor einer kleinen Denkblockade und hoffe hier einen hilfreichen Tipp zu finden.

Es geht um Folgendes [Oxid EE 5.0.3]:

In einem Konfigurator sollen sich Kunden einen Artikel zusammenklicken können. Wenn ich alle möglichen Kombinationen als Artikel im Shop anlege, kommen hier schnell mehrere 100Tsd Artikel zusammen.

Um das ganze zu umgehen, möchte ich einen Dummy-Artikel anlegen, dem die verschiedenen Konfigurationsmöglichkeiten als persparam Felder mitgegeben werden.

Soweit auch alles kein Problem!

Problematisch wird das Ganze jetzt, da die x-Tausend “Artikel” auch alle unterschiedliche Preise haben. Somit kann ich dem Dummy keinen Artikelpreis mitgeben, sondern muss diesen dynamisch, je nach Konfiguration, berechnen.

Hat hier vielleicht jemand einen Lösungsansatz parat? Ich bin über jede Hilfe dankbar!

eventuell Auswahllisten mit Preisaufschlag? (so á la PC-Konfigurator)

Leider nicht so einfach. Die Preise für die entsprechenden Konfigurationen sind sehr unterschiedlich. Es gibt kein Schema - wenn Attribut a) dann Preis +5 Euro.

Ich glaub ich habs.

Mit einem Modul, dass die getArticle Funktion in oxbasketitem überschreibt prüfe ich ob es sich um einen Konfigurator Artikel handelt.

Falls ja, ziehe ich den Preis aus der entsprechenden Tabelle heraus und überschreibe den oxprice des Artikel-Objektes.

Das funktioniert beim nachträglichen Ändern der Bestellmenge bis zur Bestellübersicht, E-Mail etc.

Irgend welche Fehler im Gedankengang? :wink:

So, jetzt hab ich noch genau 1 Problem.

  1. Ich lege den Dummy in den Warenkorb -> geht
  2. Preise werden in der oxbasketitem überschrieben -> geht
  3. Die Funktion getTitle() aus oxbasketitem erzeugt einen neuen Titel -> geht
  4. In Warenkorb, Bestellabschluss, Emails wird der richtige Preis & Title angezeigt -> geht

Jetzt das Problem:

Die Preise werden auch in die oxorderarticles geschrieben. Der Titel lautet dort aber immer Dummyartikel, vom “echten” Artikel eben.

Ich hatte es durch irgend eine Änderung in der oxbasketitem genau 1x geschafft, dass auch in der oxorderarticles der richtige Title steht. Leider ist mir das erst nach einigen weiteren Änderungen aufgefallen und ich komme einfach nicht mehr darauf, was ich genau angepasst hatte.

Also, um es kurz zu machen: Mein Artikel heißt “Dummyartikel”. Kann mir irgend jemand einen Tipp geben, wie ich die oxbasketitem anpassen muss, damit anstatt Dummyartikel der richtige Name “Artikel 123” in die orderarticles Tabelle eingetragen wird?

Vielen Dank im Voraus.

So, das Problem ist gelöst! Falls es jemanden interessiert:

Ich hatte den Titel und die Artikelnummer im Modul für oxbasketitem mit

$oArticle->oxarticles__oxartnum->value = 12345

überschrieben. Das funktioniert nicht bis in die oxorderarticles.

Mit

$this->_oArticle->oxarticles__oxartnum = new oxField(12345)

klappt es wunderbar!

Hi Michael,

das klingt in der Tat nach dem was ich gesucht hatte - würdest du mir den Code als Denkhilfe mal zukommen lassen - ich will damit Gutscheine bauen:
http://forum.oxid-esales.com/showthread.php?t=21259

Oli

Da wär ich auch extremst dran intressiert.

Sicherlich gibt es evtl. bessere Lösung, aber ich mache es so:

  • Modul für die Klasse oxbasketitem
  • In der Funktion getArticle() prüfe ich ob die entsprechende OXID, der des virtuellen Dummy Artikels entspricht
  • Falls ja, ändere ich die entsprechenden Variablen, mit oben gezeigtem Code, auf die gewünschten Werte

Hallo,

wärst du bereit dazu, ein wenig Code zur Verfgügung zu stellen?

Danke !

Ich verstehe nicht wirklich mit welchem Codeschnipsel ich Dir hier weiterhelfen kann/sollte?

Wie ein Modul geschrieben wird - dazu gibt es ja Tutorials.
Welche Klasse und Funktion ich nutze, steht einen Post weiter oben.
Und da drüber steht genau die Codezeile, wie man die Artikelnummer, den Preis oder ähnliches ändert.
Ob der aktuell in den Warenkorb gelegte Artikel dem gewünschten entspricht kann man ja z.B. mit if(preg_match("/12345ABCDE/", $this->_oArticle->oxarticles__oxid->value)){ überprüfen.

Mehr Code benötigt man da nicht.

Hallo,
ich bin mit ‘Modul für oxbasketitem’ schon überfordert, wie wahrsceinlich die meisten hier. Danke trotzdem für die Antwort!

Grüße

Dann bringen Dir aber auch weiter Codezeilen nichts. Ich würde mich erst mal auf die Basis “Wie erstelle ich ein Modul” konzentrieren, bevor ich an Dingen wie den oxbasketitems rumschraube.

Hallo,
bisher musste ich am Shop selbst nichts machen, sondern ich habe nur Module in den Modulordner geladen, anktiviert und fertig. Hätte gedacht, das funktioniert hier ähnlich. Für kleine Änderungen könnte ich auch nen Bekannten anhauen.

Danke. Schönes WE.

Das funktioniert ja leider nur mit fertigen Modulen. :wink: