Produktdetailübersicht Änderungen

Fragen und Antworten zu Darstellungsvorgaben
Antworten
mhonatias
Beiträge: 17
Registriert: 2. Nov 2018, 12:12

Produktdetailübersicht Änderungen

Beitrag von mhonatias »

Hi,
ich hätte 2 Fragen zu der Produktdetailansicht.
1. Kann ich den "in den Warenkorb legen" Button, also den quantityInput der im Template productIncludes_price ausgegeben wird auch im productDetails Template ausgeben? Ich würde ihn gerne unter dem Variantenselektor haben.
2. Kann ich den "in den Warenkorb legen" Button auch anzeigen lassen, wenn noch keine variante ausgewählt ist. Ich würde ihn gerne disablen und wieder enablen, wenn eine Variante ausgewählt wird. Jedoch wird er bei Produkten mit Variante nur angezeigt, wenn eine Variante ausgewählt ist.

Grüße
Benutzeravatar
supportteam2
Beiträge: 427
Registriert: 4. Mär 2015, 14:05

Re: Produktdetailübersicht Änderungen

Beitrag von supportteam2 »

Hallo,

prinzipiell können Sie alles, was im Template "productIncludes_price" enthalten ist (und das gilt natürlich auch für die anderen includes) auch direkt im Template "productDetails" einbauen. Das gibt Ihnen dann die Flexibilität, Dinge genau dort unterzubringen, wo Sie möchten. Das sollten Sie aber nur machen, wenn Sie technisch so fit sind, dass Sie genau verstehen, was in "productIncludes_price" passiert. Wenn Sie eine solche Anpassung machen und später mal Support benötigen, ist es ganz wichtig, auf die von Ihnen gemachte Änderung hinzuweisen und im Idealfall auch genau zu erklären, was Sie wie angepasst haben.

Zu Ihrer zweiten Frage: Wenn Sie den "In den Warenkorb"-Button in einer Situation anzeigen möchten, in der er eigentlich nicht genutzt werden darf (weil also entweder noch keine Variante gewählt oder eine Konfiguration noch nicht abgeschlossen ist), dann haben Sie das Problem, dass der Button schon fertig gerendert in "$obj_tmp_productOrVariant->_quantityInput" vorliegt. Um ihn zu "disablen" müssten sie den in dieser Variablen enthaltenen HTML-Code z. B. mittels preg_replace o. Ä. modifizieren. Das kann man durchaus machen, es setzt aber auch hier wieder fortgeschrittene Kenntnisse voraus.
mhonatias
Beiträge: 17
Registriert: 2. Nov 2018, 12:12

Re: Produktdetailübersicht Änderungen

Beitrag von mhonatias »

Danke für die Antwort.
Der "In den Warenkorb"-Button wird bei einem Produkt OHNE Varianten korrekt angezeigt, auch wenn ich ihn in das "ProductDetails"-template lege.
Nur bei Produkten mit Variante funktioniert das nicht. Zum einen weiß ich nicht was ich noch ändern muss, damit der Button auch angezeigt wird, wenn keine Variante gewählt ist.
Ich habe die Ausgabe

Code: Alles auswählen

<?php echo str_replace('type="text"', 'type="number" min="1"', $obj_tmp_productOrVariant->_quantityInput); 	?>
an den Anfang von productIncludes_price_01 gelegt, um sicher zu stellen, dass es sich ein keinem "if" befindet. Aber wenn auch so, wird der Button nicht gezeigt, wenn keine Variante gewählt ist.
Wenn man eine Variante wählt, ist der Button korrekt verschoben.
Zudem wird der Button bei Produkten mit Varianten ebenfalls nicht angezeigt, wenn ich ihn in das "ProductDetails"-template lege.
Benutzeravatar
supportteam2
Beiträge: 427
Registriert: 4. Mär 2015, 14:05

Re: Produktdetailübersicht Änderungen

