După actualizarea WordPress și a unor plugin-uri pe un magazin online de luptă (domeniu - vânzare de piese auto, ~8-12 mii SKU, 300-600 comenzi/zi, vârfuri de până la 30 comenzi/min), au apărut erori critice în procesarea comenzilor și plăților. Situația inițială și mediul - WordPress 6.5.x, WooCommerce 8.x - PHP 8.2, Nginx + PHP-FPM, MariaDB 10.6 - Cache obiect Redis, Cloudflare, WP-Cron dezactivat - este utilizat cronul de sistem - Plăți: achiziție Stripe și locală printr-un plugin separat (webhook + callback) - Livrare: modul de calcul al tarifului personalizat + integrare cu API extern (peak timeouts) - Există un plugin auto-scris, obligatoriu, care adaugă câmpuri suplimentare de comandă și sincronizează stările cu 1C prin REST Simptome - Uneori se creează comenzi duplicate la plata cu cardul - una în stare de procesare, a doua în așteptare - Webhook-urile Stripe nu schimbă periodic starea comenzii, deși evenimentul a fost livrat la Stripe - La sarcini de vârf, unii utilizatori văd 500 pe /checkout/ și jurnalele conțin erori fatale și timp de așteptare de blocare/blocare atunci când înregistrează o comandă - În administratorul WooCommerce uneori cardul de comandă nu se deschide - un ecran alb din cauza unei erori JS pe pagina de editare Ce să fac - Reproduceți problemele în staging, colectați urme, identificați cauzele principale și remediați fără a dezactiva integrările cheilor - Rezolvați conflictul versiunii/cârligelor WooCommerce cu pluginurile personalizate și modulele de plată, eliminați procesarea dublă a evenimentelor de plată și cursă la crearea unei comenzi - Remediați procesarea webhooks/callback, astfel încât stările comenzii și metadatele să fie actualizate exact o dată, chiar și atunci când se re-livrează evenimente și reîncercări în rețea - Eliminați 500 de erori la finalizarea comenzii, inclusiv problemele legate de timeout-ul API-ului de livrare externă și blocarea în baza de date - Remediați eroarea JS pe pagina de comandă din panoul de administrare (conflict de script/dependență după actualizare) fără a întrerupe metabox-urile personalizate Restricții - Lucrarea se efectuează cu modificări minime ale temei - toate editările se fac prin temă copil și/sau un plugin separat, fără a edita nucleul WooCommerce/WordPress - Nu puteți dezactiva Redis, Cloudflare și cronul de sistem în producție - verificați numai prin staging și lansare atentă - Accesuri: punere în scenă + acces numai în citire la jurnalele de producție, modificări în producție prin PR în Git și implementare printr-un pipeline existent Rezultat așteptat - Remedieri sub formă de commit/PR cu o descriere clară a motivelor și soluțiilor - Un set de jurnale/valori de diagnosticare (în cadrul instrumentelor WP/Woo disponibile) pentru a monitoriza erorile repetate - Instrucțiuni scurte despre ce să monitorizezi și cum să derulezi înapoi în siguranță Criterii de acceptare (măsurabile) 1) Pe parcursul a 48 de ore de funcționare a testului la punere în scenă în timpul unei rulări de încărcare, nu apar comenzi duplicate - 0 duplicate la 1000 de plăți de testare 2) Stripe webhook/callback este idempotent - livrarea repetată a aceluiași eveniment nu modifică comanda de mai mult de 1 dată și nu creează una nouă 3) În timpul unui test de încărcare la checkout (minimum 20 rps timp de 30 de minute), cota de 5xx nu este mai mare de 0,2%, TTFB mediu al unei pagini de checkout este de până la 800 ms la punere în scenă 4) Eroarea de administrare a comenzilor WooCommerce care a cauzat ecranul alb a fost rezolvată - cardul de comandă se deschide și este salvat fără erori JS în consolă În plus - Voi oferi jurnale Nginx/PHP-FPM, jurnale WooCommerce, acces la depozitul Git, o listă de actualizări recente și 3-5 exemple de comenzi/plăți problematice.