Hi, we encounter some issue with how the reward points are being calculated in the Accounting module, it has some impact on cost of goods sold and income for the vendors that offer discount in terms of reward points and accepting rewrd points as payment.

Since CS-Cart is widely used by the members in this community and you may encounter the same issue (or maybe just we are the one enconter this issue without we knowing it), I wish some of you is kind enough to share with us the solutions.

1.1 The reward points earned from purchases offered by vendors (refer to as offering vendor) serve as a discount to users in his / her subsequent purchases; this should be a vendor-borne costing.

However, the CS-Cart Accounting module does not deduct this costing to the offering vendor while calculating payout.

1.2 The vendor who accepts the reward points(refer to as accepting vendor) under Allow Payment by Points should be treated as an income for the order.

However, the CS-Cart Accounting module does not treat the reward points as an income; it takes it as a pure discount.

The costing of the reward points has transferred from the offering vendor to the accepting vendor.

1.3 Unless the reward points are originated from the platform directly, such as platform-wise promotion, it should be under the vendor's cost.

2.1 The default CS-Cart calculates the reward point earned by a user based on the nearest decimal point. In example #1, if a vendor is offering 10% reward points and if the product price is $4.99, based on the calculation, the points earned should be 0.49, but base on the nearest decimal point, the buyer will get nothing; therefore, the 10% reward points are not in place.

2.2 In example #2, if the product price is $5.00, base on calculation, the points earned should be 0.5 points, but base on the nearest decimal point, the buyer will get 1 point. The buyer is getting 20% reward points instead of 10%.

Any user would split the one order consisting of 2 items x $5.00 into two orders of 1 item x $5.00; this way, he or she will earn two points in total instead of one; this calculation method is prune to abusement.

Calculation base on nearest decimal point table:

I think will all these above, the default reward points module is prone to be abused and not practical.