Import/Export: Wie bei Import vorhandenen Wert durch leeren String ersetzen?

Hallo Brombeere,

das kann man leider nicht allgemein beantworten, das kommt auf den Wert und seine Funktion im Template an. Bei mir ging es konkret um den Wert _ shippingtime._ Ich habe mir dafür ein Freifeld in meiner Wawi ausgesucht und meine Wawi erzeugt - neben anderen Werten, die ich von der Wawi nach Shopware übertragen will, etwa dem Lagerbestand - regelmäßig eine von Shopware importierbare Liste im CSV-Format. Beim Erzeugen der Liste wird berückschtigt, dass das Feld nicht leer sein darf (es könnte ja aus der Wawi ein Wert gelöscht worden sein, der bereits zu Shopware übertragen wurde), daher habe ich es in der Programmierung so gemacht, dass hier bereits ein # beim Feld shippingtime in die CSV-Datei hineingeschrieben wird.

Der Wert shippingtime wird im Frontend benutzt, um die Lieferzeitangabe darzustellen, wenn der Bestand kleiner gleich Null ist (gelbe Ampel). Die Logik der Lieferbarkeitsanzeige ist komplett im Template hinterlegt. Da ich hier die Funktionalität ohnehin erweitern wollte, habe ich das Verhalten einfach so angepasst, dass das Vorkommen eines # in der Datenbank keine unsinnigen Anzeigen erzeugt (das ist an der Stelle mit “abfangen” gemeint). Das ist aber keine allgemeingültige Aussage!

Konkret war die If-Abfrage so anzupassen, dass der Text der Gelben Ampel nicht dann gezeigt werden soll, wenn das Feld nicht leer ist sondern wenn nicht ein # drinsteht (was in dem Fall bedeutet, dass etwas anderes drin steht, leere Felder gibt’s ja nicht mehr). Extrem vereinfacht steht da sowas wie:

{if Bestand größer Null}
Grüne Ampel
{elseif $sArticle.shippingtime != '#'}
Gelbe Ampel
{else}
Rote Ampel
{/if}

So simpel funktioniert es bei mir auch deshalb, weil ich weniger als 100 Produkte im Shop hab und stündlich einen performancemäßig völlig unkritischen Komplettimport der zu übertragenen Wawi-Daten machen kann. Ich klopp die Raute jede Stunde in jedes Produkt rein, egal, ob sie schon drinsteht oder nicht. Bei Shops mit tausenden Artikeln muss man sich natürlich etwas anderes einfallen lassen. Bei mir würde es mehr Performance kosten, abzufragen was ich schon übertragen hab und was noch nicht, statt einfach alles zu übertragen.