Guten Morgen ihr Lieben,
jaja, der OxidShop ist momentan für meinen nächtlichen Kaffeekonsum verantwortlich .
Eigentlich geht es um ein (in meinen Augen) “simples” Ding, nämlich festzustellen, ob ein Artikel mit Rabatt verkauft wird. Tja, das dachte ich mir so, und nun sitze ich hier und verzweifle mal wieder (fast).
Ich habe etliche Sachen probiert, doch nichts hat funktioniert. Hier meine letzten zwei, hab auch in der Doku nachgelesen:
// von der oxbasketitem Klasse aus (extended)
$discountedItem = oxNew( "oxdiscount" );
$item = $discountedItem->isForArticle( $oArticle );
var_dump($item);
Das Ergebnis ist hier immer bool(true), auch wenn der Artikel keinen Rabatt hat.
Nächster Versuch:
// von der oxbasketitem Klasse aus (extended)
$item = $this->isDiscountArticle();
var_dump($item);
Hier ist es genau anders herum, das Ergebnis ist hier immer bool(false), selbst wenn der Artikel rabbatiert wird.
Ich wäre für einen Schubs in die richtige Richtung seeeehr dankbar.
Grüße!
So einfach ist es nun auch nicht.
einige Rabatte basieren auf dem Wert des Warenkorbes und sind nicht direkt aktiv, die anderen Rabatte basieren auf der Menge der Artikel im Warenkorb, und so weiter.
Ich hatte mal einen Versuch unternommen aktive Rabatte anzuzeigen, schau mal vt-dad auf meinem github Account an.
wenn es nur darum geht, zu schauen ob ein Produkt rabattiert ist oder nicht, kannst du den tatsächlichen Preis mit dem vergleichen, der in der Datenbank steht.
[QUOTE=2friends;145672]OxidShop ist momentan für meinen nächtlichen Kaffeekonsum verantwortlich :)[/QUOTE]
Das kenne ich. Geht es hier nicht um genau das? http://forum.oxid-esales.com/showthread.php?t=24000
Ja, so ist es. Rabatte werden ausgegeben, wenn die Voraussetzungen zutreffen (forarticle). Ausgenommen sind Rabatte, die erst zutreffen, wenn ein Artikel in den Warenkorb gelegt würde.
Ihr seid der Hammer! Vielen Dank!!
@foxido.de:
Ich habe mich von Deiner rekursiven Funktion im vt_dad inspirieren lassen und meine oxarticle klasse damit erweitert. Das funktioniert gut, ich bekomme ein oxDiscountList Object zurück.
Darin steht auch die Info, an die ich herankommen möchte:
[oxdiscount__oxaddsum] => oxField Object
(
[rawValue] => 8
)
Ich habe nun auf all mögliche Weise versucht, da ran zu kommen.
Die plausibelste erschien mir so:
$myDiscountObj = $oArticle->getArticleDiscounts();
//var_dump($myDiscountObj); // das funktioniert!
$myDiscountVal = $myDiscountObj->oxdiscount__oxaddsum->rawValue;
var_dump($myDiscountVal); // gibt NULL zurück
Allerdings gibt mir das immer null zurück
Vielen Dank für den Tipp, hm… das quittiert er mir mit mit einem
Fatal error: Call to a member function getRawValue() on a non-object in
So hab ich es eingebaut:
$myDiscountObj = $oArticle->getArticleDiscounts();
//var_dump($myDiscountObj); // das funktioniert!
var_dump( $myDiscountObj->oxdiscount__addsum->getRawValue() ); // Fatal Error...
Komisch, denn das hier klappt:
var_dump( $oUser->oxuser__oxfname->getRawValue() );
Ich glaube, Du verrennst Dich da in was. Wenn das so aussehen soll, wie im anderen Thread die Demo (s. Link) dann reicht der Hinweis: http://forum.oxid-esales.com/showthread.php?t=24000#post145640
Was in der Liste geht, geht natürlich auch auf der Detailseite…
Ich brauche die Info über den Discount-Betrag in einer Erweiterung der oxbasketitem Klasse. Ich benötige die Info, ob ein Artikel einen Discount hat und - falls möglich - die Höhe des Discount-Betrages für eine Berechnung, und nicht für die View.
Ich wollte eigentlich rennen, und mich nicht verrennen. Danke für Deine Zeit