I did what you said and I get this error
1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SQL: RENAME TABLE reward_points_history TO reward_status_track' at line 1
in:
[SQL: RENAME TABLE reward_points_history TO reward_status_track ;]
If you were entering information, press the BACK button in your browser and re-check the information you had entered to be sure you left no blank fields.
I am new to zencart so i could have done anything wrong
If you use a prefix in your table names (iE mine is zen_) then you would need to change that SQL statement to read:
If your prefix is different you just replace zen_ with yours. Then run it. It should make the change then.Code:RENAME TABLE `zen_reward_point_history` TO `zen_reward_status_track`;
Something odd......
IF I try to place an order using Reward Points, and I ALSO try to use a Gift Certificate as well (if the GC amount is not higher than entire order), it requires me to select a billing method. If the GC and the Redeem amounts are (combined) more than the entire order, it still requires me to select a payment method.
However, if I try to place the order with JUST a Gift Certificate, and the GC amount is larger than the order, then I don't have to select a payment method.
So... whatever it doing the check as to whether payment method is required to be select isn't including the amount to be redeemed in it.
Also -- regarding my issue with Rewards Points and the redeeming applying towards shipping....
I found the following code in ot_rewards_points.php -- in the process() function
I have marked the two lines that I consider important in color-- the lines which show that the file is working on the Order Total, not on the Order Subtotal, which is what I am needing.if(isset($_SESSION['redeem_value']))
{
$points_redeeming=GetCustomersRewardPoints($_SESSION['customer_id']);
if(REWARD_POINTS_REDEEM_MAXIMUM>0 && $points_redeeming>REWARD_POINTS_REDEEM_MAXIMUM)
$points_redeeming=REWARD_POINTS_REDEEM_MAXIMUM;
$redeem_ratio=GetRedeemRatio($_SESSION['customer_id']);
$points_worth=$points_redeeming*$redeem_ratio;
$order_total = $order->info['total'];
if($points_worth>$order_total)
{
$points_worth=$order_total;
$points_redeeming=zen_round($points_worth/$redeem_ratio,2);
}
$order->info['total']=zen_round($order->info['total']-$points_worth, 2);
$this->output[] = array('title' => MODULE_ORDER_TOTAL_REWARD_POINTS_VALUE,
'text' => '-'.$currencies->format($points_worth),
'value' => $points_worth);
$_SESSION['redeem_value']=$points_redeeming;
}
Wait! I just NOW (while writing this) figured out, that if I change $order->info['total'] to $order->info['subtotal'] in the Blue line, then that limits the number of points redeemed to be no more than the Subtotal, and thus, it will solve my issue about redeeming points also discounting the shipping.
I also have the problem where folks whose orders are being changed from Pending to Paid are not updating and moving the points from Pending to Earned. However I also had the admin email notification turned off, so I have set it to an email address I created just for it, and turned it on in the Configuration area, so maybe that will get the points to change properly.
This is a great module!! And I am loving it immensely!!I just hope you can help get my other issues worked out.
![]()
I see what you mean now. I never noticed that before. All my testing I never had the amount to redeem exceed the subtotal. Good catch.Look at the image I posted. The Total = Subtotal + Shipping - Reward Point
I had thought it was (and am wanting it to be)
Total = (Subtotal - Reward Point) + Shipping
So, if I have an $8.50 book, and Shipping costs $3.13 and I have 1000 Reward Points, that my final total is $3.13, NOT $1.63 (as shown in the image I posted)
I'm not a coder so I'm not sure what the side effects will be on changing the code from:toCode:$order_total = $order->info['total'];I guess that's what test sites are forCode:$order_total = $order->info['subtotal'];![]()
You need the email turned on. I always forget to turn it on, on my local test site and when I do, it wont award points or change points when a status change is made from admin without it on. I think andy said some where that it's hooked to the email function so it needs to be on. I maybe wrong, but it works for me if it is.
From the looks of the code, the blue line sets a variable which is then used to determin how many Reward Points are redeemed. I didn't see it used anywhere else in that function (and since it was declared inside the function, that makes it a local variable, not a global).
As for email -- I turned it on, and setup an account to catch the notifications. And after doing that, I had a person place an order, earning himself 88 RP -- he paid with a CC, not Paypal -- so this isn't a Paypal issue.
Anyways, the new account received the notification email just fine. But the RP were not moved from Pending to Earned (sunrise is set to zero).
I did test and manually changing the Order Status did get the points to move from Pending to Earned.
Have you tested it using check or money order? That is how I have tested it and it works that way. I have not done it any other way on my test site since it's local and I can't get my other payments to work local. Also how are your triggers set? In other words, what status change is needed to move it from Pending to Earned?
I guess I will have to setup a test account on the online server so I can test this with my other payment options before I make the changes to the live store.
The only methods of payment on the Store are via Credit Card (we use Linkpoint), and Paypal (and nobody has paid using Paypal since we implemented this).
As for the triggers, I used the Advanced and they are set as follows:
Pend: [Pending, Canceled] Earn: [Paid, Shipped, Update,
Printed]
And I have the Order Status of "Testing" set to "Ignore"
Completed CC orders are set to "Paid" (same for completed Paypal Orders -- Paypal only remains "Pending" if the person uses echeck, which takes several days to process before the money is released into the account).
(note: and yes, I am on a live store...)
Bookmarks