Ich habe ein eigenes Einkaufswelt Element erstellt (Shopware 5.7.2)
Ich habe alle Fields mit z.B. createTextField(…) in der install function angelegt.
public function install(InstallContext $context)
{
$installer = $this->container->get('shopware.emotion_component_installer');
$emotionElement = $installer->createOrUpdate(
...
/* dann werden die Felder erstellt */
$emotionElement->createTextField([
Nun musste ich 2 Felder hinzufügen. Wenn ich diese aber auch in der install function dazu schreibe führt ein Update des Plugins nicht dazu, dass die Felder auch erscheinen.
Die Felder erscheinen erst wenn ich das Plugin neu installiere, aber dann sind alle bereits angelegten Inhalte weg…
Ich habe bereits Beiträge gefunden die sagen, dass man dazu die function update() nutzen muss um die bereits angelegten Inhalte nicht zu verlieren.
Derzeit sieht die Update Funktion so aus.
public function update(UpdateContext $updateContext)
{
$updateContext->scheduleClearCache(UpdateContext::CACHE_LIST_ALL);
}
Ich hab leider keine Idee wie ich die zusätzlichen Felder in der Update Funktion unterbringe, so dass die zusätzlichen Felder bei einem Update dann auch erscheinen.
Könnte mir da jemand helfen?
Ich habe mittlerweile das Plugin umgebaut so dass die FElder jetz in der EmotionElementInstaller.php installiert werden:
public function install(InstallContext $installContext)
{
$emotionElementInstaller = new EmotionElementInstaller(
$this->getName(),
$this->container->get('shopware.emotion_component_installer')
);
$emotionElementInstaller->install();
}
Aber es ist mir einfach nicht möglich Felder hinzuzufügen, ohne dass ich das Plugin neu zu installieren und damit alle angelegten Elemente zu verlieren.
Bin echt am verzweifeln… Es muss doch möglich sein ein Einkaufswelten Plugin updatefähig zu machen.
Falls jemand helfen kann wäre ich wirklich super dankbar,
Ich habe es auch nicht hinbekommen leider. Ich glaube es geht generell einfach gar nicht. Ich habe es dann so gelöst alle Einkaufswelten zu Exportieren im Backend, Update zu machen bzw. neu zu installieren mit den neuen Feldern und dann die Einkaufswelten wieder zu importieren.
Hi skarpeta, lieben Dank für diese Info. Immerhin bin ich dann damit schon mal nicht alleine, ist zumindest gut für’s Gefühl. Ich habe es auch mit Plugins versucht die es kostenlos für die Einkaufswelten gibt und da geht es auch nicht.
Den Workaround mit dem Export vor und dem Import nach Neuinstallation des Plugins habe ich auch schon getestet. Das ist echt ne Nummer wenn man das Element mittlerweile über 50 mal eingesetzt hat…
Es gab zwar auch mal ne Antwort in einem Thread, die sagte man muss nur die neuen Felder über die Update Funktion anlegen, aber sonst leider keine weiteren Infos oder ein Beispiel. Damit konnte ich dann auch leider nichts anfangen. Somit habe ich mittlerweile dann leider auch aufgeben müssen was das Thema angeht.
Ich habe mir auch diverse Plugins aus dem Store geladen um dort zu schauen. Diese haben tatsächlich auch schon mal updates gehabt. Daher muss es ja irgendeinen Trick geben. Aber den habe ich leider selbst nicht herausfinden können…