Kouzla a čáry s importováním katalogů přes WP All Import

Článků o tom jak naimportovat XML katalog vyšlo v posledních měsících poměrně dost. Jsou to kvalitní články a pokud s XML feedy začínáte, tak bych určitě doporučoval si je přečíst.

Ne, že bych nějak miloval Dognet, ale ty články jsou dobré, a proto si tady zaslouží být. Poslední výše zmíněný článek se již lehce přibližuje tomu co tady chci rozebrat já. Chci hlavně ukázat jak vytvářet funkce pro úpravu jednotlivých parametrů ve wizardu WP All Importu. Ke konci článku bych rád poukázal na pár nových funkcí ve WP All Importu, které vyšlo v posledních updatech, a které souvisejí hlavně s rychlostí importování a updatem produktů.

Vzhůru do toho a půl je hotovo

Všechna show se bude odehrávat ve 3. kroku procesu importu produktů ve WP All Importu.

Než se dostanete do tohoto kroku, tak musíte načíst XML feed, vybrat v levém menu element <SHOPITEM>, případně si ještě vyfiltrujete, které produkty chcete importovat a posléze již budete v kroku 3, kde si pomocí drag & drop menu lze jednoduše zvolit co chcete naimportovat. Všechny postupy jak se dostat do bodu 3 popisuje první odkaz na článek, který zmiňuji v úvodu.

wp-all-import-wizard-step-3

Tato horní část celého wizardu je to co nás bude aktuálně zajímat a to z důvodu, že je tam možnost „Preview“, kterou vidíte v pravém dolním rohu. Díky tomu si bude možné veškeré funkce otestovat v textovém poli, zda dělají to co chceme.

Pro ukázku budu pracovat s XML feedem SvetBot.cz, který naleznete na této URL adrese: http://www.svetbot.cz/feed/affiliate.xml

1. Úpravy URL adresy

Když si načtete tento XML feed, tak vidíte, že URL adresa má takovouto podobu:

https://www.svetbot.cz/3693-damske-jarni-letni-kozene-polokozacky-j4931-pr3-bezova-offwhite.xhtml?utm_medium=feed&utm_source=affiliate&utm_term=zbozovy

Co na této URL adrese není úplně super je, že obsahuje UTMko, které nám může zkomplikovat přidání měřícího kódu, protože například u některých URL adres být může a u některých nikoliv.

Za otazníkem se mohou v URL vyskytovat všelijaké věci, a proto si myslím, že je dobré se naučit tyto parametry odstranit a nahradit je parametry, které jsou nutné pro správné měření Vašich affiliate konverzí. Odstranění UTMka tedy berte pouze jako příklad.

SvetBot.cz běží na měřícím systému AffilBox. Z toho důvodu potřebujeme dostat do URL adres parametr „?a_box=nase-affiliate-id“. Jak na to?

První možnost:

[str_replace(„?utm_medium=feed&amp;utm_source=affiliate&amp;utm_term=zbozovy„, „?a_box=nase-affiliate-id„, {URL[1]})]

Funkci vložíme do záložky HTML textového editoru! Tohle je velice důležité. V záložce Editor by Vám příkaz nefungoval. Po vložení klikněte na tlačítko Preview:

Červeně označená část příkazu říká co potřebujeme upravit

Zelená část příkazu nám říká čím jí chceme nahradit.

A modrá část příkazu vypisuje upravenou hodnotu.

wp-all-import-wizard-url

Nahoře to hodí chybu, že jste nepoužili žádný title, ale toho si prozatím nevšímejte.

stal-se-zazrak

Druhá možnost:

[preg_replace(„/(.*)\?.*/“,“\1″,{URL[1]})]?a_box=vase-affiliate-id

Existuje nespočet způsobů jak docílit toho co jsme udělali výše. Tento způsob pomocí regulárního výrazu odstraní vše za „?“ a následně přidá parametr a_box s Vaším affiliate ID.

Takto vytvořený příkaz (ať už první nebo druhou možností) použijete v kolonce „Product URL“ ve WP All Importu a nebo případně v Custom fieldu pro import URL adresy. Záleží co využíváte.

wp-all-import-wizard-product-url

