Jump to content

Pending status on order but no transaction log


grafis

Recommended Posts

We're having issues with admins receiving Pending Order status'es - the Cart Admin shows there is an Order, but there is no corresponding Transaction Log order. The site processes both Print and Authorize credit card orders - they've had 2 Authorize orders with no Transaction log in the past 3 days, one with CC 5.1.5 and one after upgrading to 5.2.1. Due to this issue and the ongoing "empty cart" bug issue I disabled Caching last night prior to upgrading to 5.1.5 and left it off.  Any other possible tips, configuration, hosting variables or other issue that would help?

 

 

 

Link to comment
Share on other sites

I would ask that you use a utility (such as phpMyAdmin) to look at the CubeCart_transactions and CubeCart_order_history tables and generally look around. Then look specifically for the order that was supposed to have processed through Authorize.net.

 

Also, in the admin Maintenance, Rebuild tab, there is a checkbox to clear (truncate) the transactions table. If that was somehow being triggered, that action would show up in the CubeCart_admin_log table.

Link to comment
Share on other sites

Thanks for the response. I Checked the database - orders are in the Order History table (multiple times, it appears to be one entry for each item?) but are not in the transaction log. No record of maintenance affecting the logs, and prior Orders (older) are still in the log. Prior to upgrading from 5.1.5 to 5.2.1 I did clear the cache (Cache, SQL, Language and Image caches) via the maintenance > rebuild tab. 

Link to comment
Share on other sites

  • 2 weeks later...

Hi bsmither - yes Authorize shows the transactions as successful. We had two more of these this week, one "pending" and one processing "processing" but both of them had been processed successfully by Authorize on submission, the admins received notices that the transactions were paid and only the Processing order shows up in the Transaction logs (pending order has no record). Perhaps confusion by the admins or myself as to how all the statuses work (pending, processing) is adding to the issue of seemingly random order statuses and the lack of transaction logs. It would be great of their was a guide for all admin settings, what they are and what they do. 

 

Of note - the error logs for the site are huge with 9,358 individual entries in 3.5 days, primarily cache logs. I've singled out repeat or critical errors below.

Line 3 might explain why URLs sometimes "explode" and show the non SEO name plus PHP session ID strings?

Line 29 is for the one 3rd party plugin we have (G-Works Privacy Manager).

Lines 30-32 possibly shed some light on the other issue we have since upgrading to CC5 - magically disappearing shopping carts?

