Produktoptionen für Shopware

Produktoptionen für Shopware
ab 495,00 € *

zzgl. MwSt. zzgl. Versandkosten

Lizenz:

  • SwpProductOptions
Mit unserem Plugin "Produktoptionen" hast Du noch mehr Möglichkeiten Deinen Kunden... mehr
Produktinformationen "Produktoptionen für Shopware"

Mit unserem Plugin "Produktoptionen" hast Du noch mehr Möglichkeiten Deinen Kunden Auswahlmöglichkeiten anzubieten. Diese Optionen können pro Artikelvariante zugewiesen werden. Besonders geeignet ist dieses Plugin um Produkte zu individualisieren zu können. Pro Option kann ein Auf- oder Abpreis festgelegt werden, der deinem Kunden direkt angezeigt und berechnet wird. Dabei spielt es keine Rolle ob dieser abweichende Preis einmalig oder mehrfach berechnet wird. Die angebotenen Optionen sind unabhängig vom Lagerbestand, dieser wird in diesem Fall nicht geführt. Sollte eine Option eine weitere ausschließen, so kann auch das abgebildet werden, indem eine Blacklist hinterlegt wird. Da dieses Plugin extrem umfangreich und flexibel ist hier die wichtigsten Funktionen im Überblick:

  • Liveberechnung der Optionspreise im Shop inkl. dem Endpreis
  • Blacklist: Die Optionen können sich gegenseitig ausschließen
  • Pflichtfelder definieren: dies sind Optionen, die ausgefüllt werden müssen
  • Einmalpreise: der Preis ist unabhängig von der Bestellmenge des Artikels
  • Optionen können auch reale Artikel beinhalten
  • Optionen und Gruppen können Bilder hinterlegt werden (hierzu ist eine Template-Anpassung nötig)
  • Optionswerte in den Gruppen per Drag and Drop umsortieren

Das Plugin-Design und Funktionalität ist auf das Shop-Standard Template angepasst. Sollten Abweichungen in eigenen oder Dritthersteller-Templates bestehen, müssen ggf. entsprechende Anpassungen zur Plugin-Nutzung vorgenommen werden.

System: Shopware 5
Kategorie: Core
Shopversion: 5.5.x, 5.6.x
Weiterführende Links zu "Produktoptionen für Shopware"

Vorbereitung der Installation

Vor der Installation eines Plugins solltest Du Deine Daten sichern. Besonders wichtig: die Shopdatenbank.

Foundation-Plugin

Das Foundation-Plugin liefert für alle unsere Plugins die nötigen Grundfunktionen und unsere neue Lizenzverwaltung.

Schritt 1 - Installation des Foundation Plugins:

  • Im Shopware Backend den Pluginmanager öffnen.
  • Den Punkt "Installiert" auswählen.
  • Auf Plugin hochladen klicken, die zip Datei des Foundation Plugins auswählen und hochladen.
  • Das Foundation Plugin welches nach dem Upload unter "Deinstalliert" zu finden ist installieren und aktivieren.
  • Nach der Installation musst Du den kompletten Adminbereich neu laden (in den meisten Browsern mit F5).

 

Schritt 2 - Lizenzen einfügen:

Du findest im Adminbereich unter Einstellungen den neuen Menüpunkt „Module-Factory-Lizenzen“. An dieser Stelle kannst Du den von uns erhaltenen Lizenzkey mit dem „Hinzufügen“-Button abspeichern. Die Lizenz des eigentlichen Plugins musst Du anschliessend in der Lizenzübersicht aktivieren, indem Du bei der gewünschten Lizenz im Listing auf den roten Button klicken. Dadurch werden dann alle benötigten Lizenzinformationen per Curl-Verbindung in das Foundation-Plugin importiert.

Kurzfassung:

Foundation-Plugin wie gewohnt installieren
Admin -> Shop -> Module-Factory-Lizenzen -> Neu -> aktivieren -> markieren -> Auswahl aktivieren

Schritt 1 muss nur ein einziges Mal durchgeführt werden, VOR der Installation des allersten Plugin unseres Unternehmens.

verschlüsselt

Systemvoraussetzung

Systemvoraussetzung für dieses Plugin ist Shopware ab Version 5.x Die Aufwärtskompatibilität ist in der Regel gegeben, kann jedoch nicht zu jedem Zeitpunkt garantiert werden.

Installation – Schritt für Schritt

  • Im Shopware Backend den Pluginmanager öffnen.
  • Den Punkt "Installiert" auswählen.
  • Auf Plugin hochladen klicken, die zip Datei des heruntergeladenen Plugins auswählen und hochladen.
  • Das Plugin welches nach dem Upload unter "Deinstalliert" zu finden ist installieren und aktivieren.

