Muss es? Die ganze Zeit wenn ich mit dem upsert arbeite muss „id“ auch „id“ heißen. (Eigentlich immer der Property Name in der Definition. In dem Fall ProductDefinition)
Dadurch das du das mit einem großen „I“ schreibst, ist meine Vermutung das er immer neue Produkte anlegt, mit derselben ProduktNummer - und das sagt deine Fehlermeldung auch nur aus.
Sollte das nicht das Problem sein, zeige bitte auch ein bisschen mehr vom upsert um etwaige Probleme auszuschließen.
vielen Dank. Ich habe jetzt alle Schreibweisen durch - es macht beim Upsert keinen Unterschied, beim Create ging es tatsächliich nur mit „Id“. (Wie es hier jemand feststellte, allerdings ohne Begründung.)
ich habe jetzt deinen Codeschnipsel genommen und habe den einmal in einen Command von mir gepackt und halt nur die Ids ausgetauscht mit gütigen Werten aus meiner Instanz.
Als Basis habe ich das shopware/development Template und eine Nackige Installation.
Der Code ist hier
Bei mir läuft der Code mit doppelten Upsert anstandslos durch, sobald ich allerdings das Feld id auf Id wechsele, bekomme ich denselben Fehler wie du, aber da meintest du ja daran liegt es nicht. Ich bin zugegebenermaßen ratlos. Ich habe das ganze mit der Version 6.3.2.1 und 6.3.3.0 getestet…
vielen herzlichen Dank für Deine Mühe. Ich bin endlich dahinter gekommen: Du hast recht und es muss id heißen - „Id“ hatte den Fehler nur behoben, weil ich damit keine gültige „id“ übermittelte, und Shopwares upsert() kurzerhand ein neues erzeugt hat. Dadurch war der Konflikt scheinbar behoben, nicht aber die gewünschte Funktion hergestellt. Dahintergekommen bin ich dank Deiner Hartnäckigkeit, es doch mit „id“ zu versuchen.