Metal Kids
Aktives Mitglied
- 17. Februar 2023
- 23
- 1
| Wawi Version | 2.0.6 |
| SQL Server Version | 2022 |
| Windows Server Version | 2022 Standard 21H2 |
Hallo zusammen,
Wir haben gerade unseren neuen Praktikanten daran gesetzt neue Artikel in bereits verknüpften Artikelkategorien bei Amazon zu listen. Dabei ist ein seltsamer Fehler aufgetaucht.
Der Artikel hatte zwei Werte im mit dem [Amazon.de Lister] Feld "Markenname*" verknüpften Merkmal.
Als Lösung dafür haben wir eine kleine DotLiquid Funktion verknüpft um immer nur die jeweils passende Marke auszugeben. Damit hätte das Problem gelöst sein sollen. Nach dem erneuten Abgleich hatten wir allerdings wieder dieselbe Fehlermeldung. Es schien als wäre der neu Verknüpfte DotLiquid Wert nicht übernommen worden. Spätere Nachforschungen haben dies dann auch bestätigt.
Dokumentation des Fehlers:
Verküpfter Wert im Feld "Markenname*" Des Verkaufskanals [Amazon.de Lister]:
{%- if Vorgang.Merkmale.Merkmale.Artikelmerkmale.Marke.Deutsch contains 'Metal Kids' -%}Metal Kids{%- else -%}Kids-Fanshop{%- endif -%}

Die Kategorie des Artikels "Fashion,Jungen,Bekleidung,Tops & T-Shirts für Jungen,T-Shirts" beinhaltet kein Feld für den Markennamen:

Im Artikel wird folgendes als Verknüpfter Wert angezeigt:
{{ Vorgang.Merkmale.Merkmale.Artikelmerkmale.Marke.Deutsch }}

Egal wie wir den Wert für den Verkaufskanal neu verknüpfen, mit festem Text oder einem anderen DotLiquid Wert bleibt dieser veraltete Wert erhalten. Auch das ändern von Feldverküpfungen in der Kategorie des Artikels löst kein Update des Markenname* Feldes aus.
Daraufhin haben wir einen Blick in die Datenbank gewagt, mit dem Ziel herauszufinden ob und wenn ja welche anderen Felder von diesem Symptom betroffen sind.
SQL:
SELECT
C.cDisplayName,
CaFW.kCategory,
CaFW.cAttributeId,
CaFW.cWert AS Category_cWert,
ChFW.cWert AS Channel_cWert
FROM SCX.tVerkaufskanalCategoryFeldWert CaFW
INNER JOIN SCX.tVerkaufskanalChannelFeldWert ChFW
ON CaFW.cAttributeId = ChFW.cAttributeId AND CaFW.kShopScx = ChFW.kShopScx
INNER JOIN SCX.tCategory C ON CaFW.kCategory = C.kCategory
WHERE CaFW.cWert != ChFW.cWert
Dadurch hat sich folgendes aufgetan:

Wir vermuten, dass die Werte aus dem Verkaufskanal nur einmalig bei der ersten Verknüpfung von Kategoriefeldern für die Kategorie übernommen werden und danach bei Änderungen auf der Verkaufskanalebene nicht mehr aktualisiert werden.
Wir versuchen jetzt ebenfalls über SQL das Problem übergangsweise zu lösen.
SQL:
USE eazybusiness;
BEGIN TRANSACTION VerkaufskanalfelderAktualisieren
-- Auflistung der verknüpften Feldwerte für Kategoriefelder die von den verknüpften Verkaufskanalfeldern abweichen
SELECT
C.cDisplayName,
CaFW.kCategory,
CaFW.cAttributeId,
CaFW.cWert AS Category_cWert,
ChFW.cWert AS Channel_cWert
FROM SCX.tVerkaufskanalCategoryFeldWert CaFW
INNER JOIN SCX.tVerkaufskanalChannelFeldWert ChFW
ON CaFW.cAttributeId = ChFW.cAttributeId AND CaFW.kShopScx = ChFW.kShopScx
INNER JOIN SCX.tCategory C ON CaFW.kCategory = C.kCategory
WHERE CaFW.cWert != ChFW.cWert;
-- Angleichen auf die Werte aus dem Verkaufskanal
UPDATE CaFW
SET CaFW.cWert = ChFW.cWert
FROM SCX.tVerkaufskanalCategoryFeldWert CaFW
INNER JOIN SCX.tVerkaufskanalChannelFeldWert ChFW
ON CaFW.cAttributeId = ChFW.cAttributeId AND CaFW.kShopScx = ChFW.kShopScx
INNER JOIN SCX.tCategory C ON CaFW.kCategory = C.kCategory
WHERE CaFW.cWert != ChFW.cWert;
-- Überprüfung ob weitere Fehler bestehen
SELECT
C.cDisplayName,
CaFW.kCategory,
CaFW.cAttributeId,
CaFW.cWert AS Category_cWert,
ChFW.cWert AS Channel_cWert
FROM SCX.tVerkaufskanalCategoryFeldWert CaFW
INNER JOIN SCX.tVerkaufskanalChannelFeldWert ChFW
ON CaFW.cAttributeId = ChFW.cAttributeId AND CaFW.kShopScx = ChFW.kShopScx
INNER JOIN SCX.tCategory C ON CaFW.kCategory = C.kCategory
WHERE CaFW.cWert != ChFW.cWert;
ROLLBACK TRANSACTION VerkaufskanalfelderAktualisieren;
-- COMMIT TRANSACTION VerkaufskanalfelderAktualisieren;
Ein entsprechendes Support Ticket wird sogleich erstellt.
Zuletzt bearbeitet: