Gelöst Variationen zurücksetzen

MaxWe

Sehr aktives Mitglied
6. August 2018
311
42
Hamburg
Moin Moin Forengemeinde,

auch heute gibt es mal wieder eine neue Frage von mir.. :)

Ich möchte dem Kunden bei der Auswahl der Varkombi im Vaterartikel die Möglichkeit geben seine gewählten Felder zurückzusetzen.
Das heißt konkret: Ich habe 4 Merkmale (bzw. bei uns Funktionsattribute, was aber ja erstmal keinen Unterschied macht?) anhand dessen der Kunde seinen passenden Artikel auswählt.
Hierbei schränkt der Kunde von Oben nach Unten ein: Produktart (Textil,Accessior,Hüllen) => Produkt (T-Shirt,Hoodie usw. in Textil, Kissen usw. in Accessior, usw.) => Farbe => Größe

Mit jeder Auswahl eines Merkmals/Attributs wird die gesamte Auswahl eingeschränkt, das soll ja auch so sein :) Allerdings gibt es zum Beispiel Probleme, wenn der Kunde eine Farbe ausgewählt hat. Dadurch werden die Produkte insofern eingeschränkt, dass nur diese angezeigt werden, die es auch in dieser Farbe gibt, möchte der Kunde nun wieder mehr Produkte oder alle sehen, findet er hierzu aktuell keine Möglichkeit, außer sich durch alle Farben zu klicken oder die Seite neu zu laden.

Ich könnte mir vorstellen, dass es hierzu schon einen Workaround gibt, oder vielleicht sogar eine "versteckte" Einstellung, die ich noch nicht entdeckt habe? Die Forensuche hat mir bisher leider nicht geholfen..

Aktuell bin ich soweit, dass ich einen Button habe, der die gesamte Variationauswahl zurücksetzt. Hierbei habe ich allerdings noch das Problem, dass der Radiobutton, der zuletzt betätigt war, direkt nach dem Reset nicht mehr geht, ich muss erst eine andere Möglichkeit wählen und danach funktionieren wieder alle...
Ich habe hierzu die jtl.article.js und die variation.tpl angepasst (Im eigenen Template):
jtl.article.js (Code hinzugefügt)
resetButtonResetAll: function(wrapper){
var that = this;
var wrapper = '#result-wrapper';
$('.variations').find('label.resetter').on('click',function(){
console. log("click!");
var resetElements = $(wrapper).find('label[data-key='+$(this).attr('data-key')+']');
console.log(resetElements);
$.each(resetElements,function(index,value){
$(value).removeClass('active');
$(value).children('input').prop('checked', false);
that.variationSwitch($(value).children('input'), false, wrapper);
that.variationResetAll(wrapper);
});
});
},


variation.tpl in Evo-Template

{foreach name=Variationswerte from=$Variation->Werte key=y item=Variationswert}
{if $smarty.foreach.Variationswerte.first}
{* Eigener Block: label-resetButton *}
{block name="label-resetButton"}{/block}
{/if}


variation.tpl in eigenem Template
{* Eigener Block in variations.tpl um einen Resetbutton für jede Gruppe einzufügen *}
{block name="label-resetButton"}
<label class='variation block btn btn-default resetter' data-type='swatch' data-original='Reset' data-key='{$Variationswert->kEigenschaft}'' data-title='Reset'>
<input type='button' class='control-hidden' name='eigenschaftwert[{$Variationswert->kEigenschaft}]'>
<span class='label-variation' title='Reset'>Reset</span>
</label>
{/block}



Beste Grüße,
Max
 

Mario Beer

Aktives Mitglied
6. Dezember 2015
58
3
Hallo Max,

mir ist es gelungen mit Deiner Anleitung den "Zurücksetzen-Button" unter den Variationen anzuzeigen. Dieser ist bei mir jedoch ohne Funktion, sicher sind in der jtl.article.js und in der variation.tpl spezifischer Änderungen vorzunehmen als diese Werte einfach zu kopieren. Gibt es diesbezüglich noch einen Denkanstoß für mich oder einen anderen Ansatz.
PS. Ich las die nicht wählbaren Swatches der Variationen von Anfang an verbergen.

