Ich habe ein Listing mit allen Varianten auf der Artikel Detailseite eingefügt und würde gerne bei einem Klick auf eine Variante im Listing das AJAX Reload Event anstoßen damit sich der obere Bereich mit den Variantenoptionen neu lädt. Variantenkonfiguration ist auf Picture gestellt und Asynchrones Varianten laden ist aktiviert.
Hab schon erfolgreich ein Event registriert und fange mit Event Delegation alle Klicks auf meine Links im Listing ab und setze die entsprechenden Radio Inputs (die sich ja hinter den Labels der Variantenoptionen befinden) auf checked. Funktioniert soweit auch.
Eine funktionierende aber nicht praktikable Lösung ist das abschicken des .configurator–form Formulars per submit() call was aber so nicht gewünscht ist.
Ich würde gerne programmatisch das Neuladen der Variante per AJAX anstoßen genau so als wie man mit der Maus auf eine Variantenoption klickt und sich die Galerie + die Variantenoptionen aktualisieren.
Shopware Plugin ist das swAjaxVariant in /themes/Frontend/Responsive/frontend/_public/src/js/ jquery.ajax-variant.js. Leider hab ich bei Dr. Goolge nichts gefunden wie man ein Plugin aufruft, nur wie man sich auf Events hängen (mach ich eh schon für onRequestData ) und wie man Plugins erweitern kann.
Vielen Dank schon mal für eure Hilfe.
Hier mein JS:
;(function ($, document) {
$(function () {
function registerVariantLoadFromVariantList() {
if ($("#variant-list")) {
$("#variant-list").delegate("a", "click", function (event) {
event.preventDefault();
var configValues = $(this).data("configvalues").split(";");
// first: uncheck and enable all variant options
$(".variant--option input").prop("disabled", false);
$(".variant--option input").prop("checked", false);
// enable selected variant options
for (var i = 1; i < configValues.length; i++) {
$(".variant--option input[id='" + configValues[i] + "']").prop("checked", true);
}
$("body").setLoading(true);
// statt der folgenden Zeile würde ich gerne den AJAX-Request zum Variantenoptinen neu laden anstoßen
//$(".configurator--form").submit();
});
}
}
registerVariantLoadFromVariantList();
$.subscribe('plugin/swAjaxVariant/onRequestData', function() {
registerVariantLoadFromVariantList();
});
});
})(jQuery, document);