Liigu põhisisu juurde
Vaata projekteVõta ühendust+372 5349 8711
Kõik teenused

Teenus

E-poe automatiseerimine: tooted, hinnad ja laoseis uuenevad ise

Kui tarnijaid on mitu ja tooteid tuhandeid, ei jõua keegi hindade ja laoseisude muutumisega käsitsi järge pidada. Ühendan tarnijate XML- ja API-tootevood sinu e-poega ning panen uuendused kokkulepitud ajakava järgi käima. Allpool on kirjas, kuidas ühendus töötab, millal see tasub ja mis läheb tüüpiliselt valesti.

Mis probleem see on

Käsitsi tootehaldus ei lähe katki järsku. See lihtsalt hakkab võtma rohkem aega, kui sul on. Tarnija saadab uue hinnakirja, sina avad selle, otsid muutunud read üles ja parandad need e-poes ära. Väikese kataloogi puhul võib käsitsi uuendamine veel hallatav olla. Viis tuhat toodet ja seitse tarnijat ei ole enam töö, mille saab ära teha - see on valik, mille sa tegemata jätad.

Aegunud andmete hind ei ole ainult sinu aeg. Toode, mis on tarnija laost otsas, aga sinu poes müügil, tähendab tellimust, mille pead tühistama, koos raha tagastamise ja kliendiga, kes teist korda ei tule. Toode, mille ostuhind tõusis, aga sinu poes mitte, müüakse maha kahjumiga. Mõlemat juhtub vaikselt: keegi ei anna sulle teada, et andmed on vananenud.

Automatiseerimine tähendab siin väga konkreetset asja. Tarnija andmed jõuavad sinu e-poodi ilma, et keegi neid vahepeal käsitsi kopeeriks. Sina otsustad reeglid: mis hinnaga müüd, mis kategooriasse toode läheb, mida üldse üles paned. Masin teeb ainult seda osa, mis kordub.

  • Otsas oleva toote müük ja sellele järgnev tellimuse tühistamine
  • Vananenud ostuhinna tõttu kahjumiga maha müüdud toode
  • Uued tooted, mis jäävad kuudeks üles panemata, sest keegi ei jõua
  • Käsitsi sisestamisel tekkinud näpuvead: vale koma hinnas, vale kogus laos
  • Kampaania, mis jääb kestma, sest keegi ei jõudnud hindu tagasi muuta

Millal automatiseerimine tasub

  • Tarnijaid on mitu ja igaüks annab andmeid isemoodi
  • Tooteid on palju või kataloog kasvab kiiresti
  • Hinnad või laoseis muutuvad vähemalt kord nädalas
  • Tarnija pakub XML- või API-tootevoogu, mida sa praegu ei kasuta
  • Tootehaldusele kulub kuus pigem päevi kui tunde
  • Käsitsi uuendamisel on juba tekkinud vigu, mis raha maksid

Millal seda teha ei tasu

  • Tarnijaid ja tooteid on vähe ning käsitsi töö kordub harva: siis on käsitsi haldus tavaliselt lihtsam ja odavam kui automaatika ehitamine ja ülalpidamine
  • Hinnad ja sortiment muutuvad paar korda aastas
  • Müüd oma toodangut ja laoseis sünnib sinu enda töölaual. Tarnija faili, mida sünkroniseerida, lihtsalt ei ole
  • Tarnija annab andmeid ainult PDF-hinnakirjana või e-kirja lisatud tabelina, mille struktuur iga kord muutub. Sellest saab teha ühekordse impordi, püsivat automaatikat aga mitte
  • Sinu praegused tootekoodid, kirjeldused ja laoseisud on segamini. Selle peab inimene enne korda tegema, muidu ei ole automaatikast midagi rääkida

Kus piir jookseb. Automatiseerimine tasub end ära mahu pealt. Kui tarnijaid ja tooteid on vähe, töötab sinu raha paremini lehe kiiruses või tootepiltides. Kui sa ei tea, kummal pool piiri sa oled, kirjuta ja küsi.

Kuidas tarnija XML-tootevoog töötab

