Hallo,
ich habe das ProductEntity
um ein Feld erweitert .
Bei Ausführung von upsert()
wird:
product
wird überschrieben
in der Erweiterung wird ein neuer Datensatz angefügt .
Ich erwarte lt Anleitung, das bei upsert()
/ update()
der Datensatz der Erweiterung stattdessen überschrieben wird.
...
$this->productRepository->upsert([[
'id' => $idMainProduct,
'components' => [
'components' => $components->getComponents()
]
]], $context);
Gibt es da eine Konfiguration?
Ohne es getestet zu haben, musst du vermutlich für jede Assoziation/Extension die UUID mit angeben, damit diese aktualisiert und nicht neu angelegt wird.
[
'id' => $idMainProduct,
'components' => [
'id' => xyz,
'components' => $components->getComponents()
]
@Max_Shop Danke, das war die Lösung
EDIT
Vue/Js
You can simply write your data into this.product.extensions.your-extension Shopware will automatically write it to the database when you save the product (Autoloading might need to be active for this to work I’m not sure). This worked for me:
methods: {
// This is the @change Method on my Input
updateData(){
this.myExtension.option = this.selectedOption;
this.product.extensions.myExtension = this.myExtension;
}
},
created(){
if(!this.product.extensions.myExtens…