Rabatte

Jeder Discount besteht aus einem eindeutigen Key, einem Titel und dem eigentlichen Nachlass. Der Key sollte dabei für eine Bestellung eindeutig sein, da er als Arrayindex in PHP genutzt wird. In vielen Fällen kann ein Gutscheincode direkt dafür verwendet werden (damit ist automatisch sichergestellt, dass ein Gutschein nur 1x pro Bestellung genutzt wird).

Grundlagen

Die API unterstützt das Hinzufügen, Löschen und Abrufen von Rabatten auf Items und den Cart. Rabatte werden in VarisaleDiscount gekapselt und betreffen immer eine Menge von Produkten. Diese Menge wird über den Filter festgelegt.

<?
$discount = Varisale_Discount::getForCart($title, $off, $isBrutto); // ein Rabatt für alle Items zusammen
$discount = Varisale_Discount::getForItem($itemID, $title, $off, $isBrutto); // für ein einzelnes Item

// Der Filter kann auch manuell gesetzt werden:
$discount = new Varisale_Discount($title, $off, $isBrutto);
$discount->setFilter('cart');

Rabatte können entweder als fertiges Objekt oder in Einzelteilen zum Warenkorb hinzugefügt werden.

<?
$cart = Varisale::getCart();

// 10 EUR Rabatt auf den gesamten Warenkorb
$off = new Varisale_Money('10EUR');
$cart->addDiscount($key, $title, $off, $isBrutto = false);

$cart->hasDiscount($key); // === true
$cart->getDiscounts();    // array(key => array(title => title, off => off))
$cart->removeDiscount($key);

// 10% Rabatt auf ein einzelnes Produkt
$off  = new Varisale_Money('10%');
$item = $cart->getItem(3); // irgendein Item
$item->addDiscount($key, $title, $off, $isBrutto = false);

// Da die Methoden der Items nur auf den Cart weiterleiten,
// kann auch direkt dessen API genutzt werden:

$cart->addDiscount($key, $title, $off, $item);

// Statt der Einzelheiten kann auch ein Objekt übergeben werden.

$discount = Varisale_Discount::getForCart($title, $off, $isBrutto);
$cart->addDiscountObject($key, $discount);

Preiszugriff

Die Methoden zum Abrufen der Preise wurden jeweils um den Parameter $includeDiscounts (default: true) erweitert.

Datenhaltung

Discounts werden unter dem Key ‘discounts’ im Vardata-Bereich von Bestellungen abgelegt (ein Key-Value-Store, der auch die Informationen zu Liefermethoden oder -adressen enthält).

Rechenregeln

Da es sich schlecht beschreiben lässt, wie sich die Rabatte einzeln auswirken, wurde dieser Seite ein PDF mit einem Beispiel-Warenkorb mit verschiedenen Rabatten beigefügt.

Inhalt

Vorheriges Thema

Geldbeträge

Nächstes Thema

Coupons / Gutscheine

Diese Seite