Tarnija hoiab ühel veebiaadressil faili, kus iga toode on kirjas ühtemoodi. Skript laeb selle kokkulepitud ajal alla, võrdleb sinu poe sisuga ja uuendab ainult selle, mis muutus.

Tarnija XML või API
Töötlus ja reeglid
Sinu e-pood

Failis on iga toote kohta samad väljad: tootekood, nimetus, ostuhind, laoseis, kategooria ja piltide aadressid. Inimese jaoks näeb see välja nagu pikk sildistatud loetelu, masina jaoks on see üheselt loetav. Tarnija uuendab seda faili ise, tavaliselt kord ööpäevas.

Sinu poolel käib skript iga toote läbi ja võrdleb seda sellega, mis su poes juba olemas on. Kui hind muutus, kirjutab uue peale. Kui laoseis on null, võtab toote müügist maha. Kui toodet veel ei ole, loob selle. Kui midagi ei muutunud, ei tee midagi. Just see hoiab öise impordi kiirena ja väldib vahemälu asjatut tühjendamist.

Kogu ühenduse süda on tootekood. Ilma püsiva identifikaatorita, milleks on tarnija artiklinumber või EAN, ei tea skript, kas failis olev toode on sama, mis sinu poes juba olemas, ja tulemuseks on dublikaadid. See on esimene asi, mida kaardistusel vaatan, ja üsna tihti ka esimene asi, mis on puudu.

Kuidas API-ühendus töötab

API on sama asi teistpidi. XML-i puhul paneb tarnija faili välja ja sina tuled sellele järele. API puhul on tarnija süsteemil liides, mille käest saab küsida: mis on selle toote laoseis praegu? Vastus tuleb kohe, konkreetse toote kohta.

Praktilisi erinevusi on neli. API nõuab ligipääsu: võtit või kasutajat, mille tarnija sulle annab, samas kui XML-fail on tavaliselt lihtsalt link. API-l on peaaegu alati piirang, mitu päringut tohib teha, mis tähendab, et viie tuhande toote ükshaaval läbiküsimine ei pruugi limiiti ära mahtuda. API võib anda värskema vastuse, sest päring tehakse otse tarnija süsteemi vastu, mitte eile öösel salvestatud faili pealt; tegelik värskus sõltub siiski sellest, kui kiiresti tarnija ise oma andmeid uuendab. Ja API-sid on palju erinevaid: iga tarnija liides on omamoodi, seega esimene ühendus võtab rohkem tööd kui tavalise faili lugemine.

Andermi projektis ulatusid kasutatud liidesed tavalisest XML-failist SOAP-teenuseni. Mitu tarnijat tähendab mitut erinevat viisi sama asja küsida ja iga uus tarnija tuleb eraldi läbi käia.

XML või API: kumb sobib

Kui valida on või kui tarnija pakub mõlemat, siis nii.

XML-tootevoog

Sobib kataloogi jaoks: tuhanded tooted, nimetused, kirjeldused, kategooriad, pildid ja hinnad korraga. Üks fail annab kogu sortimendi kätte kiiresti ja tarnija süsteemi koormamata. Nõrkus: andmed on täpselt nii värsked, kui värske on tarnija viimane failiuuendus.

API-ühendus

Sobib kiiresti muutuva info jaoks, eelkõige laoseisu jaoks. Üksiku toote seisu saab küsida just sel hetkel, kui klient ostukorvi vaatab. Nõrkus: päringulimiit, keerukam seadistus ja suurem sõltuvus sellest, kas tarnija süsteem parasjagu vastab.

Mõlemad koos

Mahuka kataloogi puhul sageli mõistlik kombinatsioon: kataloog ja hinnad tulevad öösel XML-ist, laoseisu käiakse API kaudu tihedamini üle küsimas. Nii ei koorma täisuuendus tarnija liidest ja kõige kiiremini muutuv number püsib värske.

