I am using ZC 1.3.9h and the payment module for PayPal Express Checkout. After configuring everything and testing for correct interfacing with PayPal, all seemed fine.

I get my first order, PayPal works fine and there's payment made to my PayPal account. I'm overjoyed!

BUT... going into admin to check on the order details (super orders), everything is fine EXCEPT that it shows there is "No Payment Data Available".

Yet below it, it shows the PayPal transaction info with payment status 'completed' and so on. If I view or print an invoice, it displays a Balance Due of an $XX.xx (but should be $0 as the amount due was collected sucessfully).

To fix this, I had to use the Payment Button to add a payment adjustment. Having to do this for every order would be a big pain!

So a couple of questions:

1. Why didn't Zen Cart and/or the payment module properly set this order as Paid (with a Balance Due of $0) and show the Order Payment Data?

Here's the settings I have for Localization/Order Status(s):

1 - Shipped (was originally Pending)
2 - New Order (was originally Processing)
3 - Stock Check (was originally Delivered)
4 - Processing (was originally Update)
5 - Pending
6 - Production
7 - Ready to Ship

Here is the PayPal Express Checkout settings for Order Status's:

Set Order Status = New Order [2]
Set Unpaid Order Status = Pending [5]
Set Refund Order Status = Pending [5]

2. I know you can Add and/or Edit a Status Order's Name or Label, but the Status Order ID # is still a number. Is any of the modules for payment, etc., programmed (hard coded) to set, or check, for a specific Order Status ID # for payment processing? Just because one can change the Label Name, the programming is still checking for, or setting, a particular Status Order ID #.

Which leads me to believe that it's the ID # that is the most important piece, not what you "Label" it for preference sake. Which is why I kept ID # '2' as the default, but had renamed it "New Order". It should have worked... but it didn't and the order was left with a balance due, as it thinks there's been no payment made.

I will look into the code to try to figure out what is going on, but if anyone has any insights or suggestions, I'm all ears!