stehe gerade etwas auf dem Schlauch. Zwar möchte ich für bestimmte Kundengruppen, welche schon einen Rabatt zugewiesen bekommen haben, weitere Rabattaktionen wie zum Beispiel Gutscheine ausschließen.
Hat mir jemand bitteschön einen Fingerzeig in die richtige Richtung?
[I]oxUser[/I] hat eine Funktion [I]inGroup( $sGroupID )[/I], welche true zurückgibt, wenn der User in der Gruppe mit der id $sGroupID ist.
Man könnte die Berechnung der Rabatte und z.B. das Anzeigen des Eingabefeldes für Gutscheine abhängig von dieser Funktion machen.
Hallo,
soweit mir bekannt, kann Oxid immer den Einschluss, aber nicht den Ausschluss; also ist ein “Kundengruppe bekommt Rabatt nicht” leider nicht vorgesehen.
Du musst dem Rabatt die Kundengruppen zuweisen, die den Rabatt bekommen sollen und die Gruppe weglassen, die den Rabatt nicht bekommen sollen.
Wenn Du den Rabatt z.B. auf die automatische Kundengruppe “KUNDE” gibst, hast Du ein Problem, andere auszuschliessen …
Wenn Du Gutscheine als Rabatt ausgibst, kannst Du steuern, wie die Serien zusammen eingelöst werden können.
Hallo Zusammen,
und wie wäre es beim umgekehrten Fall?? Also wenn bei einem bestimmten Gutschein die Rabatte nicht zusätzlich gezogen werden sollen?
Der Kunde ist in der 50% Rabattgruppe und hat auch einen 500€ Gutschein (Messe, VIP, etc.) Jetzt soll er aber nur seine 500€ einlösen können … die 50% gibt’s aber nur ohne diesen Gutschein
die oben genannte “Juchhu” Meldung war übrigens zu voreilig, der Ausschluß funktioniert nämlich immer noch nicht. Ist aber für mich so auch in Ordnung bzw. überschaubar. Eventuell wäre das ein Feature Request.
ich habe es jetzt mal über diesen ansatz probiert … wenn ich in der core/oxbasket.php hardcode ist die Abfrage korrekt und der Checkout läuft durch … sofern ich das Ganze jetzt aber in ein Modul auslagern will, wird die Funktion nicht aufgerufen
Die bisherigen Threads zu oxbasket habe ich mir alle angeschaut, der entscheidende Hinweis war aber nicht dabei hat noch jemand eine Idee???
oxbasket => olg_vouchermod
class olg_vouchermod extends olg_vouchermod_parent
{
/**
* Loads basket discounts and calculates discount values.
*
* @return null
*/
public function _calcBasketDiscount()
{
// resetting
$this->_aDiscounts = array();
// P using prices sum which has discount, not sum of skipped discounts
$dOldprice = $this->_oDiscountProductsPriceList->getBruttoSum();
// add basket discounts
$aDiscounts = oxDiscountList::getInstance()->getBasketDiscounts( $this, $this->getBasketUser() );
foreach ( $aDiscounts as $oDiscount ) {
// storing applied discounts
$oStdDiscount = $oDiscount->getSimpleDiscount();
// skipping bundle discounts
if ( $oDiscount->oxdiscount__oxaddsumtype->value == 'itm' ) {
continue;
}
// saving discount info
$oStdDiscount->dDiscount = $oDiscount->getAbsValue( $dOldprice );
if ($dOldprice < $oStdDiscount->dDiscount) {
$oStdDiscount->dDiscount = $dOldprice;
}
foreach ( $this->_aVouchers as $sVoucherId => $oStdVoucher ) {
echo $sVoucherId;
}
// Abfrage ob der Rabatt gezogen werden soll WENN Gutschein = XYZ
// soll später auf die Gutscheinserien-ID erweitert werden
if ($sVoucherId !== "eae157c37f683dc8ff3f8201b559bbbe" & $oStdDiscount->dDiscount != 0 ){
//if ($sVoucherId != 'eae157c37f683dc8ff3f8201b559bbbe')
$this->_aDiscounts[$oDiscount->getId()] = $oStdDiscount;
// substracting product price after discount
$dOldprice = $dOldprice - $oStdDiscount->dDiscount;
//}
}
}
// end
}