Plugin für diesen Mandanten aktivieren?

  • ja - Das Plugin ist für diesen Mandanten aktiv.
  • nein - Das Plugin ist für diesen Mandanten nicht aktiv.
  • vererbt - greift auf die Einstellung des Hauptshops zurück


Standardsprache/Fallbacksprache festlegen:

  • Diese Einstellung ist wichtig, wenn Du einen oder mehrere Sprachshops verwendest. Sollte ein Textbaustein in einer Sprache nicht vorhanden sein, so wird die Sprache verwendet, die hier hinterlegt worden ist. 


Badge im Listing anzeigen:

  • ja - Es wird ein Badge (Hinweis) im Listing angezeigt, dass anzeigt, dass eine Optionsauwahl möglich ist.
  • nein - Das Badge wird nicht im Listing angezeigt. Somit ist kein Hinweis im Produktlisting erkennbar, der auf eine Optionsauswahl hinweist. vererbt - greift auf die Einstellung des Hauptshops zurück


Darstellung der Produktoptionen:

  • Normale Darstellung => alle Optionen werden aufgeklappt dargestellt (Bild 1)
  • ein Wizzard => Schritt für Schritt in einer Modalbox (Bild 2)
  • Zusammengeklappt => Anzeige abwechselnd (Bild 3)
  • Zusammengeklappt => Anzeige unabhängig (Bild 4)


Ansicht der Blacklist:

  • Option wird versteckt – die Option wird nicht ausgegeben
  • Option wird deaktiviert – die Option wird mit anzeigt, ist aber nicht wählbar


klickbare Bilder:

  • ja – Die Auswahl kann über das Bild getroffen werden (nur bei Radiobutton oder Checkbox und es muss ein Bild hinterlegt werden).
  • nein – Hier muss der Button direkt angeklickt werden. Eine Auswahl über das Bild ist nicht möglich. 
  • vererbt - greift auf die Einstellung des Hauptshops zurück


Staffelpreise (gilt nicht für Preisgruppen) 

  • Auf jede Konfiguration bezogen - Die Staffelung greift nur, wenn absolut gleich konfigurierte Artikel in den Warenkorb gelegt werden. 
  • Gruppiert nach Grundartikel - Bei dieser Einstellung ist die Konfiguration egal, es der Staffelpreis wird anhand des Grundartikels berechnet.


Dezimalgenauigkeit der Formel:

  • Wieviele Dezimalstellen nach dem Komma sollen für die Berechnung beachtet werden?


Brutto im Backend:

  • ja – die Optionspreise werden mit USt. erfasst
  • nein – die Optionspreise werden ohne USt. erfasst
  • vererbt -> greift auf die Einstellung des Hauptshops zurück

    Achtung – bei Umstellung von ja auf nein oder umgedreht muss zwingend der Cache geleert  und das Backend neu geladen werden.


Steuersatz für Optionen:

  • Wenn bei Brutto im Backend "ja" gewählt worden ist, muss an dieser Stelle der Wert hinterlegt werden, mit dem er dann bei den jeweiligen Optionen angegeben wird. Achtung, diese Berechnung ist nur im Backend relevant. Im Frontend wird der Steuersatz berücksichtigt, der für den Shop hinterlegt worden. Dies kann daher unter Umständen zu Verwirrung führen, wenn der Wert abweichend von der gültigen USt. ist.

    z. B.
    Brutto im Backend = ja
    Steuersatz für Optionen = 12

    Der Aufschlag für die Option wurde 1,20 Euro mit hinterlegt, so lautet die Ausgabe im Frontend über 1,27 Euro.

    Unsere Empfehlung lautet daher Brutto im Backend = nein und Nettowerte zu hinterlegen. 

 


Optionen allg.

Im Backend findest du unter Artikel -> Produktoptionen Sets/Gruppen die Möglichkeit deine gewünschten Optionen zu hinterlegen.

Folgende Symbolde werden wir dabei immer wieder begegnen:

Pfeil - erbt von ...
Kreuz - deaktiviert
Haken - aktiviert


Sets

Dazu beginnst du am Besten mit der Bezeichnung deines Sets indem du auf hinzufügen klickst, einen Namen vergibst und aktualisieren wählst. Damit ist der Name deines Sets gespeichert. Nun werden Optionsgruppen benötigt. 


Gruppen

Wähle als erstes wieder "hinzufügen" (Button) aus.

Gruppe Grundeinstellungen:

FeldTyp

  • Radiobutton (Einzelauswahl)
  • Checkbox (Mehrfachauswahl)
  • Dropdown (Listenauswahl)
  • Textfield (Textfeld einzeilig)
  • Datepicker (Datumauswahl)
  • Textarea (Textfeld mehrzeilig)
  • Upload (Uploadfeld)
  • Formula (Berechnung)


