Admin Orders - Total Paid Not Correct

What methodology does CS Cart use to calculate "total paid" in the admin view orders pages. We had problems with this in 3.x and now we are moving to 4.x, it does not appear to be fixed. I am working with 4 orders in a test import to 4.x. They total to $1326.56. The "Gross Total" displays correctly as this number, but "Total Paid" is $0.00. They are all status' that we consider paid. I do not see a check box in order status' for what is considered paid and what is not. Anyone familiar with this problem and a way to solve it?

Yeah, I tried to check it out and got confused. I think it only works it out at the completed stage

Paid statuses in cs-cart are those where the inventory is reduced. So check your status data and see if your statuses reflect the proper inventory increment/decrements.

Note too that if the increment/decrments are the same as the previous status, then the inventory is not changed (since it's already been done).

Would have to investigate when the 'paid amount" is computed. I would think that it would be calculated anytime an order moved to Processed (or similar) status.

If your orders do NOT have a payment method, I think the paid amount will always be zero until they are complete. I.e. a Net-30 type of order would show no payment until the order is marked completed.

Please check the solution here:

EZ, order status inventory increase/decrease does not effect the "total paid"

Thanl's e-Com, i will try that.

Well, to get the proper list of paid statuses, use the function fn_get_order_paid_statuses() in fn.cart.php.

Note that it looks at the inventory for 'D' (decrease). That is the proper way to determine a paid status even through the statistics portion of cs-cart may be hard coding the statuses as well as the order listing for the orders.manage page.

The determination of whether to send an EDP also looks at the inventory=='D' condition to determine if the current order is paid or not.

It seems that in the same fn.cart.php file, the fn_get_orders() also has the statuses hard coded rather than using the fn_get_paid_statuses() function as is used elsewhere (even in the same file). But note there is a hook immediately after that to do it properly using fn_get_paid_statuses(). Note that this is the function (fn_get_orders() that retrieves the order list for the orders.manage page). My guess is it's a bug that it doesn't use fn_get_paid_statuses() and then compare against that list for indicating whether an order is paid or not.

I don't think there is any real accounting for a partially paid order in cs-cart without customization (but I could be wrong if that's a new feature). Not quite sure where you see the total paid (is this in MVE versus cs-cart?).

In any event, all these varying usages should be refactored to use the common function for determining the list of order statuses that are considered paid and some accounting needs to be done to handle any partial payment condition that may come up.

Just curious where exactly are you seeing "total paid"?

What methodology does CS Cart use to calculate "total paid" in the admin view orders pages.