Neu Variante sofort augewählt

ich123

Aktives Mitglied
13. Januar 2009
7
0
Hallo,

wie kann ich einstellen wenn ein Atributte hat nur eine Variante das es sofort ausgewählt wird?
zB ein Artikel hat

Variante 1
- Farbe: Blau
Variante 2:
-Größen: 36,38,40

das die Farbe Blau sofort ausgwählt wird beim Artikel aufruf (weil der Artikel gibt es nur in blau)

Danke.
 

martinwolf

Offizieller Servicepartner
SPBanner
6. September 2012
3.385
262
Kann man nicht einstellen, da nach der Auswahl immer eine Abhängigkeitsprüfung unter den Variationen erfolgt. Nur so kann gewährleistet werden, dass Kombinationen gewählt wurden die auch tatsächlich vorhanden/verfügbar sind.
Hier bliebe nur ein intensiver Eingriff ins Template.
 

ich123

Aktives Mitglied
13. Januar 2009
7
0
Danke für die Rückantwort..
Das habe ich schon gedacht..
Aber es muss doch einfache lösung geben, einfach eine simple if abfrage in der richtige template eingeben bzw. in der function php
sowas wie: ist Varinte =1 dann gleich auswählen...
Da ich mich mit php kaum auskenne kann jemand ein Tipp geben.
Vielen lieben Dank.
 

css-umsetzung

Offizieller Servicepartner
SPBanner
6. Juli 2011
6.639
1.583
Berlin
Ich hatte dafür mal ein JavaScript erstellt das dies vorauswählen kann.
Das sollte aber auch nur bei Artikeln angewendet werden die so sind wie dein Beispiel.
 

MaxWe

Sehr aktives Mitglied
6. August 2018
311
42
Hamburg
Ich hätte hier eine Lösung mit Eingriff in das Template. Allerdings müsstest du dafür im besten Falle etwas Kenntnisse haben. Eine einfachere Lösung kenne ich leider auch nicht.
Wir arbeiten mit einem Funktionsattribut beim Vaterartikel. Hier genannt "preview_url". Hier kommt der letzte Part der URI rein. Beispiel URI: shop.de/T-Shirt-Blau-S , in das Attribut kommt demnach "T-Shirt-Blau-S".

Unser Basistemplate ist das "EVO".
Im besten Falle hast du bereits ein eigenes Template am Laufen.
Du brauchst die Datei templates/'Dein Template'/productlist/item_box.tpl
Hast du bereits ein eigenes Template am Laufen, aber diese Datei noch nicht vorhanden: Datei anlegen und folgenden Code einfügen:
Code:
{* template to display products in boxes and product-lists *}
{* Erweiterung des Evo-Templates /productlist/item_box.tpl *}
{extends file="../../Evo/productlist/item_box.tpl"}

Der für das FunktionsAttribut benötigte Block ist folgender:
Code:
{block name="productlist-image"}
{* Hier wird geprüft ob das FunktionsAttribut "preview_url" existiert und ob es nicht leer ist. Wenn ja, dann setzte den FunktionsAttributwert als Link. *}
    {if isset($Artikel->FunktionsAttribute.preview_url) && $Artikel->FunktionsAttribute.preview_url != ""}
        <a class="image-wrapper" href="{$Artikel->FunktionsAttribute.preview_url}">
    {else}
        <a class="image-wrapper" href="{$Artikel->cURL}">
    {/if}

        {if isset($Artikel->Bilder[0]->cAltAttribut)}
            {assign var="alt" value=$Artikel->Bilder[0]->cAltAttribut|strip_tags|truncate:60|escape:"html"}
        {else}
            {assign var="alt" value=$Artikel->cName}
        {/if}

        {include file="snippets/image.tpl" src=$Artikel->Bilder[0]->cPfadNormal alt=$alt}

        {if isset($Artikel->oSuchspecialBild)}
            <img class="overlay-img hidden-xs" src="{$Artikel->oSuchspecialBild->cPfadKlein}"
            alt="{if isset($Artikel->oSuchspecialBild->cSuchspecial)}{$Artikel->oSuchspecialBild->cSuchspecial}{else}{$Artikel->cName}{/if}" />
        {/if}

        {if $Einstellungen.template.productlist.quickview_productlist === 'Y' && !$Artikel->bHasKonfig}
            <span class="quickview badge hidden-xs" data-src="{$Artikel->cURL}" data-target="buy_form_{$Artikel->kArtikel}" title="{$Artikel->cName}">{lang key="downloadPreview" section="productDownloads"}</span>
        {/if}
    </a>
{/block}