Interner Bezeichner:

  • Diese Eingabefeld ist zur rein internen Verwendung gedacht. Dieser kann im Frontend ausgegeben werden, er wird jedoch derzeit nicht verarbeitet.


Pflichtfeld:

  • Bei der Aktivierung durch Klick und setzten einen Hakens, legt man fest, dass bei dieser Gruppe eine Auswahl getroffen werden muss. Trifft der Kunde keine Auswahl, kann das Produkt nicht bestellt werden.


Variable:

  • --- stellt hier den Standard dar und kann so belassen werden, wenn keine Berechnung erfolgen soll. 
  • x, y, z, a, b sind mögliche Variablen, die zu einer Berechnung verwendet werden können. Mehr dazu unter ...


Aktiv:

  • aktiviert bzw. deaktiviert eine Gruppe


Bilder vergrößern:

  • ist aktuell für Gruppen ohne Funktion


Gruppe Filtereinstellungen:


Filterbar:

  • Hier wird festgelegt, ob die Gruppe im Filter (Frontend) zur Verfügung gestellt wird.


Bilder anstelle von Text:

  • Vorausgesetzt, dass man die Gruppe filterbar bereitstellt, kann statt dem Text das Optionsbild angezeigt werden.

 

Gruppe Spracheinstellungen:

Gruppenname:

  • An dieser Stelle wird die Bezeichnung für die Gruppe hinterlegt.


Beschreibung kurz:

  • Hier kann man eine kurze Beschreibung der Option hinterlegen.


Beschreibung lang:

  • Sofern eine genauere Beschreibung für die Optionsgruppe benötigt wird, kann dies an dieser Stelle dokumentiert werden.

Optionen

Wie gewohnt fügst du über den "Hinzufügen"-Button neue Optionen hinzu. Achte dabei darauf, dass die Gruppe blau unterlegt ist, zuder die Optionen gehört.

Options Grundeinstellungen

Preis Prefix:

  • + (plus) es erfolgt ein Aufschlag
  • - (minus) es wird ein Abschlag berechnet
  • * (mal) es wird der Grundpreis mit diesem Wert multipliziert (z. B. Grundpreis 10,00 € - dann kostet der Artikel mit dieser Option 20,00 €)


Nettopreis / Bruttopreis:

  • Der Wert der abweichend vom Grundpreis berechnet werden soll. Je nach Preispräfix führt dies zu einem Auf- bzw. Abschlag.


Nummer Trennzeichen:

  • Auswahl des Trennzeichens, wenn mann an die Bestellnummer weitere Zeichen (siehe Ordernummer) ergänzen möchte. Zur Auswahl stehen dafür: +, -, /, *


Ordernummer:

  • Die Zeichen, die hier hinterlegt werden (Buchstaben, Zahlen) werden an die Bestellnummer angehangen.


Vorauswahl:

  • Bei der Aktivierung (Haken) dieser Möglichkeit, ist die Option bereits vorausgewählt für den Kunden.


Aktiv:

  • geerbt von Gruppe - greift auf die Einstellung der Gruppe zurück
  • an - die Option ist aktiv
  • aus - die Option ist deaktiviert

erweiterte Einstellungen (je nach FeldTyp unterschiedlich)

interner Bezeichner:

  • nur für interne Vermerke, dieser kann im Frontend ausgegeben werden, er wird jedoch derzeit nicht verarbeitet


Single-Berechnung:

  • Wenn für die Option unabhängig von der Menge der Auf- bzw. Abpreis nur einmal berechnet werden soll.


Variablenwert:

  • Der Wert, der an dieser Stelle hinterlegt wird, kann für eine Berechnung verwendet werden. 


Einheit:

  • Die Einheit, auf die sich der Variablenwert bezieht.


Pflichtfeld:

  • geerbt von Gruppe - greift auf die Einstellung der Gruppe zurück
  • an - die Option ist aktiv
  • aus - die Option ist deaktiviert


Single:

  • aktiviert die Berechnung pro Zeichen (siehe Fragezeichen (Erklärung) im Plugin selbst)


TextRegex:

  • Definiert die Zeichen, die gezählt werden sollen (Regex-Kenntnisse vorausgesetzt)


min:

  • Minimalwert (ohne Eingabe keine Grenze)


max:

  • Maximalwert (ohne Eingabe keine Grenze)


Variable:

  • Nur für Berechnungen muss eine Auswahl getroffen werden. Standardmäßig ist --- hinterlegt. Dies bedeutet, dass keine Variable hinterlegt ist. Als Variablen stehen zur Verfügung: x, y, z, a, b


