Preverjanje če artikel obstaja ob prvem XML uvozu
 
blindek 2. apr 2011 14:04:43 Pridružen od:
11. dec 2009
924 objav
849 240 22
#1

Delamo modul za avtomatsko uvažanje oziroma importanje artiklov v magento preko XML-ja dobavitelja. Glede na to pa da ima naša trgovina že veliko dodanih izdelkov, tudi veliko od tega dobavitelja čigar je XML, se nam pojavlja naslednje vprašanje:



Kako preveriti ob prvem avtomatiziranem uvozu če artikel že obstaja v trgovini ali ne?




  • Po imenu artikla je težko preverjati saj se imena ne popolnoma ujemajo. Namreč lastnik trgovine ko je dodajal artikle je včasih kakšno besedo dodal ali spremenil v imenu artikla.

  • Problem je tudi ker so nekateri isti artikli bili dodani preko spiska drugega dobavitelja, zato je lahko ime tudi nekoliko drugačno.

  • Nekoliko se nam je zastevilo in smo želeli preverjati preko unikatnih imen modela vsakega artikla. Samo tukaj se pojavi težava, da je težko iz imena artikla izluščiti nek model. Ker recimo en od težjih primerov je tak. Ime "LG GC-W141 BXG VINSKA VITRINA" , model pa je vse to "GC-W141 BXG" , namreč ta BXG predstavlja barvo.



Veliko je enih komplikacij in me zanima če se je že kdo srečal s podobnim problemom pa kako ga je potem rešil?



Hvala.


všeč(0) ni všeč(0) spam(0)
 
skyx 2. apr 2011 16:02:58 Pridružen od:
19. jul 2010
232 objav
103 21 3
#2

Tole bi rabil najpej dati v neko svojo "bazo", kjer bi imel shranjena samo različne artikle. In če je artikel različen od že vpisanih ga dodaš notr, nato pa sam na novo dodane dodajaš v magento. Sam sem ta problem nekje drugje rešil tako da se stvar ujema vsaj v določenem številu črk. Sam še vseno to ni 100% rešitev. A ne dobiš nobene ID cifre po kateri bi preverjal če ta izdelek že obstaja ?


všeč(0) ni všeč(0) spam(0)
 
1qay1qay 2. apr 2011 17:35:52 Pridružen od:
12. avg 2010
2967 objav
2430 194 84
#3

EAN koda ?


všeč(0) ni všeč(0) spam(0)
Delko www.delko.si [Moto akumulatorji] | [Polnilne baterije] | [GP baterije]
 
Gogy 2. apr 2011 19:21:55 Pridružen od:
17. mar 2007
2491 objav
2064 252 12
#4

Ima ta dobavitelj kako kodo artikla oz. nek ID po katerem ga ima v svoji evidenci?



Druga možnost (čeprav nisem v teh vodah in ne vem ali je to izvedljivo v tvojem primeru) je ta, da vsakič od tega dobavitelja pred vnosom pobrišeš v svoji bazi vse artikle in na novo uvoziš.



Sicer bi pa morda Roky-jev team lahko ponudil take reči (kolikor vem se prav s temi uvozi ukvarjajo).


všeč(0) ni všeč(0) spam(0)
 
SlimDeluxe 2. apr 2011 19:28:27 Pridružen od:
29. apr 2010
1223 objav
1022 144 9
#5

Bazo proti XML dobavitelja primerjaš po šifri artikla dobavitelja (supplier SKU), ki bi jih moral že od samega začetka uvažat (ali ročno vpisat, če artiklov ni npr. več kot 100).

Za vsakega dobavitelja dodaj njegov SKU.

EAN koda se v praksi (vsaj pri igrah) ne obnese, ker so kode istega artikla marsikdaj različne. Mogoče lahko kdo drug pove, če ima drugačne izkušnje.

Če dobavitelj obravnava različne barve kot različne izdelke, priporočam, da jih tudi vi, ker boste imeli dosti manj dela (tudi tvoja stranka materialno verjetno vodi različne barve pod različnimi SKUji).


všeč(0) ni všeč(0) spam(0)
Freelance Web Developer
 
SlimDeluxe 2. apr 2011 19:33:42 Pridružen od:
29. apr 2010
1223 objav
1022 144 9
#6

Gogy:

Druga možnost (čeprav nisem v teh vodah in ne vem ali je to izvedljivo v tvojem primeru) je ta, da vsakič od tega dobavitelja pred vnosom pobrišeš v svoji bazi vse artikle in na novo uvoziš.




Sorry, ampak slabšega predloga ne bi mogel dati, ker bi v tvojem primeru artikel pri vsakem uvozu imel različen ID. :) ID artikla se v nobenem primeru ne sme spreminjati. To zahtevajo tako razni uvozi v druge aplikacije/primerjalnike cen/oglasnike, kot ohranjanje integritete podatkov.


všeč(0) ni všeč(0) spam(0)
Freelance Web Developer
 
