Page 1 of 1

XML Root Element error

Posted: 23 Feb 2023, 13:56
by KOudy
Hi, when I wanted to set the XML Root Element for zbozi.cz according to their standard, I ran into a problem.

zboží.cz requires: SHOP xmlns="http://www.zbozi.cz/ns/offer/1.0"

https://napoveda.zbozi.cz/xml-feed/specifikace/

After saving and displaying the XML it is broken. The problem is probably a gap in the text.

Code: Select all

This page contains the following errors:
error on line 2274 at column 8: expected '>'
Below is a rendering of the page up to the first error.

Re: XML Root Element error

Posted: 27 Feb 2023, 18:51
by KOudy
Ahoj, opravdu nikdo neví, kde by mohla být chyba?

Nastavil jsem dle požadavků zbozi.cz - https://napoveda.zbozi.cz/xml-feed/specifikace/

https://imgur.com/7HiMyAh

Uložil a když otevřu XML link je vadný viz: https://j4.jsemchytrydum.cz/index.php?o ... format=xml

Aktuální J4, aktuální Phoca Cart.

Díky

Re: XML Root Element error

Posted: 28 Feb 2023, 11:58
by KOudy
Problém vyřešen.

Chyba byla v ukončení XML Root Element kde zbozi.cz vyžaduje <SHOP xmlns="http://www.zbozi.cz/ns/offer/1.0"> a ukončení vyžaduje </SHOP> jenže Phoca Cart ukončovala celý nastavený element.

Osobně bych přidal do nastavení XML Root Element start a end.

Re: XML Root Element error

Posted: 02 Mar 2023, 14:10
by Jan
Ahoj, kvůl všem možným variantám jsou tam parametry:

XML Header a XML Footer, takže se shop tag může dát do hlavičky a ukončit v patičce.

Re: XML Root Element error

Posted: 07 Mar 2023, 12:16
by KOudy
Ano díky, přišel jsem na to sám. Z dokumentace to není úplně patrné na jednom příkladu z Google Merchant.

Řeším však další problém. Při generování XML pro zboži.cz nebo heureka.cz využívám "Titulek (XML kanál)" kde pro tyto dva servery 0 znamená skladem.

Problém u Google Merchant je, že pro skladem potřebuji hodnotu "in_stock" případně není skladem "out_of_stock"

Nedokážu současně vytvořit správný XML pro všechny servery současně.

Kdysi na starém VM kde sem využíval productXport se vkládal tento kód:

Code: Select all

if ($product->stock > 0) {
	$product->availability = "in stock";
        $product->stock= "0";
} else {
	$product->availability = "out of stock";
        $product->stock= "7";
}
Nějaký nápad jak vyřešit tento problém?

Re: XML Root Element error

Posted: 07 Mar 2023, 14:36
by Jan
Ahoj, XML Feed je systémový, tedy si pro každý feed nadefinuju, jaké tagy chci mít a jaké hodnoty se mají zobrazovat.

Přesně nerozumím, co znamená, že "0 znamená skladem", ale každý feed může mít různá pole:

Pro Google Merchant použiju pole Stock Status, pro ostatní Stock (např.):

Image

Image


Pokud např. jiný služby mají při nule ignorovat status, pak se pro ně dají tyto položky povypínat (nevyplnit). Případně se ještě dá udělat nějaký speciální parametr jen pro dané služby přes plugin (vložit si do pluginu vlastní parameter).

Image

Re: XML Root Element error

Posted: 08 Mar 2023, 11:28
by KOudy
Ahoj, díky za odpověď, asi jsem to špatně formuloval.

Mám nastavené dva stavy skladu. Skladem:
https://i.imgur.com/A2dhlmy.jpg

Titulek (XML kanál) nastaven na 0 - protože Heureka.cz i Zboží.cz vyžaduje v XML když je produkt skladem zobraz "0"

https://i.imgur.com/hile4PK.jpg

Na objednávku:
https://i.imgur.com/AGUSgUQ.jpg

Titulek (XML kanál) nastaven na 7 - což znamená pro Heureka.cz i Zboží.cz stav "Do týdne"

To vše funguje XML jsou nahrané jak na Heureku i Zboží bez chyb.

Problém je u Google Merchant kde potřebuji pro mé nastavení "Stav skladu" data Skladem = "in_stock", Na objednávku = "out_of_stock"

Nemohu použít "Titulek (XML kanál)" protože mi zobrazuje buď 0 nebo 7. Nemohu ani použít "Datum dopravy (stav skladu)" protože mi zobrazuje sice "Skladem" nebo "Na objednávku" ale česky dle názvu Stavu skladu viz XML pro Merchant níže:

https://i.imgur.com/Bbg7VpZ.jpg

Řešení by bylo přidat do Stavu skladu druhou variantu "Titulek (XML kanál)" viz screen:

https://i.imgur.com/pq0mwn9.jpg

Pro Heureku a Zboží - 0 = skladem
Pro Merchant - in_stock = skladem

Snad jsem to napsal srozumitelně.

Díky

Re: XML Root Element error

Posted: 08 Mar 2023, 13:50
by Jan
Ahoj, podívám se na to, momentálně je to možný změnit tak, že se přepíše výstup přes template override, soubor je:

components/com_phocacart/views/feed/tmpl/default.php