• Fixing critical errors in checkout and webhooks on Magento 2 after upgrade - Stripe/PayPal - Redis/Varnish

    5 hours ago
    • Desired budget up to 900.74 USD
    • Waiting for a performer...
  • After the Magento 2.4.6-p3 (PHP 8.2) update, the production of the online store (B2C, ~15 thousand SKUs, 800-1200 orders/day) experienced failures in placing orders and desynchronization of payments. Some customers receive an error at the payment step, or the order is created without a transaction, and sometimes it is duplicated. The logs contain a mixture of 500/502, timeouts, MySQL deadlock messages, and exceptions in the custom ERP integration module. Also noticed that Stripe webhooks sometimes fail to confirm and PayPal IPN comes twice. It is necessary to localize the root causes and correct errors so that checkout runs stably under load.

    Technical environment: Magento Open Source 2.4.6-p3, Nginx, PHP-FPM 8.2, MySQL 8.0, Redis (sessions+cache), Varnish, Elasticsearch/OpenSearch, RabbitMQ. Deploy via GitLab CI, there is staging, access via SSH. There is APM (New Relic) and centralized logs (ELK). There are several custom modules: integration with ERP (REST), promo logic, checkout customization. Payments: Stripe (PaymentIntents + webhooks) and PayPal.

    Expected result: fixed causes of checkout errors, correct processing of webhooks/notifications, no duplication of orders/transactions, stable operation under load. A set of code and config changes is required, plus a short technical report of what was broken and how it was tested.

    Restrictions: production stoppage is prohibited, only a short release window of 10-15 minutes is allowed. Changes must be compatible with current custom modules. You can't disable Varnish/Redis in production, you can do point settings. Customer data cannot be uploaded outside the server.

    Work stages:
    1) Diagnostics: analysis of logs (Magento/system/exception, Nginx, PHP-FPM), New Relic traces, related cron/queue, playback on staging with enabled profiler, search for race conditions in place order, idempotency check for Stripe/PayPal.
    2) Fixes: edits in the custom checkout/ERP module (transaction, retry, blocking/unique keys), correction of webhooks processing (signature, repetitions, order of events, idempotency key), elimination of deadlock causes (indexes/order of records), timeouts/fastcgi settings, optimization of specific slow SQL/consumer.
    3) Validation: load testing on staging (k6/JMeter) for 3DS/non-3DS checkout scenarios, simulation of repeated webhooks, non-duplication verification, regression of promo codes/shipping/taxes.
    4) Release: MR preparation, deployment instructions, rollback plan, release support and 24 hour metrics monitoring.

    Acceptance criteria (measured):
    - On staging with 50 virtual users, the checkout has a success rate of at least 99% in a 30-minute test without 500/502 at the payment step.
    - In production within 24 hours after the release: the share of place order errors <0.2% (according to New Relic), there are no duplicate orders with the same payment_intent_id/PayPal txn_id.
    - Stripe webhooks are processed with 2xx confirmation 99.9% of the time, repeat events do not create new invoices/shipments.
    - The repository has an MR with a description of the changes and a short report (1-2 pages) with root causes and links to logs/metrics.

    I will provide access and materials: SSH to staging/prod, access to GitLab, New Relic, examples of problematic order/payment IDs, incident time windows.
  • How would you rate this task?

    Sign in to leave your rating.

    Total ratings: 0

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 critical errors in checkout and webhooks on Magento 2 after upgrade - Stripe/PayPal - Redis/Varnish» can be used as a reference for your own brief: what should be done, what result is needed and what budget to set.