Community Add-Ons
| Maintainers: | plorex |
Recover missing order info from DB
for osCommerce Online Merchant v2.2
You get an email from PayPal saying that you have received a payment, but you don't get an email from osCommerce, and it doesn't show up
as an order in your osCommerce admin section
When a customer selects to pay via PayPal, osCommerce sends the customer to PayPal's site, and your own osCommerce site has no way of
knowing the status of the transaction until the payment is completed and PayPal sends the customer back to your site. When PayPal
redirects the customer back to your site, it passes a number of values back to your site so that osCommerce can tell that the payment
has been completed.
This problem occurs when the customer completes the payment on PayPal, but doesn't let PayPal forward them back to your site.
This could occur for several reasons. Probably most often because the customer closes the window, or goes somewhere else before
their browser is redirected back to your site. Whatever the case, if the browser doesn't go back to your site, then osCommerce
does not know that the transaction was completed and therefore doesn't send you and email or mark it as complete.
Fortunately, osCommerce does keep track of what was in the customer's cart. So it is usually possible to retrieve the
contents of their cart directly from the database. Note that this may not always be possible as the customer may have gone
back to your site and added something different to their cart.
Find the customer_id
The first thing you will need to know is the customer's ID. You can find this by logging into your osCommerce admin section, then click the "customers" button on the left side and find the customer that made the purchase. When you find the customer, click on their name, then look at the URL that you are currently on. Find the cID= in the URL and the number after the equals sign is the customer ID.
Find the contents
Now that you have the customer ID, you can use it to run a database query and retrieve the content's of that members cart
you can log into phpMyAdmin using the instructions provided when your account set up. Please contact us if you need this information re-sent to you
Once inside of phpMyAdmin, click on your database name on the left pane, then click the "SQL" tab at the top. Run the following SQL and substitue the customer's id for <PUT CUSTOMERS_ID HERE>
SELECT products_description.products_name,
customers_basket.customers_basket_quantity
FROM customers_basket, products_description
WHERE customers_basket.customers_id = '<PUT CUSTOMERS_ID HERE>'
AND customers_basket.products_id = products_description.products_id
AND products_description.language_id = '1'
Then click the "Go" button and it will display the results on the next screen.
This SQL statement will find products in the shopping cart with or without product attributes. You can specify one or as many Customer IDs as you want. Just change the '000', '111', etc. to the Customer IDs you have.
SELECT cb.customers_id, cb.customers_basket_quantity, p.products_model, pd.products_name, pov.products_options_values_name
FROM customers_basket cb
JOIN products p ON p.products_id=cb.products_id
JOIN products_description pd ON pd.products_id=cb.products_id
LEFT JOIN customers_basket_attributes cba ON cba.products_id=cb.products_id
LEFT JOIN products_options_values pov ON cba.products_options_value_id=pov.products_options_values_id
WHERE cb.customers_id IN('000','111','222')
AND pd.language_id = '1'
ORDER BY cb.customers_id
