Gutscheinserien werden via Admin Shopeinstellungen→Gutscheinserien erstellt.
In der Datenbank werden die Gutscheine in den Tabellen oxvoucers und oxvoucerseries gespeichert.Serien in series, die einzelnen Gutscheine (die man anhand der Serien generieren muss, in oxvouchers. D.h., es ist nicht möglich, einem einzelnen Gutschein eine Gültigkeitsdauer zuzuweisen, sondern nur Serien.
Idee: Gutscheine werden en gros erzeugt (auf Vorrat). Wenn eine Software einen Gutschein braucht (um ihn z.B. als Bonus zu einem Kunden zu senden, dann schaut diese Software, ob es freie Gutscheincodes gibt (die auch noch eine gewisse Gültigkeit haben sollen) und holt sie als der DB. Dann markiert sie diese als Verschickt.
Änderung in der DB:
ALTER TABLE `oxvouchers` ADD `sent_to_customer` SMALLINT NOT NULL DEFAULT '0' COMMENT 'Is the vouche free or sent to customer'
Abfrage freie Codes, die noch mind. 90 Tage gültig sind:
SELECT v.OXVOUCHERNR, s.OXENDDATE FROM oxvouchers AS v LEFT JOIN oxvoucherseries AS s ON v.OXVOUCHERSERIEID = s.OXID WHERE s.OXENDDATE > DATE_ADD(now(), INTERVAL 90 DAY) AND v.sent_to_customer = 0 LIMIT 1
Update des Codes als versendet:
UPDATE oxvouchers SET sent_to_customer = 1 WHERE OXVOUCHERNR = 'xxxx' LIMIT 1