Migrarea comenzilor către Magento 2
Incercam sa raspund unei intrebari legate de cum migrezi comenzile din alte platforme catre Magento 2.
Si ceva ce ar parea ca e trivial, are complexitate asunsa in multe privinte.
Extensii/Module:
- multe disponibile fie pe marketplace sau de la diversi vendori
- abordări variate, fiecare cu problemele lor, fie ca sunt vicii ascunse, fie ca nu s-au lovit de tot felul de scenarii complexe și evident, nu le acoperă
- magmi importer stuff — aici eu ma abtin sa mai zic ceva — <insereaza aici avertizare de pericol, o faci pe riscul tau>
REST API
- se poate crea comanda prin REST API, se poate trimite si campul de created_at
- e de avut grija ca rezultatul sa fie consistent cu ce e dorit (pentru ca se executa partea de logica existenta — promoții active, stoc, etc)
- ai nevoie ca daca vrei sa le legi de customer account, acei clienți trebuie sa existe
- ai grija ce alte module ai active si ce triggere sunt implementate (nu ar fi ideal de exemplu sa trimiti iar email clientilor legat de comanda lor)
Inserat in baza de date
E si asta o opțiune, care, in opinia mea, vine cu un risc mare de a rezulta inconsistente in date. Multe câmpuri, multe lucruri de aliniat, greu de urmarit manual.
In acelasi timp e cea mai rapida varianta, iar daca ai volum mare/urias de migrat, in opinia mea si din experiența anterioară, e o varianta fezabila.
Ca si cheie de control — rapoarte de consistenta si verificari. E un volum mai mare de munca anterior rulării efective, dar overall — asta o poti rula si cu site-ul nou live (zero downtime migration). Si în practica, poti sta cu ochii pe google analytics, vezi cand ai volum mai mic în checkout si il rulezi. E mai complicat cand ai magazin online global, si ai tot timpul volum în checkout, pentru ca intra oamenii din diverse geografii.
Magento data migration tool
O varianta buna pentru M1 -> M2, din alte platforme, nu prea. Teoretic te poti baga in tool si sa surubaresti prin configurari sa preia datele din alta sursa, dar efortul e mare.
Si o alta abordare (intalnite si la alte platforme nu doar Magento, ci Salesforce Commerce Cloud si altele):
- migrarea comenzilor e necesara pentru cateva aspecte:
- istoric comenzi in contul clientului (in baza caruia sa poata face si operatiuni precum retur, etc)
- rapoarte (dar, multi folosesc alt setup pentru raportare si datele se duc intr-un data lake, CDP )
- si mai e aleasa optiunea de a le stoca intr-o structura separata de date — modul custom de afisare in istoric comenzi si apoi link catre un proces manual pentru partea de retur sau alte operatiuni per comanda (si re-order dezactivat pentru cele vechi)
Fiecare problema poate fi rezolvata in mai multe feluri, dar inainte de a începe, planul trebuie sa cuprinda:
- in cat timp vreau sa ruleze acel import (vreau 1 milion de comenzi importate in 10 minute)
- in ce context rulez acel import (site live sau in maintenance mode)
- cum masor consistenta datelor (si care e marja/rata de eroare acceptata), la ce rapoarte ma uit
- cum fac rollback daca depasesc marja de eroare / plan mitigare
- plan cu pași clari (ideal automatizati) si masurati ca timing pe fiecare (masurati in infrastructura similara cu cea pe care o sa rulez “live”)
- daca e un proces long running, cum il urmaresc ca merge conform planului
In opinia mea, nu exista varianta ideală, in practica apar tot timpul diverse situatii de gestionat. Cu oameni buni, o scoti la capat bine.
Prima migrare de comenzi cu zero downtime tin minte ca am facut-o în 2012, pentru un retailer de fashion in UK. Cam 3 saptamani am tot lucrat la automatizări, apoi batut capul cu partea de infrastructura (Rackspace era un dezastru pe partea de managed hosting), pentru ca nu scala corespunzator. Multe zile lungi, plecat acasa dupa ora 23:00…