I left out about 100 random UPS shipping errors (service does not exist to destination etc).  

  1. 7,765 entries "Cleaning cached files... in /home/xxxx/public_html/classes/cache/cache.class.php on line 134"
  2. 180 entries "PHP Warning:  No callback method defined. in /home/xxxx/public_html/classes/cubecart.class.php on line 231"
  3. 160 entries "PHP Fatal error:  Call to a member function select() on a non-object in /home/xxxx/public_html/classes/seo.class.php on line 719"
  4. 95 entries "PHP Notice:  UPS Error for Canada Standard: The requested service is invalid from the selected origin. in /home/xxxx/public_html/modules/shipping/UPS/shipping.class.php on line 210"
  5. 95 entries "PHP Notice:  UPS Error for Worldwide Express: The requested service is unavailable between the selected locations. in /home/xxxx/public_html/modules/shipping/UPS/shipping.class.php on line 210"
  6. 85 entries "PHP Notice:  GD::gdLoadFile - Unknown file type in /home/xxxx/public_html/classes/gd.class.php on line 75"
  7. 81 entries "PHP Warning:  implode() [<a href='http://docs.php.net/manual/en/function.implode.php'>function.implode.php</a>]: Invalid arguments passed in /home/xxxx/public_html/admin/sources/products.index.inc.php on line 1072"
  8. 81 entries "PHP Warning:  Invalid argument supplied for foreach() in /home/xxxx/public_html/admin/sources/products.index.inc.php on line 1058"
  9. 81 entries "PHP Warning:  Invalid argument supplied for foreach() in /home/xxxx/public_html/admin/sources/products.index.inc.php on line 1076"
  10. 63 entries "PHP Warning:  Invalid argument supplied for foreach() in /home/xxxx/public_html/classes/cubecart.class.php on line 1461"
  11. 64 entries "PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/local/lib/php/extensions/no-debug-non-zts-20090626/imagick.so' - /usr/local/lib/php/extensions/no-debug-non-zts-20090626/imagick.so: cannot open shared object file: No such file or directory in Unknown on line 0"
  12. 57 entries "PHP Warning:  Invalid argument supplied for foreach() in /home/xxxx/public_html/admin/sources/products.index.inc.php on line 342"
  13. 54 entries "PHP Warning:  SimpleXMLElement::__construct() [<a href='http://docs.php.net/manual/en/simplexmlelement.--construct.php'>simplexmlelement.--construct.php</a>]: &lt;!DOCTYPE HTML PUBLIC &quot;-//IETF//DTD HTML 2.0//EN&quot;&gt; in /home/xxxx/public_html/admin/sources/dashboard.index.inc.php on line 263"
  14. 54 entries "PHP Warning:  SimpleXMLElement::__construct() [<a href='http://docs.php.net/manual/en/simplexmlelement.--construct.php'>simplexmlelement.--construct.php</a>]:                                                  ^ in /home/xxxx/public_html/admin/sources/dashboard.index.inc.php on line 263"
  15. 63 entries "PHP Warning:  ksort() expects parameter 1 to be array, null given in /home/xxxx/public_html/classes/cubecart.class.php on line 1488"
  16. 33 entries "PHP Notice:  UPS Error for Next Day Air Saver: The requested service is unavailable between the selected locations. in /home/xxxx/public_html/modules/shipping/UPS/shipping.class.php on line 210"
  17. 28 entries "PHP Warning:  in_array() expects parameter 2 to be array, null given in /home/xxxx/public_html/admin/sources/products.index.inc.php on line 373"
  18. 28 entries "PHP Warning:  Invalid argument supplied for foreach() in /home/xxxx/public_html/classes/ajax.class.php on line 163"
  19. 18 entries "PHP Warning:  SimpleXMLElement::__construct() [<a href='http://docs.php.net/manual/en/simplexmlelement.--construct.php'>simplexmlelement.--construct.php</a>]: Entity: line 1: parser error : Space required after the Public Identifier in /home/xxxx/public_html/admin/sources/dashboard.index.inc.php on line 263"
  20. 23 entries "PHP Warning:  Security Warning: Illegal array key "amp;PHPSESSID" was detected and was removed. in /home/xxxx/public_html/classes/sanitize.class.php on line 88"
  21. 18 entries "PHP Warning:  SimpleXMLElement::__construct() [<a href='http://docs.php.net/manual/en/simplexmlelement.--construct.php'>simplexmlelement.--construct.php</a>]: Entity: line 1: parser error : SystemLiteral &quot; or ' expected in /home/xxxx/public_html/admin/sources/dashboard.index.inc.php on line 263"
  22. 18 entries "PHP Warning:  SimpleXMLElement::__construct() [<a href='http://docs.php.net/manual/en/simplexmlelement.--construct.php'>simplexmlelement.--construct.php</a>]: Entity: line 1: parser error : SYSTEM or PUBLIC, the URI is missing in /home/xxxx/public_html/admin/sources/dashboard.index.inc.php on line 263"
  23. 18 entries "PHP Warning:  String could not be parsed as XML in /home/xxxx/public_html/admin/sources/dashboard.index.inc.php on line 279"
  24. 14 entries "PHP Warning:  Invalid argument supplied for foreach() in /home/xxxx/public_html/classes/cart.class.php on line 261"
  25. 9 entries "PHP Notice:  cURL Error (22): The requested URL returned error: 500 in /home/xxxx/public_html/classes/request.class.php on line 250"
  26. 8 "PHP Warning:  Invalid Security Token in /home/xxxx/public_html/classes/sanitize.class.php on line 123"
  27. 5 entries "PHP Fatal error:  Call to a member function delete() on a non-object in /home/xxxx/public_html/classes/seo.class.php on line 294"
  28. 2 entries "PHP Warning:  Missing argument 1 for User::update(), called in /home/xxxx/public_html/classes/cubecart.class.php on line 2239 and defined in /home/xxxx/public_html/classes/user.class.php on line 784"
  29. 2 entries "PHP Warning:  Invalid argument supplied for foreach() in /home/xxxx/public_html/modules/plugins/GWorks_Privacy_Manager/hooks/class.cubecart.display_category.php(1) : eval()'d code(1) : eval()'d code(1) : eval()'d code on line 56"
  30. 1 entries "PHP Warning:  Stored session data did not match DB record. Session aborted as possible session hijack. Old IP Address: '98.209.242.167' New IP Address: '98.209.242.167' Old User Agent: 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; InfoPath.2)' New User Agent: 'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; InfoPath.2)' in /home/xxxx/public_html/classes/session.class.php on line 634"
  31. 1 entries "PHP Warning:  Stored session data did not match DB record. Session aborted as possible session hijack. Old IP Address: '108.197.45.116' New IP Address: '108.197.45.116' Old User Agent: 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.12 Safari/537.31' New User Agent: 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.32 (KHTML, like Gecko) Chrome/27.0.1423.0 Safari/537.32' in /home/xxxx/public_html/classes/session.class.php on line 634"
  32. 1 entries "PHP Warning:  Stored session data did not match DB record. Session aborted as possible session hijack. Old IP Address: '69.58.178.57' New IP Address: '69.58.178.57' Old User Agent: 'Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:14.0; ips-agent) Gecko/20100101 Firefox/14.0.1' New User Agent: 'BlackBerry9000/4.6.0.167 Profile/MIDP-2.0 Configuration/CLDC-1.1 VendorID/102 ips-agent' in /home/xxxx/public_html/classes/session.class.php on line 634"
  33. 1 entries "PHP Warning:  Security Warning: Illegal array key "amp;_g" was detected and was removed. in /home/xxxx/public_html/classes/sanitize.class.php on line 88"
  34. 1 entries "PHP Warning:  Security Warning: Illegal array key "amp;validate" was detected and was removed. in /home/xxxx/public_html/classes/sanitize.class.php on line 88"
