Mehrer Varianten als Checkboxen

Moin liebe Gemeinde,

ich habe folgendes Problem fernen Anliegen bei der realisierung eines Shops auf Basis der Community Edition 4.1.6_22740.

Und zwar hab ich bei den Produkten den Wunsch nach verschiedenen Optionen.
Ich hab bisher das ganze mit den “Artikelvarianten” probiert, komme aber nicht von dem
DropDown, sprich der SelectBox weg.

Skizziert würde das so aussehen:


### Produkt 1 ###
# Option 1: Lackiert
# Option 2: Vorgestanzt
# Option 3: Vorverpackt
### ### ###

Ziel wäre es letztlich, das ich bei jedem Produkt individuelle CheckBox’n habe um
somit eine frei Konfigurierbarkeit des Produktes zu ermöglichen.

Seht ihr da irgendwo eine Lösung? Gerne auch was “gehacktes” ^^

Beste Grüße,
Jon

Ohne Hacks dafür auch ohne Lagerverwaltung…
… kannst Du auch Auswahllisten machen und zwar immer nur mit zwei Werten
[ul]
[li]nicht lackiert und lackiert
[/li][li]nicht vorgestanzt und vorgestanzt
[/li][li]nicht vorverpackt und vorverpackt
[/li][/ul]
Dann im Template anstatt der Selectlist Checkboxen darstellen…(schematisch, ungetestet)
Anstatt:


<select name="[{$irgednetwasvonoxid}]">
  <option value="[{$wasanderesvonoxid}]">nicht lackiert</option>
  <option value="[{$wasanderesvonoxid}]">lackiert</option>
</select>

So etwas:


<!-- 1. Wert der Auswahlilste -->
<input type="hidden" name="[{$irgednetwasvonoxid}]" value="[{$wasanderesvonoxid}]" />
<!-- 2. Wert der Auswahlliste, wenn gesetzt, wird 1. Wert überschrieben -->
 <input type="checkbox" name="[{$irgednetwasvonoxid}]" value="[{$wasanderesvonoxid}]">lackiert<br>

Funktioniert natürlich nur wenn pro Auswahlliste nur 2 Werte vorhanden sind.

Ansonsten:

iteration

gibt die aktuelle iteration aus

iteration beginnt immer mit 1 und wird danach bei jedem durchgang um 1 inkrementiert.

So kannst Du abfragen, der wievielte Durchlauf der Schleife aktuell ist.

das sieht schonmal interessant aus. aber klingt als müsste ich das “mehrdimensionle varianten” modul dafür haben …

Mehrdiminsionale V. sind mittlerweile Standard :slight_smile: thx@oxid

Aber mein Beispiel arbeitet mit Auswahllisten. Ob das auch mit den mehrdimensionalen Varianten geht weiss ich nicht, ist noch zu neu… wenn ja, dann sollte es auch mit Lagerverwaltung gehen.

ich will jetzt keinen vorgefertigten schnippsel an kopf haben.
aber ich weiß nicht wirklich wie ich das dann umsetzen muss :frowning:

fuxe mich gerade frisch in oxid rein …

Diese Selectlisten werden in der details.tpl erzeugt…
…folgenden Code musst Du dann ändern, dass wie oben die checkboxen erscheinen.

out/basic/tpl/details.tpl


....
    [{if $oView->getSelectLists() }]
    [{foreach key=iSel from=$oView->getSelectLists() item=oList}]
     <div class="variants">
      <label>[{ $oList.name }]:</label>
        <select id="test_select_[{$product->oxarticles__oxid->value}]_[{$iSel}]" name="sel[[{$iSel}]]" onchange="oxid.sellist.set(this.name,this.value);">
          [{foreach key=iSelIdx from=$oList item=oSelItem}]
            [{ if $oSelItem->name }]<option value="[{$iSelIdx}]">[{ $oSelItem->name }]</option>[{/if}]
          [{/foreach}]
        </select>
    </div>
    [{/foreach}]
    [{/if}]
....

… ungefähr so:


    [{if $oView->getSelectLists() }]
    [{foreach key=iSel from=$oView->getSelectLists() item=oList}]
     <div class="variants">
      <label>[{ $oList.name }]:</label>
        [{foreach key=iSelIdx from=$oList item=oSelItem name="selItemForeach"}]
          [{ if $oSelItem->name && $smarty.foreach.selItemForeach.first}]
            <input type="hidden" name="sel[[{$iSel}]]" value="[{$iSelIdx}]" />
          [{else}]
            <input type="checkbox" name="sel[[{$iSel}]]" value="[{$iSelIdx}]" />[{ $oSelItem->name }]<br />
          [{/if}]
         {/foreach}]
    </div>
    [{/foreach}]
    [{/if}]

!!! ungetestet und geht nur, wenn die Listen [B]2[/B] Auswahlmöglichkeiten haben !!!

eine frage wäre noch zu stellen: ich würde gerne das jeweils erste element vorausgewählt haben.
wo muss ich das - wie - machen?

[QUOTE=seitenweise;18349]eine frage wäre noch zu stellen: ich würde gerne das jeweils erste element vorausgewählt haben.
wo muss ich das - wie - machen?[/QUOTE]
Also ist jetzt nicht speziell auf Dich gemünzt…

Ich bin immer wieder fasziniert davon, wie viele Leute in’s wilde [B]OXID[/B]istan, nach [B]xtCommerc[/B]ien oder auch [B]Magento[/B]nien reisen wollen, ohne auch nur halbwegs einer der dort gesprochenen Landessprachen zu kennen (HTML, PHP, Javascript, CSS, Smarty).

Manchmal können sie sogar nicht mal 'ne Landkarte lesen…

Wenn man in fremde Länder reist, sollte man sich besser kundige Reiseführer anheuern, die einen sicher an’s gewünschte Ziel bringen.

Sonst irrt man ziellos herum, und verhungert gar unterwegs.

Ganz ehrlich?

Wenn man so an den Betrieb eines Online-Shops heran geht, kann man es eigentlich auch gleich sein lassen: das wird erfahrungsgemäß eh’ nix!

wtf? … das war jetzt aber doch sehr konstruktiv … ist jetzt nicht speziell gemünzt …

Ich find es immer wieder Klasse wie viele Noob-Professionals der Meinung sind, die geilsten zu sein
und dabei mehr oder minder die Tatsache unter den Tisch fallen lassen, das Sie auch mal angefangen haben. Aber es ist ja überall das selbe: Den meisten den es in den Schoß fällt, fehlt einfach der Horizont um weiter denken zu können.

if (!respect||brain==‘afk’) { exit(); }

Soooo … nach dem ich jetzt andere Dinge bereits erfolgreich mit Hilfe des Forums
lösen konnte, will ich bei meinem eigentlich letzten Problem nochmal ansetzen.

Nun will Ich aber noch mal bei meinem Ursprungsproblem ansetzen und dieses neu
definieren bzw erläutern:

Die einzelnen Produkte haben derzeit jeweils verschiedene Varianten.
Man kann, derzeit über Radiobuttons, sich entweder für eine Variante
entscheiden oder man würde das “Elternprodukt” kaufen.

Das angestrebte Ziel wäre nun, die einzelnen Varianten per Checkbox
anzubieten, so das man Sich also mit einem Klick für mehrere Varianten
entscheiden kann.

Bei ersten Ansätzen wurde ich meist davon ausgebremst, das aus mehreren
Checkboxen sich entweder ein Array ergibt oder eben unterschiedliche InputNames.

Wie kann ich das nur am besten in dem Oxid Shop realisieren?