Otsustusreeglid: millal kumb

  • Tarnija pakub ainult ühte neistSiis teeb valiku tema. Enamasti on selleks XML ja tavalise poe jaoks sellest piisab.
  • Tooteid on tuhandeidKataloogi täisuuendus käib XML-ist. Toodete ükshaaval API kaudu läbiküsimine on aeglane ja põrkub päringulimiiti.
  • Laoseis muutub tundidegaSiis on laoseisu jaoks API põhjendatud. Kui toode müüakse ühe päevaga läbi, ei ole öine uuendus piisav ja sa müüd asju, mida sul ei ole.
  • Tarnija uuendab oma faili kord ööpäevasUuenda kord ööpäevas ja suuna sagedasem küsimine sinna, kus andmed kiiremini muutuvad.
  • Hinnad on lepingulised ja muutuvad harvaHinnad ja laoseis ei pea käima samas rütmis. Sagedasem uuendus on mõttekas ainult sellel väljal, mis muutub.
  • Tarnija liides on ebastabiilneXML-faili saab alla laadida, salvestada ja alles siis töödelda: kui midagi läheb valesti, on eelmine fail alles. Otseühendusel seda puhvrit ei ole ja tarnija katkestus jõuab kohe sinu poodi.

Mis täpselt sünkroniseeritakse

Kõik väljad ei pea tarnijalt tulema. Osa andmeid tasub üle võtta, osa enda kontrolli alla jätta: iga väli on eraldi otsus.

  • TootedUued tooted lisanduvad kataloogi, kadunud märgitakse mittesaadavaks. Kustutamine on halb vaikevalik: kustutatud toote aadress hakkab andma 404 viga ja kaotab otsingutulemuse, mille kogunemine võttis kuid.
  • HinnadTarnija annab ostuhinna, sina annad reegli. Juurdehindlus võib olla kategooriapõhine, tootepõhine või protsent koos ümardusega. Kampaaniahinnad tasub reeglist välja jätta, muidu kirjutab öine import su kampaania üle.
  • LaoseisKas täpne kogus või lihtsalt laos/otsas. Sageli on mõistlik hoida puhvrit: näidata toodet otsa saanuna juba siis, kui tarnijal on alles üks, sest sama kaupa müüb ka keegi teine.
  • KategooriadTarnija kategooriapuu järgib tarnija laoloogikat. Sinu poe oma peaks järgima seda, kuidas su klient otsib. Nende kahe vastendamine on inimese töö.
  • PildidPildid laaditakse tarnija juurest alla sinu meediakogusse. Juba olemasolevaid ei tõmmata iga kord uuesti, muidu kasvab majutus ja iga import muutub aeglasemaks.
  • TootekirjeldusedTarnija tekst on sõna-sõnalt sama, mis kõigi teiste sama tarnija edasimüüjate poes. Sageli on parem võtta kirjeldus algimpordil sisse ja jätta see edaspidi automaatikast puutumata, et sinu enda tekstid alles jääksid.
  • Kaal, mõõdud, EAN, tarneaegVäike info, millel on suur mõju: kaal ja mõõdud lähevad transpordihinna arvutusse, EAN aitab sama toodet eri tarnijate vahel kokku viia.

Kui tihti uuendused käivad ja miks mitte reaalajas

Uuendused käivad ajastatult. Serveris töötab ajastaja, mida nimetatakse CRON-iks, ja see käivitab skripti kokkulepitud kellaajal. Tüüpiline rütm on kataloogi ja hindade täisuuendus öösel ning laoseisu uuendus mitu korda päevas.

Öö on valitud kahel põhjusel. Külastajaid on vähem, nii et tuhandete toodete kirjutamine andmebaasi ei jää kellelegi jalgu. Ja suur import tühjendab osa vahemälust, mis tähendab, et esimesed lehed pärast importi laadivad aeglasemalt. Parem, kui see juhtub kell kolm öösel kui keskpäeval.

Reaalajas uuendus kõlab paremini, kui see päriselt on. Tarnija ise uuendab oma andmeid enamasti üks või paar korda päevas, nii et sagedamini küsides saad sama vastuse mitu korda. Iga uuendus on kirjutamine andmebaasi ja pidev kirjutamine hoiab suure poe aeglasena, nii et kiiruses kaotad rohkem kui värskuses võidad. Ja päris reaalaeg eeldaks, et tarnija annab muutusest ise märku; enamik tootevoogusid seda ei tee, küsima pead sina.

