keat Posted April 6, 2016 Posted April 6, 2016 I've come back to work today and found an order from a few days ago consisting of about 6 lines with no product code, descriptions or prices. it goes along the lines 2 x - (0.00) 1 x - (0.00) etc If I look at the order inventory, it shows all these items as having a product ID of 0, but my first product ID is 27. I checked the order confirmation email and this shows the same. I've emailed the customer to see if he did anything, or could shed any light on this, any ideas what might have happened ? Quote
bsmither Posted April 6, 2016 Posted April 6, 2016 In my efforts to try to find where this is happening, I've localized it to some code where a query is made to get product data, but inappropriate data is being returned. I do not yet know why or exactly when this request for data is initiated. Quote
keat Posted April 6, 2016 Author Posted April 6, 2016 I have seen an order on our internal system, so I assume that he maybe called it in instead. If i can find what it is he exactly ordered, would it be worth me trying to try different search combinations ? Quote
ayz1 Posted April 6, 2016 Posted April 6, 2016 I've had a similar problem since upgrading from V3 to V6. If the order email should have shown products in these blank lines did they go out of stock on that order? I'm only getting the blank lines where a product has gone to 0 stock level. If anything is still in stock after the order is placed then it shows up. Also do you reduce stock levels at Pending or Completed? Mine is at Pending so wondering if the issue is the same. Just had the attached order come through. Quote
Dirty Butter Posted April 6, 2016 Posted April 6, 2016 There used to be a choice in Admin as to whether you wanted to save cart details for in progress orders (to make it easier for a customer to return and finish an order????). Perhaps making that standard has had unintended consequences that should be re-considered. Quote
bsmither Posted April 6, 2016 Posted April 6, 2016 Missing items in emails was a problem I worked on with CC528 back in May 2014. I'm sure I solved it and posted a Sales Support Ticket to Devellion about it. (This was before the Github, and these tickets are probably trashed by now.) Quote I have consistently come across this anomaly as it relates to products with stock levels. That is, there is no problem when the item's details has "Use Stock Levels" disabled. There is the problem when the item's details has "Use Stock Levels" enabled with a stock level of 1 (a 'one-of-a-kind' item). The Store Settings, Stock tab, 'Reduce Stock Levels' is set to "Pending". I have identified a problematic sequence of actions in the Cubecart code. Basically, the stock level is reduced to zero, THEN details about the item is fetched from the database and the database query includes the requirement that there be stock available. Therefore, zero stock, the item is not available, no details are provided to the code, and the code supplies a blank to the email for that item. Quote
Dirty Butter Posted April 6, 2016 Posted April 6, 2016 Is there a new GitHub post about this? I couldn't find one, but hopefully I just didn't know what to look for. Quote
bsmither Posted April 6, 2016 Posted April 6, 2016 The following is the fix I had for CC528. The affected function has not changed since. /classes/order.class.php :: public function getOrderDetails($order_id) Function starts near line 218 for CC6011: Find in the function: foreach ($this->_order_inventory as $item) { if ($item['product_id']>0) { $product = array_merge($GLOBALS['catalogue']->getProductData($item['product_id']), $item); Change to: foreach ($this->_order_inventory as $item) { if ($item['product_id']>0) { $product = $item; // array_merge($GLOBALS['catalogue']->getProductData($item['product_id']), $item); For the array_merge (no longer involved), if Catalogue->getProductData() returns false, as opposed to an empty array, then $item cannot be merged onto it. Thus, $product is nothing and the process that called it gets nothing. Catalogue->getProductData() will return an array or false. It will return false if there is not at least one enabled category assigned to the product. Also, if the product's main stock level is zero and the product's main stock level is being managed ("use stock level" = 1). I may soon have a better solution. Quote
keat Posted April 7, 2016 Author Posted April 7, 2016 We don't use stock levels. Every single item in my cart is marked as stock level = 0, with 'use stock levels' unchecked. If an item goes out of stock, we manually enable 'use stock levels', rendering it 'out of stock', and no longer available for purchase. so I'm not sure at this stage if what happened to me is related to anything going out of stock. As a matter of atleast trying something, I have changed 'reduce stock' at completed, so I'll monitor. Also looking in order_inventory, it seems that this is a little more frequent than I'd originally thought. Typically, the sales staff failed to mention this anomoly. I've attached a copy of the printed invoice for the record. Quote
keat Posted April 7, 2016 Author Posted April 7, 2016 Also another more recent one, however, this has only affected the last 3 items on the order. Quote
keat Posted April 7, 2016 Author Posted April 7, 2016 A little more info if it helps shed any light on the matter. In this attached image we can see customer JACEK, placed a successful order at 21:41. Then 20 minutes later in quick succession, 4 orders all with zero value. All these orders have 23 items, so I'm assuming the 4 rogue orders are related to the sucessful order. Maybe the session wasn't cleared down correctly, or could it be cache related. Ignore 'Order Complete', These have all been modified for statistical reasons at the end of the month. Quote
keat Posted April 25, 2016 Author Posted April 25, 2016 This happened again yesterday. Customer placed an order with 20 products, and then around 40 minutes later, the site took another order from the same customer, with 20 products, but all blank with zero value. Now the strange thing, is the blank order was in reverse. eg. On the good order, products went along the lines 5 x prod1 2 x prod2 3 x prod3 1 x prod4 1 x prod 5 The blank order came 1 x blank 1 x blank 3 x blank 2 x blank 5 x blank I'm still assuming that it has something to do with cookies ??, but i'm confused as to why it should come out in reverse ??? Quote
bsmither Posted April 25, 2016 Posted April 25, 2016 I am convinced the line item having no data is the result of having 1 item in stock at the time the order is being placed, and the store setting has "Reduce Stock at Pending". If you haven't made the edit I've suggested above, please do so. Quote
keat Posted April 26, 2016 Author Posted April 26, 2016 We don't use stock levels. It's either in stock or it's not. This is performed manually by staff, the cart doesn't handle adjustments stock at all. Also, in an attempt to try and figure out what was happening, I changed 'Reduce Stock Levels' to when order is complete, which again is a manual process, about 5 weeks ago. Quote
keat Posted May 5, 2016 Author Posted May 5, 2016 And another one. Customer placed an order at 07:18, then at 07:20 the same order was marked in the database but with zero values. On this occasion, the order went from 'Pending' on the correct order, to 'Processing' on the empty order, where he used the print order form. Does no one have a clue what could be causing this ?, it's starting to drive me insane. Note how the contents are also in reverse. Quote
ayz1 Posted May 5, 2016 Posted May 5, 2016 On 25/04/2016 at 2:30 PM, bsmither said: I am convinced the line item having no data is the result of having 1 item in stock at the time the order is being placed, and the store setting has "Reduce Stock at Pending". If you haven't made the edit I've suggested above, please do so. Have you tried the fix bsmither provided? Quote
bsmither Posted May 5, 2016 Posted May 5, 2016 From your details above, we can theorize the customer clicked the "Back" button of the browser. We can theorize this did not kill references to the order (same order number for 7:18 and 7:20?), but now stock levels are zero. I recall something was posted in the Github issue tracker. Quote
keat Posted May 6, 2016 Author Posted May 6, 2016 On 05/05/2016 at 10:19 AM, ayz1 said: Have you tried the fix bsmither provided? We don't use stock levels. All our products are marked as 'in Stock' with infinate quantity. Only when a product physically goes out of stock, do we then manually mark it out of stock, also, I have stock set to reduce at 'Complete', so again, a manual process. So for certain I can rule this out. I also assume that either the customer clicked the back button, or his browser cache did not clear down, however, I've tried many many times and can't get this to fail. Also if you notice the blank order, it appears to be in reverse order, which is even more confusing. ?? Quote
Dirty Butter Posted May 6, 2016 Posted May 6, 2016 If the back button is causing this, isn't there a javascript way to prevent a site user from being able to use the back button? I sometimes find sites where the back button can't be used, ie., the user has to use the navigation of the site. Quote
keat Posted May 9, 2016 Author Posted May 9, 2016 certainly at the checkout stages this would be good. Quote
keat Posted May 13, 2016 Author Posted May 13, 2016 and another one today, only this time a little different. Quote
Mike MacKechnie Posted June 10, 2016 Posted June 10, 2016 We had a similar, if not the same problem recently. Here is an email from a French customer; we have added a zero postage rate for basket wights of zero grams as a fix: From: Sent: Friday, June 03, 2016 5:59 PM To: [email protected] Subject: Mistake in my order Hello A problem with : Votre commande: #160603-162813-8066 - En attente Historique de vos commandes Information client Adresse de facturation B;;;; Ga;;;;; 41 r;; d; M;;;;l L;; Saint Maurice Val de Marne France Adresse de livraison B;;;; Ga;;;;; 41 r;; d; M;;;;l L;; Saint Maurice Val de Marne France Récapitulatif de la commande PrixQuantitéProduit £0.001(£0.00) £0.00Sous-total £4.32Expédition £0.86Charges totales £5.18Montant total Imprimer récépissé I choose this book but apparently my article was not registered when processing the command, Quote
keat Posted June 14, 2016 Author Posted June 14, 2016 Hi Mike. I'm a little confused over the basket weight thing. Are you using weight based rates ?, we use subtotal based rates, so weight doesn't come in to it as far as I can see. Are you confident that whatever you did, resolved this issue ? Quote
Mike MacKechnie Posted July 6, 2016 Posted July 6, 2016 On 6/14/2016 at 11:40 AM, keat said: Hi Mike. I'm a little confused over the basket weight thing. Are you using weight based rates ?, we use subtotal based rates, so weight doesn't come in to it as far as I can see. Are you confident that whatever you did, resolved this issue ? I can't say that this has resolved the issue, although we haven't had it happen again (so far). Yes we are using weight based rates, as we have a number of different products in our store (Books, CD's, etc.). What I have done won't fix the problem of having a £0.00 sub-total, but it will prevent the customer being charged postage for a non-existent order. Quote
harrisorganic Posted October 13, 2016 Posted October 13, 2016 I had a similar issue, and made the changes to /classes/order.class.php with success. Thanks Brian. Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.