blindek 2. apr 2011 19:46:03 Pridružen od:
11. dec 2009
924 objav
849 240 22
#7

EAN koda je le v XMLju od dobavitelja, v svoji magento trgovini pa nimam shranjene EAN kode. IDji pa se razlikujejo, ker mi v trgovini imamo IDje od magenta, oni pa imajo svoej IDje tako da ne morem preverjat. Tudi SKU koda je v naši magento trgovini čisto neka random in se ne ujema z kodo dobavitelja. Torej nobene kode, nobeni IDji nič se dejansko ne ujema. Edino po čem bi lahko preverjali je ime artikla v katerem je ponavadi tudi model. Tukaj pe je treba skoraj neko umetno inteligenco naredit da razloči če gre za isti artikel ali ne, ker kot sem že napisal so imena lahko nekoliko drugačna (vrstni red, ena ima še kako besedo zraven recimo LCD TV druga pa nima, itd).



Naj pa povem da to rabim le za prvi uvoz. Potem bomo že shranili kateri artikli so bili uvoženi in kateri ne, tako da za naslednji zagon tega ne bo potrebno.



No kot prvo sam nisem programer tega modula, temveč fant ki mi to dela. Bo verjetno v kratkem vstopil v to debato.



Jaz sem imel pa tako idejo, samo je potem baje to kar potratno.



Skratka neka taka logika.



V magento imam recimo artikel imenovan: LCD TV GRUNDIG VISION 7 37 VLC 9040 C



V XMLju dobavitelja pa:

<izdelekIme>

Grundig Vision 9 37 VLC 9040 C LCD sprejemnik (94 cm, Full HD)

</izdelekIme>



Aplikacija pride do zgoraj navedenega artikla v XMLju preveri ime in gre vsako besedo posebej primerjat. Recimo najprej vzame "Grunding" in izlušči v moji trgovini vse ki imajo ime "Grunding" in jih ostane rečemo 500, potem vzame "Vision" besedo in v teh 500 pogleda kateri imajo še "Vision" in jih ostane recimo 20. Potem pogleda kateri ima besedo "9" in jih ostane recimo 5.... in vse tako naprej. Po mojem ni slaba ideja vendr naj bi bila kar zakomplicirana za implementacijo.


všeč(0) ni všeč(0) spam(0)
 
skyx 2. apr 2011 20:10:10 Pridružen od:
19. jul 2010
232 objav
103 21 3
#8

Ta način ti bo porabil preveč časa da bo vse pregledal 100%, če pogledaš 1 artikel več pomeni toliko in toliko možnosti več + tega boš moral za vsako besedo delat querye razen če zadevo shraniš v kak cache ali nek fajl in tam iščeš, po možnosti kar vse daš v array. Sam sem to delal z excel datotekami in je trajalo kar neki časa da se je vse skupaj preverjalo, poizvedbe naredilo, zapisalo, izvedlo ...


všeč(0) ni všeč(0) spam(0)
 
Gogy 3. apr 2011 03:40:45 Pridružen od:
17. mar 2007
2491 objav
2064 252 12
#9

SlimDeluxe:




Gogy:

Druga možnost (čeprav nisem v teh vodah in ne vem ali je to izvedljivo v tvojem primeru) je ta, da vsakič od tega dobavitelja pred vnosom pobrišeš v svoji bazi vse artikle in na novo uvoziš.




Sorry, ampak slabšega predloga ne bi mogel dati, ker bi v tvojem primeru artikel pri vsakem uvozu imel različen ID. :) ID artikla se v nobenem primeru ne sme spreminjati. To zahtevajo tako razni uvozi v druge aplikacije/primerjalnike cen/oglasnike, kot ohranjanje integritete podatkov.




@SlimDeluxe, razumem. Saj zato sem kot prvi predlog predlagal točno to o čemer pišeš ti oz. sem vprašal ali ne dobijo tega podatka... ker tega nimajo morajo poskati alternativo. Alternativa je drugi predlog za katerega praviš, da je najslabši. Imaš kakega boljšega?



@blindek, razmislite o dodatnih poljih (EAN, ID) in jih potem uskladite oz. boste pri uvozu vedeli, da ta artikel že obstaja in ga je potrebno samo posodobit.


všeč(0) ni všeč(0) spam(0)
 
SlimDeluxe 3. apr 2011 07:26:05 Pridružen od:
29. apr 2010
1223 objav
1022 144 9
#10

Seveda imam in sem ga napisal. Morda malo površno ampak efekt bi bil na bazi takšen:

Product (id, supplier1sku, supplier2sku, currentsupplierid)

Supplier (id)



Če pa nočeš spreminjati originalne Product tabele, pa:

Product(id)

Supplierhasproduct(supplierid, productid, sku, current)

Supplier(id)


všeč(0) ni všeč(0) spam(0)
Freelance Web Developer
 
 

🔒 Za odgovor na to temo se moraš prijaviti.

Prijavi se