Üks koht, kus värske kontroll on põhjendatud, on laoseis ostukorvis ja kassas. Enne tellimuse kinnitamist saab API kaudu üle küsida, kas toode ikka on olemas. Seda tehakse ühe toote kaupa ja täpselt sel hetkel, kui see loeb. Seda saab teha ainult siis, kui tarnija API on piisavalt kiire ja töökindel: aeglane või ebastabiilne välisliides ei tohiks muuta kassat ennast aeglaseks.

Olemasolev e-pood või nullist

Automatiseerimise saab lisada ka juba töötavale e-poele; kogu poodi ei pea selle pärast uuesti tegema. Tehniline ühendus on mõlemal juhul sama, erineb see, kuhu töö koguneb.

  • Olemasolev e-poodTehniline ühendus on sama. Raske osa on olemasolevate toodete kokkuviimine tarnija failiga: aastate jooksul käsitsi sisestatud tooted, kus tootekood on kirjas kolmel eri kujul, sama toode on kaks korda sees ja osal ei ole koodi üldse. See tuleb korda teha enne automaatika sisselülitamist, muidu teeb esimene import segadust ainult juurde.
  • Uus e-poodSiin saab kategooriastruktuuri, tootekoodid ja hinnareeglid paika panna kohe tootevoo järgi. Algimport on suurem, aga puhas. Kui on juba teada, et kataloog tuleb tarnijalt, tasub pood algusest peale selle järgi ehitada.

Kui e-pood on alles plaanis, tasub alustada WordPressi veebilehtede ja WooCommerce e-poodide teenusest ja teha automatiseerimine juba algusest lahenduse osaks. Siis ei pea kataloogi hiljem ümber tegema.

Mida WooCommerce'i puhul teadma peab

Automatiseerimisi olen teinud eelkõige WooCommerce'ile. Seal on paar asja, mis mahuka kataloogi puhul otsustavad, kas pood jääb kiireks või mitte.

  • Üks toode ei ole andmebaasis üks ridaWordPressis on tootel lisaks põhikirjele hulk lisavälju. Variatsioonidega tootel, kus sama asi on mitmes suuruses või värvis, on iga variatsiooni kohta omaette kirje. Viis tuhat toodet tähendab kordades rohkem kirjeid.
  • Admin-liidese hulgimuutmine ei ole selleks tehtudÜhekordne või käsitsi käivitatav import ei ole sama asi mis pidev ajastatud tarnijasünkroniseerimine. WooCommerce'i enda impordivahend eeldab, et keegi selle ise käivitab; suure kataloogi öine uuendus on omaette protsess, mis käib serveri poolel ilma inimeseta.
  • Mahukas pood võib objektivahemälust palju võitaWordPressi enda objektivahemälu ei ole vaikimisi püsiv: ilma eraldi lahenduseta elab see ainult ühe päringu jooksul. Redis või Valkey hoiab korduvad andmebaasipäringud mälus ja võib suure kataloogi jõudlust märgatavalt aidata, eriti kui samad päringud korduvad palju. Vajadus sõltub siiski poe ülesehitusest, päringutest ja majutusest.
  • Import ei tohi vahemälu tervikuna maha võttaKui iga öine uuendus tühjendab kogu lehe vahemälu, alustab pood iga hommik nullist. Mõistlikum on puutuda ainult neid tooteid, mis muutusid.

Riskid ja piirangud

