DAGMAR / Studiu de caz 08 / Integrare ERP custom

Integrare ERP cu WooCommerce.
Stocuri și prețuri sincronizate.

Conectăm gestiunea la magazinul online printr-o integrare custom ERP–WooCommerce. La DAGMAR, aplicația Supplier, bazată pe Visual FoxPro, transmite stocuri și prețuri prin API, iar magazinul aplică rezervările și regulile comerciale pe fiecare SKU.

ERP custom / Supplier VFPSincronizare stocuri și prețuriAPI pentru WooCommerce
INTEGRARE CUSTOM ERPStocuri și prețuri
APLICAȚIA DE GESTIUNESupplier / Visual FoxPro

SKU · stoc disponibil · preț net

API + reguli de sincronizare
MAGAZINUL ONLINEWooCommerce

Produse · variații · comenzi

EXEMPLU REAL DIN JURNAL
49× 0,7034− 2 rezervate32

Stocul din ERP devine disponibilitate publicată.

Explorează exemplul documentat
01Date identificate prin SKU
02Stoc ajustat prin reguli
03Modificări verificabile
Gestiune și eCommerce / Implementare custom

ERP-ul păstrează gestiunea.
Magazinul primește datele.

Integrarea ERP cu magazinul online leagă datele aplicației de gestiune de produsele vândute în WooCommerce. În proiectul DAGMAR, puntea custom conectează Supplier/VFP la catalog și respectă regulile reale de vânzare.

SINCRONIZARE STOCURI

Din gestiune în magazin

Stocul absolut din ERP este transformat în disponibilitate WooCommerce după multiplicator și rezervări.

SINCRONIZARE PREȚURI

Preț net pe SKU

Valoarea din ERP actualizează prețul obișnuit; regulile de discount ale magazinului continuă să stabilească oferta.

ERP CUSTOM

Adaptor pentru fluxul existent

Programarea externă și API-ul WordPress fac legătura cu aplicația Supplier, bazată pe Visual FoxPro.

CONTROL ÎN WOOCOMMERCE

Excepții explicite

Produsele interne, variațiile și regulile comerciale sunt păstrate prin configurări separate pentru stoc și preț.

O integrare API construită în jurul procesului comercial.Proiectul pornește de la codurile de produs, unitățile de vânzare, valorile nete și comenzile care rezervă marfă. Aceste reguli sunt implementate în puntea dintre ERP și WooCommerce și pot fi verificate în administrare.

01 / Sincronizare cu ERP custom prin API

Gestiunea și catalogul.
Corelate prin SKU.

Identificatorul produsului din ERP este asociat SKU-ului WooCommerce, inclusiv la nivel de variație. Integrarea custom are fluxuri API distincte pentru stocuri și prețuri; regulile din magazin stabilesc ce poate fi actualizat.

În configurația documentată, modul API este LIVE și multiplicatorul global de stoc este 0,70. Testele individuale pot rămâne în Dry Run chiar și atunci când actualizările reale sunt permise global.

Ritmul actualizărilor pornește din Supplier.Programarea externă transmite loturile către magazin. WordPress procesează datele primite și continuă în fundal loturile mari.

Administrare · exemplu de configurareSetările Supplier Sync cu modul API LIVE, multiplicatorul de stoc 0,70 și notificări pentru erorile reale. Adresa de notificare este mascată.
Mod LIVE și multiplicator global 0,70Modul API este LIVE, iar multiplicatorul global de stoc este configurat la 0,70. Adresa de notificare a fost mascată.
SURSA

ERP Supplier

SKU, stoc absolut sau preț net.

REGULILE

Catalogul

Excepții și multiplicatorul efectiv.

DISPONIBILITATEA

Rezervările

Cantitățile din comenzile eligibile.

REZULTATUL

WooCommerce

Valori publicate și jurnal operațional.

Regulile de bază, vizibile în administrare

Panoul explică asocierea prin SKU, precizia numerică și separarea stocurilor de prețuri. Un SKU absent este ignorat; o valoare identică nu produce o nouă scriere.

Administrare · exemplu de configurareInterfața DAGMAR Supplier Sync v1.3.6 explică asocierea ID Supplier cu SKU WooCommerce, normalizarea prețului, formula stocului și procesarea în loturi.
Supplier Sync: SKU, prețuri și protecțiiPanoul reunește regulile de sincronizare și indică modul API LIVE.
02 / Din stocul sursă în disponibilitate