Formelfeld:

  • An dieser Stelle muss die Formel hinterlegt werden, anhand derer berechnet werden soll. Q stellt dabei den Grundpreis dar und muss in die Berechnung einbezogen werden.

 

Reiter Bilder:
um Optionen Bilder zuzweisen

Reiter Artikel:
Es gibt die Möglichkeit, Optionen reale Artikel zuzweisen. 

Artikelpreise benutzen:

  • Bei Aktivierung wird der Artikelpreis als Optionspreis verwendet. Dazu ist es notwendig im Reiter Option den Preis Präfix (siehe Options Grundeinstellungen) festzulegen.

Suche nach:

  • An dieser Stelle erfolgt die Zuweisung, welcher Artikel für diese Option verwendet werden soll.

Artikelzuweisung

Artikel werden wie gewohnt angelegt. Unter dem Reiter Produktoptionen kannst du die gewünschten Optionssets zuweisen. Wähle dazu unter "Optionen Set Auswählen" ein Set aus um es hinzuzufügen bzw. um ein Set zu entfernen

Mehrfachänderung

  • mehrere Artikel können mit einmal bearbeitet werden (Auswahl erfolgt über Markierung links welche Optionen bearbeitet werden sollen)


Markierte Optionen entfernen

  • entfernt einzelne Optionen


Auf Artikel kopieren

  • kopiert die vorliegende Optionszuweisung auf einen weiteren Artikel


Gruppen bearbeiten

  • um komplette Gruppen zu löschen


Suche

  • sucht nach Gruppenbezeichnung


Trenner, Ordernummer, Preis Prefix und Netto(Brutto)preis, Single-Berechnung, Pflichtfeld, Aktiv können pro Artikel überschrieben werden


Hinweis

Diese Anleitung wurde mit der Pluginversion 5.05.20 und Shopversion 5.5.9 erstellt. Bei älteren und jüngeren Versionen sowohl des Shopsystem als auch des Plugin kann es zu Abweichungen kommen.

Das Plugin-Design und Funktionalität ist auf das Shop-Standard Template angepasst. Sollten Abweichungen in eigenen oder Dritthersteller-Templates bestehen, müssen ggf. entsprechende Anpassungen zur Plugin-Nutzung vorgenommen werden.

Tips und Tricks / FAQ

Optionspreis wird am Artikel hinterlegt und es erfolgt keine Berechnung
Bitte achte darauf, dass wenn der Optionspreis am Artikel direkt hinterlegt wird oder überschrieben, muss auch der Preis-Präfix hinterlegt werden. Beides ist als Einheit zu sehen.

Bestellbestätigungs-E-Mail fehlerhaft:
Ein Blueprint des Templates liegt im Mofa(Swp)ProductOptions/Resources/views/install/mails/. Dort findet man beide Templates, einmal für html und für text. Du musst diese nach Ihren Wünschen anpassen, mit einem Editor Ihrer Wahl, damit die zusätzlichen Informationen wie
z. B. die Mehrwertsteuer und Kontaktdaten zur Verfügung stehen. Anschließend hinterlegst du dieses angepassten Templates im Backend unter sOrder. Also kopieren und einfügen. Zur Sicherheit eine Kopie Ihres Templates abspeichern.

Eine andere Möglichkeit wäre das Mailtemplate gleich im Shop abzuändern. Wichtig ist der Part zwischen <table> und </table>. Dort wird die Tabelle mit den Produkten erzeugt.

Wir haben bewusst darauf verzichtet, die originalen Mail-Template zu überschreiben, falls individuelle Anpassungen vorgenommen worden sind. 

Sortierung ist durcheinander
Leider ist dies bei einem so großem und umfangreichen Updateschritt nicht zu verhindern, dass die Optionen neu sortiert werden müssen bei dem Update auf Version 5.05.20 (sofern sie dies vorher waren). 

Badge - konfigurierbar
Wir haben bereits bemerkt, dass die Schriftfarbe in den meisten Fälle unglücklich gewählt ist. Mit dem Update auf 5.05.21 wird dies angepasst sein. Bis dahin kann dies in der Datei custom/plugins/MofaProductOptions/Resources/frontend/less/all.less 

// Listingbadge

.product--box .product--badges .badge--product-options {

    color: @text-color; => mit color: @btn-primary-text-color; angepasst werden

    background: @brand-primary;
}

Update von SwpProductOptions zu MofaProductOptions

 

1. Aktualisiere bitte dein Plugin auf Version 5.05.03.

Solltest Du bereits das Plugin "Module-Foundation" auf MofaFoundation installiert haben, musst du die Punkte 2 - 5 nicht noch einmal durchführen.