Automatiseeritud e-pood ei ole pood, mille peale võib unustada. See on pood, kus vead tulevad kiiremini ja korraga rohkem.

  • Tarnija muudab faili struktuuri ette teatamataVälja nimi muutub või mõni väli kaob ja import kas katkeb või kirjutab poodi tühjad väärtused. Seepärast peab impordil olema kontroll, mis ebaloomuliku tulemuse korral peatub ja annab märku.
  • Andmekvaliteet on täpselt nii hea kui tarnija omaPuuduvad pildid, tühjad kirjeldused, valed mõõdud, sama toode kahe eri koodiga. Automaatika ei tee neid asju korda - ta teeb neid kiiremini ja rohkem.
  • Dublikaadid mitme tarnija vahelKui kaks tarnijat müüvad sama toodet erineva koodiga, tekib poodi kaks sama toodet kahe eri hinnaga. Selle vastu aitab EAN-i või muu ühise tunnuse järgi kokkuviimine ja kokkulepe, kelle andmed on ülimuslikud.
  • Kategooriapuu läheb valestiTarnija kategooriad automaatselt üle võttes tekib pood, mille menüü kirjeldab tarnija ladu. Tehniliselt korrektne, müügile halb. Selle sammu peab tegema inimene, kes teab, mida su klient otsib.
  • Tarnija katkestab vooLink lakkab töötamast, koostöö saab läbi või tarnija vahetab süsteemi. Tuhat toodet jääb sel hetkel viimasesse teadaolevasse seisu. Kokku tuleb leppida, mis siis juhtub: kas tooted peidetakse, märgitakse otsa saanuks või jäetakse ootele.
  • Hinnareegli viga puudutab korraga kogu kataloogiKäsitsi tehtud viga on ühe toote peal. Vale juurdehindlusreegel on järgmisel hommikul tuhande toote peal. Seepärast alustan esimest täisimporti väiksema tootehulgaga ja käin tulemuse üle.
  • Automaatika vajab jooksvat tähelepanuSkript, mille peale keegi kunagi ei vaata, töötab seni, kuni miski muutub. Märkamatult seiskunud import on ohtlikum kui automaatika puudumine, sest pood näeb välja täpselt nii nagu enne.

Suurem osa neist ei lahene ühe korraga: keegi peab aeg-ajalt vaatama, kas import ikka töötab ja mida ta poodi kirjutab. Just seepärast käib automatiseeritud e-poe juurde enamasti ka jooksev hooldus.

Kuidas töö käib

  • KaardistusVaatan üle, mitu tarnijat, mitu toodet ja millisel kujul andmed kätte saab. Kontrollin, kas on olemas püsiv tootekood, mille järgi tooteid üldse kokku viia. Selle sammu järel oskan öelda, kas automatiseerimine tasub ja kui suur töö see on.
  • NäidisimportVäike osa tooteid läheb esimesena testkeskkonda. Juba sellest on näha, mis andmed failist kohale jõuavad ja mis on puudu.
  • Reeglid ja vastendusPanen ette hinnareeglid, kategooriate vastavuse ja selle, mis väljad tulevad tarnijalt. Sina ütled, mis jääb sinu kontrolli alla. Siin on sinu otsuseid kõige rohkem vaja.
  • Täisimport ja kontrollKogu kataloog sisse ja üle vaadatud: hinnad, laoseisud, kategooriad, pildid. Vead parandan enne, kui automaatika käima läheb.
  • Automaatika sissePanen ajastuse paika: mis käib öösel, mis tihedamini. Sisse lähevad ka kontrollid, mis annavad märku, kui import ebaõnnestub või tulemus näeb kahtlane välja.
  • Jälgimine ja kohandamineEsimesed nädalad näitavad, mis muutub sageli ja mis harva. Selle põhjal kohandan sagedust ja reegleid.

Näide tehtud tööst

Andermi.ee on 5200+ tootega WooCommerce e-pood, kus 7 tarnija tooteinfo, hinnad ja laoseisud uuenevad automaatselt. Tehnilise poole lahendasin Pythoni skriptidega, mis käivituvad igal ööl ajastatult ja töötlevad tarnijate XML- ja API-tootevooge.

andermi.ee kuvatuna MacBook Pro ekraanil

Reaalne tulemus

Andermi.ee
WooCommerce e-pood, mille kataloogi hoiavad käigus tarnijate tootevood

7

Tarnijaühendust

5200+

Toodet

Automaatne

Hindade ja laoseisude uuendus

Vaata Andermi.ee projekti lähemalt

Kui oled tarnijalt XML-lingi juba saanud ja tahad enne tellimist aru saada, mis sind ees ootab, olen kirjutanud eraldi juhendi tarnija tootevoo ühendamisest.

