# Wie komme ich an eine Variable in sOrder?

**URL:** <https://forum.shopware.com/t/wie-komme-ich-an-eine-variable-in-sorder/42875>\
**Category:** Programmierung\
**Created:** [17. Januar 2017 um 19:48 UTC](https://forum.shopware.com/t/wie-komme-ich-an-eine-variable-in-sorder/42875 "2017-01-17T19:48:49Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![magnolia4](https://avatars.discourse-cdn.com/v4/letter/m/b9e5f3/32.png) [@magnolia4](https://forum.shopware.com/u/magnolia4)\
**Post date:** [17. Januar 2017 um 19:48 UTC](https://forum.shopware.com/t/wie-komme-ich-an-eine-variable-in-sorder/42875/1 "2017-01-17T19:48:49Z")

</div>

Mit einem Hook für sOrder:

**$this-\>subscribeEvent(‚sOrder::sSaveOrder::after‘,‚onAfterSaveOrder‘);**

Möchte ich mit meiner function:

**public function onAfterSaveOrder(Enlight\_Event\_EventArgs $args) {  
&nbsp; &nbsp;$getSubject = $args-\>getSubject();  
&nbsp;&nbsp;&nbsp;$variables = $getSubject-\>variables;  
}**

auf die in sOrder vorhandenen Variable&nbsp; **$variables** zurückgreifen.  
Aber irgendwie bleibt die Variable leer - hat jemand eine Idee?

---

<div class="post-metadata">

**Author:** ![R4M](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/r4m/32/9983_2.png) [@R4M](https://forum.shopware.com/u/R4M)\
**Post date:** [18. Januar 2017 um 09:48 UTC](https://forum.shopware.com/t/wie-komme-ich-an-eine-variable-in-sorder/42875/2 "2017-01-18T09:48:26Z")

</div>

Eventruell $args-\>getReturn(); ?

&nbsp;

---

<div class="post-metadata">

**Author:** ![derwunner](https://avatars.discourse-cdn.com/v4/letter/d/e5b9ba/32.png) [@derwunner](https://forum.shopware.com/u/derwunner)\
**Post date:** [18. Januar 2017 um 12:18 UTC](https://forum.shopware.com/t/wie-komme-ich-an-eine-variable-in-sorder/42875/3 "2017-01-18T12:18:01Z")

</div>

$getSubject ist ein Controller, es kommt darauf an, was gebraucht wird. Wenn es eine Variable ist, die im Template ausgegeben wird, dann solllte es am einfachsten sein mit

```
$variable = $getSubject->View()->getAssign('variableName')

```

ansonsten im Controller selbst nachsehen, was dort für Variablen gesetzt werden.

---

<div class="post-metadata">

**Author:** ![magnolia4](https://avatars.discourse-cdn.com/v4/letter/m/b9e5f3/32.png) [@magnolia4](https://forum.shopware.com/u/magnolia4)\
**Post date:** [18. Januar 2017 um 19:48 UTC](https://forum.shopware.com/t/wie-komme-ich-an-eine-variable-in-sorder/42875/4 "2017-01-18T19:48:30Z")

</div>

> [@R4M schrieb:](https://forum.shopware.com/profile/17170/R4M "R4M")
> 
> Eventruell $args-\>getReturn(); ?

Das gibt mir nur die orderNumber zurück.&nbsp;

---

<div class="post-metadata">

**Author:** ![magnolia4](https://avatars.discourse-cdn.com/v4/letter/m/b9e5f3/32.png) [@magnolia4](https://forum.shopware.com/u/magnolia4)\
**Post date:** [18. Januar 2017 um 19:50 UTC](https://forum.shopware.com/t/wie-komme-ich-an-eine-variable-in-sorder/42875/5 "2017-01-18T19:50:25Z")

</div>

Die Variable in sOrder sieht so aus:&nbsp;

```
  $variables = array(
            "sOrderDetails"=>$details,
            "billingaddress"=>$this->sUserData["billingaddress"],
            "shippingaddress"=>$this->sUserData["shippingaddress"],
            "additional"=>$this->sUserData["additional"],
            "sShippingCosts"=>$this->sSYSTEM->sMODULES['sArticles']->sFormatPrice($this->sShippingcosts)." ".$this->sSYSTEM->sCurrency["currency"],
            "sAmount"=>$this->sAmountWithTax ? $this->sSYSTEM->sMODULES['sArticles']->sFormatPrice($this->sAmountWithTax)." ".$this->sSYSTEM->sCurrency["currency"] : $this->sSYSTEM->sMODULES['sArticles']->sFormatPrice($this->sAmount)." ".$this->sSYSTEM->sCurrency["currency"],
            "sAmountNet"=>$this->sSYSTEM->sMODULES['sArticles']->sFormatPrice($this->sBasketData["AmountNetNumeric"])." ".$this->sSYSTEM->sCurrency["currency"],
            "sTaxRates" => $this->sBasketData["sTaxRates"],
            "ordernumber"=>$orderNumber,
            "sOrderDay" => date("d.m.Y"),
            "sOrderTime" => date("H:i"),
            "sComment"=>$this->sComment,
            'attributes' => $attributes,
            "sEsd"=>$esdOrder
        );

```

&nbsp;Ich habe die Befürchtung, dass ich da gar nicht dran komme :-/&nbsp;

---

<div class="post-metadata">

**Author:** ![ahmadsaad](https://avatars.discourse-cdn.com/v4/letter/a/65b543/32.png) [@ahmadsaad](https://forum.shopware.com/u/ahmadsaad)\
**Post date:** [19. Januar 2017 um 08:08 UTC](https://forum.shopware.com/t/wie-komme-ich-an-eine-variable-in-sorder/42875/6 "2017-01-19T08:08:47Z")

</div>

Hallo,

$variables ist ein local variable und du kannst nicht von&nbsp; **sOrder::sSaveOrder::after&nbsp;** nehmen.

sSaveOrder fuktion benutzt $variables als Param für sendMail funktion [hier](https://github.com/shopware/shopware/blob/5.2/engine/Shopware/Core/sOrder.php#L823)

also du kannst ein event von sendMail benutzen , um die $variables zu nehmen.

Beispiel&nbsp;[Shopware\_Modules\_Order\_SendMail\_FilterVariables](https://github.com/shopware/shopware/blob/5.2/engine/Shopware/Core/sOrder.php#L1128)

VG,

Ahmad.
