Open pavelevap opened 8 years ago
Ano, varianty jsou určitě důležité. Přikládám ještě kousky kódu, které ve woocommerce často používáme a bylo by super integrovat je do pluginu. Viz níže
Kód přesunut: #22
Zdrojový kód jsem přesunul do nového požadavku (nesouvisí s podporou variant).
Prosím, co můžu udělat pro urychlení variant do feedu.
@novetrendy: Získat mi nějaký čas :-) Nebo se do toho pustit sám a pak to mohu jen integrovat...
Nemělo by to být ale nic složitého, zkusím připravit základní verzi na otestování. U každého produktu v hlavním cyklu by se muselo ověřit, zda má nějaké variace a potom by se ve feedu nezobrazoval konkrétní produkt, ale pouze variace. Nebo by se měl zobrazit produkt i variace? To asi spíše logicky ne?
Ve feedu heureka jsou varinaty následovně:
<SHOPITEM>
<ITEM_ID>325236407</ITEM_ID>
<PRODUCTNAME>Adidas Superstar 2 W EUR 36</PRODUCTNAME>
<PRODUCT>Adidas Superstar 2 W EUR 36 - novinka</PRODUCT>
<DESCRIPTION>V rámci kolekce Originals uvádí adidas sportovní obuv The Superstar, která je již od svého vzniku jedničkou mezi obuví. Jejím poznávacím znamením je mimo jiné detaily designové zakončení špičky. Díky kvalitnímu materiálu a trendy vzhledu, podtrženého logy Adidas uvnitř boty i na ní, bude hvězdou vašeho botníku.</DESCRIPTION>
<URL>http://www.obchod-s-obuvi.cz/boty/adidas-superstar-2-w7/eur-36/</URL>
<IMGURL>http://www.obchod-s-obuvi.cz/pictures/403078.jpg</IMGURL>
<IMGURL_ALTERNATIVE>http://www.obchod-s-obuvi.cz/pictures/403080.jpg</IMGURL_ALTERNATIVE>
<MANUFACTURER>Adidas</MANUFACTURER>
<CATEGORYTEXT>Obuv | Dámská obuv</CATEGORYTEXT>
<EAN>5051571703857</EAN>
<PRODUCTNO>G43755</PRODUCTNO>
<PARAM>
<PARAM_NAME>Velikost</PARAM_NAME>
<VAL>EUR 36</VAL>
</PARAM>
<DELIVERY_DATE>2</DELIVERY_DATE>
<DELIVERY>
<DELIVERY_ID>CESKA_POSTA</DELIVERY_ID>
<DELIVERY_PRICE>120</DELIVERY_PRICE>
</DELIVERY>
<ITEMGROUP_ID>ZD563</ITEMGROUP_ID>
</SHOPITEM>
Kde jsou jednotlivé vlastnosti produktu (použité pro variace) a
Dobrý den, chci se zeptat, jak to vypadá s variantami. Bohužel jsem loop s variantami ještě neřešil, takže nevím kudy kam, abych si to sám doprogramoval.
Taky bych rád viděl variace. Složité to nebude. Zde jsou snippety kódu, který lze použít.
if ($produkt->is_type("variable")){
foreach($produkt->get_available_variations() as $variation){
$variation = new WC_Product_Variation($variation['variation_id']);
/* Zde již lze získat atributy variace */
$in_stock = $variation->is_in_stock();
$price_vat = $variation->get_regular_price();
$url = get_permalink($produkt->id); // tady by se hodilo jako parametr ty varianty (např. **?attribute_pa_barva=červená&attribute_pa_delka=5m**
}
}
Získání kategorií, separátor by mohl být třeba volitelný z administrace:
$separator = " | ";
$categories = implode(
$separator,
wp_get_object_terms($produkt->id,
'product_cat',
array('orderby' => 'term_group',
'order' => 'ASC',
'fields' => 'names'
)
)
);
Výrobci:
$separator = ", ";
$manufacturers = implode(
$separator,
wp_get_object_terms($produkt->id, 'brand', array("fields" => "names"))
);
Potom mám metodu na zapsání jednoho produktu:
function writeXML($xmlWriter,
$name,
$product_no,
$id,
$description,
$category,
$manufacturers,
$url,
$img_url,
$delivery_date,
$price_vat,
$ean,
$item_group_id){
$xmlWriter->startElement('SHOPITEM' );
$xmlWriter->writeElement('ITEM_ID', $id);
$xmlWriter->writeElement('PRODUCTNAME', $name);
$xmlWriter->startElement('DESCRIPTION');
$xmlWriter->writeCData($description);
$xmlWriter->endElement();
$xmlWriter->writeElement('PRICE_VAT', $price_vat);
$xmlWriter->writeElement('URL', $url);
$xmlWriter->writeElement('IMGURL', $img_url);
$xmlWriter->writeElement('CATEGORYTEXT', $category);
$xmlWriter->writeElement('MANUFACTURER', $manufacturers);
$xmlWriter->writeElement('DELIVERY_DATE', $delivery_date);
if (!empty($ean)) {
$xmlWriter->writeElement('EAN', $ean );
}
if ($item_group_id !== NULL) {
$xmlWriter->writeElement('ITEMGROUP_ID', $item_group_id);
}
$xmlWriter->endElement();
}
Tak jsem to na základě uvedených kódů začal konečně implementovat a každá variace bude vlastně speciální položka feedu. A jak to bude třeba s názvem (PRODUCTNAME
)? Ten zůstane pro všechny variace stejný nebo mu tam třeba automaticky doplníme hodnotu příslušné vlastnosti?
PRODUCTNAME bych vzal title z nadřazeného produktu + vlastnosti varianty. Př: Samolepka Dekor TATRA 576 - Vnitřní - Červená - 17x25cm
Je to složitější než jsem si myslel :-(
PRODUCTNAME
, tak tam těch možností přibývá geometrickou řadou.Zítra zkusím doplnit první verzi na otestování...
První pokus: https://github.com/pavelevap/ceske-sluzby/commit/4851661579e5b8b864ff06c3310869f2cbfd074b
Zatím moc netestováno na reálném webu, možná se tam objeví nějaké problémy. Podporovány by měly být vlastnosti (attributes) u jednoduchých produktů, klasické varianty i jejich kombinace. Původně navržené funkce moc nepočítaly s podobně složitým molochem, takže se to bude muset celé přepsat a rozsekat do jednotlivých metod, jinak to nebude dlouhodobě udržitelné :-)
Dobrý den, feed pro heureka se nezobrazí vůbec a u zbozi nejsou varianty - je stejný jako předtím. Můžu Vám dát přístupy pro otestování.
@novetrendy: Ano, zatím to má na zkoušku pouze Heureka. Objevuje se nějaká chyba? Pošlete prosím přístupy...
CHYBA: Neplatná šablona pro RSS zdroj. Přístupy jsem poslal na email.
@novetrendy: Mělo by to být opraveno, způsobovalo to velké množství variant. Pokud je na webu mnoho položek (produktů + variant dohromady), tak je třeba používat průběžně generovaný .xml
soubor (nově podporován i pro Heureku).
Zítra hned vyzkouším a dám vědět!
Omlouvám se za zdržení, novou verzi jsem nainstaloval, ještě se soubor generuje, ale podle první části to vypadá SUPER! Moc dobrá práce!
@novetrendy: Díky, jak to nakonec dopadlo s vygenerovaným souborem? A co na to Heureka?
To bohužel nevím, protože všichni klienti používají jen zbozi.cz Ale podle mě to odpovídá jejich specifikaci. Jakmile to bude fungovat i pro zbozi.cz můžu dát hned vědět.
Tak bohužel soubor heureka.xml se nevytvoří, pouze heureka-tmp.xml
@novetrendy: Tak to je podivné, už jsem to na jednom webu zkoušel a prošlo to vcelku bez problémů. Mohu poprosit o přístupy? Doplním to po opravě zrovna pro Zbozi.cz.
Přístupy jsem Vám již zasílal na email. (10.12. 12:08)
@novetrendy: Soubor se nestihl vygenerovat, je tam více než 8000 produktů + variant, takže se musel cron spustit 8-krát (po 3 minutách). A ten web je patrně testovací a nemá žádnou návštěvnost, takže se asi tolikrát nespustil. Jakmile jsem ho navštívil, tak se to automaticky dokončilo.
@pavelevap: Ano web je před spuštěním, takže nemá žádnou návštěvnost. Díky za info!
Stává se to pouze při prvním spuštění skriptu, potom už bude feed přepisován až v případě, kdy bude zcela hotov (aby se na něj nečekalo). Vše probíhá v souboru heureka-tmp.xml
a teprve když je vše hotovo, tak se změní název.
Paráda, dobrá práce :+1:
Doplnil jsem vlastnosti a varianty pro Zbozi.cz: https://github.com/pavelevap/ceske-sluzby/commit/53bfd7c02de27925e253f958190b6b01fe1b767d
Docela mě překvapilo, že se nový feed pro Zbozi.cz mnohem více podobá Heurece, takže už tam nejsou skoro žádné rozdíly (nebo jsem si jich zatím nevšiml). Celý skript byl původně připravován jen na jednoduché (a odlišné) XML feedy a nyní jsme se už dostali do fáze, kdy to bude potřeba celé přepsat a generalizovat do jednoduchých funkcí nebo se v tom utopíme :-)
Prosím vyzkoušejte (patrně tam budou nějaké chybky, na svých eshopech varianty nepoužívám), bude to asi zase chvíli trvat, pro urychlení je možné deaktivovat a znovu aktivovat XML feed pro Zbozi.cz v nastavení WooCommerce.
@pavelevap To jste mi udělal radost! Vyzkouším, dám vědět. BTW:Zkouším přidat CAF do pluginu České služby, ale nějak se mi nedaří. Až budu mít nějaký úspěch, pošlu Vám verzi na otestování, s tím gitem si zatím bohužel nějak moc netykám :-1: Budu si muset najít čas na nastudování.
Zkoušel někdo varianty v XML? Jsou s tím nějaké problémy?
Dobrý večer pánové,
mám problém, tak se napřed zeptám. Z heuréky se mi vrací u produktů s variantami varování, že se jedná o duplicity a produkty tak nejsou zařazeny do katalogu. Nejsem si jist co dělám špatně. Má být pole SKU vyplněna unikátně pro každou variantu produktu?
Mám verzi 0.5-alpha. Další problém je že se vrací nevyplněná pole EAN. - na záložce nastavení feedu mám v poli EAN zadánu hodnotu SKU. Ve feedu pro zboží jsou v pořádku ale ve feedu pro heuréku mi pole EAN zcela chybí. (zkoušel jsem i přidat pole pro EAN pomocí návodu #22 ale ani tak se mi EAN ve feedu pro heureku nezobrazil.
Děkuji za radu a přeji hezký den
dUDLAJ
@dudlaj: Díky za report! Zajímavé, varianty zatím nebyly moc testovány (nebo o tom nevím), takže tam mohou být problémy.
SKU
, tak si bere skript hodnoty z administrace (katalogové číslo) a pokud je tam nenajde, tak se ve výsledném XML souboru EAN nezobrazí. V případě produktu s variantami je zatím bráno v potaz pouze SKU (či libovolné uživatelské pole) konkrétních variant (!). Bral jsem to logicky tak, že může zákazník koupit pouze jednotlivé varianty, ale nevím, jestli se u variant většinou liší i EAN nebo je spíše stejné. Asi by ale nebyl problém doplnit, aby se u variant nejdříve kontrolovalo zadané SKU u nadřazeného produktu, což tam zatím chybí. Jen mi prosím někdo napište, že by to tak mělo opravdu být :-)Dobrý den,
Zkusím zadat SKU pro jednotlivé varianty produktu. Na začátku jsem to tak měl, ale pak jsem nabyl dojmu, že funguje právě spíše načítání SKU z hlavního produktu. Používám na zmiňovaném webu i doplněk Product Bundels od WooCommerce - jedná se konkrétně o tento web - http://beeranek.cz.
Chyba z emailu s popisem:
Chybový výpis z automatické kontroly pro vašeho programátora:
Přeskočeno 5/24 položek. Důvody: 20.83% - duplicitní produkt
Příklady duplicitních produktů: 7x http://beeranek.cz/shop/beershirts-v-2/ 6x http://beeranek.cz/shop/beershirts-v-1/ 6x http://beeranek.cz/shop/detska-beertricka/ 2x http://beeranek.cz/shop/sklenice-willi-v-2/ 2x http://beeranek.cz/shop/sklenice-praha-v-2/
XML soubor nesmí obsahovat více stejných URL adres.
Popis chyby EAN je tento.
chybí u 100% položek (24/24) EAN kód produktu. Díky EAN kódům dochází k rychlejšímu spárování vašich produktů do katalogu Heureky v případě PPC režimu.
Ale zkusím ještě jednou zadat SKU pro jednotlivé varianty a uvidíme.
Děkuji za rychlou odezvu. Pokud bych mohl být při vývoji jakkoliv nápomocen, pak se rád přidám.
Hezký den
dUDLAJ
@dudlaj: Aha, tak tím se to asi trochu vysvětluje :-)
http://beeranek.cz/shop/beershirts-v-2/
, ale měly by být specifické http://beeranek.cz/shop/beershirts-v-2/?barva=cervena&velikost=panska
(automaticky přesměrovány na produkt), atd.Shift + F5
, feed často zůstává v prohlížeči cachován. Otázkou ale je, zda by měl plugin podporovat i varianty se stejným EAN. Máte pro každou variantu speciální EAN nebo je jen jeden EAN pro produkt a např. barevné varianty ho mají stejný?Dobrý den,
jsem rád, že máme naprosto opačné problémy a přesto si rozumíme. Publikování asi není problém - BEERANEK je v podstatě můj sport - vymyslel jsem značku, dělám komplet marketing, včetně webu a textů - takže zde můžete posoudit mé možnosti v tomto směru.
EAN upravím odpoledne ... a dám vědět, že je všechno na webu, tak jak má být pro testovaní. Není problém pro Vás vytvořit dočasný přístup, pokud byste si chtěl něco odzkoušet naživo. (udělal jsem zálohy)
Děkuji mnohkrát za reakce i za skvělý plugin - jedna věc o které jsem přemýšlel je, že plugin nemá v repository en popis. Myslím, že by o plugin mohli mít zájem i cizinci, kteří chtějí prodávat v čechách ... Možná bych měl začít en verzí..
Hezký den
dUDLAJ
Dobrý den, předem díky za skvělý plugin, jakmile se vyladí, bude to pecka :)
Mám úplně stejný problém s těmi varitantami a duplicitní URL, tak jsem rád, že jsem tady na to narazil.
Jen mi to nějak negeneruje .xml soubor, eshop mi jen napíše, že stránka neexistuje, když se na něj chci koukout. Platí to jak pro heuréku, tak pro zboží. /?feed=zbozi toto se generuje normálně.
Ale zatím se s tím učím, tak třeba dělám něco špatně :)
Mějte se, Marian
Zkuste prosím stáhnout novou verzi pluginu, URL adresy by měly být unikátní (https://github.com/pavelevap/ceske-sluzby/commit/32e69546487bf404eef13475e7f228605b5751f1) a ještě můžete použít povedený plugin: https://wordpress.org/plugins/woocommerce-direct-variation-link/ A dejte prosím vědět, co na to Heureka :-)
@dudlaj: Jak to nakonec dopadlo z EAN kódy? Používáte odlišné pro každou variantu? Nebo myslíte, že bychom měli podporovat i verzi, kdy mají všechny varianty stejný EAN?
Spíše než EN verze bude potřeba lépe řešit slovenskou verzi :-) Myslíte, že by Američan měl v obchodě nastavenou angličtinu pro prodej v Česku? Myslel jsem, že dává smysl jen možnost češtiny a slovenštiny, ale rád se nechám přesvědčit.
@Borsapv: Máte feedy povolené v nastavení na záložce "XML feed"? Soubory .xml
nejsou generované automaticky, ale musíte je nejdříve ručně povolit. Jakou verzi WooCommerce používáte?
Děkuji, už jsem si to narychlo zprovoznil po svém, ale Vaše řešení v kombinaci s doporučeným pluginem je o mnoho lepší. Jen jsem si tam dovolil přidat řádek kódu, aby se odstranily duplicitní varianty z pole. Nevím jak to dělá, ale klientka má čas od času u produktu 2 naprosto identické varianty a tím pádem vznikají opět duplicitní URL pro heureku.
XML feedy jsem povolené měl, ale zřejmě to chvíli trvalo, než se vytvořily. Druhý den už tam byly v pořádku.
Dobrý den,
otevřeně přiznávám, že jsem přepsal EAN až dnes (stydím se) - dřív jsem se k tomu nedostal. (instaloval jsem novou verzi - ověření feedu může den trvat - napíšu zítra - prní kontrola říká, že 21 z 24 EAN nemá - ve feed jsou však EAN korektně zobrazeny)
Za mě osobně - podpora "globalního" EAN nadřazeného produktu je zajímavá - především pro eshopy kde nejsou vyplněny EAN pro variace, na kterých by byl plugin doinstalován dodatečně. Jinak to asi úplně smysl nemá - nemám představu kolik by to bylo práce - nastavení by muselo být: použij EAN nadřazeného produktu, pokud není vyplněn EAN u variant - jakékoliv nastavení této možnosti v adminu je samozřejmě zbytečné.
K EN verzi - myslel jsem popis v repository - myšleno tak, že by plugin mohl být užitečný pro někoho, kdo nemluví česky a chtěl by prodávat i zde v Čechách. Nevím do jaké míry jsem schopen pomoci se Slovenštinou, ale můžu to zkusit.
Mám jeden zcela nový dotaz, když jsem zabýval problematikou feedu pro heureku, narazil jsem na jejich řazení do kategorií. Toto plugin vůbec neřeší... Přemýšlel jste o tom?
Hezký den
dUDLAJ
Dobrý den,
omluva z mé strany. EAN má mít 13 míst a já omylem zadával 12.
Co se týče řazení do kategorií, upravoval jsem v rámci testování produkty s variantami, kde se vůbec nezobrazuje tab České služby. Na webu používám i product bundles a tam už České služby jsou..
Jinak co se týče kategorii - skvělá práce.. :-)
Všechny duplicity u variant byly odstrarněny.
Hezký den
dUDLAJ
Tak testoval jsem to. Nejnovsi verze ceske sluzby + https://wordpress.org/plugins/woocommerce-direct-variation-link/ . V predosli verzii byl problem s duplicitami u variant, ted s pluginem direct variantion link uz duplicity nejsou,ale ve fulltextu heureka se varianty nezobrazuji. TAB české služby se nezobrazuje u variantových produktú , v jiných jo.
@lukasprelovsky: A je to problém pluginu nebo nějaké omezení na straně Heureky? Nemusíte mít placený tarif, aby se varianty zobrazovaly? Objevují se tam nějaké chyby při napárování?
Pravda, záložka České služby se zobrazuje pouze u jednoduchých produktů kvůli třídě show_if_simple
zde: https://github.com/pavelevap/ceske-sluzby/blob/32e69546487bf404eef13475e7f228605b5751f1/includes/class-ceske-sluzby-product-tab.php#L16 Asi by se měla zobrazovat i u variantních, ale možná tam nemusí obsahovat všechny informace?
Dobry den, nainstaloval jsem Vas plugin na svuj wordpress, a kdyz mackam na (Zbozi.cz nebo Heureka Generovaný feed je dostupný zde.) tak hned me hlasi chybu (CHYBA: Neplatná šablona pro RSS zdroj.) Pouzivam prosim Vas tuto sablonu http://themeforest.net/item/oxygen-woocommerce-wordpress-theme/7851484
Muzete me prosim poradit jak mam opravit tady tu chybu? Dekuji
@lukasprelovsky: Poprosím ještě o přístupy, abych to mohl zkusit dořešit, díky.
@xolik: Odkaz na feed tam není nikde vložen? Obecně by to ale neměla žádná šablona ovlivňovat...
@lukasprelovsky: U produktu s variantami lze nově také nastavit všechny potřebné informace: https://github.com/pavelevap/ceske-sluzby/commit/2b9b6f891da74d08529efc86da48a0fdc6bb511a
@dudlaj: Zkusil jsem doplnit podobu globálního EAN, takže pokud je EAN zadán přímo u produktu a u variant (zatím) chybí, tak se u nich ale přesto bude zobrazovat EAN nadřazeného produktu: https://github.com/pavelevap/ceske-sluzby/commit/ba0dbb9a6f13774c7cd2a3e253a6f9173844f75a. Původně jsem si myslel, že je EAN unikátní (nebo musí být), ale není tomu tak, např. barevné či velikostní varianty ho mohou mít stejný. Ale uvidíme, co na to uživatelé :-)
Jsou s variantami nějaké zásadní potíže?
Dobrý den,
podívám se na jeden z webů, kde mám doplněk nainstalován (aktualizace) a na github na novinky v pluginu a podám report - během zítřka.
Jaroslav Ondra
Dne 1. 9. 2016 v 17:02 pavelevap napsal(a):
Jsou s variantami nějaké zásadní potíže?
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/pavelevap/ceske-sluzby/issues/19#issuecomment-244107572, or mute the thread https://github.com/notifications/unsubscribe-auth/AIu-NM7bJRyOvCgPjQDH1d40yJ3DcRn0ks5qlukTgaJpZM4GSDMB.
Omlouvám se za prodlevu. Včera jsem se dostal k instalaci doplňku na mém nejsložitějším eshopu. Eshop využívá plugin Composite products. Zatím mi Váš plugin složené produkty vůbec do feedu nenačítá, ale ještě se na to dnes podívám. Dnes se dostanu i k jiným systémům kde je plugin instalován - provedu upgrade a podám hlášení. Kdybyste se chtěl podívat do systému, kde jsou instalovány Composite products, tak se nějak domluvíme. Hezký den Jaroslav Ondra
Pro některé eshopy je důležité generovat do XML i jednotlivé varianty.