Hast du den Block bereits in einer vorhandenen Datei liegen, musst du lediglich " <a class="image-wrapper" href="{$Artikel->cURL}">"
durch
Code:
{* Hier wird geprüft ob das FunktionsAttribut "preview_url" existiert und ob es nicht leer ist. Wenn ja, dann setzte den FunktionsAttributwert als Link. *}
    {if isset($Artikel->FunktionsAttribute.preview_url) && $Artikel->FunktionsAttribute.preview_url != ""}
        <a class="image-wrapper" href="{$Artikel->FunktionsAttribute.preview_url}">
    {else}
        <a class="image-wrapper" href="{$Artikel->cURL}">
    {/if}
ersetzen.

Das Verwenden dieses Beitrags geschieht auf eigene Gefahr und wie gesagt, du solltest wenigstens etwas Kenntnisse von dem System haben.

Beste Grüße,
Max
 

ich123

Aktives Mitglied
13. Januar 2009
7
0
Hi MaxWe,
danke für so eine ausführliche Beschreibung..
Habe ich eingefügt leider ohne Erfolg

Wir benutze auch EVO Template.
Hier der obere Code item_box.tpl

Code:
{* template to display products in boxes and product-lists *}

<div class="product-cell text-center{if isset($class)} {$class}{/if}">
  {block name="productlist-image"}
{* Hier wird geprüft ob das FunktionsAttribut "preview_url" existiert und ob es nicht leer ist. Wenn ja, dann setzte den FunktionsAttributwert als Link. *}
    {if isset($Artikel->FunktionsAttribute.preview_url) && $Artikel->FunktionsAttribute.preview_url != ""}
        <a class="image-wrapper" href="{$Artikel->FunktionsAttribute.preview_url}">
    {else}
        {if isset($Artikel->FunktionsAttribute.preview_url) && $Artikel->FunktionsAttribute.preview_url != ""}
        <a class="image-wrapper" href="{$Artikel->FunktionsAttribute.preview_url}">
    {else}
        <a class="image-wrapper" href="{$Artikel->cURL}">
    {/if}
    {/if}

        {if isset($Artikel->Bilder[0]->cAltAttribut)}
            {assign var="alt" value=$Artikel->Bilder[0]->cAltAttribut|strip_tags|truncate:60|escape:"html"}
        {else}
            {assign var="alt" value=$Artikel->cName}
        {/if}

        {include file="snippets/image.tpl" src=$Artikel->Bilder[0]->cPfadNormal alt=$alt}

        {if isset($Artikel->oSuchspecialBild)}
            <img class="overlay-img hidden-xs" src="{$Artikel->oSuchspecialBild->cPfadKlein}"
            alt="{if isset($Artikel->oSuchspecialBild->cSuchspecial)}{$Artikel->oSuchspecialBild->cSuchspecial}{else}{$Artikel->cName}{/if}" />
        {/if}

        {if $Einstellungen.template.productlist.quickview_productlist === 'Y' && !$Artikel->bHasKonfig}
            <span class="quickview badge hidden-xs" data-src="{$Artikel->cURL}" data-target="buy_form_{$Artikel->kArtikel}" title="{$Artikel->cName}">{lang key="downloadPreview" section="productDownloads"}</span>
        {/if}
    </a>
{/block}



Idee warum hat das nicht funktioniert?

Das wäre cool.