2. Sichere deine Pluginlizenznummern, in dem du diese kopierst und zwischenspeicherst. Deaktiviere diese danach.

3. Deaktiviere alle Plugin der BuI Hinsche GmbH bzw. der Module-Factory. Als letztes deaktivierst du dabei das "Module-Foundation".

4. Lösche das Plugin "Module-Foundation" (SwpFoundation) komplett.

5. Installiere und aktiviere das Plugin "Module-Foundation" (MofaFoundation). Lösche den cache und lade das Backend neu. Im Anschluss hinterlegst du die zuvor gesicherten Lizenzen wie gewohnt und aktivierst diese wieder.


Pluginupdate

6. Notiere dir deine Pluginkonfiuration z. B. durch einen Screenshot.

7. Sichere deine E-Mail-Vorlagen indem du im Backend unter Einstellungen > E-Mail-Vorlagen > System-E-Mails > sOrder -> Reiter "HTML-Text" den Inhalt dieses Reiters in einem Editor zwischenspeicherts. Durchsuche diese zudem nach dem Kürzel "swp" und ersetzte es durch "mofa".

8. Sofern du Änderungen in den Dokuemntentemplate vorgenommen hast, musst du auch diese sichern um deine Anpassungen später wieder einfügen zu können. Die Dokumente findest du unter themes > Frontend > Bare > documents sowie in deinem Theme. 

9. Führe folgende SQL Anweisungen aus, damit sicherst du die Daten deines Plugins

