URLs für Produktvarianten

Hallo.

Ich möchte Varianten-URL umzusetzen. Es soll für alle Produkte, bei denen man eine Farbe auswählen kann einen direkten URL zu dieser Variante geben – genauer gesagt zum Artikel, wobei die Farbvariante vorausgewählt ist.

Die URLs unterscheiden sich von der Struktur her nicht von Artikellinks:

http://example.com/category[/subcategory/...]/product/color.html

Jedoch ist die Menge an Farben fix.

Wo ich jetzt hänge ist, wie ich in OXID das Routing ändere. Habt Ihr mir da einen sinnigen Ansatzpunkt?

Okay, ich habe das jetzt hinbekommen, indem ich \oxSeoDecoder überschrieben habe. Ich hab es jetzt so weit, dass die Artikel-View geladen wird und dann wird per JavaScript ein Click auf die Variante, die per URL angegeben wurde ausgeführt. Das funktioniert soweit, schöner wäre es aber natürlich, die Variante gleich zu laden. Werd mal schauen, ob das irgendwie geht…

Es gibt doch schon URLs für Produktvarianten?

[{foreach from=$product->getVariantList() item=variant}]
    <a href="[{$variant->getLink()}]">
        [{ $variant->oxarticles__oxvarselect->value }]
    </a>
[{/foreach}]

Die Artikel haben mehdimensionale Varianten und die Farbe ist nur eine Dimension. Genau gesagt benötige ich also keinen URL auf eine Variante, sondern auf eine Liste von Varianten oder auf ein Produkt, bei dem einige Varianten ausgefiltert wurden.

Als nicht-SEO Url geht das mit varselid:

Danke. Genau damit hab ich es jetzt auch umgesetzt. Problem war nur, an den Wert ranzukommen, den ich dort setzen muss. Läuft jetzt in jedem Fall. Danke nochmal.

Hallo, kannst Bitte mir sage wie ich dieses Code in der Datei productmain.tpl schreibe soll ?

block details_productmain_variantselections

1 Like

Ich versuche mit dem Code

[{foreach from=$product->getVariantList() item=variant}]
    <a href="[{$variant->getLink()}]">
        [{ $variant->oxarticles__oxvarselect->value }]
    </a>
[{/foreach}]

in der block details_productmain_variantselections

[{block name="details_productmain_variantselections"}]
                        [{if $aVariantSelections && $aVariantSelections.selections}]
                            [{oxscript include="js/widgets/oxajax.min.js" priority=10 }]
                            [{oxscript include="js/widgets/oxarticlevariant.min.js" priority=10 }]
                            [{oxscript add="$( '#variants' ).oxArticleVariant();"}]
                            [{assign var="blCanBuy" value=$aVariantSelections.blPerfectFit}]
                            [{if !$blHasActiveSelections}]
                                [{if !$blCanBuy && !$oDetailsProduct->isParentNotBuyable()}]
                                    [{assign var="blCanBuy" value=true}]
                                [{/if}]
                            [{/if}]
                            <div id="variants" class="selectorsBox variant-dropdown js-fnSubmit">
                                [{assign var="blHasActiveSelections" value=false}]
                                [{foreach from=$aVariantSelections.selections item=oList key=iKey}]
                                    [{if $oList->getActiveSelection()}]
                                        [{foreach from=$product->getVariantList() item=variant}]
                                                <a href="[{$variant->getLink()}]">
                                                  [{ $variant->oxarticles__oxvarselect->value }]
                                                 </a>
                                        [{/foreach}]
                                    [{/if}]
                                    [{include file="widget/product/selectbox.tpl" oSelectionList=$oList iKey=$iKey blInDetails=true}]
                                [{/foreach}]
                            </div>
                        [{/if}]
                    [{/block}]

aber bekommt fehler…

$product

In den Details gibt es nur

$oDetailsProduct

Entschuldigung aber ich weiß nichr was meinst mit,

$oDetailsProduct

Dieser Variable finde nur in,

[{if !$blCanBuy && !$oDetailsProduct->isParentNotBuyable()}]

Das ist aber jetzt Kindergarten:
ersetze

$product

mit

$oDetailsProduct

Jetzt habe so,

[{foreach from=$product->getVariantList() item=variant}]
                                                <a href="[{$oDetailsProduct->getLink()}]">
                                                  [{ $oDetailsProduct->oxarticles__oxvarselect->value }]
                                                 </a>
                                        [{/foreach}]

aber bekommt keine veränderung…

Und was ist damit?