K čemu tyto funkce mohou být ještě dobré?

Odstranění parametrů za URL je pouze jedna věc, ke které mohou být tyto příkazy dobré.

Stejným způsobem můžete například upravit, když inzerent má ve feedu URL adresy na http a celý web mu běží na https. Ušetříte tak jedno přesměrování a uživatel se od Vás z webu na web inzerenta dostane rychleji.

Další možností je, že si přidáte za URL vlastní měřící kanály Tzn. v případě AffilBoxu nepřidáte pouze parametr a_box, ale i a_cha. Výsledek tedy bude vypadat takto: ?a_box=vase-affiliate-id&a_cha=nazev-mericiho-kanalu. 

 2. Úpravy názvu

V názvech produktů se mohou opět vyskytovat všelijaká zvěrstva, která většina affiláků nebude umět upravit a tím pádem bude importovat ten samý název produktu jako ostatní. Opět je tedy možné z názvu produktu něco kompletně odstranit a nebo nahradit.

Může to být například velikost – S,M,L,XL nebo třeba nějaký shluk znaků apod. Ukážeme si jednoduchý příklad.

Nelíbí se nám například, že název produktu u našeho inzerenta vypadá takto:

Bugatti – Dámské jarní/letní kožené polokozačky J4931-PR3Konkrétně nás například irituje, že je všude na začátku názvu slovo „Bugatti -„.Opět použijeme funkci str_replace a tentokrát budeme chtít odstranit slovo „Bugatti – “ z každého názvu produktu.

[str_replace(„Bugatti -„, „“, {PRODUCT[1]})]

wp-all-import-wizard-url-odstraneni-bugatti

Tohle už je taková sranda a zvládli by jste to hravě sami.

Pojďme si však ukázat něco již trochu zajímavějšího.

Potřebujeme z konce názvu produktů odmazat IDčka, která jsou u každého produktu jiná. Máme například produkty:

  • Ara – Svatební lodičky na středním podpatku a platformě šíře G 12-23402-26
  • Jana – Dámské lakované lodičky na středním podpatku se vzorkem šíře G 8-22405-28
  • s.Oliver – Dámské lodičky na vysokém podpatku v koženém provedení 5-22402-28
  • Bugatti – Dámské jarní/letní kožené polokozačky J4931-PR3

Vidíte, že tato IDčka mohou být číselně-numerická kombinace a jsou všude jiná. Z toho důvodu nemůže použít funkci str_replace, protože ta se spíš hodí pouze pro případy, kde se daná věc v nějakém místě vyskytuje u všech produktů.

V tomto případě je třeba použít tuto funkci:

[preg_replace(„/^(.*) \b([-a-z0-9]+)$/i“,“\1″,{PRODUCT[1]})]

Tuto funkci vložíte to elementu Title a  kliknete na „Preview“ – IDčko z názvu odmazalo.

wp-all-import-pro-oriznuti-idcka
zazrak

Pokud je i tohle pro Vás easy, tak zkusíme ještě jednu úpravu názvu produktu.

Nyní budeme chtít udělat tyto úkony:

1. Odstranit IDčko z názvu produktu

2. Odstranit „Značka – “ před každým názvem produktu

3. Vzít značku toho produktu a vložit jí za určité slovní spojení v názvu produktu

Vezmeme si opět příklad tohoto produktu:

  • Ara – Svatební lodičky na středním podpatku a platformě šíře G 12-23402-26

Aplikujeme tuhle funkci:

[preg_replace(„/^(.*) – ((.*(kozačky|lodičky|baleríny))(.*)) \b([-a-z0-9]+)$/i“,“\3 \1 \5″,{PRODUCT[1]})]

A tady je již vidět kompletně nový název produktu, který jen tak někdo mít nebude 🙂

wp-all-import-kompletne-novy-nadpis

V příkazu výše vidíte znázorněná zelená klíčová slova. Tam stačí vyplnit slova jaké se Vám zrovna hodí a značka se uloží za toto požadované slovo.

fuck-it-meme