MfG
Mario
 

Mirko.Schmidt User deaktiviert

Guest
Da es sich hier um Varkombis handelt, könnte auch einfach anhand von kVaterArtikel der Vaterartikel mit der get_product_list Funktion ausgelesen werden und dann ein a href mit der URL des Vaterartikels gesetzt werden.
 

MaxWe

Sehr aktives Mitglied
6. August 2018
311
42
Hamburg
Moin Mario,

bitte schau dir mal die Idee vom Mirko an, diese scheint mir wirklich simpel und gut :) Mir ging es zu der Zeit darum, nur einzelne Auswählgruppen wieder zu resetten, das ist mir so leider nicht gelunden :/
Um die Variation komplett zu Resetten, dürfte Mirkos Tipp super funktionieren. Quasi ein Seiten-Refresh.

Grüße
 

Mario Beer

Aktives Mitglied
6. Dezember 2015
58
3
Danke an Euch,

nun bin ich aber mit meinen rutimentären Kentnissen von JS und CSS auch schon am Ende und frage Euch was wohin gehört? Könnt Ihr mich dahingehend unterstützen?
Bedeutet dies, das die Seite sich neu aufbaut oder nur die Auswahl refresht?

Mario
 

FPrüfer

Moderator
Mitarbeiter
19. Februar 2016
1.878
518
Halle
Für einen einfachen "Zurücksetzen"-Link durch Aufruf des Vater-Artikels wäre folgendes möglich:
Im Child-Template wird im Verzeichnis productdetails die Datei details.tpl angelegt.
PHP:
{extends file="{$parent_template_path}/productdetails/details.tpl"}

{block name="productdetails-info-variation" append}
    {if isset($Artikel->Variationen) && $Artikel->Variationen|@count > 0 && !$showMatrix && !$Artikel->isSimpleVariation && !empty($Artikel->cVaterURL)}
        <a href="{$Artikel->cVaterURL}" >reset</a>
    {/if}
{/block}
Unter allen Vakombi-Kindern wird jetzt ein Link "reset" angezeigt, der auf den Vaterartikel verlinkt und damit alle Variationen zurücksetzt.
Das funktioniert allerdings nur für Varkombis und nicht für einfache Variationen.
 

Mario Beer

Aktives Mitglied
6. Dezember 2015
58
3
Hab gerade den Codeschnipsel in die details.tpl gelegt, das scheint beim EasyTemplate360 aber nicht zu funktionieren. Dort wird die komplette Variantenauswahl ausgeblendet.
Ich bin ratlos:rolleyes:

Mario
 

FPrüfer

Moderator
Mitarbeiter
19. Februar 2016
1.878
518
Halle
Hallo, mein Beispiel gilt fürs Evo-Template der aktuellen Version (4.06). Für andere Templates / Versionen muss das ggfs. angepasst oder gänzlich anders gelöst werden.
Da musst du mal ins Original von deinem Template schauen und dir eine passende Stelle für die Erweiterung raussuchen.
 

MaxWe

Sehr aktives Mitglied
6. August 2018
311
42
Hamburg
Moin Maria,

sorry bin grade ziemlich im Stress mit dem eigenen Shop, da steht die Umstellung von Shopware aus kurz bevor..

In welche details.tpl hast du den Codeschnipsel denn eingefügt? Oder hast du eine neue erstellt?
Ich nehme an, dass im verwendeten EasyTemplate360 bereits eine details.tpl im productdetails Ordner lag?
Wenn du diese ergänzt hast, dann brauchst du nur den Codeschnipsel

PHP:
{block name="productdetails-info-variation" append}
    {if isset($Artikel->Variationen) && $Artikel->Variationen|@count > 0 && !$showMatrix && !$Artikel->isSimpleVariation && !empty($Artikel->cVaterURL)}
        <a href="{$Artikel->cVaterURL}" >reset</a>
    {/if}
{/block}

Ohne das extends-file. Daran könnte es schon eventuell liegen.
 

Ähnliche Themen