Varianten erstellung über API im Frontend falsch dargestellt und nicht auffindbar über die Suche

Hallo,

wenn ich eine neues Produkt inklusive Variante/n über die API hinzufüge und mir diese im Frontend anzeigen lasse, komme ich mithilfe der Produkt-ID zwar auf die richtige Seite, aber das Produkt wird mir „leer“ angezeigt. Also wenn mein Artikel zum Beispiel die Eigenschaft Format hat wird mir kein Format zur Auswahl angeboten. Sieht so aus:

Über die Suche ist der Artikel gar nicht auffindbar:

Sobald ich mich im Admin-Bereich anmelde (einfach nur anmelden, ohne was zu tun), funktioniert alles, also der Artikel wird richtig mit entsprechendem Format angezeigt und ist über die Suche auffindbar:

… kann mir so gar nicht erklären was hier schief läuft.
Hat vielleicht jemand ähnliches Verhalten festgestellt oder eine Ahnung wo der Fehler sein könnte?

Die Erstellung über die API sollte fehlerfrei sein, da im Admin-Bereich der Artikel richtig angelegt wird und zuvor hat die Erstellung über API ohne Probleme geklappt.
Vom Gefühl besteht das Problem seit Version 6.6.0.
Der Shop ist auf dem aktuellsten Stand: Version 6.6.8.2

Zur Vollständigkeit, hier das übergebene JSON an die _action/sync:

  {
    "action": "upsert",
    "entity": "product",
    "payload": [
      {
        "active": true,
        "categories": [
          {
            "id": "f01b88680c4996d70a495e4d33a86c48"
          },
          {
            "id": "7109231ba34d123a78869920405b0657"
          },
          {
            "id": "8fb28219ad4707ee630286d0b704f242"
          }
        ],
        "configuratorSettings": [
          {
            "optionId": "eecd0261830df29d3ea8624f8907ec5c"
          },
          {
            "optionId": "67190a1c83adc9799e0a79db53576d50"
          }
        ],
        "coverId": null,
        "customFields": {
          "custom_nimbits_pdftab1_headline": null,
          "custom_nimbits_pdftab1_media": null,
          "custom_nimbits_pdftab2_headline": null,
          "custom_nimbits_pdftab2_media": null,
          "custom_nimbits_pdftab3_headline": null,
          "custom_nimbits_pdftab3_media": null,
          "custom_nimbits_pdftab4_headline": null,
          "custom_nimbits_pdftab4_media": null,
          "custom_nimbits_pdftab5_headline": null,
          "custom_nimbits_pdftab5_media": null
        },
        "description": "",
        "featureSetId": "705610123cfe42b286680690b8b920cd",
        "id": "64c2c1a4c6ae7000c2a1a3bcba794098",
        "manufacturer": {
          "id": "b2c016e46108ab730dd591c9de26725d",
          "name": "Hersteller (Firmierung)"
        },
        "maxPurchase": null,
        "media": null,
        "minPurchase": 1,
        "name": "TEST Indizierung",
        "price": [
          {
            "currencyId": "b7d2554b0ce847cd82f3ac9bd1c0dfca",
            "gross": "0.00",
            "linked": true,
            "net": "0"
          }
        ],
        "productNumber": "WEB_BASIS_FTEST",
        "purchaseSteps": 1,
        "stock": 999999,
        "taxId": "90fad0e3958742bbbc51edbec9ed2d4f",
        "visibilities": [
          {
            "id": "13e9cae320e21f3256f4926644f1c918",
            "productId": "64c2c1a4c6ae7000c2a1a3bcba794098",
            "salesChannelId": "3c1b7b5b1b2c468a92d482089186d1a3",
            "visibility": 30
          },
          {
            "id": "daa6477fa7d7a988845da247788375ac",
            "productId": "64c2c1a4c6ae7000c2a1a3bcba794098",
            "salesChannelId": "98432def39fc4624b33213a56b8c944d",
            "visibility": 30
          }
        ]
      }
    ]
  },
  {
    "action": "upsert",
    "entity": "product",
    "payload": [
      {
        "active": true,
        "coverId": null,
        "customFields": {
          "custom_nimbits_pdftab1_headline": null,
          "custom_nimbits_pdftab1_media": null,
          "custom_nimbits_pdftab2_headline": null,
          "custom_nimbits_pdftab2_media": null,
          "custom_nimbits_pdftab3_headline": null,
          "custom_nimbits_pdftab3_media": null,
          "custom_nimbits_pdftab4_headline": null,
          "custom_nimbits_pdftab4_media": null,
          "custom_nimbits_pdftab5_headline": null,
          "custom_nimbits_pdftab5_media": null
        },
        "id": "c9fb470833af0aa95c1b426a984ab270",
        "maxPurchase": null,
        "media": null,
        "minPurchase": 1,
        "options": [
          {
            "id": "eecd0261830df29d3ea8624f8907ec5c"
          },
          {
            "id": "67190a1c83adc9799e0a79db53576d50"
          }
        ],
        "parentId": "64c2c1a4c6ae7000c2a1a3bcba794098",
        "price": [
          {
            "currencyId": "b7d2554b0ce847cd82f3ac9bd1c0dfca",
            "gross": "1338.75",
            "linked": true,
            "net": "1125"
          }
        ],
        "productNumber": "03106201",
        "purchaseSteps": 1,
        "stock": 999999,
        "taxId": "90fad0e3958742bbbc51edbec9ed2d4f"
      },
      {
        "active": true,
        "coverId": null,
        "customFields": {
          "custom_nimbits_pdftab1_headline": null,
          "custom_nimbits_pdftab1_media": null,
          "custom_nimbits_pdftab2_headline": null,
          "custom_nimbits_pdftab2_media": null,
          "custom_nimbits_pdftab3_headline": null,
          "custom_nimbits_pdftab3_media": null,
          "custom_nimbits_pdftab4_headline": null,
          "custom_nimbits_pdftab4_media": null,
          "custom_nimbits_pdftab5_headline": null,
          "custom_nimbits_pdftab5_media": null
        },
        "id": "487cec6d4ca374d8640f9c9983c52c3d",
        "maxPurchase": null,
        "media": null,
        "minPurchase": 1,
        "options": [
          {
            "id": "eecd0261830df29d3ea8624f8907ec5c"
          },
          {
            "id": "67190a1c83adc9799e0a79db53576d50"
          }
        ],
        "parentId": "64c2c1a4c6ae7000c2a1a3bcba794098",
        "price": [
          {
            "currencyId": "b7d2554b0ce847cd82f3ac9bd1c0dfca",
            "gross": "0.00",
            "linked": true,
            "net": "0"
          }
        ],
        "productNumber": "656Test",
        "purchaseSteps": 1,
        "stock": 999999,
        "taxId": "90fad0e3958742bbbc51edbec9ed2d4f"
      }
    ]
  },
  {
    "action": "upsert",
    "entity": "vio_customer_price",
    "payload": [
      {
        "customerId": "f20bdab62d24416286a3f3cd5591a358",
        "id": "181be498b95f69aaff4e92b96e04d96f",
        "price": "9999991",
        "productId": "c9fb470833af0aa95c1b426a984ab270",
        "quantityStart": 0
      }
    ]
  }
]
"configuratorGroupConfig": [
    // braucht es evtl. nicht ?
],
"variantListingConfig": [
    "displayParent" => true,
    "sorting" => "name-asc"
],
"configuratorSettings": [
    {
        "optionId": "eecd0261830df29d3ea8624f8907ec5c",
        "productId": "product_id_der_variante_mit_der_option_eecd0261830df29d3ea8624f8907ec5c"
    },
    {
        "optionId": "67190a1c83adc9799e0a79db53576d50",
        "productId": "product_id_der_variante_mit_der_option_67190a1c83adc9799e0a79db53576d50"
    }
],