CREATE TABLE IF NOT EXISTS `backup_s_plugin_swp_product_options_article` LIKE `s_plugin_swp_product_options_article`;
ALTER TABLE `backup_s_plugin_swp_product_options_article` DISABLE KEYS;
INSERT INTO `backup_s_plugin_swp_product_options_article` SELECT * FROM `s_plugin_swp_product_options_article`;
ALTER TABLE `backup_s_plugin_swp_product_options_article` ENABLE KEYS;
CREATE TABLE IF NOT EXISTS `backup_s_plugin_swp_product_options_groups` LIKE `s_plugin_swp_product_options_groups`;
ALTER TABLE `backup_s_plugin_swp_product_options_groups` DISABLE KEYS;
INSERT INTO `backup_s_plugin_swp_product_options_groups` SELECT * FROM `s_plugin_swp_product_options_groups`;
ALTER TABLE `backup_s_plugin_swp_product_options_groups` ENABLE KEYS;
CREATE TABLE IF NOT EXISTS `backup_s_plugin_swp_product_options_groups_desc` LIKE `s_plugin_swp_product_options_groups_desc`;
ALTER TABLE `backup_s_plugin_swp_product_options_groups_desc` DISABLE KEYS;
INSERT INTO `backup_s_plugin_swp_product_options_groups_desc` SELECT * FROM `s_plugin_swp_product_options_groups_desc`;
ALTER TABLE `backup_s_plugin_swp_product_options_groups_desc` ENABLE KEYS;
CREATE TABLE IF NOT EXISTS `backup_s_plugin_swp_product_options_groups_images` LIKE `s_plugin_swp_product_options_groups_images`;
ALTER TABLE `backup_s_plugin_swp_product_options_groups_images` DISABLE KEYS;
INSERT INTO `backup_s_plugin_swp_product_options_groups_images` SELECT * FROM `s_plugin_swp_product_options_groups_images`;
ALTER TABLE `backup_s_plugin_swp_product_options_groups_images` ENABLE KEYS;
CREATE TABLE IF NOT EXISTS `backup_s_plugin_swp_product_options_options` LIKE `s_plugin_swp_product_options_options`;
ALTER TABLE `backup_s_plugin_swp_product_options_options` DISABLE KEYS;
INSERT INTO `backup_s_plugin_swp_product_options_options` SELECT * FROM `s_plugin_swp_product_options_options`;
ALTER TABLE `backup_s_plugin_swp_product_options_options` ENABLE KEYS;
CREATE TABLE IF NOT EXISTS `backup_s_plugin_swp_product_options_options_articles` LIKE `s_plugin_swp_product_options_options_articles`;
ALTER TABLE `backup_s_plugin_swp_product_options_options_articles` DISABLE KEYS;
INSERT INTO `backup_s_plugin_swp_product_options_options_articles` SELECT * FROM `s_plugin_swp_product_options_options_articles`;
ALTER TABLE `backup_s_plugin_swp_product_options_options_articles` ENABLE KEYS;
CREATE TABLE IF NOT EXISTS `backup_s_plugin_swp_product_options_options_blacklist` LIKE `s_plugin_swp_product_options_options_blacklist`;
ALTER TABLE `backup_s_plugin_swp_product_options_options_blacklist` DISABLE KEYS;
INSERT INTO `backup_s_plugin_swp_product_options_options_blacklist` SELECT * FROM `s_plugin_swp_product_options_options_blacklist`;
ALTER TABLE `backup_s_plugin_swp_product_options_options_blacklist` ENABLE KEYS;
CREATE TABLE IF NOT EXISTS `backup_s_plugin_swp_product_options_options_desc` LIKE `s_plugin_swp_product_options_options_desc`;
ALTER TABLE `backup_s_plugin_swp_product_options_options_desc` DISABLE KEYS;
INSERT INTO `backup_s_plugin_swp_product_options_options_desc` SELECT * FROM `s_plugin_swp_product_options_options_desc`;
ALTER TABLE `backup_s_plugin_swp_product_options_options_desc` ENABLE KEYS;
CREATE TABLE IF NOT EXISTS `backup_s_plugin_swp_product_options_options_images` LIKE `s_plugin_swp_product_options_options_images`;
ALTER TABLE `backup_s_plugin_swp_product_options_options_images` DISABLE KEYS;
INSERT INTO `backup_s_plugin_swp_product_options_options_images` SELECT * FROM `s_plugin_swp_product_options_options_images`;
ALTER TABLE `backup_s_plugin_swp_product_options_options_images` ENABLE KEYS;
CREATE TABLE IF NOT EXISTS `backup_s_plugin_swp_product_options_sets` LIKE `s_plugin_swp_product_options_sets`;
ALTER TABLE `backup_s_plugin_swp_product_options_sets` DISABLE KEYS;
INSERT INTO `backup_s_plugin_swp_product_options_sets` SELECT * FROM `s_plugin_swp_product_options_sets`;
ALTER TABLE `backup_s_plugin_swp_product_options_sets` ENABLE KEYS;
CREATE TABLE IF NOT EXISTS `backup_s_plugin_swp_product_options_sets_assign` LIKE `s_plugin_swp_product_options_sets_assign`;
ALTER TABLE `backup_s_plugin_swp_product_options_sets_assign` DISABLE KEYS;
INSERT INTO `backup_s_plugin_swp_product_options_sets_assign` SELECT * FROM `s_plugin_swp_product_options_sets_assign`;
ALTER TABLE `backup_s_plugin_swp_product_options_sets_assign` ENABLE KEYS;
CREATE TABLE IF NOT EXISTS `backup_s_plugin_swp_product_options_upload` LIKE `s_plugin_swp_product_options_upload`;
ALTER TABLE `backup_s_plugin_swp_product_options_upload` DISABLE KEYS;
INSERT INTO `backup_s_plugin_swp_product_options_upload` SELECT * FROM `s_plugin_swp_product_options_upload`;
ALTER TABLE `backup_s_plugin_swp_product_options_upload` ENABLE KEYS;
CREATE TABLE IF NOT EXISTS `backup_s_plugin_swp_product_options_zt_order_basket_upload` LIKE `s_plugin_swp_product_options_zt_order_basket_upload`;
ALTER TABLE `backup_s_plugin_swp_product_options_zt_order_basket_upload` DISABLE KEYS;
INSERT INTO `backup_s_plugin_swp_product_options_zt_order_basket_upload` SELECT * FROM `s_plugin_swp_product_options_zt_order_basket_upload`;
ALTER TABLE `backup_s_plugin_swp_product_options_zt_order_basket_upload` ENABLE KEYS;
CREATE TABLE IF NOT EXISTS `backup_s_plugin_swp_product_options_zt_order_details_upload` LIKE `s_plugin_swp_product_options_zt_order_details_upload`;
ALTER TABLE `backup_s_plugin_swp_product_options_zt_order_details_upload` DISABLE KEYS;
INSERT INTO `backup_s_plugin_swp_product_options_zt_order_details_upload` SELECT * FROM `s_plugin_swp_product_options_zt_order_details_upload`;
ALTER TABLE `backup_s_plugin_swp_product_options_zt_order_details_upload` ENABLE KEYS;
CREATE TABLE IF NOT EXISTS `backup_s_order_basket_attributes` LIKE `s_order_basket_attributes`;
ALTER TABLE `backup_s_order_basket_attributes` DISABLE KEYS;
INSERT INTO `backup_s_order_basket_attributes` SELECT * FROM `s_order_basket_attributes`;
ALTER TABLE `backup_s_order_basket_attributes` ENABLE KEYS;
CREATE TABLE IF NOT EXISTS `backup_s_order_details_attributes` LIKE `s_order_details_attributes`;
ALTER TABLE `backup_s_order_details_attributes` DISABLE KEYS;
INSERT INTO `backup_s_order_details_attributes` SELECT * FROM `s_order_details_attributes`;
ALTER TABLE `backup_s_order_details_attributes` ENABLE KEYS;

