Double sale
-
Hi,
Can you help, please!
I had a product for sale. So quantity was set as 1 (backorders not allowed).
But when I went to check my orders I saw that I have two orders with this product. Both were paid via stripe gateway. And the time of orders was the same: 7:00 pm
It seems to be that both customers sent payment at the same time. Both payments were accepted and I sold two products instead of one.Now I worry about this issue. How I can prevent this issue in the future? It is highly important to me.
I use specific a way to sell. I guess this may cause the same thing in the future. I’m an artist and I add a portion of new products to my shop from time to time. I always notify about shop update time in advance. So, customers are getting ready for this time and try to place an order as quickly as they can. So, they still can send payment synchronically. I worry, that I can face the same situation in the future. I understand that I can just make a refund. But my customers often wait long months, sometimes even years to purchase a piece. So this would be really disappointing moment. Just saying sorry and making a refund is not a good way in my case… This problem affects on the trust to my store. In addition, this is a challenge for me. Because I had to make a second piece, which I had not planned, and the customer had to wait.
I hope you can help to resolve this issue.
Thanks!-
This topic was modified 3 years, 1 month ago by
handmadehome.
The page I need help with: [log in to see the link]
-
This topic was modified 3 years, 1 month ago by
-
Hi @handmadehome,
I understand that you had a product with a stock quantity of 1 that happened to be purchased at the same time by two customers. This double sale must have inconvenienced you and one of your customers, especially given the nature of your products.
We’d like to check further on your setup as well as check what happened in both orders so as to see the best way to proceed.
Therefore, could you kindly share with us the following:
* Your System Status Report from WP-Admin → WooCommerce → Status
* Timestamps – kindly go to each of the orders and check the order notes section to access the timestamps. Hover and share with us the full timestamps of when the Stripe charge happened and also the product quantity reduced.
* A screenshot of the order details page for the two orders in a way we can see the order notes clearly. I recommend obfuscating all customer details before sharing this.I recommend https://snipboard.io for sharing screenshots – please follow the instructions on the page, then paste the URL in this your reply. It works with Chrome, Firefox, Safari, and Edge.
Thanks!
Hi @abwaita
### WordPress Environment ### WordPress address (URL): https://www.shop.handmadehome.me Site address (URL): https://www.shop.handmadehome.me WC Version: 6.1.0 REST API Version: ? 6.1.0 WC Blocks Version: ? 6.7.1 Action Scheduler Version: ? 3.4.0 WC Admin Version: ? 3.0.3 Log Directory Writable: ? WP Version: 5.8.3 WP Multisite: – WP Memory Limit: 512 MB WP Debug Mode: – WP Cron: ? Language: en_US External object cache: ? ### Server Environment ### Server Info: Apache/2.4.25 (Debian) PHP Version: 7.4.27 PHP Post Max Size: 100 MB PHP Time Limit: 300 PHP Max Input Vars: 10000 cURL Version: 7.52.1 OpenSSL/1.0.2u SUHOSIN Installed: – MySQL Version: 5.5.5-10.4.20-MariaDB-1:10.4.20+maria~stretch-log Max Upload Size: 100 MB Default Timezone is UTC: ? fsockopen/cURL: ? SoapClient: ? DOMDocument: ? GZip: ? Multibyte String: ? Remote Post: ? Remote Get: ? ### Database ### WC Database Version: 5.9.0 WC Database Prefix: wp_ Total Database Size: 93.72MB Database Data Size: 81.84MB Database Index Size: 11.88MB wp_woocommerce_sessions: Data: 4.02MB + Index: 0.11MB + Engine InnoDB wp_woocommerce_api_keys: Data: 0.02MB + Index: 0.03MB + Engine InnoDB wp_woocommerce_attribute_taxonomies: Data: 0.02MB + Index: 0.02MB + Engine InnoDB wp_woocommerce_downloadable_product_permissions: Data: 0.02MB + Index: 0.06MB + Engine InnoDB wp_woocommerce_order_items: Data: 0.05MB + Index: 0.02MB + Engine InnoDB wp_woocommerce_order_itemmeta: Data: 0.17MB + Index: 0.16MB + Engine InnoDB wp_woocommerce_tax_rates: Data: 0.02MB + Index: 0.06MB + Engine InnoDB wp_woocommerce_tax_rate_locations: Data: 0.02MB + Index: 0.03MB + Engine InnoDB wp_woocommerce_shipping_zones: Data: 0.02MB + Index: 0.00MB + Engine InnoDB wp_woocommerce_shipping_zone_locations: Data: 0.02MB + Index: 0.03MB + Engine InnoDB wp_woocommerce_shipping_zone_methods: Data: 0.02MB + Index: 0.00MB + Engine InnoDB wp_woocommerce_payment_tokens: Data: 0.02MB + Index: 0.02MB + Engine InnoDB wp_woocommerce_payment_tokenmeta: Data: 0.02MB + Index: 0.03MB + Engine InnoDB wp_woocommerce_log: Data: 0.02MB + Index: 0.02MB + Engine InnoDB wp_actionscheduler_actions: Data: 2.02MB + Index: 1.08MB + Engine InnoDB wp_actionscheduler_claims: Data: 0.02MB + Index: 0.02MB + Engine InnoDB wp_actionscheduler_groups: Data: 0.02MB + Index: 0.02MB + Engine InnoDB wp_actionscheduler_logs: Data: 2.52MB + Index: 1.70MB + Engine InnoDB wp_adtribes_my_conversions: Data: 0.02MB + Index: 0.02MB + Engine InnoDB wp_bv_fw_requests: Data: 0.02MB + Index: 0.00MB + Engine InnoDB wp_bv_ip_store: Data: 0.20MB + Index: 0.11MB + Engine InnoDB wp_bv_lp_requests: Data: 0.02MB + Index: 0.00MB + Engine InnoDB wp_commentmeta: Data: 0.02MB + Index: 0.03MB + Engine InnoDB wp_comments: Data: 0.17MB + Index: 0.16MB + Engine InnoDB wp_gdpr_cc_options: Data: 0.02MB + Index: 0.00MB + Engine InnoDB wp_links: Data: 0.02MB + Index: 0.02MB + Engine InnoDB wp_mailchimp_carts: Data: 0.02MB + Index: 0.00MB + Engine InnoDB wp_mailchimp_jobs: Data: 0.02MB + Index: 0.00MB + Engine InnoDB wp_mclean_refs: Data: 0.19MB + Index: 0.00MB + Engine InnoDB wp_mclean_scan: Data: 0.02MB + Index: 0.02MB + Engine InnoDB wp_ms_snippets: Data: 0.02MB + Index: 0.00MB + Engine InnoDB wp_options: Data: 2.39MB + Index: 0.25MB + Engine InnoDB wp_plugin_notes_plus: Data: 0.02MB + Index: 0.00MB + Engine InnoDB wp_postmeta: Data: 22.55MB + Index: 4.97MB + Engine InnoDB wp_posts: Data: 5.52MB + Index: 0.69MB + Engine InnoDB wp_pum_subscribers: Data: 0.02MB + Index: 0.06MB + Engine InnoDB wp_say_what_strings: Data: 0.02MB + Index: 0.00MB + Engine InnoDB wp_sfa_abandoned_carts: Data: 1.52MB + Index: 0.00MB + Engine InnoDB wp_smush_dir_images: Data: 0.02MB + Index: 0.03MB + Engine InnoDB wp_snippets: Data: 0.05MB + Index: 0.00MB + Engine InnoDB wp_termmeta: Data: 0.05MB + Index: 0.03MB + Engine InnoDB wp_terms: Data: 0.05MB + Index: 0.03MB + Engine InnoDB wp_term_relationships: Data: 0.13MB + Index: 0.08MB + Engine InnoDB wp_term_taxonomy: Data: 0.05MB + Index: 0.03MB + Engine InnoDB wp_tm_taskmeta: Data: 0.02MB + Index: 0.03MB + Engine InnoDB wp_tm_tasks: Data: 0.02MB + Index: 0.02MB + Engine InnoDB wp_usermeta: Data: 1.52MB + Index: 0.59MB + Engine InnoDB wp_users: Data: 0.06MB + Index: 0.05MB + Engine InnoDB wp_wc_admin_notes: Data: 0.02MB + Index: 0.00MB + Engine InnoDB wp_wc_admin_note_actions: Data: 0.02MB + Index: 0.02MB + Engine InnoDB wp_wc_category_lookup: Data: 0.02MB + Index: 0.00MB + Engine InnoDB wp_wc_customer_lookup: Data: 0.02MB + Index: 0.03MB + Engine InnoDB wp_wc_download_log: Data: 0.02MB + Index: 0.03MB + Engine InnoDB wp_wc_order_coupon_lookup: Data: 0.02MB + Index: 0.03MB + Engine InnoDB wp_wc_order_product_lookup: Data: 0.02MB + Index: 0.06MB + Engine InnoDB wp_wc_order_stats: Data: 0.02MB + Index: 0.05MB + Engine InnoDB wp_wc_order_tax_lookup: Data: 0.02MB + Index: 0.03MB + Engine InnoDB wp_wc_product_meta_lookup: Data: 0.05MB + Index: 0.09MB + Engine InnoDB wp_wc_rate_limits: Data: 0.02MB + Index: 0.02MB + Engine InnoDB wp_wc_reserved_stock: Data: 0.02MB + Index: 0.00MB + Engine InnoDB wp_wc_tax_rate_classes: Data: 0.02MB + Index: 0.02MB + Engine InnoDB wp_wc_webhooks: Data: 0.02MB + Index: 0.02MB + Engine InnoDB wp_woocommerce_bolt_checkout_sessions: Data: 0.02MB + Index: 0.02MB + Engine InnoDB wp_woo_ua_auction_log: Data: 0.02MB + Index: 0.00MB + Engine InnoDB wp_wpforms_tasks_meta: Data: 0.05MB + Index: 0.00MB + Engine InnoDB wp_wpml_mails: Data: 35.52MB + Index: 0.00MB + Engine InnoDB wp_xyz_ips_short_code: Data: 0.02MB + Index: 0.00MB + Engine InnoDB wp_yoast_indexable: Data: 1.52MB + Index: 0.67MB + Engine InnoDB wp_yoast_indexable_hierarchy: Data: 0.06MB + Index: 0.08MB + Engine InnoDB wp_yoast_migrations: Data: 0.02MB + Index: 0.02MB + Engine InnoDB wp_yoast_primary_term: Data: 0.02MB + Index: 0.03MB + Engine InnoDB wp_yoast_seo_links: Data: 0.02MB + Index: 0.03MB + Engine InnoDB wp_yoast_seo_meta: Data: 0.45MB + Index: 0.00MB + Engine InnoDB ### Post Type Counts ### amn_mi-lite: 1 amn_wpforms-lite: 1 attachment: 3582 br_notice: 1 custom_css: 1 feedback: 2 jetpack_migration: 2 jp_img_sitemap: 6 jp_img_sitemap_index: 3 jp_sitemap: 3 jp_sitemap_master: 3 nav_menu_item: 17 oembed_cache: 4 page: 31 popup: 7 popup_theme: 8 post: 3 product: 215 product_variation: 55 psppnotif_workflow: 4 revision: 49 seedprod: 1 shop_coupon: 21 shop_order: 129 shop_order_refund: 5 wpautoterms_page: 3 wpforms: 8 wp_block: 3 xlwcty_thankyou: 1 yith-wcbm-badge: 1 ### Security ### Secure connection (HTTPS): ? Hide errors from visitors: ? ### Active Plugins (54) ### Automated UPS Shipping: by HITShipo – 3.2.1 AfterShip Tracking - All-In-One WooCommerce Order Tracking (Free plan available): by AfterShip – 1.14.1 Akismet Anti-Spam: by Automattic – 4.2.1 Auto Image Attributes From Filename With Bulk Updater: by Arun Basil Lal – 2.1 Breeze: by Cloudways – 2.0.1 Code Snippets: by Code Snippets Pro – 2.14.3 Customer Reviews for WooCommerce: by CusRev – 4.35 Decorator - WooCommerce Email Customizer: by WebToffee – 1.1.2 Disable WooCommerce Bloat: by ospiotr – 2.6.1 Easy Theme and Plugin Upgrades: by Chris Jean – 2.0.2 Facebook for WooCommerce: by Facebook – 2.6.9 GDPR Cookie Compliance: by Moove Agency – 4.7.2 Heartbeat Control by WP Rocket: by WP Rocket – 2.0 Social Login Buttons by Heateor: by Team Heateor – 1.2.10 Homepage Control: by WooThemes – 2.0.3 Insert PHP Code Snippet: by xyzscripts.com – 1.3.2 Jetpack: by Automattic – 10.5-a.3 Kadence WooCommerce Email Designer: by Kadence WP – 1.4.10 Mailchimp for WooCommerce: by Mailchimp – 2.5.4 Mailgun: by Mailgun – 1.7.9 Max Mega Menu - StoreFront Integration: by megamenu.com – 1.0.3 Max Mega Menu: by megamenu.com – 2.9.5 Plugin Notes Plus: by Jamie Bergen – 1.2.6 Popup Maker: by Popup Maker – 1.16.3 Product page shipping calculator for WooCommerce: by PI Websolution – 1.2.43 Regenerate Thumbnails: by Alex Mills (Viper007Bond) – 3.1.5 Say What?: by Ademti Software – 2.0.2 Server IP & Memory Usage Display: by Apasionados Apasionados del Marketing – 2.1.0 Social Icons for WooCoomerce Emails: by Luiz Bills – 2.1.0 Social Icons Widget & Block by WPZOOM: by WPZOOM – 4.2.4 Title Toggle for Storefront Theme: by Wooassist – 1.2.4 Super Socializer: by Team Heateor – 7.13.26 Temporary Login Without Password: by StoreApps – 1.7.1 Checkout Field Editor for WooCommerce: by ThemeHigh – 1.5.3 Woo Custom Stock Status: by Softound Solutions – 1.3.0 WooCommerce Blocks: by Automattic – 6.7.1 Woo Login Redirect: by WP Doctor – 2.2.4 Preview E-mails for WooCommerce: by Digamber Pradhan – 2.0.1 Product Feed PRO for WooCommerce: by AdTribes.io – 11.1.4 NextMove Lite - Thank You Page for WooCommerce: by XLPlugins – 2.15.0 WooCommerce PayPal Checkout Gateway: by WooCommerce – 2.1.3 WooCommerce Stripe Gateway: by WooCommerce – 6.0.0 Booster for WooCommerce: by Pluggabl LLC – 5.5.0 WooCommerce Login Popup and Shortcodes: by Phpbits Creative Studio – 1.0.2 WooCommerce PayPal Payments: by WooCommerce – 1.6.4 WooCommerce: by Automattic – 6.1.0 Yoast SEO: by Team Yoast – 17.9 WP 2FA - Two-factor authentication for WordPress: by WP White Security – 2.1.0 WP Crontrol: by John Blackbourn & crontributors – 1.12.0 WP Mail Logging: by Wysija – 1.10.2 WP Rollback: by Impress.org – 1.7.1 Smush Pro: by WPMU DEV – 3.9.3 WPForms Lite: by WPForms – 1.7.2 YITH WooCommerce Badge Management: by YITH – 2.1.0 ### Inactive Plugins (21) ### Cart Notices for WooCommerce: by BeRocket – 3.5.7.2 Category Banner Management for Woocommerce: by theDotstore – 2.2.2 Easy Widget Columns: by Alexis J. Villegas – 1.2.4 ELEX WooCommerce Bulk Edit Products, Prices & Attributes (Basic): by ELEXtensions – 1.2.2 Export Media Library: by Mass Edge Inc. – 3.0.1 Flexible Shipping: by WP Desk – 4.11.1 Gallery Custom Links: by Jordy Meow – 2.0.6 Genesis Widget Column Classes: by Jory Hogeveen – 1.3.1 Hello Dolly: by Matt Mullenweg – 1.7.2 MalCare Security - Free Malware Scanner, Protection & Security for WordPress: by MalCare Security – 4.72 Media Cleaner: by Jordy Meow – 6.2.7 Order / Coupon / Subscription Export Import Plugin for WooCommerce (BASIC): by WebToffee – 2.1.6 Print Invoice & Delivery Notes for WooCommerce: by Tyche Softwares – 4.6.4 Product CSV Import Export (BASIC): by WebToffee – 2.1.4 Product Input Fields for WooCommerce: by Tyche Softwares – 1.3.1 Product Reviews Import Export (Basic): by WebToffee – 1.4.4 Query Monitor: by John Blackbourn – 3.8.2 Simple checkout page donations/tips for WooCommerce: by Rynaldo Stoltz – 1.3 Ultimate WooCommerce Auction Pro: by Nitesh Singh – 1.2.8 WooCommerce Customizer: by SkyVerge – 2.7.4 WooCommerce Shipping & Tax: by WooCommerce – 1.25.20 ### Dropin Plugins (2) ### advanced-cache.php: advanced-cache.php object-cache.php: Object Cache Pro (Drop-in) ### Must Use Plugins (1) ### Object Cache Pro (MU): by Rhubarb Group – 1.14.1 ### Settings ### API Enabled: – Force SSL: – Currency: USD (US$) Currency Position: left Thousand Separator: , Decimal Separator: . Number of Decimals: 2 Taxonomies: Product Types: auction (auction) external (external) grouped (grouped) simple (simple) variable (variable) Taxonomies: Product Visibility: exclude-from-catalog (exclude-from-catalog) exclude-from-search (exclude-from-search) featured (featured) outofstock (outofstock) rated-1 (rated-1) rated-2 (rated-2) rated-3 (rated-3) rated-4 (rated-4) rated-5 (rated-5) Connected to WooCommerce.com: – ### WC Pages ### Shop base: #5 - /shop/ Cart: #6 - /cart/ Checkout: #7 - /checkout/ My account: #8 - /my-account/ Terms and conditions: ? Page not set ### Theme ### Name: Storefront Version: 3.9.1 Author URL: https://woocommerce.com/ Child Theme: ? – If you are modifying WooCommerce on a parent theme that you did not build personally we recommend using a child theme. See: How to create a child theme WooCommerce Support: ? ### Templates ### Overrides: – ### WooCommerce PayPal Payments ### Onboarded: ? Shop country code: CZ WooCommerce currency supported: ? PayPal card processing available in country: – Pay Later messaging available in country: – Webhook status: – Vault enabled: ? Logging enabled: – Reference Transactions: – Used PayPal Checkout plugin: ? ### Action Scheduler ### Complete: 3,165 Oldest: 2021-12-20 12:08:12 +0400 Newest: 2022-01-19 18:06:14 +0400 Pending: 10 Oldest: 2022-01-19 18:21:14 +0400 Newest: 2022-01-21 07:29:22 +0400 ### Status report information ### Generated at: 2022-01-19 18:10:35 +04:00
Hello @handmadehome
Thanks for getting back to us with the information requested.
Reviewing both orders, the time is exactly the same. However, I see Order #19004 shows a
Stock levels reduced: 0 > -1
note, this is pretty odd considering backorders are not allowed.The first recommendation will be to verify your DataBase for the following:
in the options data base that the option_value of option_name ‘woocommerce_manage_stock’ is ‘yes’ and in the postmeta database the meta_value of the meta_key ‘_manage_stock’ is ‘yes’ for the product
Additionally, I’d recommend updating the WooCommerce DataBase to the latest version. I see a mismatch here:
WC Version: 6.1.0 /WC Database Version: 5.9.0
We recommend creating a full backup before running this.The update can be done from WooCommerce> Status> Tools> Update DataBase.
Do check for the options mentioned above with the new update.
To test if this fixes the issue, you can create a test product with a 1 stock quantity and attempt to make the purchase at the same time from different browsers/mobile to see if it can be reproduced.
Hi, I’ve updated DataBase and made a test. Unfortunately, the double sale has happened again:(
I just not sure how to check this:
The first recommendation will be to verify your DataBase for the following:
in the options data base that the option_value of option_name ‘woocommerce_manage_stock’ is ‘yes’ and in the postmeta database the meta_value of the meta_key ‘_manage_stock’ is ‘yes’ for the product
Where I can find options?
So here are details of the test:
And orders
### WordPress Environment ### WordPress address (URL): https://www.shop.handmadehome.me Site address (URL): https://www.shop.handmadehome.me WC Version: 6.1.0 REST API Version: ? 6.1.0 WC Blocks Version: ? 6.7.1 Action Scheduler Version: ? 3.4.0 WC Admin Version: ? 3.0.3 Log Directory Writable: ? WP Version: ? 5.8.3 - There is a newer version of WordPress available (5.9) WP Multisite: – WP Memory Limit: 512 MB WP Debug Mode: – WP Cron: ? Language: en_US External object cache: ? ### Server Environment ### Server Info: Apache/2.4.25 (Debian) PHP Version: 7.4.27 PHP Post Max Size: 100 MB PHP Time Limit: 300 PHP Max Input Vars: 10000 cURL Version: 7.52.1 OpenSSL/1.0.2u SUHOSIN Installed: – MySQL Version: 5.5.5-10.4.20-MariaDB-1:10.4.20+maria~stretch-log Max Upload Size: 100 MB Default Timezone is UTC: ? fsockopen/cURL: ? SoapClient: ? DOMDocument: ? GZip: ? Multibyte String: ? Remote Post: ? Remote Get: ? ### Database ### WC Database Version: 6.1.0 WC Database Prefix: wp_ Total Database Size: 97.84MB Database Data Size: 85.84MB Database Index Size: 12.00MB wp_woocommerce_sessions: Data: 8.02MB + Index: 0.28MB + Engine InnoDB wp_woocommerce_api_keys: Data: 0.02MB + Index: 0.03MB + Engine InnoDB wp_woocommerce_attribute_taxonomies: Data: 0.02MB + Index: 0.02MB + Engine InnoDB wp_woocommerce_downloadable_product_permissions: Data: 0.02MB + Index: 0.06MB + Engine InnoDB wp_woocommerce_order_items: Data: 0.05MB + Index: 0.02MB + Engine InnoDB wp_woocommerce_order_itemmeta: Data: 0.17MB + Index: 0.16MB + Engine InnoDB wp_woocommerce_tax_rates: Data: 0.02MB + Index: 0.06MB + Engine InnoDB wp_woocommerce_tax_rate_locations: Data: 0.02MB + Index: 0.03MB + Engine InnoDB wp_woocommerce_shipping_zones: Data: 0.02MB + Index: 0.00MB + Engine InnoDB wp_woocommerce_shipping_zone_locations: Data: 0.02MB + Index: 0.03MB + Engine InnoDB wp_woocommerce_shipping_zone_methods: Data: 0.02MB + Index: 0.00MB + Engine InnoDB wp_woocommerce_payment_tokens: Data: 0.02MB + Index: 0.02MB + Engine InnoDB wp_woocommerce_payment_tokenmeta: Data: 0.02MB + Index: 0.03MB + Engine InnoDB wp_woocommerce_log: Data: 0.02MB + Index: 0.02MB + Engine InnoDB wp_actionscheduler_actions: Data: 2.02MB + Index: 1.05MB + Engine InnoDB wp_actionscheduler_claims: Data: 0.02MB + Index: 0.02MB + Engine InnoDB wp_actionscheduler_groups: Data: 0.02MB + Index: 0.02MB + Engine InnoDB wp_actionscheduler_logs: Data: 2.52MB + Index: 1.70MB + Engine InnoDB wp_adtribes_my_conversions: Data: 0.02MB + Index: 0.02MB + Engine InnoDB wp_bv_fw_requests: Data: 0.02MB + Index: 0.00MB + Engine InnoDB wp_bv_ip_store: Data: 0.20MB + Index: 0.11MB + Engine InnoDB wp_bv_lp_requests: Data: 0.02MB + Index: 0.00MB + Engine InnoDB wp_commentmeta: Data: 0.02MB + Index: 0.03MB + Engine InnoDB wp_comments: Data: 0.17MB + Index: 0.16MB + Engine InnoDB wp_gdpr_cc_options: Data: 0.02MB + Index: 0.00MB + Engine InnoDB wp_links: Data: 0.02MB + Index: 0.02MB + Engine InnoDB wp_mailchimp_carts: Data: 0.02MB + Index: 0.00MB + Engine InnoDB wp_mailchimp_jobs: Data: 0.02MB + Index: 0.00MB + Engine InnoDB wp_mclean_refs: Data: 0.19MB + Index: 0.00MB + Engine InnoDB wp_mclean_scan: Data: 0.02MB + Index: 0.02MB + Engine InnoDB wp_ms_snippets: Data: 0.02MB + Index: 0.00MB + Engine InnoDB wp_options: Data: 2.39MB + Index: 0.23MB + Engine InnoDB wp_plugin_notes_plus: Data: 0.02MB + Index: 0.00MB + Engine InnoDB wp_postmeta: Data: 22.55MB + Index: 4.97MB + Engine InnoDB wp_posts: Data: 5.52MB + Index: 0.69MB + Engine InnoDB wp_pum_subscribers: Data: 0.02MB + Index: 0.06MB + Engine InnoDB wp_say_what_strings: Data: 0.02MB + Index: 0.00MB + Engine InnoDB wp_sfa_abandoned_carts: Data: 1.52MB + Index: 0.00MB + Engine InnoDB wp_smush_dir_images: Data: 0.02MB + Index: 0.03MB + Engine InnoDB wp_snippets: Data: 0.05MB + Index: 0.00MB + Engine InnoDB wp_termmeta: Data: 0.05MB + Index: 0.03MB + Engine InnoDB wp_terms: Data: 0.05MB + Index: 0.03MB + Engine InnoDB wp_term_relationships: Data: 0.13MB + Index: 0.08MB + Engine InnoDB wp_term_taxonomy: Data: 0.05MB + Index: 0.03MB + Engine InnoDB wp_tm_taskmeta: Data: 0.02MB + Index: 0.03MB + Engine InnoDB wp_tm_tasks: Data: 0.02MB + Index: 0.02MB + Engine InnoDB wp_usermeta: Data: 1.52MB + Index: 0.59MB + Engine InnoDB wp_users: Data: 0.06MB + Index: 0.05MB + Engine InnoDB wp_wc_admin_notes: Data: 0.02MB + Index: 0.00MB + Engine InnoDB wp_wc_admin_note_actions: Data: 0.02MB + Index: 0.02MB + Engine InnoDB wp_wc_category_lookup: Data: 0.02MB + Index: 0.00MB + Engine InnoDB wp_wc_customer_lookup: Data: 0.02MB + Index: 0.03MB + Engine InnoDB wp_wc_download_log: Data: 0.02MB + Index: 0.03MB + Engine InnoDB wp_wc_order_coupon_lookup: Data: 0.02MB + Index: 0.03MB + Engine InnoDB wp_wc_order_product_lookup: Data: 0.02MB + Index: 0.06MB + Engine InnoDB wp_wc_order_stats: Data: 0.02MB + Index: 0.05MB + Engine InnoDB wp_wc_order_tax_lookup: Data: 0.02MB + Index: 0.03MB + Engine InnoDB wp_wc_product_meta_lookup: Data: 0.05MB + Index: 0.09MB + Engine InnoDB wp_wc_rate_limits: Data: 0.02MB + Index: 0.02MB + Engine InnoDB wp_wc_reserved_stock: Data: 0.02MB + Index: 0.00MB + Engine InnoDB wp_wc_tax_rate_classes: Data: 0.02MB + Index: 0.02MB + Engine InnoDB wp_wc_webhooks: Data: 0.02MB + Index: 0.02MB + Engine InnoDB wp_woocommerce_bolt_checkout_sessions: Data: 0.02MB + Index: 0.02MB + Engine InnoDB wp_woo_ua_auction_log: Data: 0.02MB + Index: 0.00MB + Engine InnoDB wp_wpforms_tasks_meta: Data: 0.05MB + Index: 0.00MB + Engine InnoDB wp_wpml_mails: Data: 35.52MB + Index: 0.00MB + Engine InnoDB wp_xyz_ips_short_code: Data: 0.02MB + Index: 0.00MB + Engine InnoDB wp_yoast_indexable: Data: 1.52MB + Index: 0.67MB + Engine InnoDB wp_yoast_indexable_hierarchy: Data: 0.06MB + Index: 0.08MB + Engine InnoDB wp_yoast_migrations: Data: 0.02MB + Index: 0.02MB + Engine InnoDB wp_yoast_primary_term: Data: 0.02MB + Index: 0.03MB + Engine InnoDB wp_yoast_seo_links: Data: 0.02MB + Index: 0.03MB + Engine InnoDB wp_yoast_seo_meta: Data: 0.45MB + Index: 0.00MB + Engine InnoDB ### Post Type Counts ### amn_mi-lite: 1 amn_wpforms-lite: 1 attachment: 3582 br_notice: 1 custom_css: 1 feedback: 2 jetpack_migration: 2 jp_img_sitemap: 6 jp_img_sitemap_index: 3 jp_sitemap: 3 jp_sitemap_master: 3 nav_menu_item: 17 oembed_cache: 4 page: 31 popup: 7 popup_theme: 8 post: 3 product: 216 product_variation: 55 psppnotif_workflow: 4 revision: 49 seedprod: 1 shop_coupon: 21 shop_order: 132 shop_order_refund: 5 wpautoterms_page: 3 wpforms: 8 wp_block: 3 xlwcty_thankyou: 1 yith-wcbm-badge: 1 ### Security ### Secure connection (HTTPS): ? Hide errors from visitors: ? ### Active Plugins (54) ### Automated UPS Shipping: by HITShipo – 3.2.1 AfterShip Tracking - All-In-One WooCommerce Order Tracking (Free plan available): by AfterShip – 1.14.1 Akismet Anti-Spam: by Automattic – 4.2.1 Auto Image Attributes From Filename With Bulk Updater: by Arun Basil Lal – 2.1 Breeze: by Cloudways – 2.0.1 Code Snippets: by Code Snippets Pro – 2.14.3 Customer Reviews for WooCommerce: by CusRev – 4.35 Decorator - WooCommerce Email Customizer: by WebToffee – 1.1.2 Disable WooCommerce Bloat: by ospiotr – 2.6.1 Easy Theme and Plugin Upgrades: by Chris Jean – 2.0.2 Facebook for WooCommerce: by Facebook – 2.6.9 GDPR Cookie Compliance: by Moove Agency – 4.7.2 Heartbeat Control by WP Rocket: by WP Rocket – 2.0 Social Login Buttons by Heateor: by Team Heateor – 1.2.10 Homepage Control: by WooThemes – 2.0.3 Insert PHP Code Snippet: by xyzscripts.com – 1.3.2 Jetpack: by Automattic – 10.5-a.3 Kadence WooCommerce Email Designer: by Kadence WP – 1.4.10 Mailchimp for WooCommerce: by Mailchimp – 2.5.4 Mailgun: by Mailgun – 1.7.9 Max Mega Menu - StoreFront Integration: by megamenu.com – 1.0.3 Max Mega Menu: by megamenu.com – 2.9.5 Plugin Notes Plus: by Jamie Bergen – 1.2.6 Popup Maker: by Popup Maker – 1.16.3 Product page shipping calculator for WooCommerce: by PI Websolution – 1.2.43 Regenerate Thumbnails: by Alex Mills (Viper007Bond) – 3.1.5 Say What?: by Ademti Software – 2.0.2 Server IP & Memory Usage Display: by Apasionados Apasionados del Marketing – 2.1.0 Social Icons for WooCoomerce Emails: by Luiz Bills – 2.1.0 Social Icons Widget & Block by WPZOOM: by WPZOOM – 4.2.4 Title Toggle for Storefront Theme: by Wooassist – 1.2.4 Super Socializer: by Team Heateor – 7.13.26 Temporary Login Without Password: by StoreApps – 1.7.1 Checkout Field Editor for WooCommerce: by ThemeHigh – 1.5.3 Woo Custom Stock Status: by Softound Solutions – 1.3.0 WooCommerce Blocks: by Automattic – 6.7.1 Woo Login Redirect: by WP Doctor – 2.2.4 Preview E-mails for WooCommerce: by Digamber Pradhan – 2.0.1 Product Feed PRO for WooCommerce: by AdTribes.io – 11.1.4 NextMove Lite - Thank You Page for WooCommerce: by XLPlugins – 2.15.0 WooCommerce PayPal Checkout Gateway: by WooCommerce – 2.1.3 WooCommerce Stripe Gateway: by WooCommerce – 6.0.0 Booster for WooCommerce: by Pluggabl LLC – 5.5.0 WooCommerce Login Popup and Shortcodes: by Phpbits Creative Studio – 1.0.2 WooCommerce PayPal Payments: by WooCommerce – 1.6.4 WooCommerce: by Automattic – 6.1.0 (update to version 6.1.1 is available) Yoast SEO: by Team Yoast – 17.9 WP 2FA - Two-factor authentication for WordPress: by WP White Security – 2.1.0 WP Crontrol: by John Blackbourn & crontributors – 1.12.0 WP Mail Logging: by Wysija – 1.10.2 WP Rollback: by Impress.org – 1.7.1 Smush Pro: by WPMU DEV – 3.9.3 WPForms Lite: by WPForms – 1.7.2 YITH WooCommerce Badge Management: by YITH – 2.1.0 ### Inactive Plugins (21) ### Cart Notices for WooCommerce: by BeRocket – 3.5.7.2 Category Banner Management for Woocommerce: by theDotstore – 2.2.2 Easy Widget Columns: by Alexis J. Villegas – 1.2.4 ELEX WooCommerce Bulk Edit Products, Prices & Attributes (Basic): by ELEXtensions – 1.2.2 Export Media Library: by Mass Edge Inc. – 3.0.1 Flexible Shipping: by WP Desk – 4.11.1 Gallery Custom Links: by Jordy Meow – 2.0.6 Genesis Widget Column Classes: by Jory Hogeveen – 1.3.1 Hello Dolly: by Matt Mullenweg – 1.7.2 MalCare Security - Free Malware Scanner, Protection & Security for WordPress: by MalCare Security – 4.72 Media Cleaner: by Jordy Meow – 6.2.7 Order / Coupon / Subscription Export Import Plugin for WooCommerce (BASIC): by WebToffee – 2.1.6 Print Invoice & Delivery Notes for WooCommerce: by Tyche Softwares – 4.6.4 Product CSV Import Export (BASIC): by WebToffee – 2.1.4 Product Input Fields for WooCommerce: by Tyche Softwares – 1.3.1 Product Reviews Import Export (Basic): by WebToffee – 1.4.4 Query Monitor: by John Blackbourn – 3.8.2 Simple checkout page donations/tips for WooCommerce: by Rynaldo Stoltz – 1.3 Ultimate WooCommerce Auction Pro: by Nitesh Singh – 1.2.8 WooCommerce Customizer: by SkyVerge – 2.7.4 WooCommerce Shipping & Tax: by WooCommerce – 1.25.20 (update to version 1.25.21 is available) ### Dropin Plugins (2) ### advanced-cache.php: advanced-cache.php object-cache.php: Object Cache Pro (Drop-in) ### Must Use Plugins (1) ### Object Cache Pro (MU): by Rhubarb Group – 1.14.1 ### Settings ### API Enabled: – Force SSL: – Currency: USD (US$) Currency Position: left Thousand Separator: , Decimal Separator: . Number of Decimals: 2 Taxonomies: Product Types: auction (auction) external (external) grouped (grouped) simple (simple) variable (variable) Taxonomies: Product Visibility: exclude-from-catalog (exclude-from-catalog) exclude-from-search (exclude-from-search) featured (featured) outofstock (outofstock) rated-1 (rated-1) rated-2 (rated-2) rated-3 (rated-3) rated-4 (rated-4) rated-5 (rated-5) Connected to WooCommerce.com: – ### WC Pages ### Shop base: #5 - /shop/ Cart: #6 - /cart/ Checkout: #7 - /checkout/ My account: #8 - /my-account/ Terms and conditions: ? Page not set ### Theme ### Name: Storefront Version: 3.9.1 Author URL: https://woocommerce.com/ Child Theme: ? – If you are modifying WooCommerce on a parent theme that you did not build personally we recommend using a child theme. See: How to create a child theme WooCommerce Support: ? ### Templates ### Overrides: – ### WooCommerce PayPal Payments ### Onboarded: ? Shop country code: CZ WooCommerce currency supported: ? PayPal card processing available in country: – Pay Later messaging available in country: – Webhook status: – Vault enabled: ? Logging enabled: – Reference Transactions: – Used PayPal Checkout plugin: ? ### Action Scheduler ### Complete: 3,183 Oldest: 2022-01-04 11:51:41 +0400 Newest: 2022-01-27 10:49:02 +0400 Pending: 10 Oldest: 2022-01-27 11:04:02 +0400 Newest: 2022-01-28 07:29:51 +0400 ### Status report information ### Generated at: 2022-01-27 10:55:51 +04:00
Howdy @handmadehome!
Apologies for not including instructions before, I’ve given them below.
For “woocommerce_manage_stock” you can visit this link on your site:
https://www.shop.handmadehome.me/wp-admin/options.phpThen search the page (CTRL+F on PC or CMD+F on Mac) for “woocommerce_manage_stock”. You should see “yes” in the field next to it.
Link to image: https://d.pr/i/w3vLqPFor the meta value of the specific product, it’s a bit more involved. Be sure to make that backup before continuing.
You can install and activate the database admin plugin of your choosing found here. Then note your product’s ID, which you can find on the list of products by hovering your mouse cursor over it:
Link to image: https://d.pr/i/I183IpVia one of the plugins linked above, for example phpMyAdmin, you can select the “wp_postmeta” (or similarly named) table from the database, click Search and use the Product ID and Meta Key name:
Link to image: https://d.pr/i/ja07wKThe result should look like this, notice the meta value:
Link to image: https://d.pr/i/iBwExeIf both of these values are set to yes, then it might indicate that there’s something on your site that’s interfering with how WooCommerce normally prevents this type of thing from happening.
To get to the bottom of what it might be, you’ll need to conduct a conflict test. It’s best to set up a staging site for that, so that you can run tests without affecting your live site. Your hosting provider might have a quick way to configure a staging site as a feature of your hosting plan, otherwise you could use one of these plugins from to spin one up. Our How to Test for Plugin and Theme Conflicts guide will walk you through the process.
If, once you’ve configured your staging site, you need help, then we might need to log into your staging site. In that case, please open a ticket via the Support tab of your WooCommerce.com account so that we can send you instructions for what we need, and include a link to this thread as reference.
Hi, I checked the values they are both set to yes.
I created a staging website. I deactivated all plugins but Woocommerce and WooCommerce Stripe Payment Gateway. I made a test again. Sadly, the situation has happened again:(Here is the staging website https://woocommerce-650892-2411020.cloudwaysapps.com/
Feel free to test. You will find a couple of products on it. Stripe payments set on test mode.-
This reply was modified 3 years, 1 month ago by
handmadehome.
Hi @handmadehome!
WooCommerce has a functionality called “Hold Stock” that you can choose the amount of time (in minutes) that the stock is held for unpaid orders.
You can find this by navigating to WooCommerce > Settings > Products > Inventory
However, I am afraid that this will not help in cases (it seems a very hedge case, but still a possibility) for users who make the purchase at the exact same time.
For this specific situation, can you take a look at plugins like this?
https://www.ads-software.com/plugins/woocommerce-cart-stock-reducer/
The first request that hits the server will get the item if there is only one available. The other person will receive
a “Item is no longer available” message.This seems to fit exactly your needs! ??
Can you give it a try, and let us know how it goes?
All the best,
Thank you!
I’m testing Hold Stock option now:) May I ask why you think so:However, I am afraid that this will not help in cases (it seems a very hedge case, but still a possibility) for users who make the purchase at the exact same time.
Hi @handmadehome! How’s it going today?
I’m wondering this because the Hold Stock feature will hold products, for unpaid orders, for X minutes. That means, when the limit is reached, the pending order is canceled.
This will prevent users from going idle after adding it to the cart and holding it for many hours, but if I got you correctly, this will not prevent users from adding it at the same time.
Let us know how it goes and if that plugin helped you! ??
My very best,
Hold Stock feature will hold products, for unpaid orders, for X minutes. That means, when the limit is reached, the pending order is canceled.
I use instant payments on my website. So, it takes just seconds to change the order status from pending to processing. I don’t have orders hanging in pending status for a long time.
My problem is just double sale of one available product. All my products are always available in a single copy (only one in stock). For example, customer number one and customer number two, both add the same item to the cart. Both customers go to checkout and press the payment button at the same time. As a result, I sold two items instead of one despite the backorders are not allowed. Items go onto backorder anyway. People are paying within seconds of each other, and woocommerce can’t handle with this.
This is okay that several customers have a product in the cart. The issue appears only when customers click the payment button synchronically.Please, take a look once more on screenshorts from my test when one product were sold twice:
As you can see Stripe changed stock quantity from 0 to -1, despite backorders were not allowed. But look at the left side, near product image you can see woocommerce stock status is 1.This is the second order:
Stripe stock goes from 1 to 0. Woocommerce keeps saying 1 available again!Do I understand right, that woocommerce changes stock quantity only after payment is received? The payment process takes some time for Stripe. So, when woocommerce gets a second order at the same time it doesn’t know yet that inventory was changed. Because Woocommerce needs to wait until the end of the payment process first.
Now set Hold Stock to 1 minute and looks like now only one order can be purchased. Another customer receives a note
“Sorry, we do not have enough “Product Name” in stock to fulfill your order (0 available). We apologize for any inconvenience caused.”
Looks like now, woocommerce changes the stock quantity of a product at the moment when the order was placed. Woocommerce doesn’t need to wait until the Stripe payment process is complete to do this. Right?I did several tests and they were successful. I haven’t got a double sale. Only one lucky customer gets an item.:)) But can we be sure? What if the time will be exactly the same? Or only the first request will be counted?
Thank you so much!
Hi @handmadehome,
Looks like now, woocommerce changes the stock quantity of a product at the moment when the order was placed.
That’s exactly how it should be. If two or more customers place an order for the same product (quantity 1) at the same time, only one customer will be able to place the order and all others will get the out of stock notice.
The behavior you’re seeing is usually caused by a conflict with another plugin. Checking your system status I can see you have installed a plugin called “Woo Custom Stock Status”. What I suggest is to get in contact with the plugin author and check with them if any similar issue was reported with their plugin.
If you need more help, please open a ticket via the Support tab of your WooCommerce.com account at WooCommerce.com > My Account > Support, and include a link to this thread as a reference.
Thanks!
-
This reply was modified 3 years, 1 month ago by
- The topic ‘Double sale’ is closed to new replies.