Platformă Comenzi Sameday
Aplicație centrală Laravel + Vue/Inertia care agregă comenzile din mai multe magazine WooCommerce și permite generarea AWB Sameday cu un singur click, prin plugin custom WordPress cu autentificare HMAC-SHA256.
Stack principal
Provocarea
Generarea AWB-ului necesită date din WooCommerce (adrese, articole, metoda de livrare, meta-uri Sameday) care există doar în contextul WordPress. Reconstruirea acestei logici în aplicația centrală ar fi duplicare costisitoare și fragilă la update-uri ale pluginului Sameday.
Soluția
Pattern de delegare: aplicația centrală trimite doar order_id la plugin-ul WP, care citește comanda din WooCommerce și apelează Sameday::postAwb() din pluginul oficial. Aplicația centrală primește înapoi AWB-ul și îl stochează. HMAC-SHA256 pe body + timestamp asigură că doar aplicația centrală poate declanșa generarea.
Complexitate notabilă
Platforma Comenzi Sameday rezolvă problema operatorilor care gestionează mai multe magazine WooCommerce și trebuie să genereze AWB-uri Sameday din fiecare wp-admin separat. Aplicația centrală agregă comenzile din toate site-urile și oferă o interfață unificată. Arhitectura este hibridă: un plugin custom WordPress instalat pe fiecare magazin expune un endpoint REST securizat care primește order_id și apelează pluginul oficial Sameday pentru generarea AWB-ului. Aplicația centrală Laravel nu reimplementează API-ul Sameday — delegă această responsabilitate plugin-ului WP care are deja configurația și credențialele Sameday per site. Securitatea comunicării între aplicația centrală și plugin-ul WP se bazează pe HMAC-SHA256 pe body-ul request-ului plus verificare timestamp (±5 minute) pentru prevenirea replay attacks. Fiecare site are un token unic de semnătură. Modelele principale sunt Site (config per magazin), Order (rezumatul comenzii ingestat din WP) și Awb (număr AWB, cost, link PDF/eAWB). OrderIngestService primește webhook-uri din WP sau face pull periodic. AwbService apelează endpoint-ul WP cu retry logic (backoff exponential, 2-3 încercări).
Vrei ceva similar?
Începe cu wizard-ul de estimare — răspunzi la câteva întrebări și primești un range de preț + timeline realist.