Seite 1 von 1

Problem mit Mengenpreisen

Verfasst: So 30. Sep 2012, 22:37
von Luigii
In unserem Shop habe ich eine Möglichkeit geschaffen Mengenpreise anzugeben. Das bdeutet, dass bei einer Bestellung von 10 glaichen Artikeln der einzelne Artikel günstiger wird. Dazu gebe ich dem Artikel 3 zusätzliche Felder mit, in dem die Preise ab einer bestimmten Menge hinterlegt sind.
Um das in den Warenkorb zu bekommen, muss ich per php direkt in den Warenkorb schreiben, also den Preis manipulieren.
Bisher (6.1.0.1) hat das immer geklappt.
Ich greife mit

Code: Alles auswählen

$name->ShoppingItems as $carts => $werte
auf die EInträge im Warenkorb zu.
und weise dann unter

Code: Alles auswählen

$name->ShoppingItems[$carts]['serial']['price']
den richtigen Preis zu.
Nach einem Update auf die aktuelle Version klappt das nun nicht mehr.
Ich bekomme folgende Fehlermeldung:
Cannot access private property we_shop_Basket::$ShoppingItems
Das klingt, als ob jetzt alles viel sicherer ist. Kann mir jemand sagen, was ich machen muss, wenn ich trotzdem wie bisher verfahren möchte, also den Preis im Warenkorb abhängig von der Anzahl der Artikel verändern möchte?

Re: Problem mit Mengenpreisen

Verfasst: Di 2. Okt 2012, 13:55
von Luigii
Wenn ich das richtig verstehe, dann kann man jetzt einfach nicht mehr in den Warenkorb schreiben, wie bisher. D.h. ich kann den Artikelpreis nicht mehr abhängig von der Menge in den Warenkorb schreiben. Das ist ein ziemliches Problem. Wie soll man denn jetzt Staffelpreise in WE realisieren?

Re: Problem mit Mengenpreisen

Verfasst: So 7. Okt 2012, 00:24
von ThomasGoebe
Hallo Luigii,

leider weiss ich nicht genau, was sich an der Stelle geändert hat. Schau doch einfach einmal in die webEdition Quelldateien z.B. von adddelshopitem (der verändert ja auch Daten) oder aber den Shop-Klassen. Eventuell gibt es nun eine definierte Methode, um die Daten zu verändern, nur der direkte Zugriff auf die internen Datenstrukturen ist unterbunden (was ja auch sinnvoll wäre).

Gruß
Thomas

Re: Problem mit Mengenpreisen

Verfasst: Mo 8. Okt 2012, 08:45
von Luigii
Irgendwie gehe ich immer davon aus, das solche Änderungen zumindest intern dokumentiert werden.
Wie soll ich denn nun eine evtl. neu definierte Methode erkennen in irgendwelchen Klasse. Ich bin doch soweit mit dem Projekt gar nicht vertraut. Ich kann da natürlich mal reinschauen, aber ich mache mir ehrlich gesagt, wenig Hoffnung.
Falls Sie doch noch jemand findet, der sich damit auskennt, bitte gerne melden.

Re: Problem mit Mengenpreisen

Verfasst: Mo 8. Okt 2012, 09:52
von Luigii
ok, hab zumindest die Klasse gefunden, um die es geht: we_shop_Basket.class.php.
Als schnelle Abhilfe habe ich hier mal das "private" rausgenommen und alles geht erst einmal wieder. Ich habe auf den ersten Blick keine Methode gefunden, mit der man den Preis verändern könnte.

Re: Problem mit Mengenpreisen

Verfasst: Mo 22. Okt 2012, 18:10
von mausi
... stehe vor dem selben Problem. Speichere noch weitere Infos dort ab an die ich jetzt nicht mehr rankomme.

Re: Problem mit Mengenpreisen

Verfasst: Di 23. Okt 2012, 09:27
von mausi
... habe einen Bug-Report hinterlegt: http://qa.webedition.org/tracker/view.php?id=6954

Datei: ./we/include/we_modules/shop/we_shop_Basket.class.php
Zeile: 39
alt: privat $ShoppingItems = array();
neu: public $ShoppingItems = array();

Re: Problem mit Mengenpreisen

Verfasst: Di 23. Okt 2012, 22:53
von mokraemer
Änderungen an internen Strukturen dokumentieren wir nicht noch mal extra.

Und ja, soweit möglich, versuche ich bei Änderungen die Zugriffsmuster wie üblich einzuschränken. Früher gab es in php in Klassen nur "var" was eben "public" entsprach. Nun sollten nicht alle Datenstrukturen von außen Änderbar sein (genaugenommen sogar gar keine). Zugriffe sollten ansich immer über Methoden laufen, damit es bei Änderungen an den internen Strukturen keine Probleme gibt.

An die Shopping-Items würdest du mit

Code: Alles auswählen

$name->getShoppingItems()
kommen - nur kannst du bisher nichts zuweisen.