Jump to content
  • Checkout
  • Login
  • Get in touch

osCommerce

The e-commerce.

weird DB issue , order missing or duplicate


qtwrk

Recommended Posts

Hi,

 

my friend has a oscommerce site with some customization I think , by reading from PHP script , the programmer who built it is no long

aler in contact with him

recently he wants to migrate hosting from his current provider due resources restriction on shared hosting ,  in which I happen to have an OVH server , so I migrated his site over my server ,  on the surface it works fine 

 

but from time to time ,  the admin area is having weird issue 

 

1)    sometimes the order will be duplicated , the amount/product/quantity are exact same but timestamp is like 1 - 2 seconds difference  ,   not sure if it's coincidence ,  it seems the chance for duplication is multiple times higher with CloudFlare proxy , but seems less happens without CF

 

2)   sometimes after the order edit ,  the order will disappear from the order list  ,  it is still in the database ,  I checked the tables , and the column 

order_status = 0

currency = empty

currency_value = 0.0000

 

once I manually update them to 1 , EUR , 1.0000 respectively , the order shows up in the order list again , but it won't allow him to do any edit ,  so far I have been manually edit it directly from database for him as temp workaround, but this is not exactly a good solution 

 

 

my current is MariaDB 10.5.17 , where his previous provider was 10.5.16  ,   is it even possible for a minor version difference could cause all of these ?  

 

I also carefully look through the database settings by all the variables I can see from phpMyAdmin ,  pretty much all the same except I have some higher cache size 

also attempted to create same PHP version/extension as identical as possible , but seems none of these have any positive effect ,  the issue still happens from time to time 

 

so I have come here to seek help,   appreciate any help or hint where I can look into  :)

 

Best regards,

 

 

Link to comment
Share on other sites

2 hours ago, qtwrk said:

column 


order_status = 0


This seems like something caused by an expired session. Pressing save on the order edit with an expired session causes problems like this. Can be fixed by either prolonging the session, make sure it does not run out or renew it in a new tab before pressing save.

 

For the other issue, I have no guesses.

 

//Daniel 

Link to comment
Share on other sites

6 hours ago, Kofod said:

This seems like something caused by an expired session. Pressing save on the order edit with an expired session causes problems like this. Can be fixed by either prolonging the session, make sure it does not run out or renew it in a new tab before pressing save.

 

For the other issue, I have no guesses.

 

//Daniel 

thanks for the hint , would you please be more specific how to prolong the session ?   

 

---------

 

actually found in forum search 

$SESS_LIFE = 12000;

increased it admin session to 12000 seconds , as well as session.gc_maxlifetime  in php.ini ,  see if it helps 

Link to comment
Share on other sites

7 hours ago, Kofod said:

This seems like something caused by an expired session. Pressing save on the order edit with an expired session causes problems like this. Can be fixed by either prolonging the session, make sure it does not run out or renew it in a new tab before pressing save.

 

For the other issue, I have no guesses.

 

//Daniel 

There is a long standing workaround for this - add an entry in the orders_status table with orders_status_id 0, language id the one you use in admin (e.g. 1) and something like 'error reset' as the orders_status_name.

Then the order doesn't disappear from the list in admin and you can reset it.

Contact me for work on updating existing stores - whether to Phoenix or the new osC when it's released.

Looking for a payment or shipping module? Maybe I've already done it.

Working on generalising bespoke solutions for Quickbooks integration, Easify integration and pay4later (DEKO) integration at 2.3.x

Link to comment
Share on other sites

Order duplication is usually when an impatient customer is on a slow connection and presses 'Confirm Order' more than once on checkout_confirmation.

There are UI-based fixes for this which disable the button after the first click but exactly what will work depends on your implementation.

Contact me for work on updating existing stores - whether to Phoenix or the new osC when it's released.

Looking for a payment or shipping module? Maybe I've already done it.

Working on generalising bespoke solutions for Quickbooks integration, Easify integration and pay4later (DEKO) integration at 2.3.x

Link to comment
Share on other sites

3 hours ago, BrockleyJohn said:

There is a long standing workaround for this - add an entry in the orders_status table with orders_status_id 0, language id the one you use in admin (e.g. 1) and something like 'error reset' as the orders_status_name.

Then the order doesn't disappear from the list in admin and you can reset it.

thanks for the hint , I will create a stage site for this ,  but one thing that bothers me is that , even I manually update the status/currency to the correct one , after that ,  edit it is still no possible,  it doesn't save the change ,  could it be me not properly update the status and had to gone through the system itself ?

Link to comment
Share on other sites

13 hours ago, BrockleyJohn said:

There is a long standing workaround for this - add an entry in the orders_status table with orders_status_id 0, language id the one you use in admin (e.g. 1) and something like 'error reset' as the orders_status_name.

Then the order doesn't disappear from the list in admin and you can reset it.

Hi,

 

I applied the order_status_id = 0 , it shows up , however when I try to edit to to other status , it gives me 

 

1366 - Incorrect decimal value: '' for column `db_name`.`orders`.`currency_value` at row 1

I assume this because the currency_value displays 0.00000 ,  but it seem does not let me to edit that field ,    should I forcefully make it default to 1 ?    hope it won't break anything , but seems he runs on EUR only anyway.

Link to comment
Share on other sites

3 hours ago, qtwrk said:

Hi,

 

I applied the order_status_id = 0 , it shows up , however when I try to edit to to other status , it gives me 

 

1366 - Incorrect decimal value: '' for column `db_name`.`orders`.`currency_value` at row 1

I assume this because the currency_value displays 0.00000 ,  but it seem does not let me to edit that field ,    should I forcefully make it default to 1 ?    hope it won't break anything , but seems he runs on EUR only anyway.

If it's displaying / updating the currency value field then this isn't the usual admin/orders.php file. Perhaps edit_orders.php which is an addon?

Anyway you've a couple of options here. If he only has one currency  then the currency value should always be 1 so you can force set it to 1 in the code or remove any updates to it altogether; either approach would work.

Contact me for work on updating existing stores - whether to Phoenix or the new osC when it's released.

Looking for a payment or shipping module? Maybe I've already done it.

Working on generalising bespoke solutions for Quickbooks integration, Easify integration and pay4later (DEKO) integration at 2.3.x

Link to comment
Share on other sites

On 10/3/2022 at 8:48 AM, BrockleyJohn said:

If it's displaying / updating the currency value field then this isn't the usual admin/orders.php file. Perhaps edit_orders.php which is an addon?

Anyway you've a couple of options here. If he only has one currency  then the currency value should always be 1 so you can force set it to 1 in the code or remove any updates to it altogether; either approach would work.

thanks again ,  so far this workaround seems doing good ,   much appreciated : )

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...