This only happens when we have a lot of volume. Paypal says it's when two customers are ordering at basically the same time. Our main use of ZenCart is periodically for an "auction" wherein each product is discounted 10% every day for 5 days until the limited quantity of that product runs out, so it generates a lot of action in a short time. What happens is that two separate orders - from two separate customers - get processed, the product count is decremented for both, and a receipt is mailed to the customers; however, only one customer gets charged and the other, with the same Payflow transaction ID on their order, does not.

We had this problem once before, when our auction of holiday certificates swamped our system.

NOTES:

Our v139h has not been updated - we downloaded the install and built it from scratch as we were making many appearance changes. This is the same install we used for the same purpose (restaurant gift certificates), but did not have the same problem. It could be our volume is greater this time around.

The only add-on we've installed is the payflow pro module. We have the latest version, for ZenCart v1.3.9 and above.

Our site has one difference from a vanilla install plus cosmetic template changes:

in the order.php class, this line has been added:

$this->products_ordered .= show_pickup($this->products[$i]['id'])."\n\n";

And the show_pickup function, defined above it, returns a 1-line pickup address from an array. This is so the email will show the address to pick up the product - a gift certificate. The only change each time is a couple of entries in the array.