ich hatte so ein ähnliches Problem. Ich habe dann die 3 Keys wie oben hinzu gefügt:

  • configuratorGroupConfig
    hiermit wird im Wesentlichen die GroupId der Optionen angeben mit denen/der die Varianten definiert werden
  • variantListingConfig
    bestimmt letztlich die Darstellung der Variantenauswahl
  • configuratorSettings
    hier hast Du ja schon die optionId drin, hier fehlt aber auf jeden Fall die productId. Und das ist die ID der Varianten. Wobei ich glaube da ist ein ForeignKey drauf. Ich mache das bei mir so, dass ich zuerst den Vater/Parent erzeugen mit „configuratorSettings“ = [ ], dann die Varianten erzeuge (und damit sind die ids gültig). Und final mache ich dann ein Update in das Parent mit dem configuratorSettings.

Danke für die Antwort.
Hab etwas rumgetestet und auch wenn ich die 3 Keys ergänze bleibt der Fehler. Hab auch alle einmal einzeln getestet, auch hier ohne Erfolg.

Wenn ich mein unangepasstes JSON über Postman an meinen Shop schicke, wird der Artikel mit Variante auch richtig erstellt, ohne Fehler.
Dadurch hatte ich die Vermutung, dass eventuell mein Header fehlende Informationen hat. Hier hab ich auch rumgetestet und den selben Header, wie über Postman übergeben, aber leider auch ohne Erfolg …

Werde mich die Tage nochmal dran setzen.

Bin für jeden Ansatz dankbar, falls jemand noch eine Idee hat :slightly_smiling_face: