Mehrere Artikel in einem Vorgang in den Warenkorb legen

Guten Tag liebe Leute,

wie schon ausführlich im Titel des Threads erwähnt, versuche ich gerade auf biegen und brechen, es umzusetzen, das ich mit dem Oxid Shop mehr als einen Artikel auf einmal in den Warenkorb legen kann.

Das sieht im Grund so aus, das ich mit Varianten (?) arbeite.
Dazu habe ich dann in der details.tlp die entsprechende Area angepasst.

[{ if $product->getVariantList() }]

Und dort entsprechend dann:

[{foreach from=$product->getVariantList() item=variant}]
					
					[{if $variant->oxarticles__oxvarselect->value != ''}]
						[{if $oxcmp_user->oxuser__oxpassword->value}]
						<label><input type="checkbox" name="aid[]" value="[{$variant->sOXID}]" />[{ $variant->oxarticles__oxvarselect->value }]</label>
						[{else}]
						<li>[{ $variant->oxarticles__oxvarselect->value }]</li>
						[{/if}]
					[{/if}]
				
			[{/foreach}]

Nun schmeckt das. dem System aber nicht wirklich und es kommt zu diesem Fehler:

Warning: Illegal offset type in /kunden/seitenweise.net/webseiten/display_and_pack/views/oxcmp_basket.php on line 302

Warning: Cannot modify header information - headers already sent by (output started at /kunden/seitenweise.net/webseiten/display_and_pack/views/oxcmp_basket.php:302) in /kunden/seitenweise.net/webseiten/display_and_pack/core/oxutils.php on line 828

Warning: Cannot modify header information - headers already sent by (output started at /kunden/seitenweise.net/webseiten/display_and_pack/views/oxcmp_basket.php:302) in /kunden/seitenweise.net/webseiten/display_and_pack/core/oxutils.php on line 829

Warning: Cannot modify header information - headers already sent by (output started at /kunden/seitenweise.net/webseiten/display_and_pack/views/oxcmp_basket.php:302) in /kunden/seitenweise.net/webseiten/display_and_pack/core/oxutils.php on line 830

Ich hab mir die Stelle angeschaut und blicke da halt leider nicht wirklich durch ^^
Ich gehe halt (Fehlermeldung, klar) davon aus, das er nicht damit klar kommt das es statt einem einfachen String nen Array zu verarbeiten gilt.

Wenn ich wüsste wie und wo, würde ich jetzt versuchen genau dieses Array ($_POST[‘aid’]) zu Schleifen (foreach) um dann alles entsprechend so oft auszuführen, wie ich Artikel habe.

Aber: Ich weiß noch nichtmal wo ich da Anfangen soll :frowning:

Nun die Frage: Kann mir da eventl. jmd weiterhelfen?

Beste Grüße,
xJonx

was ein glück ist das etwas was bei mir wirklich funktioniert :slight_smile: ee4.3.0

an der stelle kommt das problem (ja, sorry) das dass system schon einwenig modifiziert wurde und ich nicht weiß was alles futsch ist, wenn man ein update fährt :wink:

das ist nen kunde der einmalig da nen bissle was haben wollte und da ich nicht die mega checkung von dem ganzen kram hab, hab ich das da einfach erstmal so umgefuchst ^^

[QUOTE=xJonx;30927]an der stelle kommt das problem (ja, sorry) das dass system schon einwenig modifiziert wurde und ich nicht weiß was alles futsch ist, wenn man ein update fährt :wink:

das ist nen kunde der einmalig da nen bissle was haben wollte und da ich nicht die mega checkung von dem ganzen kram hab, hab ich das da einfach erstmal so umgefuchst ^^[/QUOTE]
Wenn man solche Dinge als Module implementiert, hat man zumindest damit kein Problem…

naja, wie schon geschrieben und von dir schön zitiert: ich hab von dem ganzen nunmal nicht wirklich viel ahnung. und bis auf das eine problem hat soweit alles sehr gut geklappt. von daher bringt mich deine, zwar richtige aber nichts aussagende aussage nicht wirklich weiter :frowning:

wo zum teufel find ich das update paket? ^^

wo zum teufel sind die suchfelder fürs forum - sorry aber fluchen hilft nix, aktiv selbst mal was finden schon eher

a. hab ich noch nicht angefangen zu fluchen ^^
b. suche ich jetzt seit mehr als 30 min, per forumssuche, google und auch im wiki … und was soll ich sagen: ich find es super das es alles gut dokumentiert ist. aber finde es schade, das nirgendwo steht, wo ich die dateien finde …

ich hab mir mal jetzt 4.3.1 installiert.
Große Frage: wie stell ich das den nun ein?
Weil ich hab immer noch den selben Crash wie oben beschrieben.

Es ist denkbar einfach:
Kein Modul, kein php !!
Da der oxcmp_basket->tobasket auch Arrays akzeptiert, alle Artikel in Template in ein Array packen.

<form action="[{ $oViewConf->getSelfActionLink() }]" method=“post”>
[{ $oViewConf->getHiddenSid() }]
[{ $oViewConf->getNavFormParams() }]
<input type=“hidden” name=“cl” value="[{ $oViewConf->getActiveClassName() }]">
<input type=“hidden” name=“fnc” value=“tobasket”>
[{<input type=“hidden” name=“aid” value="[{ $product->oxarticles__oxid->value }]">
<input type=“hidden” name=“anid” value="[{ $product->oxarticles__oxnid->value }]">
}]

&lt;input type="hidden" name="aproducts[1][aid]" value="1126"&gt;
&lt;input type="hidden" name="aproducts[1][anid]" value="1126"&gt;
&lt;input type="hidden" name="aproducts[1][am]" value="2"&gt;

&lt;input type="hidden" name="aproducts[2][aid]" value="1131"&gt;    
&lt;input type="hidden" name="aproducts[2][anid]" value="1131"&gt;
&lt;input type="hidden" name="aproducts[2][am]" value="3"&gt;

&lt;input type="hidden" name="aproducts[3][aid]" value="1964"&gt;    
&lt;input type="hidden" name="aproducts[3][anid]" value="1964"&gt;
&lt;input type="hidden" name="aproducts[3][am]" value="1"&gt;    

<input id=“test_toBasket” type=“submit” value="[{if $size==‘small’}][{oxmultilang ident=“INC_PRODUCTITEM_ADDTOCARD3” }][{else}][{oxmultilang ident=“INC_PRODUCTITEM_ADDTOCARD2”}][{/if}]" onclick=“oxid.popup.load();”>

</form>

[QUOTE=abratez;32058]Es ist denkbar einfach:
Kein Modul, kein php !!
Da der oxcmp_basket->tobasket auch Arrays akzeptiert, alle Artikel in Template in ein Array packen.

<form action="[{ $oViewConf->getSelfActionLink() }]" method=“post”>
[{ $oViewConf->getHiddenSid() }]
[{ $oViewConf->getNavFormParams() }]
<input type=“hidden” name=“cl” value="[{ $oViewConf->getActiveClassName() }]">
<input type=“hidden” name=“fnc” value=“tobasket”>
[{<input type=“hidden” name=“aid” value="[{ $product->oxarticles__oxid->value }]">
<input type=“hidden” name=“anid” value="[{ $product->oxarticles__oxnid->value }]">
}]

&lt;input type="hidden" name="aproducts[1][aid]" value="1126"&gt;
&lt;input type="hidden" name="aproducts[1][anid]" value="1126"&gt;
&lt;input type="hidden" name="aproducts[1][am]" value="2"&gt;

&lt;input type="hidden" name="aproducts[2][aid]" value="1131"&gt;    
&lt;input type="hidden" name="aproducts[2][anid]" value="1131"&gt;
&lt;input type="hidden" name="aproducts[2][am]" value="3"&gt;

&lt;input type="hidden" name="aproducts[3][aid]" value="1964"&gt;    
&lt;input type="hidden" name="aproducts[3][anid]" value="1964"&gt;
&lt;input type="hidden" name="aproducts[3][am]" value="1"&gt;    

<input id=“test_toBasket” type=“submit” value="[{if $size==‘small’}][{oxmultilang ident=“INC_PRODUCTITEM_ADDTOCARD3” }][{else}][{oxmultilang ident=“INC_PRODUCTITEM_ADDTOCARD2”}][{/if}]" onclick=“oxid.popup.load();”>

</form>[/QUOTE]
Ich verstehe den Ablauf in der Praxis nicht so ganz…

Für welchen Fall ist das gedacht?

Aus einer Artikelliste mehrere Artikel auswählen? (Eher nicht.)

Oder mit einem Artikel zusätzlich noch andere in den Korb legen?

http://shop.robins-wood.de/buchung/

hier wird in einem Vorgang mehrere sog. Artikel gebucht.
Auch für Fälle wie Schnellbuchung mit Artikelnummern.

[QUOTE=abratez;33336]http://shop.robins-wood.de/buchung/

hier wird in einem Vorgang mehrere sog. Artikel gebucht.
Auch für Fälle wie Schnellbuchung mit Artikelnummern.[/QUOTE]
Interessante Lösung… :o

Das ist ganz schön cool gemacht !

Hallo abratez,
das ist eigentlich genau das was ich suche, (http://shop.robins-wood.de) nur eben mit realen Artikeln.
Jetzt möchte ich Dich doch noch einmal dazu nerven, ich bin ein OXID-Frischling und möchte das auch bei mir implendieren - wo und in welchem Template muss ich denn das einbauen? kannst Du mir da ein wenig unter die Arme greifen, damit ich nicht zuviel im Code zerschieße. Meine Shopversion ist die 4.2.0 CE, ich hoffe, dass das kein Hinderniss ist.
Würde mich über Deine Hilfe hier freuen.
fwarta