Ich habe diese Fehlermeldung raus bekommen: Fehler beim Ausführen eines Freemarker Skripts. (Root Causes: RuntimeException: _TemplateModelException: No compatible overloaded variation was found; declared parameter types and argument value types mismatch. The FTL type of the argument values were: string (wrapper: f.t.SimpleScalar), Null. The Java type of the argument values were: String, Null. The matching overload was searched among these members: com.synesty.csvconverter.internal.spreadsheet.RowImpl.addCol(String, String), com.synesty.csvconverter.internal.spreadsheet.RowImpl.addCol(com.synesty.csvconverter.api.mapping.FieldTypeDefinition, String, String, com.synesty.csvconverter.api.converter.ColFactory), com.synesty.csvconverter.internal.spreadsheet.RowImpl.addCol(String), com.synesty.csvconverter.internal.spreadsheet.RowImpl.addCol(com.synesty.csvconverter.api.mapping.FieldTypeDefinition, String, String) ---- FTL stack trace („~“ means nesting-related): - Failed at: ${row.addCol(„value“ + count, j[„tran… [in template „jsonToSpreadsheet“ at line 6, column 3] ---- _TemplateModelException: No compatible overloaded variation was found; declared parameter types and argument value types mismatch. The FTL type of the argument values were: string (wrapper: f.t.SimpleScalar), Null. The Java type of the argument values were: String, Null. The matching overload was searched among these members: com.synesty.csvconverter.internal.spreadsheet.RowImpl.addCol(String, String), com.synesty.csvconverter.internal.spreadsheet.RowImpl.addCol(com.synesty.csvconverter.api.mapping.FieldTypeDefinition, String, String, com.synesty.csvconverter.api.converter.ColFactory), com.synesty.csvconverter.internal.spreadsheet.RowImpl.addCol(String), com.synesty.csvconverter.internal.spreadsheet.RowImpl.addCol(com.synesty.csvconverter.api.mapping.FieldTypeDefinition, String, String) ---- FTL stack trace (“~" means nesting-related): - Failed at: ${row.addCol(„value“ + count, j["tran… [in template „jsonToSpreadsheet“ at line 6, column 3] ----)
Also habe ich eine null abfrage in das parsing eingebaut
<#assign count = 0>
<#assign row = target.addRow()>
<#list json[„data“][„translatableResource“][„nestedTranslatableResources“][„nodes“] as j>
<#assign count += 1>
<#-- Check if "translations" and "value" exist to prevent null errors -->
<#if j["translations"]?has_content && j["translations"][0]["value"]?has_content>
${row.addCol("value" + count, j["translations"][0]["value"])}
<#else>
${row.addCol("value" + count, "")} <!-- or any default value -->
</#if>
<#-- Check if "resourceId" exists to prevent null errors -->
<#if j["resourceId"]?has_content>
${row.addCol("resourceID" + count, j["resourceId"])}
<#else>
${row.addCol("resourceID" + count, "")} <!-- or any default value -->
</#if>
ich denke das ist nur ein kleines Problem. Du musst vermutlich noch ein <#assign row = target.addRow()> hinzufügen. Beim 1. Aufruf wird nur die Header Zeile erzeugt:
Ich hoffe jetzt nur noch eine Kleinigkeit, bekomme ich die translatableResource(resourceId: „gid://shopify/Product/112233“)
Noch irgendwie da rein?
Die resourceId auf der translatableResource-Ebene ist ungleich der resourceID auf der Translation-Ebene.
Auf der translatableResource-Ebene ist das die Produkt-ID und auf der Translation-Ebene die Metafield-ID.
Ich brauche aber beides in einer Zeile.
VG
Sean