Úplně analogickým způsobem můžete upravovat kterýkoliv element v XML feedu. Zajímavé to pak je třeba u popisků produktů, kde se dají vymyslet opravdu zajímavé věci. Lze třeba úplně jednoduše díky funkcím vytvořit vlastní generátor popisků k produktům, když je inzerent do feedu nevyplňuje příliš obsáhlé apod. Byl by o něco takového zájem v příštím článku? 🙂

Novinky ve WP All Importu

V jednom z posledních updatů přibyla do tohoto úžasného pluginu funkce, která perfektně stabilizuje importy produktů a snižuje výskat jejich padání.

Jedná se o funkci pro parsování XML feedů –  StreamReader, kterou lze zaškrtávátkem v sekci nastavení „Configure Advance Settings“ nahradit současnou funkci XMLReader.

streamreader-wp-all-import

V současné době se totiž stávalo, že u větších XML feedů docházelo k častému pádu importů, které se následně musely vždy obnovovat a obnovovat.

Klasický XMLReader je totiž u velký XML feedů náročný na RAMku. Mohou se v něm „utopit“ i řády Gb, když je na serveru/hostingu máte k dispozici.

StreamReader (alespoň u mě) zvládá velké XML feedy importovat lépe. Bez neustálého padání.

Jak jste si mohli všimnout, tak na obrázku výše je znázorněně ještě jedna novinka a tou je import pouze určité části XML feedu.

specified-wp-all-import

Po zaškrtnutí této možnosti můžete například importovat pouze produkty 1 – 1000 a až po jejich naimportování importovat zbytek. Toto by mělo opět zrychlit import i updaty produktů.

O autorovi Milan Pichlík

23 komentářů: “Kouzla a čáry s importováním katalogů přes WP All Import”

  1. Ondřej Meier napsal:

    Super info a perfektní načasování. Díky moc.

  2. tomas napsal:

    Skvělý článek, článek o magii s popisky by měl určitě taky u mě úspěch. Díky.

  3. Miro napsal:

    A pokud bych chtel pouzit tenhle kod [str_replace(„,“, „“, {your_price_element[1]})] pro vice veci, resp. barev, jak by mel vypadat? Porad to zkousim a vysledek nikde :/ 😀

  4. Michal S napsal:

    zdravim
    mam dva xml feedy ,ako ich v wp all import zadat v kategoriach ,aby som mal normalne hierarchicke clenenie a nebralo to cele ako jednu kategoriu? A idealne keby v tom jednom tu heureku rovno zmazalo?
    Dakujem
    Gaming zóna > Hry > PLAYSTATION 4]]> a
    Heureka.sk | Elektronika | Počítače a kancelária | Klávesnice a myši | Myši

    • Milan Pichlík napsal:

      Normálně to nahradíš prázdným místem tak jak píšu v článku.

      Tedy například takto: [str_replace(„Heureka.sk |“, „“, {CATEGORYTEXT[1]})]

      Snad jsem pomohl 🙂

      Ať se daří.

      P.S. Pozor na použití správných uvozovek. Tady se to zobrazuje špatně.

      Milan

      • Michal S napsal:

        super ,to fungovalo . Teraz som narazil na iny problem 😀
        mam viac kategorii v jednom xml ktore by som potreboval upravit.
        IT a Gaming > Počítačová technika Počítače > Notebooky
        a
        Čierna technika > Televízory > Držiaky na TV
        potreboval by som odstranit IT a Gaming > Počítačová technika a Čierna technika >
        skusil som na to ist selskym rozumom ale nepreslo to 😀 viete mi poradit ako by mal vypadat zapis aby tieto dve kategorie boli upravene?
        [preg_replace(„Čierna technika > OR IT a Gaming > Počítačová technika >“,““, {CATEGORYTEXT[1]})]

        • Milan Pichlík napsal:

          To již bohužel z hlavy nevím. Zabralo by mi to nějaký čas na testování a ten teď bohužel nemám. Omlouvám se.

  5. D. napsal:

    Super články, díky za ně! Jak řešit duplicity? Např. pro jeden XML feed mám 10 různých importních procedur v WP ALL import. Každá z nich má své filtry.
    Ale většinou se najdou stejné produkty ve více XML importech.
    Zkoušel jsem snad všechna zatržítka v nastavení, ale pokaždé to založí nový produkty. Takže se mi dělají duplicity. Chci dosáhnout toho, že když objeví stejný produkt, který je již založený, že to nezaloží nový znova, ale přidá další štítek. Cílem je mít 1 produkt s více štítky. Jeden podle ceny, druhý podle barvy, třetí podle materiálu. Poradíte? Děkuju.

    • D. napsal:

      ještě doplním: jedná se o katalog produktů ve WP, bez nástavby woocomerce. díky 🙂

    • D. napsal:

      Odpovím si sám 🙂
      Vytvořil jsem jeden hlavní importní XML feed, kterým jsem založil všech 500 produktů.
      Následně jsem vytvořil další importy, ale již jen pro editaci, ne založení. V nastavení nastavil, nezakládat nové produkty a označil, že chci aktualizovat jen TAGy a tagy nepřepisovat, ale založit další nový. Produkty se aktualizovali a zatřídili se do správného tagu. Takto jsem na to pustil dalších 10 editovacích importů a produkty nemám duplicitní, ale některé mají třeba 3 tagy.
      Cron jsem nastavil. 1x denně aktualizace hlavního importního XML. Aktualizují se mi ceny, přidají nové produkty atp.
      O pár minut později se pustí ostatní procedury a aktualizují se tagy. Takže i u nových se provede správné otagování. 🙂

      • Milan Pichlík napsal:

        😀 trochu složité řešení, ale super, že si na to přišel sám, tak by to mělo být 🙂

        Ať se daří.

        Milan

        • D. napsal:

          Děkuju 😀 Dá se to bez nějakého programování udělat snadněji? Mám těchto mini projektů poměrně dost 🙂

          • Milan Pichlík napsal:

            Jedině vyexportovat šablonu toho importu. Tu nahrát na další web a přeimportovat. Nic jiného mě bez programování aktuálně nenapadá 🙂

  6. filip napsal:

    Ahoj, mám prosbu, jde nastavit import pouze konkrétní kategorie? Mám shop, který má asi 20 kategorií a já potřebuji importovat pouze produkty z jedné. Dá se s tím poprat?

    Díky Filip

    • Milan Pichlík napsal:

      Ahoj,

      jasně že dá. Stačí v kroku dva, když přidáváš feed do WP. Když sescrolluješ dolu, tak je tam položka „Add filtring options“. Tam pak stačí jen zadat podmínku a je to 🙂

  7. Mihal napsal:

    Zdravím,
    mám napr v kategórii
    Elektrické nářadí > Měřící technika > Měřiče vzdáleností
    a chcel by som si do popisu produktu vytiahnuť len poslednú časť za < … čiže v tomto prípade Měřiče vzdáleností . Je to možné, keď nič z toho neni stále , ale mení sa ( je aj rôzny počet podkategórií ) ?
    Ďakujem

    • Milan Pichlík napsal:

      Možné to určitě je. Dříve jsem to dělal. Ale již se katalogům moc nevěnuji, tak mě teď z hlavy nenapadá jak to řešit.

  8. Ivana napsal:

    Dobrý den, Milane, nejprve bych chtěla poděkovat za prima článek a rovnou bych se k tomu zeptala, zda se dá nějak z více importů sjednotit velikost obrázků? Každý obchod je posílá ve feedu jinak a na webu to pak nevypadá hezky. Díky moc za radu, Ivana

    • Milan Pichlík napsal:

      Dobrý den, na tohle jsem měl naprogramované vlastní řešení, kde se právě mimo jiné řešila standardizace obrázků na jednu velikost v poměru stran a jejich kvalita.

      M.

  9. Tomas napsal:

    Dobrý deň,
    ďakujem tiež za článok.
    Taká rýchla otázka: Dá sa vyriešiť kategórie keď z 15 XML feedu importujem produkty a mám vyše 70 hlavných kategórií, nejako to zjednotiť?

    • Milan Pichlík napsal:

      Dobrý den, tohle je třeba mapovat u sebe na webu nebo v nějakém externím řešení (což je určitě lepší varianta). Tzn. vytvoříte se třeba kategorii „Zahradní slunečníky“ a pod to napárujete různě pojmenované kategorie z různých XML.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *