coarsy2
September 27, 2012, 12:26pm
1
Hi zusammen,
ich möchte im Warenkorb sämtliche Artikelnummern als String an ein JavaScript übergeben. Dazu muss ich natürlich sämtliche Artikelnummern erstmal sammeln:
[{assign var="basketitemlist" value=$oView->getBasketArticles() }]
[{foreach key=basketindex from=$oxcmp_basket->getContents() item=basketitem name=test_Contents}]
[{assign var="basketproduct" value=$basketitemlist.$basketindex }]
[{assign var="allbasketproducts" value=$basketproduct->oxarticles__oxartnum->value}]
[{/foreach}]
Allerdings wird natürlich hier immer nur das letzte Produkt in der Schleife genommen, ich möchte aber die Artikelnummern hintereinander in der Variable allbasketproducts stehe haben.
Jemand eine Idee?
Google mal nach “smarty capture append”
Gesendet von meinem Stream mit Tapatalk 2
Folgendes in die Schleife sollte gehen:
[{$deinarray.$basketindex = $allbasketproducts}]
+1 für capture append. Wenn du sie nur als string brauchst und nicht als array könntest du sie auch direkt anhängen:
[{assign var="basketitemlist" value=$oView->getBasketArticles() }]
[{assign var="allbasketproducts" value=''}]
[{foreach key=basketindex from=$oxcmp_basket->getContents() item=basketitem name=test_Contents}]
[{assign var="basketproduct" value=$basketitemlist.$basketindex }]
[{if $allbasketproducts}]
[{assign var="allbasketproducts" value=$allbasketproducts|cat:', '}]
[{/if}]
[{assign var="allbasketproducts" value=$allbasketproducts|cat:$basketproduct->oxarticles__oxartnum->value}]
[{/foreach}]
[{$allbasketproducts}]
coarsy2
September 27, 2012, 12:59pm
5
Wow, dankeschön für die prompte Hilfe Funktioniert perfekt!
coarsy2
September 27, 2012, 1:02pm
6
Auf der Thankyou steht das Basket Objekt nicht mehr zur Verfügung, oder? Dort brauche ich den ganzen Schmarrn nämlich nochmal…
Da gibt’s wahrscheinlich nur Order, der Basket ist ja dann schon leer.
coarsy2
September 27, 2012, 1:24pm
8
Hab jetzt nochmals in der Docu nachgesehen, auf Order sollte eigentlich getBasketArticles anwendbar sein:
[{assign var="order" value=$oView->getOrder()}]
[{assign var="basketitemlist" value=$order->getBasketArticles() }]
Tut aber nicht und wird mit folgender Meldung quittiert:
Function ‘getBasketArticles’ does not exist or is not accessible! (MyOrder)
Also oxorder hat eine Funktion getBasket, probiers mal damit, etwa so:
[{assign var="order" value=$oView->getOrder()}]
[{assign var="basket" value=$order->getBasket()}]
[{assign var="basketitemlist" value=$basket->getBasketArticles() }]
coarsy2
September 27, 2012, 3:18pm
10
Hi Frank,
scheint noch nicht ganz zu funktionieren.
[{foreach key=basketindex from=$oxcmp_basket->getContents() item=basketitem name=test_Contents}]
oxcmp_basket scheint hier leer zu sein. Muss noch etwas rumtüfteln, denn irgendwie musses ja funktionieren.
Ja ich glaub da gibt’s keinen Basket mehr, nur noch Order und Orderarticles.
coarsy2
September 27, 2012, 5:16pm
12
Okay, die Orderarticles genügen mir schon mal, nur über welches Objekt muss ich dann darüber iterieren? Ich benötige nur alle Artikelnummern, genauso wie beim oberen Beispiel.
in account/order.tpl sieht das so aus:
[{foreach from=$order->getOrderArticles(true) item=orderitem name=testOrderItem}]
[{assign var=sArticleId value=$orderitem->oxorderarticles__oxartid->value }]
coarsy2
September 27, 2012, 6:27pm
14
Allright, prima, ich danke Dir, so funktionierts natürlich:
[{assign var="order" value=$oView->getOrder()}]
[{assign var="allbasketproducts" value=''}]
[{foreach from=$order->getOrderArticles(true) item=orderitem name=testOrderItem}]
[{if $allbasketproducts}]
[{assign var="allbasketproducts" value=$allbasketproducts|cat:'|'}]
[{/if}]
[{assign var="allbasketproducts" value=$allbasketproducts|cat:$orderitem->oxarticles__oxartnum->value}]
[{/foreach}]
coarsy2
September 28, 2012, 12:15pm
15
Hi Leute,
jetzt habe ich nur noch ein Problem. Ich benötige noch die Gutscheinnummern auf der Thanyou Page.
Folgenden Code habe ich mir zusammengebaut, allerdings funktioniert das so nicht. Netterweise sind die Variablen aber in der cust_order_owner.tpl hier, dann sollten die Werte ja auch in der thankyou.tpl verfügbar sein.
Hier also mein gescheiterter Versuch:
[{if $oViewConf->getShowVouchers() }]
[{assign var="allvouchers" value=''}]
[{ foreach from=$vouchers item=voucher}]
[{if $allvouchers}]
[{assign var="allvouchers" value=$allvouchers|cat:'|'}]
[{/if}]
[{assign var="allvouchers" value=$allvouchers|cat:$voucher->oxmodvouchers__oxvouchernr->value}]
[{/foreach }]
[{assign var="wgVoucherCode" value=$allvouchers|rawurlencode }]
[{/if}]
wird $vouchers irgendwo definiert? ansonsten probier:
[{ foreach from=$order->getVoucherList() item=voucher}]
coarsy2
September 28, 2012, 12:31pm
17
Hat sich erledigt:
[{if $order->getVoucherNrList() }]
[{assign var="allvouchers" value=''}]
[{foreach from=$order->getVoucherNrList() item=voucher}]
[{if $allvouchers}]
[{assign var="allvouchers" value=$allvouchers|cat:'|'}]
[{/if}]
[{assign var="allvouchers" value=$allvouchers|cat:$voucher}]
[{/foreach }]
[{assign var="wgVoucherCode" value=$allvouchers|rawurlencode }]
[{/if}]