Autor Zpráva
Pets
Profil *
Zdravím,

dávám dohromady XML import pro jeden eshop na OpenCartu a dostal jsem se k problému. Byl jsem zvyklý, že feedy mají u každého produktu vždy ID kategorie/výrobce a potom je někde číselník, kde je ke každému ID přiřazena správná kategorie, nebo výrobce. Teď jsem ale dostal XML feed této struktury(krátká ukázka):

 <SHOP>
  <SHOPITEM>
    <PRODUCT>Nokia 6700 Classic black</PRODUCT> 
    <DESCRIPTION>...</DESCRIPTION> 
    <URL>...</URL> 
    <IMGURL>...</IMGURL> 
    <PRICE>...</PRICE> 
    <PRICE_VAT>...</PRICE_VAT> 
    <VAT>...</VAT> 
    <MANUFACTURER>Nokia</MANUFACTURER> 
    <CATEGORYTEXT>Nokia > 6-rada</CATEGORYTEXT> 
    <EAN>...</EAN> 
    <WARRANTY>...</WARRANTY> 
    <DELIVERY_DATE>...</DELIVERY_DATE> 
  </SHOPITEM>
  <SHOPITEM>
    <PRODUCT>Nokia 6700 Classic matt steel</PRODUCT> 
    <DESCRIPTION>popis telefonu</DESCRIPTION> 
    <URL>...</URL> 
    <IMGURL>...</IMGURL> 
    <PRICE>...</PRICE> 
    <PRICE_VAT>...</PRICE_VAT> 
    <VAT>...</VAT> 
    <MANUFACTURER>Nokia</MANUFACTURER> 
    <CATEGORYTEXT>Nokia > 6-rada</CATEGORYTEXT> 
    <EAN>...</EAN> 
    <WARRANTY>...</WARRANTY> 
    <DELIVERY_DATE>...</DELIVERY_DATE> 
  </SHOPITEM>
</SHOP>
 


Nevím jak docílit toho, aby se každá kategorie přidala pouze jednou a navíc aby se podkategorie vkládali jako podkategorie a aby byly produkty správně propojeny s kategoriemi.

Budu rád za jakoukoliv radu.

Předem děkuji za odpovědi a přeji pěkný den.
import mater
Profil *
v kategori mas kompletni cestu odelenou >. takze to hodist do pole (exclude podle < ) a zacnes od konce pole kontrolovat podle jmena (ktere si v tomto pripade uzivatel nesmi menit) jestli kategorie existuje. pokud ano tak ok, pokud ne tak vezmes nadrazenou a znovu kotrolujes pokud existuje tak vezmes jeji id a do te predchozi ho dopnis jako parent_id pokud ne tak opet nadrazenou (pokud nadrazena neexistuje tak dostane parent_id 0)

mnohem horsi je to ted dostat do prestashopi ktery ve verzi 1.4+ zvolil stromovou strukturu a tam mimo parent musis navic dopocitavat a menit left a right
Alphard
Profil
import mater:
exclude podle <
Konkrétně explode()

Pets:
Za předpokladu, že je v categorytext kompletní cesta, zjištěním počtu položek (count()) v poli od explode() zjistíte úroveň zanoření. Pak si musíte z těch dílů sestavit vlastní strom. Postup je naznačen v [#2], jen nevím, jestli to dobře chápu, já bych začal u kořene stromu.
Pets
Profil *
Děkuji moc za rady, ale pořád se mi to nepodařilo vyřešit, nějak pořádně nevím jak to napsat. Nebyl by ochotný mi někdo poradit trochu podrobněji, nebo napsat ten kousek kódu? Jsem schopný dát 500Kč(na účet).

Petr
Pets
Profil *
případně pište na email: cerfotoc@gmail.com :)

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0