Levinumad küsimused

Kas minu tarnija tootevoog sobib automatiseerimiseks?

Kui tarnija annab tooteinfo XML-failina või API kaudu kätte, saab seda enamasti automatiseerida. Olulisem küsimus on, kas voos on olemas püsiv tootekood või EAN. Ilma selleta ei ole võimalik teada, kas failis olev toode on sama, mis sinu poes juba olemas. Täpse vastuse saan anda siis, kui olen tarnija andmed üle vaadanud.

Kui palju tooteid peab olema, et automatiseerimine end ära tasuks?

Toodete arvu asemel vaata ajakulu. Kui tootehaldus võtab kuus paar tundi, ei tasu automaatikat ehitada: see on püsiv süsteem, mida tuleb ka üleval pidada. Kui see võtab paar tööpäeva kuus või kui sa jätad selle tegemata ja andmed on seetõttu vananenud, on arvutus juba teine. Sama kehtib vigade kohta: kui käsitsi uuendamine on juba kaasa toonud kahjumiga müüdud tooteid või tühistatud tellimusi, on see samuti kulu.

Kas automaatika kirjutab üle minu enda tootekirjeldused ja kampaaniahinnad?

Ainult siis, kui nii kokku lepitakse. Vaikimisi tulevad tarnijalt hind, laoseis ja tehnilised andmed; tootekirjeldused ja kampaaniahinnad jäävad automaatikast välja, et sinu enda tekstid ja hinnaotsused alles jääksid.

Kui tihti hinnad ja laoseis uuenevad?

Nii tihti, kui on mõtet. Kataloogi ja hindade täisuuendus käib tavaliselt öösel, laoseisu võib uuendada mitu korda päevas.

Miks ei käi uuendused reaalajas?

Sest tarnija ise uuendab oma andmeid enamasti üks või paar korda päevas ja pidev andmebaasi kirjutamine hoiab suure poe aeglasena. Ainus koht, kus värske kontroll on põhjendatud, on laoseis ostukorvis ja kassas.

Kaks tarnijat müüvad sama toodet - mis siis saab?

Ilma ühise tunnuseta tekib poodi kaks sama toodet erineva hinnaga. Tooted viiakse kokku EAN-i või muu ühise koodi järgi ja me lepime kokku, kelle hind ja laoseis on ülimuslikud.

Mis juhtub, kui tarnija muudab XML-faili struktuuri?

Import kas katkeb või hakkab poodi kirjutama tühje väärtusi. Seepärast kuulub imporditud andmete kontroll lahenduse juurde: kui korraga kaob pool kataloogist või kõik hinnad muutuvad nulliks, peatub protsess ja annab märku.

Mis saab siis, kui tarnija lõpetab voo saatmise?

Need tooted jäävad viimasesse teadaolevasse seisu ja pood näitab andmeid, mis enam ei kehti. Seepärast lepime nende käitumise kokku juba enne esimest importi.

Kas automatiseerimine sobib ainult WooCommerce'ile?

Ei. Kõige rohkem olen automatiseerimisi teinud WooCommerce e-poodidele, kuid sama põhimõte kehtib ka teiste süsteemidega, kui need lubavad XML-i või API kaudu andmeid sisse ja välja liigutada. Erinevus on peamiselt selles, kuidas andmed poodi kirjutatakse; tarnija voo lugemine käib ühtemoodi.

Kui kaua ühenduse loomine aega võtab?

See sõltub tarnijate arvust, andmete kujust ja olemasoleva kataloogi seisust. Tehniline ühendus on tavaliselt kiirem osa; aeg kulub kategooriate vastendamisele ja vanade toodete korrastamisele. Pärast kaardistust saan anda konkreetse ajahinnangu.

Räägi, mis su tarnijad sulle saadavad

Kirjuta, mitu tarnijat ja mitu toodet sul on ning millisel kujul andmed kätte saad. Vaatan üle, mida saab automatiseerida ja mis oleks mõistlik esimene samm.

Räägime automatiseerimisest