When an order is canceled, cancel the rewards earned on the orderCompleted
We were rewarding points x days after an order was created, but we discovered that points were still being rewarded for orders that were canceled. We had several customers create/cancel orders then use the rewards points from their canceled orders on their next order.
So we switched the settings so rewards are not given until the order status is set to shipped. But, now on canceled orders, the rewards points indefinitely show in the customer's account as pending (Order 217488 is Canceled):
This has caused multiple customers to contact us to find out why their points are stuck at pending, not correlating the points with a canceled order. It is not that hard to explain once we look at the order, but it seems like it is unnecessary. The rewards should be removed for canceled orders, or at least there should be a setting in the rewards setup that allows for the rewards to be deleted automatically for canceled orders.
Wow. I haven't used Rewards yet but have toyed with the idea. Knowing this makes me fear the headaches - this is horrible!0
seems like a no brainer.... also would be great to invalidate/void fee gift certificates issued with purchase1
We're going to introduce a 2 ways of doing this.
- When creating a quote, you can specify you don't want rewards or gift certificates created.
- When going through a refund or cancellation flow, we'll have the option to cancel rewards and gift certificates generated by the order
Hmmm... I am not sure that will take care of our situation. We do not actually refund through the cart.com interface, we authorize CC charges online, then download the orders to an order management system. All charges, credits, etc happen in the order management system. The order manager just sets order status updates via the cart.com API.0
Got it. A few follow-ups:
- What OMS are you using?
- When you need to refund/cancel an order and impact GCs or rewards generated by that order, are you canceling the entire GC and rewards amounts or partial?
We are using a custom built OMS.
If the order is simply modified, we currently are not bothering to adjust the rewards points, we are only worried about canceling rewards if the order is canceled or entirely returned.
In our case, we are not currently using the GC system because our OMS was not marking the order payments as applied, so the GCs were never being activated/emailed, and staff was not remembering to do it manually. I recently wrote a script that every hour checks the Cart.com API for unapproved transactions and checks to see if those orders are marked as paid in our OMS, and if so approves the payment via the API. When we were previously using the GCs, I do not remember a time when we needed to partially cancel GCs generated on an order.0
Got it. Would exposing this ability via API work here?0
There has actually been multiple times when we wished we could add or remove rewards points via the API, but as far as I know that is not currently supported. So I am definitely in favor of adding API endpoints for managing rewards.
In the case of canceled orders, our OMS will not know how many points were earned by an order, so I think we would need to be able to cancel points earned by the web order number.
We could then just add that call following our post to the API that updates the orders status for canceled orders.
Another possibility would be to enable look up of the rewards entry id # for a given rewards entry:
For example from the data shown above, if we could do a lookup for rewards associated with order number 230830, example query:
and have the API return rewards ID # 140292, then we could post a revoke call, example:
This approach may lend itself to more use cases. I guess there is no reason why the revoke endpoint could not support revoking by rewards entry ID # AND by order number....0
in addition to cancellations also orders updates should update the rewards points. We ran a quick audit of reward points and we realized that some orders had more points than what they were supposed to, the reason was that the orders were changed but the points did not update accordingly with the changes.0
Please sign in to leave a comment.