10. Deinstalliere und lösche das Plugin "Produktoptionen" (SwpProductOptions).

11. Installiere das Plugin "Produktoptionen" (MofaProductOptions).

12. Führe folgene SQL Anweisungen aus. Damit übernimmst du die gesicherten Daten in die entsprechenden Tabellen.

SET FOREIGN_KEY_CHECKS = 0;

UPDATE `s_order_basket_attributes` oa
JOIN `backup_s_order_basket_attributes` boa
ON oa.`id` = boa.`id`
SET oa.`mofa_product_options_ordernumber` = boa.`swp_product_options_ordernumber`,
oa.`mofa_product_options_once` = boa.`swp_product_options_once`,
oa.`mofa_product_options_articles` = boa.`swp_product_options_articles`,
oa.`mofa_product_options_datas` = boa.`swp_product_options_datas`,
oa.`mofa_product_options_calc_datas` = boa.`swp_product_options_calc_datas`;

UPDATE `s_order_details_attributes` da
JOIN `backup_s_order_details_attributes` bda
ON da.`id` = bda.`id`
SET da.`mofa_product_options_ordernumber` = bda.`swp_product_options_ordernumber`,
da.`mofa_product_options_datas` = bda.`swp_product_options_datas`,
da.`mofa_product_options_calc_datas` = bda.`swp_product_options_calc_datas`;

INSERT INTO `s_plugin_mofa_product_options_article` (`id`, `SetID`, `GroupID`, `articleDetailId`, `OrderNumber`, `OrderNumberPrefix`, `NettoPrice`, `PricePrefix`, `Weight`, `WeightPrefix`, `required`, `Calculation`, `active`, `sortOrder`, `OptionID`) SELECT `id`, `SetID`, `GroupID`, `articleDetailId`, `OrderNumber`, `OrderNumberPrefix`, `NettoPrice`, `PricePrefix`, `Weight`, `WeightPrefix`, `required`, `Calculation`, `active`, `sortOrder`, `OptionID` FROM `backup_s_plugin_swp_product_options_article`;

INSERT INTO `s_plugin_mofa_product_options_groups` (`id`, `FieldTyp`, `required`, `filterable`, `filtermedia`, `zoommedia`, `active`, `Variable`, `parentGroup`) SELECT `id`, `FieldTyp`, `required`, `filterable`, `filtermedia`, `zoommedia`, `active`, `Variable`, `parentGroup` FROM `backup_s_plugin_swp_product_options_groups`;

INSERT INTO `s_plugin_mofa_product_options_groups_desc` (`id`, `GroupID`, `LocaleId`, `Name`, `ShortDescription`, `LongDescription`) SELECT `id`, `GroupID`, `LocaleId`, `Name`, `ShortDescription`, `LongDescription` FROM `backup_s_plugin_swp_product_options_groups_desc`;

INSERT INTO `s_plugin_mofa_product_options_groups_images` (`id`, `GroupID`, `MediaID`, `path`, `extension`, `main`, `width`, `height`) SELECT `id`, `GroupID`, `MediaID`, `path`, `extension`, `main`, `width`, `height` FROM `backup_s_plugin_swp_product_options_groups_images`;

INSERT INTO `s_plugin_mofa_product_options_options` (`id`, `GroupID`, `NettoPrice`, `PricePrefix`, `Weight`, `WeightPrefix`, `OrderNumber`, `OrderNumberPrefix`, `required`, `Calculation`, `Variable`, `VarValue`, `VarMin`, `VarMax`, `VarUnit`, `Override`, `Formula`, `active`, `sortOrder`) SELECT `id`, `GroupID`, `NettoPrice`, `PricePrefix`, `Weight`, `WeightPrefix`, `OrderNumber`, `OrderNumberPrefix`, `required`, `Calculation`, `Variable`, `VarValue`, `VarMin`, `VarMax`, `VarUnit`, `Override`, `Formula`, `active`, `sortOrder` FROM `backup_s_plugin_swp_product_options_options`;

INSERT INTO `s_plugin_mofa_product_options_options_articles` (`option_id`, `articledetail_id`) SELECT `option_id`, `articledetail_id` FROM `backup_s_plugin_swp_product_options_options_articles`;

INSERT INTO `s_plugin_mofa_product_options_options_blacklist` (`option_id`, `option_blacklist_id`) SELECT `option_id`, `option_blacklist_id` FROM `backup_s_plugin_swp_product_options_options_blacklist`;

INSERT INTO `s_plugin_mofa_product_options_options_desc` (`id`, `OptionID`, `LocaleId`, `Name`, `ShortDescription`, `LongDescription`) SELECT `id`, `OptionID`, `LocaleId`, `Name`, `ShortDescription`, `LongDescription` FROM `backup_s_plugin_swp_product_options_options_desc`;

