# $sBasket.attr4 wie $sArticle.attr4 auslesen?

**URL:** <https://forum.shopware.com/t/sbasket-attr4-wie-sarticle-attr4-auslesen/51771>\
**Category:** Allgemein\
**Created:** [14. März 2018 um 15:50 UTC](https://forum.shopware.com/t/sbasket-attr4-wie-sarticle-attr4-auslesen/51771 "2018-03-14T15:50:59Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![Gunnar](https://avatars.discourse-cdn.com/v4/letter/g/ed655f/32.png) [@Gunnar](https://forum.shopware.com/u/Gunnar)\
**Post date:** [14. März 2018 um 15:50 UTC](https://forum.shopware.com/t/sbasket-attr4-wie-sarticle-attr4-auslesen/51771/1 "2018-03-14T15:50:59Z")

</div>

Hallo,

wie kann ich im Checkout in dem Array $sBasket den Wert für attr4 auslesen?

Ich habe es mit verschachtelten {foreach} probiert, aber das funktioniert nicht.

```
{assign var="attrSpedition" value="0"}
	{foreach name=aussen from=$sBasket item=item}
		{foreach item=item2 from=$item}
			{foreach item=item3 from=$item2}
				{foreach key=key item=item4 from=$item3}
					{$key}: {$item4.value} {* Hier werden die Werte korrekt ausgegeben *}
					{if $key == 'attr4'}
						{$attrSpedition = item4.value}
					{/if}
				{/foreach}
			{/foreach}
		{/foreach}
	{/foreach}
Wert attrSpedition: {$attrSpedition} {* hier steht dann nichts drin *}

```

Kann mir bitte jemand zeigen, was ich verkehrt mache?

Viele Grüße

Gunnar

---

<div class="post-metadata">

**Author:** ![Shopwareianer](https://avatars.discourse-cdn.com/v4/letter/s/b4bc9f/32.png) [@Shopwareianer](https://forum.shopware.com/u/Shopwareianer)\
**Post date:** [15. März 2018 um 06:27 UTC](https://forum.shopware.com/t/sbasket-attr4-wie-sarticle-attr4-auslesen/51771/2 "2018-03-15T06:27:45Z")

</div>

Hatte ein ähnliches Problem.

Da aber die Attribute in einem protected Objekt ( core ) sind, kannst du diese nicht direkt abrufen. Ich habe dann mein eigenes Attribut wie folgt aberufen:

```
{$sBasketItem.additional_details.attributes.core->get("mein_freitextfeld")}

```

In deinem Fall müsste es also sein

```
{$sBasketItem.additional_details.attributes.core->get("attr4")}

```

&nbsp;

---

<div class="post-metadata">

**Author:** ![Gunnar](https://avatars.discourse-cdn.com/v4/letter/g/ed655f/32.png) [@Gunnar](https://forum.shopware.com/u/Gunnar)\
**Post date:** [15. März 2018 um 13:00 UTC](https://forum.shopware.com/t/sbasket-attr4-wie-sarticle-attr4-auslesen/51771/3 "2018-03-15T13:00:26Z")

</div>

Hallo Shopwareianer,

danke für deine Antwort. Leider funktioniert es nicht.

Stattdessen bekomme ich diese Fehlermeldung in der error.log:

&nbsp;PHP Fatal error:&nbsp; Call to a member function get() on null in /var/cache/production\_201801171346/templates/frontend\_XXX\_de\_DE\_1\_secure/9c/b1/c0/9cb1c00fca3fd8dbb5388438e028b75cd3994a54.snippet.index.tpl.php on line 3034

Die checkout/confirm.tpl wird auch nicht weiter geladen.

```
 {* Phone *}
 {block name='frontend_register_personal_fieldset_input_phone'}
     {if {$sBasketItem.additional_details.attributes.core->get('attr4')} == '1'} 
         {* Tu was *}
     {/if}
 {/block}

```

Bei dem $sBasketItem bin ich nicht sicher, ob das sein kann, da es im Debug Fenster diese Variable nicht gibt. Aber, ob mit oder ohne “Item” kommt diesselbe Fehlermeldung.

Hast Du vielleicht noch eine Idee, was es sein kann?

Viele Grüße

Gunnar

---

<div class="post-metadata">

**Author:** ![sschreier](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/sschreier/32/23296_2.png) [@sschreier](https://forum.shopware.com/u/sschreier)\
**Post date:** [15. März 2018 um 17:52 UTC](https://forum.shopware.com/t/sbasket-attr4-wie-sarticle-attr4-auslesen/51771/4 "2018-03-15T17:52:20Z")

</div>

Hallo,

probier mal folgenden Code:

```
 {block name='frontend_register_personal_fieldset_input_phone'}
     {if $sBasketItem.additional_details.attributes.core->get('attr4') == '1'} 
         {* Tu was *}
     {/if}
 {/block}

```

oder alternativ:

```
 {block name='frontend_register_personal_fieldset_input_phone'}
     {if $sBasketItem.additional_details.attr4 == '1'} 
         {* Tu was *}
     {/if}
 {/block}

```

Grüße

Sebastian

---

<div class="post-metadata">

**Author:** ![Shopwareianer](https://avatars.discourse-cdn.com/v4/letter/s/b4bc9f/32.png) [@Shopwareianer](https://forum.shopware.com/u/Shopwareianer)\
**Post date:** [15. März 2018 um 20:51 UTC](https://forum.shopware.com/t/sbasket-attr4-wie-sarticle-attr4-auslesen/51771/5 "2018-03-15T20:51:29Z")

</div>

> [@Gunnar schrieb:](https://forum.shopware.com/profile/24413/Gunnar "Gunnar")
> 
> Hallo Shopwareianer,
> 
> danke für deine Antwort. Leider funktioniert es nicht.
> 
> Stattdessen bekomme ich diese Fehlermeldung in der error.log:
> 
> &nbsp;PHP Fatal error:&nbsp; Call to a member function get() on null in /var/cache/production\_201801171346/templates/frontend\_XXX\_de\_DE\_1\_secure/9c/b1/c0/9cb1c00fca3fd8dbb5388438e028b75cd3994a54.snippet.index.tpl.php on line 3034
> 
> Die checkout/confirm.tpl wird auch nicht weiter geladen.
> 
> {\* Phone _}  
> {block name=‚frontend\_register\_personal\_fieldset\_input\_phone‘}  
> {if {$sBasketItem.additional\_details.attributes.core-\>get(‚attr4‘)} == ‚1‘}  
> {_ Tu was \*}  
> {/if}  
> {/block}
> 
> Bei dem $sBasketItem bin ich nicht sicher, ob das sein kann, da es im Debug Fenster diese Variable nicht gibt. Aber, ob mit oder ohne „Item“ kommt diesselbe Fehlermeldung.
> 
> Hast Du vielleicht noch eine Idee, was es sein kann?
> 
> Viele Grüße
> 
> Gunnar

Du solltest jetzt auch nicht unbedingt die&nbsp;sBasketItem Variabel nehmen, sondern natürlich deine&nbsp;Variabel, welche du auslesen möchtest und dann schauen, wo das Core Array schlummert. Und dann mit dem obigen get Befehl die Attribute auslesen.

---

<div class="post-metadata">

**Author:** ![Gunnar](https://avatars.discourse-cdn.com/v4/letter/g/ed655f/32.png) [@Gunnar](https://forum.shopware.com/u/Gunnar)\
**Post date:** [16. März 2018 um 13:35 UTC](https://forum.shopware.com/t/sbasket-attr4-wie-sarticle-attr4-auslesen/51771/6 "2018-03-16T13:35:35Z")

</div>

Ja, wer lesen kann, ist klar im Vorteil. Man sollte sich korrekt durchs Array hangeln 😉

Sinn und Zweck der Übung war, die Telefonnummer zum Pflichtfeld bei Speditionsware zu machen und bei allen anderen Artikel nicht.  
Wir benutzen den OnePage Checkout von Premsoft und dort gibt es&nbsp; $sBasket.  
Falls wer ähnliches machen will, hier der Code in personal\_fieldset.tpl:

```
 {* Phone *}
    {block name='frontend_register_personal_fieldset_input_phone'}
	{assign var="i" value='0'}
	{assign var="spedition" value='0'}
	{assign var="counter" value='0'}
	{$counter = $sBasket.content|@count}
	{for $i=0 to $counter-1}
		{if $sBasket.content.$i.additional_details.attributes.core->get('attr4') == '1'}
			{$spedition = '1'}
		{/if}
	{/for}
	{if $spedition == '1'}
		
			
		
	{/if}
    {/block}

```

Ja, den Code kann man noch kürzer schreiben, ich hab es aber gerne schnell lesbar 😉

Danke für eure Hilfe!

Gunnar