Link to comment
Share on other sites

"It would be great of their was a guide for all admin settings, what they are and what they do."

 

In the upper-right corner of the admin screen is a link to Help. Clicking this link will bring a pop-up from the CubeCart wiki explaining* what each setting does.

 

"Perhaps confusion by the admins or myself as to how all the statuses work (pending, processing) is adding to the issue of seemingly random order statuses and the lack of transaction logs."

 

While the customer is shopping, he is adding items to a "Basket". You may also see this basket expressed as a "cart", but to reduce confusion, it's a "basket" until...

 

During the checkout process, immediately before the customer chooses the gateway (if more than one available), the basket becomes a "Cart" and it's status is Pending (waiting to be paid for). The customer can abandon his Pending Cart, or change its contents. A "cart" has an Order Id assigned.

 

Once the gateway is chosen, CubeCart communicates with the gateway and the gateway sends back information as to the state of the transaction: successful, failure, etc. If the transaction is successful, the Cart moves to the status of Processing (warehouse people tag and bag the order). Also, a response of success from the gateway places a record in the CubeCart_transaction table. As such, there will be no records here based in the movement of the order through the CubeCart statuses - only the result from the gateway.

 

This is different from additional record-keeping by CubeCart that places records of the basket/cart/order's history into the CubeCart_history table as the order moves through the various statuses.

 

* As of a few months ago when I checked, the explanations have not been updated since CC50X. There are significant new features and changes to existing features since that time. And many explanations don't explain anything at all.

Link to comment
Share on other sites

Some of the error messages I don't agree are necessary. "Cleaning Cached Files" is one. This gets reported when the admin uses the Maintenance screen to clear the cached files. Big woop.

 

A question I have is how many of these records are from CC515 and how many from CC521. It depends if the upgrade process truncates the error logs.

 

The cURL Error just started happening about 1-2 weeks ago. CubeCart now wants to check-in with Devellion to get an ordered list of the gateways and/or shipping methods used the most, to pre-sort the list of modules in the module screens. I think this was in response to a suggestion in the bug tracker.

 

Invalid Security Tokens are generally when you click the "Back" button your browser and attempt to submit a form from an expired page.

 

Stored Session Data errors are when you change something about your IP location or browser, but manage to use the same cookie. This is usually when you upgrade your browser without actually logging-out first. (Applies both to admin and customer.)

 

Illegal Array Keys are interesting. In these examples, the construction of the query string component of URLs is faulty. CC515 had a few of these. Unfortunately, the logging of this error does not reveal where the actual bad code is located.

 

Anything to do with the Dashboard, we will skip for now.

 

Unable to Load Dynamic Library is a problem your hosting provider will need to fix as this involves the actual PHP installation. It's not a problem with CubeCart.

 

Without going through each Invalid Argument message, CC515 had some, and CC521 has some others. Unless there is a new one in this list, they have been reported in the bug tracker. The consequence of these coding errors is that the behavior of a function may seem to be more restrictive than what it should be.

 

I'll take a look at the rest of the messages.

Link to comment
Share on other sites

"It would be great of their was a guide for all admin settings, what they are and what they do."

 

In the upper-right corner of the admin screen is a link to Help. Clicking this link will bring a pop-up from the CubeCart wiki explaining* what each setting does.

 

Thank you! and do I feel foolish, I've never noticed the Help link! In my defense (eh hem...) I must say neither myself nor the site operators have noticed ANY of those 6.5px links across the top of the pages. I had to add left column links as they kept asking me how to get back to the main dashboard. And I must add that I'd love a PDF or standard doc so I can view the options in whole not in a pop-up using Find for keywords.  All said it;s still a PEBKAC issue, sorry for that.

 

Per the help files (thank you again) these are the pertinent ones - I believe the second item here is leading to some of the confusion with the admins: 

 

"Order status for admin email notifications": Choose if you want the store administrators to receive the order notification email when the order is created (Pending) or after payment (Processing)

"Don't check skipped order processing email": Check this if you do not want the email sent at the "Processing" status to be sent of the order is changed directly from Pending to Complete.

 

 

