Varianten Auswahl als Bilder Darstellen

Hallo, bin neu hier auf dem Forum :slight_smile:

So viel ich gesehen habe, hat OXID CE (v4.8.3) keine Möglichkeit die Varianten Auswahl auf dem Produkt Detail Template als Bilder einzustellen, oder bin ich falsch?

Der Kunde fĂĽr dem ich ein Theme entwickle, will eine Auswahl der Varianten haben so das jede Auswahl Option ein bild fĂĽr die Variantenoption darstellt.

Der code den ich bis jetzt benutzt und modifiziert habe steht in “widget/product/selectbox.tpl” Template Datei.

[I][B]Ex.[/B][/I]


[{foreach from=$oSelections item=oSelection}]
                    <li class="[{if $oSelection->isDisabled()}]js-disabled disabled[{/if}]">
                        <a data-selection-id="[{$oSelection->getValue()}]" href="[{$oSelection->getLink()}]"
                           class="[{if $oSelection->isActive()}]selected[{/if}]">[{$oSelection->getName()}]</a>
                        [{*<img class="img-responsive" src="[{$oSelection->getImageUrl()}]" alt="Image"/>*}]
                        <div class="debug hidden">
                            [{$oSelection|var_dump}]
                        </div>
                    </li>
                [{/foreach}]

Das Problem ist das der “oSelection” Objekt, kein Bild-URL Atribut hat. Den brauch ich aber. Kann man irgendwie ein oder mehrere Bilder für die variante rauskriegen?

Vielen Dank noch mal …

Hallo und willkommen in der OXID Community,

auch hier gilt die Regel “Ein Problem = ein Thema, keine Mehrfachthreads quer durchs Forum”
(Steht übrigens in den Forumrichtlinien, die Du am 1.2.2014 bei der Registrierung gelesen und bestätigt hast :slight_smile: )

bei mehrdimensionalen Varianten wĂĽsste ich nicht, wie man Dein Vorhaben umsetzen kann,
man kann aber mit getVariants() sich die Liste der Artikelvarianten holen und dort entsprechen den link und das Bild rausziehen. So kannst du die alte Auswahl entfernen und durch nachgebaute ersetzen

[QUOTE=vanilla thunder;144425]
bei mehrdimensionalen Varianten wĂĽsste ich nicht, wie man Dein Vorhaben umsetzen kann, [/QUOTE]
Das geht schon aber nur mit Modul was fĂĽr oSelection das passende Bild zurĂĽckgibt.

Vielen Dank fĂĽr die Infos, die waren sehr hilfreich.

Ich habe eine Instanz des Produkts kreiert, dann die varianten mit der Funktion
"$product->getVariants()" abgehohlt. Das Link und das Bild habe ich mit dem Funktionen “$variant->getMainLink()” und “$variant->getThumbnailUrl()” gekriegt.
Ich werde bestimmt noch welche Fragen haben, aber für alle Fälle habe ich die jetzige Lösung für mein Problem hier gepostet.

[B][I]Code:[/I][/B]


[{* Get the current product *}]
[{assign var="product" value=$oView->getProduct()}]
[{* Get variants for the current product *}]
[{assign var="variants" value=$product->getVariants()}]

<div class="picture-variant-list">
        [{foreach from=$variants item=variant}]
            <a class="variant-link" href="[{$variant->getMainLink()}]">
                <img class="variant-image img-responsive" src="[{$variant->getThumbnailUrl()}]"/>
            </a>
        [{/foreach}]
    </div>

Habe noch ein Auftrag von dem kunden bekommen …

Der kunde will [I][B]Variantenauswahl per Bild auch auf der Shop Start/Index Seite[/B][/I] haben :frowning:

[B][I]Gibt es einen weg das zu machen? [/I][/B]

Ich habe die selbe Logik die ich auf der Produkt Detailseite benutzt, leider ohne Erfolg.
Die Template Datei das ich modifiziert habe ist “/widget/product/listitem_infogrid.tpl”.

Soll mann die Funktionen in das Widget rein schieben, oder kann man das irgendwie anders erreichen?

welche ausführliche Fehlerbeschreibung verbirgt sich hinter “ohne Erfolg”?
Die Katze hat den Stromkabel durchgebissen und der Webserver ist explodiert?
Oder vielleicht kam eine eindeutige Fehlermeldung mit einem hinweis zur Fehlersuche oder möglichen Ursache des Problems?

[QUOTE=vanilla thunder;144531]welche ausführliche Fehlerbeschreibung verbirgt sich hinter “ohne Erfolg”?
Die Katze hat den Stromkabel durchgebissen und der Webserver ist explodiert?
Oder vielleicht kam eine eindeutige Fehlermeldung mit einem hinweis zur Fehlersuche oder möglichen Ursache des Problems?[/QUOTE]

Lol :smiley:

Naja, leider keine von den Sachen … Keine Fehler Meldungen, aber ich vermute das “assign var” funktion nicht geht weil der Controller für das Widget das nicht erlaubt.

Deshalb gibt es auch keinen Output für die Bilder/URLs für die Produkte auf der Startseite…

