• Fixing errors in WooCommerce checkout - duplicate payments, out of sync statuses and crashes at high load

    16 hours ago
    • Desired budget up to 850.37 USD
    • Waiting for a performer...
  • After updating WordPress and some plugins on a combat online store (subject area - sale of auto parts, ~8-12 thousand SKU, 300-600 orders/day, peaks up to 30 orders/min), critical errors appeared in ordering and payment processing.

    Initial situation and environment
    - WordPress 6.5.x, WooCommerce 8.x
    - PHP 8.2, Nginx + PHP-FPM, MariaDB 10.6
    - Redis object cache, Cloudflare, WP-Cron disabled - system cron is used
    - Payments: Stripe and local acquiring via a separate plugin (webhook + callback)
    - Delivery: custom tariff calculation module + integration with external API (peak timeouts)
    - There is a self-written must-use plugin that adds additional order fields and synchronizes statuses with 1C via REST

    Symptoms
    - Sometimes duplicate orders are created when paying by card - one in the processing status, the second pending
    - Stripe webhooks periodically do not change the order status, although the event was delivered to Stripe
    - At peak loads, some users see 500 on /checkout/ and the logs contain fatal error and deadlock/lock wait timeout when recording an order
    - In the WooCommerce admin sometimes the order card does not open - a white screen due to a JS error on the edit page

    What to do
    - Reproduce problems in staging, collect traces, identify root causes and fix without disabling key integrations
    - Troubleshoot WooCommerce version/hooks conflict with custom plugins and payment modules, eliminate double processing of payment and race events when creating an order
    - Fix webhooks/callback processing so that order statuses and metadata are updated exactly once, even when re-delivering events and network retries
    - Eliminate 500 errors on checkout, including problems with external delivery API timeouts and blocking in the database
    - Fix JS error on the order page in the admin panel (script/dependency conflict after update) without breaking custom metaboxes

    Restrictions
    - Work is performed with minimal changes to the theme - all edits are via child theme and/or a separate plugin, without editing the WooCommerce/WordPress core
    - You cannot disable Redis, Cloudflare and system cron in production - check only through staging and careful release
    - Accesses: staging + read-only access to production logs, changes in production via PR in Git and deployment through an existing pipeline

    Expected result
    - Fixes in the form of commits/PR with a clear description of the reasons and solutions
    - A set of diagnostic logs/metrics (within the available WP/Woo tools) to monitor repeated errors
    - Short instructions on what to monitor and how to roll back safely

    Acceptance criteria (measurable)
    1) During 48 hours of test operation on staging during a load run, no duplicate orders arise - 0 duplicates per 1000 test payments
    2) Stripe webhook/callback is idempotent - repeated delivery of the same event does not change the order more than 1 time and does not create a new one
    3) During a load test on checkout (minimum 20 rps for 30 minutes), the share of 5xx is no more than 0.2%, the average TTFB of a checkout page is up to 800 ms on staging
    4) The WooCommerce Orders admin error that caused the white screen has been resolved - the order card opens and is saved without JS errors in the console

    Additionally
    - I will provide Nginx/PHP-FPM logs, WooCommerce logs, access to the Git repository, a list of recent updates and 3-5 examples of problematic orders/payments.
  • How would you rate this task?

    Sign in to leave your rating.

    Total ratings: 1

Your offer

You have not submitted an offer for this order yet.
Click “Submit an offer” to send your offer.

Need a similar task?

If this project is close to your need, you can view ready services in the category or post your own task with the required budget, deadline and requirements.

The project «Fixing errors in WooCommerce checkout - duplicate payments, out of sync statuses and crashes at high load» can be used as a reference for your own brief: what should be done, what result is needed and what budget to set.