Întâi multiplicatorul.
Apoi rezervările.

Stocul publicat este o valoare absolută. Motorul aplică multiplicatorul efectiv, rotunjește în jos și scade rezervările eligibile. Rezultatul este limitat la minimum zero.

Stoc Supplier × multiplicatorRotunjire în jos − rezervăriMinimum 0
Exemplu din jurnal / SKU 31459

49 în sursă.
32 publicate.

Cu multiplicatorul 0,70, cele 49 de unități devin 34. Jurnalul indică două unități rezervate de comenzi În procesare; stocul rezultat este 32.

Demonstrație locală a formulei. Cantitățile rezervate se introduc explicit; valorile din calculator nu sunt date live.

Stoc calculat32unități publicabile în scenariul ales
După multiplicator
34
Rezervări eligibile
2

floor(49 × 0,70) − 2 = 32

Dovada din operare

Calculul apare în jurnal.

Exemplul capturat arată sursa, multiplicatorul, cantitatea aplicată și explicația rezervării. În aceste rânduri, rezervările eMAG și Trendyol sunt zero.

Administrare · exemplu de configurareTrei actualizări reale de stoc cu rezervări WooCommerce scăzute: 2, 19 și 6 unități în procesare; rezervele eMAG și Trendyol afișate sunt zero. Identificatorii de lot sunt mascați.
Rezervările scăzute în jurnalul realJurnalul documentează scăderea rezervărilor: 49 × 0,70 rotunjit în jos, minus 2, rezultă 32; pentru celelalte două linii se scad 19 și 6 unități.

Stocurile Supplier negative sunt normalizate la zero. Pentru multiplicator, implementarea utilizează două zecimale și aritmetică întreagă.

03 / Comenzile intră în calcul

Disponibilitatea ține cont
de ce este deja rezervat.

Rezervările sunt recalculate din comenzile WooCommerce la sincronizarea stocului. Statusul, vechimea și primirea facturii Supplier stabilesc ce cantități intră în calcul.

Regulile verificate în implementarea Supplier Sync
ComenziCând rezervă stocReper
În procesareToate comenzile cu acest statusFără limită de vechime
eMAGStatus eMAG, create în ultimele 24 de orePână la înregistrarea facturii Supplier finalizate
TrendyolStatus Trendyol, create în ultimele 24 de orePână la înregistrarea facturii Supplier finalizate
FinalizateNu intră în rezervările acestui motorStatusul curent al comenzii

Cantități nete pe linii

Calculul urmărește produsul sau variația salvată pe linia comenzii și ține cont de cantitățile restituite. Pentru Trendyol, cantitatea activă importată este respectată acolo unde există.

Unități corelate în catalog

Supplier Sync folosește cantitățile salvate în comandă. Structura BAX și rețeta Composite sunt gestionate de componentele lor; această sincronizare nu descompune singură pachetele în sticle.

BAX și pachete compuse

Factura eliberează rezervarea marketplace.Pentru comenzile eMAG și Trendyol eligibile, primirea facturii Supplier finalizate le scoate din rezervare la următoarea sincronizare. Comenzile aflate În procesare urmează regula propriului status.

04 / Excepții administrabile

Control global.
Decizii pe produs.

Stocul și prețul au bife de excludere distincte. Un multiplicator individual poate ajusta stocul unui produs sau al unei variații, păstrând regula globală pentru restul catalogului.

PRIORITATE 1Variațiedacă este activat individualPRIORITATE 2Părintedacă este activat individualPRIORITATE 3Globalregula de rezervă a catalogului

O variație își poate avea regula.

Administratorul poate opri actualizarea stocului, actualizarea prețului sau poate activa un multiplicator propriu. Câmpul numeric devine regulă individuală atunci când bifa de activare este selectată.

Captura arată controalele disponibile și valoarea 1,00, cu activarea multiplicatorului individual debifată.

Administrare · exemplu de configurareCâmpurile Supplier Sync pentru variație: excluderea stocului, excluderea prețului și multiplicator individual, cu prioritate variație, părinte, global.
Reguli Supplier pe variațieVariația poate avea propriile reguli; în exemplul afișat, cele trei bife sunt inactive.