INSERT INTO `s_plugin_mofa_product_options_options_images` (`id`, `OptionID`, `MediaID`, `path`, `extension`, `main`, `width`, `height`) SELECT `id`, `OptionID`, `MediaID`, `path`, `extension`, `main`, `width`, `height` FROM `backup_s_plugin_swp_product_options_options_images`;

INSERT INTO `s_plugin_mofa_product_options_sets` (`id`, `SetName`) SELECT `id`, `SetName` FROM `backup_s_plugin_swp_product_options_sets`;

INSERT INTO `s_plugin_mofa_product_options_sets_assign` (`id`, `SetID`, `GroupID`, `sortOrder`) SELECT `id`, `SetID`, `GroupID`, `sortOrder` FROM `backup_s_plugin_swp_product_options_sets_assign`;

INSERT INTO `s_plugin_mofa_product_options_upload` (`int_name`, `datei`, `timestamp`) SELECT `int_name`, `datei`, `timestamp` FROM `backup_s_plugin_swp_product_options_upload`;

INSERT INTO `s_plugin_mofa_product_options_zt_order_basket_upload` (`basket_id`, `int_name`) SELECT `basket_id`, `int_name` FROM `backup_s_plugin_swp_product_options_zt_order_basket_upload`;

INSERT INTO `s_plugin_mofa_product_options_zt_order_details_upload` (`detail_id`, `int_name`) SELECT `detail_id`, `int_name` FROM `backup_s_plugin_swp_product_options_zt_order_details_upload`;

SET FOREIGN_KEY_CHECKS = 1;

13. Aktiviere das Plugin, lösche den Cache und lade das Backend neu. Im Anschluss prüfst du die Datenübernahme im Frontend und Backend deines Shops. Bitte vergiss nicht die gesicherten Daten aus Punkt 7 wieder zu hinterlegen.

14. Sofern du Anpassungen in deinen Dokumenten hinterlegt hattest, müssen diese aufgrund der Umbenennung wieder händisch hinterlegt werden. Bitte achte darauf, dass das Kürzel "swp" durch "mofa" ersetzt worden ist. Sofern also noch "swp" vorhanden sein sollte, bitte mit "mofa" ersetzen.

15. Wenn alle Daten wieder hergestellt sind, führe folgende SQL-Anweisungen aus um die Backup-Tabellen wieder zu löschen.

SET FOREIGN_KEY_CHECKS = 0;
DROP TABLE IF EXISTS `backup_s_order_basket_attributes`;
DROP TABLE IF EXISTS `backup_s_order_details_attributes`;
DROP TABLE IF EXISTS `backup_s_plugin_swp_product_options_article`;
DROP TABLE IF EXISTS `backup_s_plugin_swp_product_options_groups`;
DROP TABLE IF EXISTS `backup_s_plugin_swp_product_options_groups_desc`;
DROP TABLE IF EXISTS `backup_s_plugin_swp_product_options_groups_images`;
DROP TABLE IF EXISTS `backup_s_plugin_swp_product_options_options`;
DROP TABLE IF EXISTS `backup_s_plugin_swp_product_options_options_articles`;
DROP TABLE IF EXISTS `backup_s_plugin_swp_product_options_options_blacklist`;
DROP TABLE IF EXISTS `backup_s_plugin_swp_product_options_options_desc`;
DROP TABLE IF EXISTS `backup_s_plugin_swp_product_options_options_images`;
DROP TABLE IF EXISTS `backup_s_plugin_swp_product_options_sets`;
DROP TABLE IF EXISTS `backup_s_plugin_swp_product_options_sets_assign`;
DROP TABLE IF EXISTS `backup_s_plugin_swp_product_options_upload`;
DROP TABLE IF EXISTS `backup_s_plugin_swp_product_options_zt_order_basket_upload`;
DROP TABLE IF EXISTS `backup_s_plugin_swp_product_options_zt_order_details_upload`;
SET FOREIGN_KEY_CHECKS = 1;

16. Aktualisiere bitte erst jetzt auf neuere Versionen die höher der unter Punkt 1 angegebenen.

Hinweis:
Solltest du evt. Textbausteine umgenannt haben, müsstest du dies noch einmal anpassen, da durch die erneute Installation des Plugins, die Standardtextbausteine wieder hinterlegt werden.

 

Solltest Du Fragen zum Update haben oder möchtest du, dass wir das Update für dich durchführen kannst du dich gerne

per Telefon unter 03441/725305 oder
per E-Mail an info@bui-hinsche.com

an unser Serviceteam wenden. Wir helfen dir gerne weiter.