"Perhaps confusion by the admins or myself as to how all the statuses work (pending, processing) is adding to the issue of seemingly random order statuses and the lack of transaction logs."

 

While the customer is shopping, he is adding items to a "Basket". You may also see this basket expressed as a "cart", but to reduce confusion, it's a "basket" until...

 

During the checkout process, immediately before the customer chooses the gateway (if more than one available), the basket becomes a "Cart" and it's status is Pending (waiting to be paid for). The customer can abandon his Pending Cart, or change its contents. A "cart" has an Order Id assigned.

 

Once the gateway is chosen, CubeCart communicates with the gateway and the gateway sends back information as to the state of the transaction: successful, failure, etc. If the transaction is successful, the Cart moves to the status of Processing (warehouse people tag and bag the order). Also, a response of success from the gateway places a record in the CubeCart_transaction table. As such, there will be records here based in the movement of the order through the CubeCart statuses - only the result from the gateway.

 

This is different from additional record-keeping by CubeCart that places records of the basket/cart/order's history into the CubeCart_history table as the order moves through the various statuses.

 

* As of a few months ago when I checked, the explanations have not been updated since CC50X. There are significant new features and changes to existing features since that time. And many explanations don't explain anything at all.

 

This is area of concern - and your description helps, thank you.

Link to comment
Share on other sites

Some of the error messages I don't agree are necessary. "Cleaning Cached Files" is one. This gets reported when the admin uses the Maintenance screen to clear the cached files. Big woop.

 

A question I have is how many of these records are from CC515 and how many from CC521. It depends if the upgrade process truncates the error logs.

 

The cURL Error just started happening about 1-2 weeks ago. CubeCart now wants to check-in with Devellion to get an ordered list of the gateways and/or shipping methods used the most, to pre-sort the list of modules in the module screens. I think this was in response to a suggestion in the bug tracker.

 

Invalid Security Tokens are generally when you click the "Back" button your browser and attempt to submit a form from an expired page.

 

Stored Session Data errors are when you change something about your IP location or browser, but manage to use the same cookie. This is usually when you upgrade your browser without actually logging-out first. (Applies both to admin and customer.)

 

Illegal Array Keys are interesting. In these examples, the construction of the query string component of URLs is faulty. CC515 had a few of these. Unfortunately, the logging of this error does not reveal where the actual bad code is located.

 

Anything to do with the Dashboard, we will skip for now.

 

Unable to Load Dynamic Library is a problem your hosting provider will need to fix as this involves the actual PHP installation. It's not a problem with CubeCart.

 

Without going through each Invalid Argument message, CC515 had some, and CC521 has some others. Unless there is a new one in this list, they have been reported in the bug tracker. The consequence of these coding errors is that the behavior of a function may seem to be more restrictive than what it should be.

 

I'll take a look at the rest of the messages.

 

All errors are from 5.21 - I upgraded on 2/18.  The 9,300+ errors were generated in the last 3.5 days. Since moving to 5.x I've been deleting the error log because it gets so large, 100K+ entries &15-20 megabytes in a month, 90% of it is from Cache files. If I didn't delete it it would eventually get us dinged by our web host for disk space so I'd definitely vote to remove the cache entries. 

Thank you for the details on the errors, very informative and helps with the concerns I had there.

Link to comment
Share on other sites

Let's get rid of the cache error. Although 7000 records in 3.5 days means something is horribly off-kilter. At that rate, something is clearing the cache once a minute. If it's not you adding/changing categories, or manually clearing the cache, we need to look into that very soon.

 

In the file /classes/cache/cache.class.php at line 134, make this statement a comment:

// trigger_error('Cleaning cached files...', E_USER_NOTICE);

 

Errors 7,8,and 9 are related, that is, it's a trickle-down problem. I'm sure I have submitted a bug report on the cause of this.

 

I found the cause of 10 and I had noticed it before, but didn't think at the time it was going to cause trouble (other than an error warning).

Link to comment
Share on other sites

"Don't check skipped order processing email": Check this if you do not want the email sent at the "Processing" status to be sent of the order is changed directly from Pending to Complete.

 

Ridiculously obtuse phrasing. An order moves from Pending (ready to be paid for) to Processing (paid and ready to be shipped) to Completed (shipped). There exists the possibility that an order could be free and digital (software paid for with a gift certificate).

 

As such, CubeCart could send that order straight from Pending to Complete. Emails (User:Order_Confirmed and Admin:New_Order) get sent at the Processing phase. But if there is no Processing phase, there are no emails.

 

So, to make sure this doesn't happen, CubeCart uses the history table to see if this order went through Processing. If not, CubeCart then looks at this setting. If this setting says Do Not Check, CubeCart will set the Order straight to Complete.

 

Why would an admin set this to Do Not Check? Well, with free digital stuff, who cares about how much gets downloaded. An admin may not want to be bothered by that.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...