Părintele coordonează variațiile.

O excludere de stoc sau preț pe produsul părinte se aplică tuturor variațiilor. Multiplicatorul părintelui este folosit când variația nu are unul individual activ.

Excluderile manuale rămân respectate inclusiv la o cerere marcată force.

Administrare · exemplu de configurareRegulile de sincronizare Supplier pe produs: excluderi pentru stoc și preț și activarea unui multiplicator individual pentru produs și variațiile sale.
Reguli Supplier pe produsul părinteRegulile părintelui se aplică variațiilor; un multiplicator individual al variației are prioritate. Bifele din captură sunt inactive.
Registrul regulilor active

Excepțiile sunt vizibile împreună.

Registrul reunește produsele și variațiile cu reguli Supplier active. Coloanele separă excluderea stocului, excluderea prețului și multiplicatorul individual.

Exemplele cu accesorii interne au ambele actualizări oprite. Ele ilustrează de ce un catalog comercial are nevoie de excepții explicite.

Administrare · exemplu de configurareRegistru cu 23 de produse sau variații cu reguli Supplier active, inclusiv accesorii Cinzano și Johnnie Walker excluse de la actualizarea stocului și prețului.
Registrul excepțiilor SupplierRegistrul arată 23 de produse/variații cu reguli active direct; exemplele de accesorii au Nu stoc și Nu preț setate la DA.
Mai multe exemple din registrul excepțiilor
Administrare · exemplu de configurareContinuarea registrului Supplier cu produse JA.AR, Vecchia Romagna, Miorița, Purcari, Saber Elyzia, Sheridan’s și Glenfiddich excluse de la actualizarea stocului.
Excluderea stocului pentru produse selectateExemple suplimentare din registru: actualizarea stocului este exclusă, iar coloana Nu preț rămâne neactivată.
05 / Sincronizare prețuri ERP–WooCommerce

Prețurile din gestiune.
Sincronizate pe SKU.

Valoarea netă Supplier este normalizată la două zecimale și salvată în prețul obișnuit WooCommerce. Multiplicatorul prezentat în acest studiu se aplică exclusiv stocului.

Câmpul prețului promoțional rămâne neatins. Reducerile comerciale și afișarea prețului final sunt gestionate prin regulile dedicate DAGMAR.

Promoții și afișarea prețului final
Administrare · exemplu de configurareRăspuns de test pentru preț cu HTTP 200 și dry_run true: două intrări, o modificare simulată și un ID ignorat; fragmentul arată preț Supplier 120,00 și preț normal anterior 117,00.
Răspuns HTTP 200: preț în Dry runÎn testul de preț, would_update este 1 și updated este 0; valoarea Supplier de 120,00 este comparată cu prețul normal de 117,00.
PREȚ EXISTENT ÎN TEST117,00

valoarea netă citită din WooCommerce

PREȚ SUPPLIER TESTAT120,00

valoarea propusă de cererea de test

MODIFICĂRI REALE0

răspunsul este în Dry Run

Captura testului arată HTTP 200, două elemente primite, unul care ar fi actualizat și unul ignorat. Este o verificare simulată a prețului, distinctă de actualizările reale de stoc din jurnal.

06 / De la acceptare la rezultat

Loturi mici în request.
Loturi mari în fundal.

O cerere poate conține până la 1.000 de elemente. Până la 10 sunt procesate sincron; peste acest prag, cererea este acceptată și continuată în bucăți de cel mult 10 elemente.

Acceptarea are propriul rol.

Un HTTP 200 pentru un lot pus în coadă confirmă primirea. Finalizarea este urmărită prin procesare și jurnal. Action Scheduler sau mecanismul WP-Cron disponibil continuă lucrul în WordPress.

Valorile identice rămân stabile.

Rezultatele neschimbate nu sunt rescrise. SKU-urile necunoscute și excluderile manuale sunt ignorate controlat; o intrare invalidă nu blochează celelalte produse ale lotului.

Jurnal operațional

Înainte. După. Explicație.

Jurnalul documentează modificările reale și erorile reale, cu sursa, multiplicatorul și valorile înainte/după. Registrul excepțiilor păstrează separat regulile intenționate.

