Plenty: Verfügbarkeit -> Märkte setzen? (Warning bei bereits vorhandenen)

Hallo,

ich setze im Flow setStandardAvailability diverse Dinge bzgl Verfügbarkeiten und Beschränkungen.

U.a. überschreibe ich die VariationMarketIDs die mitkommen mit eigenen Werten, und will die dann als MarketIDs (warum egtl zwei Spaltenbezeichnungen für Im- und Export?) wieder importieren.

Das wirft mir dann aber eine ganze Menge an Warnings, weil der Großteil der Märkte (im Idealfall alle) schon gesetzt waren.

Gibts ne Möglichkeit an der Stelle das Warning zu unterdrücken, oder habt ihr mir vielleicht einen Codeschnipsel, der aus einer Liste nur die übrig behält, die schon gesetzt waren? Wenn man über die Map iteriert lässt sich da sicherlich was machen, aber mir ist grade nicht ganz klar wie. Bzw: vielleicht hats eben schonmal jemand gelöst ;)

Die bereits gesetzten stehen ursprünglich in Spalte VariationMarketIDs, die zu setzenden ermittle ich bisher so:

<#if (isRombergshop == "1")>0;1;2;2.08;3;4.01;7;10;12;13;16;17;18;20;21;104.01;148<#else>0;1;2;2.08;3;4.01;7;10;12;13;16;17;20;21;104.01;148</#if>

Danke im Voraus, und frohes Fest!

Daniel


Hallo Daniel,


nehmen wir an du hast folgende MarketIDs die du als StandardID hast:

DefaultIDs: "0;1;2;2.08;3;4.01;7;10;12;13;16;17;18;20;21;104.01;148"

Und dann hast du folgende MarketIDs bereits gesetzt

AlreadySetIDs: "7;10;12;13;16;17;18;20"

Das gewünschte Ergebnis ist also die Differenz aus DefaultIDs und AlreadySetIDs


Folgendes Script könnte das für dich erledigen:

<#assign AlreadySetSeq = AlreadySetIDs?split(";")>
<#assign result = "">
<#list DefaultIDs?split(";") as DefaultID>
    <#if !(AlreadySetSeq?seq_contains(DefaultID))>
        <#assign result += DefaultID + ";">
    </#if>
</#list>
${result?replace(";$","","r")}

Ich bin sicher, das geht noch einfacher, mir fällt aber nicht auf die schnelle ein



Viele Grüße

Stefan

Super, danke Stefan!


Wenn ich die beiden Spaltennamen vertausche, bekomme ich umgekehrt alle die entfernt werden müssen. Perfekt =)



Gruß und frohes Fest, Daniel

Irgendwas hängt da leider trotzdem noch @Synesty.

Ich habe in o.g. Flow einen ItemID-Filter auf die 3 gesetzt. Im vorletzten Step ermittle ich mit Stefans Methode die zu setzenden & die zu entfernenden Märkte:

image


Die zu setzenden kommen auch im Artikel an - aber die zu entfernenden nicht. Nach einem erneuten Durchlauf kommt folgendes raus:

image


Ist also offensichtlich nicht angekommen. Warum?

Grüße Daniel

Auf was hast du den Markets Link Mode gesetzt?

Wir sehen gerade, dass bei der Beschreibung der 3. Option etwas fehlt. Damit sollte aber der Spaltenname "RemoveMarketIDs" gemeint sein. Das beheben wir im nächsten Jahr.
Probier mal diese Optionen.


Ah, den hatte ich komplett übersehen!

Seh ich das korrekt dass wenn ich den auf "Remove Market Links" setze, dass ich dann einfach meine ermittelte ID-Liste vom Eingangspost übergeben kann, und dann wirft es auch keinen Fehler mehr wenn der Markt bereits gesetzt wurde?

Sprich ich kanns mir sparen bereits vorhandene rauszufiltern? Und irrtümlich gesetzte werden so auch überschrieben?

Ich hatte wie gesagt nicht in die Doku geschaut und angenommen MarketIDs wäre quasi das Gegenstück zu RemoveMarketIDs, ein AddMarketIDs, und ich muss beide benutzen...

Wenn ich aber mit anderem Modus einfach alles entfernen, und die von mir genannten setzen kann, ist das Problem so auch gelöst, und eleganter noch dazu =)

Versuch ich "zwischen den Tagen" mal, bis dahin: danke & frohes Fest!

Grüße Daniel