Hallo zusammen,
ich versuche momentan ein Upsert für ein Produkt. Leider hat er Probleme mit der SaleschannelId innerhalb von Visibility, welche ich als Payload mitgebe. Die Uuid ist fix und beim ersten mal anlegen funktioniert alles. Nur das Update funktioniert nicht. Alle Uuids sind auch beim zweiten Durchgang existent.
$productData[$i] = [
"id" => $uuid,
"name" => $products[$i]["nameGerman"],
"translations" => [
["languageId" => $uuidEnglish,
"name"=> $products[$i]["nameEnglish"]
],
["languageId" => $uuidItaly,
"name"=> $products[$i]["nameItalian"]
]
],
"productNumber" => $productNumber,
"categories" => [
['id' => $categoryCache[$categoryPimId]]
],
"visibilities" => [
[
'productId' => $uuid,
'salesChannelId' => $salesChannelId,
"visibility" => 30
]
y],
"taxId" => $taxId,
"price" => [['currencyId' => Defaults::CURRENCY, 'gross' => 999, 'net' => 999, 'linked' => false]],
"stock" => (int)$stock,
"cmsPageId" => $cmsId
];
$this->productRepository->upsert($productData, $context);
Die ProductId habe ich zu Testzwecken mal mitgegeben. Beide Versionen ohne Erfolg. Einziger Workaround war die Visibility nur für neue Artikel zu hinterlegen.
if($newProduct){
$productData[$i]["visibilities"] = [
[
'id' => $uuid,
'salesChannelId' => $salesChannelId,
"visibility" => 30
]
];
}
Kennt hier jemand die Lösung? Finde das ehrlich gesagt sehr „schmutzig“.
Liebe Grüße