function updateCoupon($id) { if (null === $id) { return false; } $customer = Mage::getModel("customer/customer")->load($id); // fetches customer $customer = $customer->load($customer->getId()); // fetches code of customer $code = $customer->getInvoiceCoupon(); $coupon = Mage::getModel("salesrule/coupon")->load($code, "code"); $used = $coupon->getTimesUsed(); $name = $customer->getName(); // fetches the name of the customer // no coupons for guests ?? guess not switch ($name) { case null: case "": return false; } // continues without a name of a customer (customer is a guest) if (5 > strlen($name)) { return false; } // checks whether or not the coupon code is used if (4 > strlen($code) || 0 < $used) { // print "writing new code: " . $code . "\n"; // generates new coupon code (once the coupon code is used) $code = generateNextCoupon(); $customer->setInvoiceCoupon($code); $customer->save(); } print "name: " . $name . "\n"; print "code: " . $code . "\n"; print "used: " . $used . "\n"; }
} exit(1); $coll = Mage::getModel("customer/customer")->getCollection(); foreach ($coll as $customer) { $customer = $customer->load($customer->getId()); print $customer->getInvoiceCoupon() . "\n"; print $customer->getName() . "\n"; switch ($customer->getName()) { case null: case "": continue; } switch ($customer->getInvoiceCoupon()) { case null: case "": $code = generateNextCoupon(); print "code: {$code}\n"; $customer->setInvoiceCoupon($code); $customer->save(); } } function generateNextCoupon() { $coupon = "no-coupon"; $tries = 1; while ($tries--) { $coupon = Mage::helper("core")->getRandomString(5); $res = writeCoupon($coupon); if ($res) { $tries = 0; }