Ich bin hier gerade über folgendes gestolpert. Vorraussetzung für beide Probleme ist, das Varianten wechseln per Ajax aktiv ist!
Vielleicht kann hier jemand von Shopware kurz was dazu sagen?!
zu Problem 1)
für die Deeplinks zu den Variaten holt sich SW die Ordernumber per Jquery aus dem Template
Hat man aber nun in seinem eigenen Template den Block/Inhalt für die Artikelnummer entfernt so wird der URL keine Ordernumber mehr mit übergeben, da eben leer. Wechselt man nun eine Variante wird immer nur ein leeres ?number= mit übergeben.
zu Problem 2)
die Inhalte wie z.B: sArticle.ordernumber oder sArticle.attrXX werden nur innerhalb von
.product--detail-upper
nachgeladen. Verschiebt man nun z.B. ein Freitextfeld in den Beschreibungs-Tab oder möchte eine neues variantenbezogenes Freitextfeld haben, wird dieses nicht mehr mit dem passenden Inhalt zur Variante nachgeladen.
Wie ist hier das empfohlene Vorgehen, damit auch diese wieder nachgeladen werden ohne für jede Änderung ein eigenes JS Plugin schreiben zu müssen?
Da $sArticle.ordernumber nur innerhalb von .product–detail-upper nachgeladen wird, kommt es dazu das die „falche“ Ordernumber den Trackingscripts (Piwik/GA/eTracker usw.) mit übergeben wird. Sprich die des Hauptartikels und nicht der der Variante. Besonder bei addToCart Events kommt es hier zu Problemen bei der Auswertung da diese nicht zusammenpasst.
Gibt es hier eine andere Lösung als Varianten laden per Ajax zu deaktivieren?
danke für dein ausführlichen Post. Leider können wir Issues nicht über das Forum tracken, weshalb ich dich bitten würde ein Ticket im Issue-Tracker anzulegen: https://issues.shopware.com/#/
Damit geht dein Problem bei uns nicht unter und durch das Upvoting wird die Issue schneller bearbeitet.
Uns ist bewusst, dass wir mit den AJAX-Varianten nicht alle Fälle wie ein Custom-Template abdecken können - wir können hier leider nur vom Standard-Theme ausgehen. Falls du ein abweichendes Verhalten benötigst kannst du per $.overridePlugin() die Plugin-Methode überschreiben und so anpassen wie du es brauchst. Siehe hierzu: https://developers.shopware.com/designers-guide/modify-jquery-plugins/
Bzgl. Tracking-Scripts / weitere Daten müssen ausgetauscht werden: Hier könntest du das Event “plugin/swAjaxVariant/onRequestData” subscriben und dann entsprechend z.B. die Ordernumber für die Tracking-Scripts anpassen. An dieser Stelle kannst du dir auch weitere Informationen aus der Response fischen und entsprechend die DOM-Elemente aktualisiert. Hier die Stelle im Source Code. Hier siehst du auch, dass wir unsere jQuery Plugins neu initialisieren müssen: https://github.com/shopware/shopware/blob/5.1/themes/Frontend/Responsive/frontend/_public/src/js/jquery.ajax-variant.js#L141
@Creatixx Hast du hier ein konkreten Tracking-Dienst, wo du Hilfestellung benötigst? Schicke mir gerne einfach mal den Code, ggf. findet sich hier eine Lösung. Grundsätzlich arbeiten die meisten Tracking-Dienste über einen Script-Inklude, wo verschiedene Variablen gesetzt werden, um z.B. eine Ordernumber zu tracken.
Ich denke man müsste das Script mit einer ID versehen, beim Ändern der Variante das Script-Tag selektiren, entfernen und selbst noch mal neu mit den geänderten Parametern zusammen bauen und wieder inkludieren.
eigentlich geht es hier um fast jedes Tracking das Produkte trackt. Selbst euer Plugin Google Integration oder Piwik Integration ist ja davon betroffen.
Bei deaktivierten “Varainten per Ajax laden” wird die korrekte Ordernumber an Analytics übergeben, wenn aber aktiv dann die des Hauptartikels oder sollte
man einen Browserrefresh gehabt haben, die Ordernumber der zu dem Zeitpunkt aktiven Variante. Das Verhalten gibt in der Auswertung ein recht unschönes Chaos.
Im Detail wird bei einer Variante als Beispiel die Ordernumber SW123 als “View” getrackt. Im Warenkorb und Checkout wird aber die korrekte Ordernumber der Variante
“SW123.12” getrackt. So könnte eine getrackter Varianten-Artikel 0 Views haben aber 10 Verkäufe.
noch ein kurzer Nachtrag dazu. Auch beim Preis gibt es hier Probleme. Es wird der Preis des Hauptartikels übertragen und nicht der einer konfigurierten Variante.
wie bekomme ich denn die Plugins von Shopware im eigenen JavaScript Plugin nachinitalisiert, wenn ich mir quasi einen eigenen Variantenwechsel gebastelt habe?