Rândul pentru SKU 28632 arată 668 în Supplier, multiplicator 0,70 și stoc publicat 467. Stocul WooCommerce anterior era 492.

Administrare · exemplu de configurareJurnalul actualizărilor reale Supplier cu SKU, stocul sursă, multiplicatorul 0,70, valoarea aplicată și stocul înainte și după. Identificatorii de lot sunt mascați.
Actualizări reale de stocÎn jurnal apar modificări reale: de exemplu SKU 28632 are stoc Supplier 668, multiplicator 0,70 și stoc aplicat 467.
Instrumentele de verificare: stoc, preț și lot mixt

Panourile administrative permit teste explicite. Dry Run calculează rezultatul fără modificări de catalog; modul global rămâne o protecție suplimentară pentru cererile API.

Administrare · exemplu de configurareFormular de test HTTP pentru stoc, cu SKU 29837, stoc Supplier 10 și bifa Dry run activă.
Test HTTP de stoc în simulareTestul de stoc este pregătit în mod Dry run; formularul include și un ID inexistent pentru verificarea răspunsului ignored.
Administrare · exemplu de configurareFormular de test HTTP pentru preț cu SKU 29837, preț net Supplier 117,00 și bifa Dry run activă.
Test HTTP de preț în simulareTestul de preț este configurat în simulare și precizează că prețul normal este singurul câmp vizat.
Administrare · exemplu de configurareFormular de test mixt Supplier cu patru SKU-uri și valorile de stoc și preț net, plus bifele Dry run și adăugarea automată a unui ID inexistent.
Test mixt pentru stoc și prețAcelași set poate fi verificat pentru stoc și preț; în captura primită, simularea este activă.
Un test de stoc separat de jurnalul LIVE

Rezultatul capturat indică Dry Run, două elemente primite, o actualizare simulată, un element ignorat și zero modificări reale. Detaliul vizibil include stocul de test 10 și multiplicatorul 0,70.

Administrare · exemplu de configurareRăspuns de test pentru stoc cu HTTP 200, dry_run true, două intrări primite, o actualizare simulată, un ID ignorat și zero actualizări efective. Identificatorii tehnici sunt mascați.
Răspuns HTTP 200: stoc în Dry runTestul de stoc răspunde HTTP 200: received 2, would_update 1, ignored 1 și updated 0.
Administrare · exemplu de configurareFragmentul rezultatului de stoc pentru SKU 29837: status would_update, cod dry_run, stoc Supplier 10 și multiplicator 0,70.
Detaliul simulării pentru SKU 29837Fragmentul vizibil confirmă stocul de test 10 și multiplicatorul 0,70; stocul nu a fost modificat.
07 / Contextul văzut de client

În stoc la furnizor.
Cu termenul la vedere.

Un indicator administrat pe produsul părinte poate afișa mesajul „ÎN STOC LA FURNIZOR” și termenul de livrare de 3–5 zile lucrătoare. Exemplul public Lunazul Blanco arată mesajul deasupra opțiunilor de cumpărare.

Indicatorul este randat direct în pagină. Bifa este o decizie de catalog și nu modifică singură cantitatea sau statusul stocului WooCommerce.

O regulă concretă pentru plată.Dacă în coș există un produs cu această opțiune activă, extensia elimină plata ramburs. Celelalte metode urmează configurarea magazinului.

Site public · desktopPagina produsului Lunazul Blanco 0.7L cu fotografia, prețul, indicatorul ÎN STOC LA FURNIZOR, termenul de 3–5 zile lucrătoare și opțiunile de cumpărare sticlă și BAX.
Lunazul: disponibilitate la furnizorLunazul Blanco 0.7L este afișat cu disponibilitate la furnizor și termen de livrare de 3–5 zile lucrătoare.
Unde se administrează mesajul din produs

O opțiune pe părinte.

Câmpul „Disponibilitate Stoc Furnizor” apare în Inventar. Captura administrativă documentează poziția și explicația câmpului, cu bifa debifată în produsul respectiv.

Captura publică Lunazul este un exemplu separat în care mesajul este afișat.

