Varianten- Auswahl funktioniert nicht

Ich nutze die OXID Version 4.7.8 Community Edition, Azure Theme und wollte einen Artikel mit zwei Varianten (Größe und Farbe) anlegen.
Das hat auch funktioniert und ich sehe bei den Artikel Details die zwei Drop Down Auswahlboxen.
Leider kann ich immer nur eine aktualisieren, danach wird bei weiteren Auswahl Änderungen keine Aktualisierung mehr vorgenommen.

Ich habe bei der Fehlersuche folgende Information gefunden:

http://www.creative-works.org/ueber-uns/blog/blog-post/2012/08/23/varianten-auswahl-funktioniert-nicht-mit-oxid-45-46.html

doch die dort beschriebene Fehlerbehebung funktioniert bei mir nicht.
Auch wenn ich die Blöcke für die Bewertungsfunktion entferne verhält sich die Variantenauswahl immer noch gleich.

Es wird auch kein Javascriptfehler o.ä. Im Browser angezeigt.

Ich habe einmal in der [B]oxarticlevariant.js[/B] zu Testzwecken direkt nach

$("ul.vardrop a").click(function() {…

ein alert eingefügt und die Funktion wird beim zweiten versuch eine Variante auszuwählen überhaupt nicht mehr angesprochen.

Hat vielleicht jemand eine Idee wo da der Fehler liegen könnte?

Gruß Christian W.

Hallo Christian,
kannst Du das im Demoshom reproduzieren?

Gruß

Hallo Marco,

leider kann ich den Shop gerade nicht online zeigen.
Ich muss dazu sagen ich habe ein eigenes Theme auf Basis des Azure Themes angefertigt.

CSS und Bilder wurden angepasst und einige Blöcke sind verschoben. Ich habe mal auf das standard Azure Theme gewechselt und dort funktioniert die Varianten Auswahl ganz normal. Ich muss also irgend etwas verändert haben was diesen Fehler verursacht.

Ich hatte gestern noch einmal alle page/details/ templates durch die vom Azure Theme zurückgesetzt, doch der Fehler bleibt weiterhin bestehen. Dann habe ich die Templates wieder in die von mir gewünschte weise zurückgesetzt und nun macht er folgendes… ich kann nun jede Variante beliebig oft ändern und das Script wird auch jedes mal angesprochen doch er übernimmt die Änderungen nicht mehr. Die Felder bleiben rot so als ob nichts ausgewählt wird.

Das bedeutet der Fehler verhält sich nun anders als zuvor, obwohl alles wieder in dem Zustand ist wo der Fehler zum ersten mal aufgetreten ist. Merkwürdig.

Ich verstehe aber das der Fehler aus der Ferne kaum aufzuspüren ist ohne den Shop zu sehen. Ich werde diesen Fehler erst mal ignorieren und den Rest des Shops fertig stellen. Wenn er dann online ist und der Fehler noch weiterhin besteht werde ich ihn mal hier verlinken. Möglicherweise kann dann jemand mehr dazu sagen.

Vielen Dank vorerst.

Gruß Christian

Hallo zusammen.

Nun melde ich mich nochmal zurück. Der Shop wird wohl Ende nächster Woche online gehen.
Ich erhalte mittlerweile auch eine Fehlermeldung wenn ich eine Variante auswähle. Sie lautet:

Fehler: TypeError: contentTarget is undefined
Quelldatei: http://localhost/oshop/out/mytemplate/src/js/widgets/oxarticlevariant.js?1383220832
Zeile: 111

Folgende Zeile ist betroffen:

// calls some scripts before the ajax starts
            this._preAjaxCaller();

            oxAjax.ajax(
                activator,
                {//targetEl, onSuccess, onError, additionalData
                    'targetEl'  : highlightTargets,
                    'iconPosEl' : $("#variants .dropDown"),
                    'additionalData' : {'renderPartial' : renderPart},
                    'onSuccess' : function(r) {
                        [B]contentTarget.innerHTML = r['content'];[/B]
                        oxAjax.evalScripts(contentTarget);
                    }
                }
            );
            return false;
        },

Hat jemand eine Idee was da passiert sein könnte? Wo findet die definition von contentTarget statt?
Danke für die Hilfe.

LG Christian

ContentTarget wird z.B. hier definiert:

return self.reloadProductPartially($("form.js-oxProductForm"),'productInfo',$("#productinfo"),$("#productinfo")[0]);

das ist also $("#productinfo")[0] oder $("#detailsMain")[0].

Hallo Frank,
danke für die Info. Was diesen Fehler betrifft so habe ich ihn gefunden.

Ich hatte die fullproduktinfo.tpl in meinem Template angepasst aber den <div id=“detailsMain”>
weggelassen auf dem sich logischerweise [B]$("#productinfo")[0][/B] in dem Funktionsaufruf bezogen hat. Jetzt funktioniert zumindest die erste Variantenauswahl wieder. Doch die zweite Variante wird immer noch nicht übernommen.

Der Shop ist jetzt vorläufig in einem Testorder auf dem Server hochgeladen. Der einzige Artikel mit zwei Varianten findet man hier: http://golf36.com/owd_shop/Accessoires/Handschuhe.html

Ihr könnt es selbst mal testen. Eine Variante kann ich auswählen und bei der zweiten lädt die Seite zwar neu, jedoch wird das Produkt nicht weiter aktualisiert. Ich vermute ich habe etwas wichtiges gelöscht o.ä. wobei ich aber keine Fehlermeldung oder ähnliches erhalte. Beiße mir daran gerade die Zähne dran aus.

Was mir aufgefallen ist, nach der ersten Variantenauswahl und dem neuladen der Seite wird die Klasse “[I]magnZoom[/I]” aus dem Produktbildlink, welche ich im Template definiert habe, wieder gelöscht. Dadurch wird auch das Bild wieder in der falschen Größe angezeigt. Was veranlasst die Klassennamen Änderung? Möglicherweise wäre das auch die Lösung für die Fehlfunktion.

Ich bin für jeden Hinweis dankbar. Bisher finde ich das OXID Shopsystem sehr benutzerfreundlich und relativ gut anzupassen. Leider fehlt es mir noch ein wenig an Erfahrung mit diesem Shopsystem.

LG Christian

Dein Shop liefert einen internal server error beim laden von productInfo via Ajax: http://golf36.com/owd_shop/Accessoires/Handschuhe.html?cl=details&renderPartial=productInfo
bei detailsMain nicht: http://golf36.com/owd_shop/Accessoires/Handschuhe.html?cl=details&renderPartial=detailsMain
vergleiche mal die Templates.

Super! Vielen Dank für den wichtigen Hinweis.

Bei: http://golf36.com/owd_shop/Accessoires/Handschuhe.html?cl=details&renderPartial=productInfo

entsteht der Error an folgender Stelle in der [B]productmain.tpl[/B]

[{oxhasrights ident="TOBASKET"}]
    <form class="js-oxProductForm" action="[{$oViewConf->getSelfActionLink()}]" method="post">
        <div>
            [{$oViewConf->getHiddenSid()}]
            [{$oViewConf->getNavFormParams()}]
            <input type="hidden" name="cl" value="[{$oViewConf->getActiveClassName()}]">
            <input type="hidden" name="aid" value="[{$oDetailsProduct->oxarticles__oxid->value}]">
            <input type="hidden" name="anid" value="[{$oDetailsProduct->oxarticles__oxnid->value}]">
            <input type="hidden" name="parentid" value="[{if !$oDetailsProduct->oxarticles__oxparentid->value}][{$oDetailsProduct->oxarticles__oxid->value}][{else}][{$oDetailsProduct->oxarticles__oxparentid->value}][{/if}]">
            <input type="hidden" name="panid" value="">
           [B] [{if !$oDetailsProduct->isNotBuyable()}][/B]
                <input type="hidden" name="fnc" value="tobasket">
            [{/if}]
        </div>
[{/oxhasrights}]

ich habe es einmal auskommentiert:

 [{*if !$oDetailsProduct->isNotBuyable()*}]
                <input type="hidden" name="fnc" value="tobasket">
  [{*/if*}]

und die Seite bricht nun nach der letzten Varianten Selectbox erneut an dieser Stelle ab

[{if $blHasActiveSelections}]

Bedeutet es, dass die objekte [B]$oDetailsProduct[/B] etc. im ajax template aus irgend einen Grund nicht verfügbar sind? Ich verstehe den Fehler momentan überhaupt nicht. Ich denke der liegt irgendwo in meiner [B]productmain.tpl[/B]

Da werde ich wohl noch eine weile suchen müssen. Danke aber trotzdem schon mal vorab für die Hilfe. Hat mich schon mal einen Schritt weiter gebracht. :slight_smile:

Hallo zusammen,

ich habe den Fehler gefunden. Die [I][B]page/details/ajax/fullproductinfo.tpl[/B][/I] war identisch mit meiner [B][I]page/details/inc/fullproductinfo.tpl[/I][/B]. Ich hatte das ajax Template wieder auf dem Stand vom original Azure Template übernommen und jetzt funktioniert es wieder. Ich hatte es wohl unbeabsichtigt überschrieben.

Nochmal vielen Dank für die freundliche Unterstützung.

LG Christian