Bzw. das alle Attribute ausgewählt werden (immer das erste vorhandene)

Danke für die Unterstützung

LG
 

MaxWe

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

zu erst wäre es wichtig zu wissen, ob du bereits ein eigenes Template angelegt hast? Änderungen direkt im EVO Template sind nicht empfehlenswert. Würde zwar funktionieren, ist aber ganz schlecht bei Updates.

Code:
{if isset($Artikel->FunktionsAttribute.preview_url) && $Artikel->FunktionsAttribute.preview_url != ""}
        <a class="image-wrapper" href="{$Artikel->FunktionsAttribute.preview_url}">
    {else}
        {if isset($Artikel->FunktionsAttribute.preview_url) && $Artikel->FunktionsAttribute.preview_url != ""}
        <a class="image-wrapper" href="{$Artikel->FunktionsAttribute.preview_url}">
    {else}
        <a class="image-wrapper" href="{$Artikel->cURL}">
    {/if}
    {/if}
Du hast meinen Codeschnipsel gedoppelt und neu verschachtelt?

Einmal reicht lediglich und sollte dann auch ohne Probleme funktionieren
Code:
{if isset($Artikel->FunktionsAttribute.preview_url) && $Artikel->FunktionsAttribute.preview_url != ""}
        <a class="image-wrapper" href="{$Artikel->FunktionsAttribute.preview_url}">
    {else}
        <a class="image-wrapper" href="{$Artikel->cURL}">
    {/if}

Hast du auch das Funktionsattribut in der Wawi angelegt? Dieses muss sich dann natürlich auch mit dem Namen im Code decken "preview_url".
Dieses Funktionsattribut muss dann dem Vater zugewiesen werden mit dem letzten Teil der URI zur Variation. (bsp. "T-Shirt-Blau-S")

Moin!

Ich nutze für genau sowas das Plugin "Variation Vorauswahl" von
visitmedia, das versaut mir nicht den Code und tut was es soll.

Ahoi!
Grundsätzlich nicht schlecht, aber hier kann von der Beschreibung her keine gezielte Variation ausgewählt werden, sondern es wird immer die erste verfügbare genutzt.

Beste Grüße und einen guten Start in die Woche,
Max
 

ich123

Aktives Mitglied
13. Januar 2009
7
0
Moin,
doppelten code habe ich entfernt, nur leider funktioniert trotzdem nicht :(..
Habe ich noch was gefunden mit js

Code:
$(document).ready(function() {
  $('.variation.required option:eq("1")').attr('selected', true);
});

aus dem Beitrag: https://forum.jtl-software.de/threads/variationen-vorauswahl-im-template-einstellen.69433/

Leider ist es für 3.x Version und so bei 4.x nicht funktioniert kann jmd den Code anpassen ? :)

--

120 € für den Plugin finde ich etwas zu viel...

Danke.
 

MaxWe

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

der Code wird nicht angepasst werden müssen. Im Thread weiter unten wird der von dir hier geschriebene Codeschnipsel allerdings korrigiert. Zusätzlich gibt es da wieder andere Sachen zu beachten. Mir scheint du bist nicht so ganz im Thema und solche Dinge sind leider manchmal nicht so einfach einzubinden. Ich würde dir nun raten dich mal im Auftragsboard umzuschauen, bzw. einen Auftrag aus zuschreiben. Link: Jobs Board

Nochmal zu meinem Code: Es reicht nicht nur den Code im Template einzubinden. Du musst in der Wawi noch das passende Funktionsattribut anlegen und dem Vaterartikel dieses mit dem gewünschten URI Schnipsel zuweisen. Ansonsten wird er nie das Funktionsattribut finden und den normalen Link einfügen. Weiterhin glaube ich, dass du kein eigenes Template drin hast? Somit musst du ja aktuell im EVO arbeiten und davon rate ich dir ab. Denn solltest du dein Shop updaten, können jegliche Änderungen damit verloren gehen.

Beste Grüße
 

Ähnliche Themen