Administrare · exemplu de configurareCâmpul Disponibilitate Stoc Furnizor din inventarul produsului, cu explicația mesajului și a termenului de livrare de 3–5 zile lucrătoare. Bifa este inactivă în această captură.
Controlul disponibilității la furnizorCâmpul are un ajutor contextual pentru mesajul public și termenul de 3–5 zile. Bifa afișată aici este inactivă.
Site public · desktopIndicatorul verde ÎN STOC LA FURNIZOR și textul Termen de livrare 3–5 zile lucrătoare de pe pagina Lunazul.
Mesajul public de disponibilitateMesajul public diferențiază disponibilitatea la furnizor și comunică termenul de livrare.
Detalii despre implementare

Integrare ERP.
Reguli explicate.

Ce include integrarea custom ERP cu WooCommerce?

În proiectul DAGMAR, integrarea leagă gestiunea Supplier/VFP de stocurile și prețurile produselor WooCommerce prin API. Include mapare pe SKU, rezervări din comenzi, excepții pe produs și variație, procesare pe loturi și jurnal. Comenzile, clienții și facturile au un circuit complementar, documentat separat.

Se poate sincroniza o aplicație ERP custom bazată pe Visual FoxPro?

Acest studiu documentează o astfel de implementare: programarea externă a aplicației Supplier transmite datele către interfața API WooCommerce. Pentru un alt ERP, adaptorul și mapările se stabilesc după interfața disponibilă și regulile aplicației respective.

Multiplicatorul ajustează și prețul?

Multiplicatorul se aplică stocului. Prețul net Supplier este normalizat la două zecimale și salvat în regular_price; sale_price rămâne neatins.

Ce se întâmplă cu stocul negativ?

Orice stoc Supplier negativ este normalizat la zero. Rezultatul publicat nu poate coborî sub zero nici după scăderea rezervărilor.

Când încetează o rezervare marketplace?

Motorul include comenzile cu status eMAG sau Trendyol create în ultimele 24 de ore, până când factura Supplier finalizată și primirea ei sunt înregistrate. Recalcularea are loc la următoarea sincronizare a stocului.

De unde vine programarea sincronizării?

Supplier/VFP trimite cererile după programarea sa externă. Mecanismele WordPress continuă procesarea loturilor acceptate. Frecvența efectivă depinde de configurarea și funcționarea acelui circuit.

Dry Run intră în jurnalul actualizărilor reale?

Răspunsul testului afișează ce ar fi actualizat. Jurnalul operațional păstrează modificările și erorile reale; rezultatele neschimbate, ignorările și simulările au alte roluri în diagnostic.

Mesajul „În stoc la furnizor” este calculat automat din API?

Mesajul este controlat prin bifa produsului părinte. Sincronizarea cantitativă și indicatorul public sunt componente distincte, corelate prin administrarea catalogului.

Continuă explorarea proiectului

Integrarea continuă după plasarea comenzii.

Descoperă fluxul clienților, preluarea comenzilor în ERP-ul custom și întoarcerea facturilor în WooCommerce.

Conectează magazinul WooCommerce cu gestiunea și ERP-ul afacerii tale.

Discută proiectul tău
KEPA
CENTRU DE PREFERINȚE
CONTROLUL RĂMÂNE LA TINE

Tu alegi ce permiți.

Cookie-urile necesare susțin funcționarea site-ului. Celelalte categorii sunt opționale și pornesc numai după acordul tău. Refuzul nu limitează accesul la serviciile și conținutul de bază KEPA.

Strict necesare

Mereu active

Permit memorarea alegerii tale și funcțiile esențiale, precum securitatea, autentificarea sau procesarea unei solicitări. Nu sunt folosite de acest plugin pentru publicitate.

Google Analytics 4 ne ajută să înțelegem ce pagini sunt vizitate și cum sunt folosite. Poate prelucra identificatori online și informații despre dispozitiv, pagini și interacțiuni. Nu pornim măsurarea înainte de acord.

Cu acordul tău, măsurăm și interacțiunile cu formularul de ofertă și clickurile către magazinele partenere. Nu transmitem în aceste evenimente numele, e-mailul, telefonul sau mesajul introdus.

Google Analytics 4 · încărcat prin Google Tag Manager

Integrarea KEPA nu activează Google Ads sau remarketing. Acceptarea statisticilor nu acordă permisiune pentru publicitate.

La retragerea acordului, pagina se poate reîncărca pentru a opri scripturile deja pornite. Salvează mai întâi informațiile introduse într-un formular.