Změna hodnoty jen u některých variant konkrétní položky

Ahoj všem, zjevně něco přehlížím a prosím o radu. Potřebuji ve feedu (MERGADO2), který je ve formátu Shoptet kompletní (vstup i výstup):

  1. najít všechny varianty s hodnotou “VYPRODEJ” v elementu
    (to je OK = VARIANTS | VARIANT | CODE CONTAINS “VYPRODEJ”)
  2. a u těchto variant nastavit pravidlem hodnotu z 0 na 1. Vše co jsem zatím zkoušel mi změnilo hodnotu u všech variant produktu, nedaří se mi ji změnit pouze u konkrétních varianty.
    Děkuji za pomoc a ideálně konkrétní příklad jak by mělo pravidlo vypadat.

Vzorový příklad, kde jsou dvě položky “150/cervene_VYPRODEJ” a “150/zlute_VYPRODEJ”, kde chci změnit hodnotu na “1” a u položku “150/modre” chci hodnotu zachovat na “0”:

<SHOP>
<SHOPITEM id="150">
<NAME>Tričko s medvídkem</NAME>
<DESCRIPTION>
Něco ...
</DESCRIPTION>
<ITEM_TYPE>product</ITEM_TYPE>
<NAME>VISIBLE</NAME>
<VISIBILITY>visible</VISIBILITY>
<ALLOWS_IPLATBA>1</ALLOWS_IPLATBA>

<VARIANTS>
<VARIANT id="600">
<CODE>150/cervene_VYPRODEJ</CODE>
<PRICE>180</PRICE>
<STOCK>
<AMOUNT>5</AMOUNT>
</STOCK>
<CURRENCY>CZK</CURRENCY>
<AVAILABILITY_OUT_OF_STOCK>Skladem</AVAILABILITY_OUT_OF_STOCK>
<VISIBLE>0</VISIBLE>
</VARIANT>

<VARIANTS>
<VARIANT id="550">
<CODE>150/zlute_VYPRODEJ</CODE>
<PRICE>210</PRICE>
<STOCK>
<AMOUNT>5</AMOUNT>
</STOCK>
<CURRENCY>CZK</CURRENCY>
<AVAILABILITY_OUT_OF_STOCK>Skladem</AVAILABILITY_OUT_OF_STOCK>
<VISIBLE>0</VISIBLE>
</VARIANT>

<VARIANTS>
<VARIANT id="700">
<CODE>150/modre</CODE>
<PRICE>500</PRICE>
<STOCK>
<AMOUNT>15</AMOUNT>
</STOCK>
<CURRENCY>CZK</CURRENCY>
<AVAILABILITY_OUT_OF_STOCK>Skladem</AVAILABILITY_OUT_OF_STOCK>
<VISIBLE>0</VISIBLE>
</VARIANT>

</VARIANTS>
</SHOPITEM>
</SHOP>

Zdravím,

cesta k elementu VISIBLE bude vypadat následovně:

VARIANTS | VARIANT { CODE CONTAINS "VYPRODEJ" } | VISIBLE

tedy “vezmeme element VARIANTS a pod ním zanořený element VARIANT, jehož pod ním zanořený element CODE má hodnotu obsahující “VYPRODEJ”, a v takovém elementu VARIANT zacílíme na pod ním zanořený element VISIBLE”.

Ve výchozím stavu pravidlo cílí na všechno, co vyhovuje zadané cestě, tedy v případě cesty bez podmínky VARIANTS | VARIANT | VISIBLE cílí na všechny VISIBLE (nehledě na CODE). Při dopsání podmínky { CODE CONTAINS "VYPRODEJ" } už cílí jen na takové VISIBLE, kde CODE obsahuje VYPRODEJ.

Posílám i screenshot z formuláře pravidla Přepsat:

image

4 Likes

Mockrát děkuji, je to přesně ono. Mě se po názorném příkladu úplně💡.
Možná, pokud někdo bude řešit, doplním i variantu, kdy jsem celé pravidlo potřeboval řešit i s ohledem na počet kusů na skladě.

VARIANTS | VARIANT { CODE CONTAINS "VYPRODEJ" AND STOCK | AMOUNT <= "0" } | VISIBLE

3 Likes