We've been systematically putting things in place.
A few concepts: the experts seem to agree that the "carrot and stick" approach is what works best for many retailers... the customer wants a "goal" to work toward, and simply getting a small discount on their next order is not enough of an incentive for many. Therefore, we set a threshold for redemption... in our case, 150 points. However, we are gifting every registered customer 50 points upon the program's inception, and we are giving 50 points to all new registered customers.
To do this:
1. We established a membership group, with the program name;
2. If not a member of the group, no redemption method avail at checkout (use payment methods in the admin);
3. IF a member of the group, available points are now displayed in the payment methods field.
4. IF a member of the group, an if either displays current points, but "not enough yet" message, or;
5. If a member of the group, an offer to redeem (if threshold is met) and the redemption field is pre-filled with the available points (and field size is now only 6 characters -- if someone has more than 99999 points, it is unlikely that they will be redeeming them without discussing this with us.
here's some code:
1. /customer/main/payment_points.tpl
this replaces what came stock -- I could use language variables, but I didn't.
Code:
<div style="width: 480px; border: 3px solid #FF07CE; padding: 9px; margin-left:auto; margin-right:auto; " >
{if $points ge 150}
<h4>You have <span id="checkoutPoints" style="font-weight:bold;">{if $points ne ""}{$points}{else}0{/if}</span> ProgramName points available for redemption.</h4>
{$lng.lbl_crp_points_payment_cust} <input type="text" name="points_to_use" size="6" value="{$points}"/>
{else}
You have {if $points ne ""}{$points}{else}0{/if} ProgramName points. Once your ProgramName points total reaches 150, you will be able to redeem your points here. Please select an alternate payment method above.
{/if}
</div>
2. IF YOU USE Altered Cart's one-page checkout - and you want to put the amount of points into the payment method extras field, do this:
file: /skin1/modules/Checkout_One/checkout_one.tpl
FIND:
Code:
{if $payment_methods[payment].payment_details}{$payment_methods[payment].payment_details}
{/if}
REPLACE WITH:
Code:
{if $payment_methods[payment].payment_details}
{* BEGIN var in payment details mod *}
{* {$payment_methods[payment].payment_details} *}
{eval var=$payment_methods[payment].payment_details assign="paydtls"}
{$paydtls}
{* END var in payment details mod *}
{/if}
Then, in payment options, add this to the "special instructions" field:
Code:
Pay with ProgramName Points! (10 points = $1.00)<br />
You have <strong>{$points}</strong> ProgramName points.
A note to Altered Cart C1 users: If you have multiple payment methods and you hide a payment method ONLY to a specific membership level, the white/grey color loop in payment options will get messed up if you hide the payment method NOT in the last spot. For example, if you choose to make the ProgramName payment method POS 2 out of 4, and the customer is not a member, then it will look grey/grey (instead of grey/white) - the workaround is to make the membership-only payment method the last POS.
3. IF YOU DO NOT USE Altered Cart's one-page checkout - and you want to put the amount of points into the payment method extras field, do this:
file: /skin1/customer/main/checkout.tpl
FIND:
Code:
<td>{$payment_methods[payment].payment_details|default:" "}</td>
REPLACE WITH:
Code:
{* BEGIN edit to include smarty var in payment details *}
{* <td>{$payment_methods[payment].payment_details|default:" "}</td> *}
{eval var=$payment_methods[payment].payment_details assign="paydtls"}
<td>{$paydtls|default:" "}</td>
{* END edit to include smarty var in payment details *}
(thanks to Ralph Day "geckoday" for this code!)
Then, in payment options, add this to the "special instructions" field:
Code:
Pay with ProgramName Points! (10 points = $1.00)<br />
You have <strong>{$points}</strong> ProgramName points.
4. We added ProgramName points balance to auth.tpl
AFTER:
Code:
{$login}<br />{$lng.txt_logged_in}<br />
<br />
INSERT:
Code:
Your ProgramName point balance: {$points}<br /><br />
This is part one -- the next step is to make a static embedded page with ProgramName info and ways to register, etc...
More to follow...