dass der Code nicht 1:1 ĂĽbernommen werden kann, stimmt schon. die Artikel-Objekte sind ja in dem Template bereits vorhanden und werden mit $product angesprochen.
Die ersten 3 Zeilen fallen schon mal weg.

Ohne einer ausführlichen Beschreibung von dem, was du wo eingefügt hast und was genau auf der Seite zu sehen war (oder auch nicht zu sehen), kann keine wirkliche Fehleranalyse außer “ISO-Layer 8 Problem” gemacht werden.

[QUOTE=vanilla thunder;144540]dass der Code nicht 1:1 ĂĽbernommen werden kann, stimmt schon. die Artikel-Objekte sind ja in dem Template bereits vorhanden und werden mit $product angesprochen.
Die ersten 3 Zeilen fallen schon mal weg.

Ohne einer ausführlichen Beschreibung von dem, was du wo eingefügt hast und was genau auf der Seite zu sehen war (oder auch nicht zu sehen), kann keine wirkliche Fehleranalyse außer “ISO-Layer 8 Problem” gemacht werden.[/QUOTE]

Ist schon klar, Ich meinte auch nicht das Ich das Code 1:1 kopiert habe.
Ich meinte eben die selbe Logik, aber verstehe schon alles genau was du meinst.
Ich tüftle immer noch an der Sache… Versuche gerade etwas von dem definierten produkt variablen raus zu bekommen… Ich meld mich noch wenn ich was habe …

Moin! :slight_smile:

Ich habe das Problem gelöst, leider habe ich die falsche Funktion fürs ausgeben der Varianten des Produkts benutzt.

Anstatt “$product->getVariants()”, sollte man “$product->getFullVariants()” benutzen, weil “getVariants” gibt einen “oxSimpleVariant” Objekt zurück. Der hat leider keine Bilder/Thumbnails als Attribut. Die Funktion “getFullVariants” dagegen gibt die Varianten mit allen Attributen zurück und das brauchte ich auch.

[B][I]Code:[/I][/B]


    [{assign var="product"              value=$oView->getProduct()}]
    [{assign var="product_variants"     value=$product->getFullVariants()}]

                [{foreach from=$product_variants item=product_variant name="variant_loop" max=10}]
                    <a href="[{$product_variant->getLink()}]">
                        <div class="img">
                            <img class="img-responsive" src="[{$product_variant->getThumbnailUrl()}]" alt=""/>
                        </div>
                    </a>
                [{/foreach}]


Vielen dank fĂĽr alles.

Hallo!

ich habe den Code-Schnipsel in die fullproductinfo.tpl eingebaut, funktionert. Allerdings sind die Bilder weg, wenn ich auf eine Variante klicke?

Da ist wohl jeweils

$product

in

$oDetailsProduct

zu ändern

Danke!

Geht aber nicht, wenn ich es richtig gemacht habe.

Doch, es sollte in fullproductinfo.tpl gehen, sowohl mit als auch ohne Laden des Artikels.

Eigentlich muss garnichts geändert werden, es geht aber auch ohne:

[{assign var="product"              value=$oView->getProduct()}] 

und nur dann muss aus $product $oDetailsProduct werden:

[{assign var="product_variants"     value=$oDetailsProduct->getFullVariants()}]

                [{foreach from=$product_variants item=product_variant name="variant_loop" max=10}]
                    <a href="[{$product_variant->getLink()}]">
                        <div class="img">
                            <img class="img-responsive" src="[{$product_variant->getThumbnailUrl()}]" alt=""/>
                        </div>
                    </a>
                [{/foreach}] 

Sind denn Thumbnails verfĂĽgbar?

So?

<div id="detailsMain">
    [{include file="page/details/inc/productmain.tpl"}]


[{assign var="product" value=$oView->getProduct()}] 
[{assign var="product_variants" value=$oDetailsProduct->getFullVariants()}] 
<ul>
 [{foreach from=$product_variants item=product_variant name="variant_loop" max=10}] 
  <li style="display:inline-block;">
   <a href="[{$product_variant->getLink()}]"> 
    <div class="img">
     <img class="img-responsive" src="[{$product_variant->getIconUrl()}]" alt=""/> 
    </div> 
   </a>
  </li> 
 [{/foreach}]
</ul>
 </div>

Ja, das sollte auch gehen. Die erste Zeile

[{assign var="product" value=$oView->getProduct()}] 

kann so weg.

Geht nur leider nicht …

Dohoch :): http://4101.foxido.de/bekleidung/fashion/fuer-sie/jeans/kuyichi-jeans-anna.html

[QUOTE=foxido.de;185898]Dohoch :): http://4101.foxido.de/bekleidung/fashion/fuer-sie/jeans/kuyichi-jeans-anna.html[/QUOTE]

Ă„hm,ja. Aber userfreundlich ist doch was anderes.

Hm. Klicke ich auf eine Varianten-Bild, dann sind die Bilder aber weg…genauso, wenn ich zwei Attribute angegeben habe, also Größe und Farbe.