Der Preis-Upload wurde so gestaltet, dass beim Wechsel von Preisperioden keine doppelten Preise in Shopware entstehen.
Web-ID-Vererbung (PATCH statt POST)
Bereits hochgeladene Preise besitzen eine Web-ID.
Bei einer Preisänderung wird diese Web-ID übernommen und der Preis per PATCH aktualisiert – statt einen neuen Datensatz per POST anzulegen.
Dadurch entstehen beim Übergang zwischen Preisperioden keine Duplikate mehr.
Währungssicherheit
Beim Preis-Upload wird die in der Zuordnung als Standard markierte Währung verwendet. So werden Verwechslungen zwischen verschiedenen Währungen vermieden. Siehe Währungen.
Erzwungener Re-Upload
Möchten Sie Preise bewusst neu übertragen, markieren Sie die betroffenen Zeilen als nicht synchronisiert (z. B. über Zeilen als unsynchronisiert markieren oder Alle Preise als unsynchronisiert markieren). Beim nächsten Lauf werden sie erneut hochgeladen.
Ergänzend stehen Aktionen wie Neueste Preise hochladen (erzwingen) und Alle Shopware-Preise löschen zur Verfügung.
Preiszeilen werden über ihre „SOUSHW Web ID“ (Shopware product-price-ID) abgeglichen und aktualisiert statt neu angelegt. Zusätzlich erkennt die Prüfung NewPriceExists() überlappende Staffeln anhand von Start- und Enddatum. Abgelaufene oder als „Marked Delete“ markierte Zeilen werden über search/product-price gefunden und per DELETE entfernt.
Diese Aktion entfernt verwaiste Shopware-Preise, zu denen es in Business Central keine passende Preiszeile mehr gibt. Das hält die Preise in Shopware konsistent und beugt Konflikten durch Altlasten vor.
Die Paketgröße steuert das Feld „Price API Limit“ (Default 1). Produktpreise werden in Bulk-Paketen dieser Größe über Upload_RuleWithBulkPrice übertragen – bei großen Preismengen kann ein höherer Wert die Anzahl der API-Aufrufe reduzieren.