Beitrag von supportteam2 »

Wenn der "In den Warenkorb"-Button nicht ausgegeben werden darf, weil z.B. noch keine Variante gewählt ist, wird der Button tatsächlich gar nicht erst gerendert und in der Variablen "$obj_tmp_productOrVariant->_quantityInput" zur Verfügung gestellt. Die Variable ist stattdessen leer. Die von mir genannte Idee, wie Sie die Sache lösen können, habe ich offensichtlich zu vorschnell und optimistisch geäußert ;-)

Dann müssen Sie wohl so vorgehen, dass Sie den HTML-Code, der in $obj_tmp_productOrVariant->_quantityInput enthalten wäre, wenn das Hinzufügen zum Warenkorb erlaubt wäre, "hart codiert" ausgeben, wenn das Hinzufügen zum Warenkorb nicht erlaubt ist.

Sie lassen sich also den Quelltext der Seite mit dem dargestellten Button (also nach Variantenauswahl) anzeigen, kopieren dort den Code für den Button raus, und geben ihn (mit der entsprechenden Anpassung, um den Button zu deaktivieren) aus, wenn das Hinzufügen zum Warenkorb nicht erlaubt ist.

Hinweis: Nutzen Sie den DOM-Inspektor Ihres Browsers und nicht die normale Ansicht des Quellcodes, da die Ansicht nach der Variantenauswahl per Ajax geladen wird und Sie deshalb im ursprünglichen Quelltext den Button noch nicht finden würden.
mhonatias
Beiträge: 17
Registriert: 2. Nov 2018, 12:12

Re: Produktdetailübersicht Änderungen

Beitrag von mhonatias »

Also, reicht es, wenn ich an den korrekten Stellen einfach die ProduktID einsetze. So kann ich die Form ja selber rendern in meiner Hook-Klasse. Muss ich außer der ProduktId noch etwas anpassen?
Da wären einmal der RequestToken. Wie generiere ich den ?
Und wenn ich auf den Warenkorb klicke wird Ajax ausgeführt. Muss ich da noch auf etwas achten oder reicht da die korrekte ID des Produktes in der Form?

Danke schon mal für die Hilfe
vstuber
Beiträge: 26
Registriert: 31. Okt 2012, 11:55

Re: Produktdetailübersicht Änderungen

Beitrag von vstuber »

Ich bin mir nicht sicher, ob ich Ihre letzte Frage komplett richtig verstehe. Am besten wird es deshalb sein, wenn Sie bei unserem techSupport anrufen und das kurz mit mir oder einem Kollegen telefonisch besprechen.
mhonatias
Beiträge: 17
Registriert: 2. Nov 2018, 12:12

Re: Produktdetailübersicht Änderungen

Beitrag von mhonatias »

Das ist der Teil aus meiner "ParseFrontendTemplate"-Hook-Klasse.

Code: Alles auswählen


              $ID=$objTemplate->objProduct->ls_productVariantID;
            
            $buyButton = '<div id="variable" class="quantityInput lsfwk-alignCenter lsfwk-mgt-l">
            <div class="message--service-is-in-cart" style="display:none;">Ihre Leistung liegt im Warenkorb.</div>
            <form action="'.ampersand(\Environment::get('request')).'" method="post" enctype="application/x-www-form-urlencoded">
            <div>
            <input type="hidden" name="REQUEST_TOKEN" value="{{request_token}}">
            <input type="hidden" name="FORM_SUBMIT" value="product_form_'.$ID.'">
            <input type="hidden" name="productVariantID" value="'.$ID.'">
            <div class="inputQuantity">
            <div class="quantityWrapper lsfwk-sameLine"><div class="flexWidget flexWidget_default">
            
            <label for="quantity_'.$ID.'">Menge</label>
            <input name="quantity_'.$ID.'" id="quantity_'.$ID.'" type="number" min="1" value="1">
            
            </div></div>
            <button type="submit" class="submit lsfwk-submit lsfwk-sameLine"><i class="lsfwk-txs-l-all lsfwk-txc-inverted-all lsfwk-fi lsfwk-fi-cart lsfwk-mgr-10"></i>In den Warenkorb</button>
            </div>
            </div>
            </form>
            </div>';
            $objTemplate->objProduct->buyButton=$buyButton;
Damit habe ich den Warenkorb-Button "nachgebaut" und kann ihn im Produktdetail-template ausgeben. Ich habe im Grunde nur das HTML-Skelett genommen und die ProduktID eingesetzt, wo sie beim "Original" zu sehen sind. Allerdings scheint das nicht zu reichen, da nichts passiert, wenn ich den Button klicke.
Das Formular wird korrekt abgeschickt, aber es wird nichts in den Warenkorb gelegt. Der Ajax call, der normalerweise immer mit dem Warenkorb-Klick kommt, ist nicht da (Es sieht so aus, als ob ein Eventlistener, der normalerweise auf dem Warenkorb-Button gelegt wird fehlt).
Auch habe ich das Problem, bei Produkten mit Varianten, dass der Warenkorb-Button von mir nicht neu gerendert wird, damit sich die ProduktId ändern kann wenn eine neue Variante ausgewählt wird. Dieser Teil wird ja von Merconis immer "neu" geladen.
Benutzeravatar
supportteam2
Beiträge: 427
Registriert: 4. Mär 2015, 14:05

Re: Produktdetailübersicht Änderungen

Beitrag von supportteam2 »

Ich schließe mich dem Kollegen vstuber an und empfehle einen Anruf bei unserem techSupport. Möglicherweise geht die ganze Sache im Moment in die falsche Richtung.

Nach meinem Verständnis wollten Sie zunächst einfach nur den "In den Warenkorb"-Button selbst dann ausgeben, wenn er von Merconis eigentlich nicht ausgegeben wird, weil eben keine Variante gewählt ist und das Produkt somit ohnehin nicht in den Warenkorb gelegt werden kann. Als Grund nehme ich an, dass Sie es einfach schöner finden, wenn der Button immer sichtbar ist, aber halt situationsabhängig deaktiviert.

Die Idee war es dann, in den Situationen, in denen Merconis von sich aus keinen Button ausgibt, einen Button manuell zu erstellen und ihn zu deaktivieren. Es geht damit also nur darum, in diesem Fall einen Fake-Button auszugeben, der aussieht, wie der "In den Warenkorb"-Button, aber natürlich keine Funktion hat. Immer dann, wenn Merconis den Button von sich aus ausgibt, weil das Produkt in den Warenkorb gelegt werden kann, sollte Ihr Fake-Button natürlich nicht zum Einsatz kommen sondern der Button von Merconis.

In Ihrem letzten Beitrag beschreiben Sie aber nun einen Ansatz, mit dem Sie den Button von Merconis komplett durch einen Nachbau ersetzen und zwar selbst dann, wenn er nicht nur als deaktivierter Fake-Button zu sehen sein soll, sondern auch, wenn er eine Funktion haben muss. Das ist keine gute Idee. Außerdem machen Sie das nicht im Template sondern mittels eines Hooks, was auch nicht der richtige Ansatz zu sein scheint.

Diese Sache ist zu komplex, um sie hier im Forum auszudiskutieren, zumal wir im Rahmen des Foren-Supports auch keine voll ausgearbeiteten Lösungen anbieten können. Wir können Sie hier immer nur in die aus unserer Sicht richtige Richtung leiten, aber in diesem Fall ist das nicht ausreichend.
mhonatias
Beiträge: 17
Registriert: 2. Nov 2018, 12:12

Re: Produktdetailübersicht Änderungen

Beitrag von mhonatias »

Alles klar
Antworten

Zurück zu „Darstellungsvorgaben / Display settings“