• Resolved handmadehome

    (@handmadehome)


    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 2 years, 3 months ago by handmadehome.

    The page I need help with: [log in to see the link]

Viewing 11 replies - 1 through 11 (of 11 total)
  • Plugin Support abwaita a11n

    (@abwaita)

    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!

    Thread Starter handmadehome

    (@handmadehome)

    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
    

    1

    2

    Plugin Support nathvi V. a11n

    (@nathvi)

    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.

    Thread Starter handmadehome

    (@handmadehome)

    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:

    Product settings
    2022-01-27-10-37-53

    And orders

    19330

    19329

    
    ### 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
    
    Plugin Support EastOfWest a11n

    (@eastofwest)

    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.php

    Then 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.

    Image showing the woocommerce_manage_stock value on the option.php page
    Link to image: https://d.pr/i/w3vLqP

    For 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:

    Image showing the product ID as viewed on the Products list page when
    Link to image: https://d.pr/i/I183Ip

    Via 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:

    Example phpMyAdmin search
    Link to image: https://d.pr/i/ja07wK

    The result should look like this, notice the meta value:

    Search Result
    Link to image: https://d.pr/i/iBwExe

    If 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.

    Thread Starter handmadehome

    (@handmadehome)

    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 2 years, 2 months 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://wordpress.org/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,

    Thread Starter handmadehome

    (@handmadehome)

    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,

    Thread Starter handmadehome

    (@handmadehome)

    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:
    19330
    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:
    19329
    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!

    Mirko P.

    (@rainfallnixfig)

    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!

Viewing 11 replies - 1 through 11 (of 11 total)
  • The topic ‘Double sale’ is closed to new replies.