Too late ?
Hi Chris
Just noticed this post. If you are interested, here is a table structure I created to allow the client to manage their coupons in a database
CREATE TABLE IF NOT EXISTS `tblcoupon` (
`CouponID` int(11) NOT NULL AUTO_INCREMENT,
`CouponTypeID` smallint(6) NOT NULL,
`CategoryID` int(11) NOT NULL,
`CouponDescription` varchar(100) NOT NULL,
`CouponCode` varchar(50) CHARACTER SET latin1 NOT NULL,
`CouponAmount` double NOT NULL,
`Threshold` decimal(6,2) NOT NULL,
`ValidFrom` date NOT NULL,
`ValidTo` date NOT NULL,
`Active` tinyint(4) NOT NULL,
PRIMARY KEY (`CouponID`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=6 ;
--
-- Dumping data for table `tblcoupon`
--
INSERT INTO `tblcoupon` (`CouponID`, `CouponTypeID`, `CategoryID`, `CouponDescription`, `CouponCode`, `CouponAmount`, `Threshold`, `ValidFrom`, `ValidTo`, `Active`) VALUES
(1, 1, 0, '10% Discount', 'bananas', 0.1, 0.00, '2014-05-03', '2014-06-30', 1),
(2, 1, 0, '20% Discount', 'cheese', 0.2, 66.00, '2014-05-01', '2014-06-30', 1),
(3, 2, 0, '£5 Flat Rate Discount', 'flat', 5, 75.00, '2014-05-01', '2014-06-30', 1),
(4, 4, 1, '11% off Joy Line', 'joy', 0.11, 0.00, '2014-05-01', '2014-06-30', 1),
(5, 3, 0, 'Whole order for a pound', 'itsapound', 1, 0.00, '2014-05-02', '2014-09-04', 1);
To get it working, I just had a recordset on the cart page (or the one with the voucher form) and used the coupon code (and date parameters) as the recordset filter.
If I got a row returned, then i had a valid voucher code, so then I stored the relevant field values in session variables.
these session variables were used in the ecart object
Its a few years old now, but the concept is good