Wie bekomme Ich die Order Details & Order Details Attributes im Hook auf sOrder-sSaveOrder()?

Hallo,

Ich schreibe ein Plugin, welches jeder Postion eines Orders unter bestimmten Bedingungen Attribute hinzufügt, Frontent-Bestellungen wie auch Backend-Bestellungen

Dazu before-hooke Ich die  Core Klassenmethode sOrder->sSaveOrder() weil diese der Punkt ist in der ein Order final gespeichert wird. Das klappt auch gut:

In meiner Bootstrap.php wird dann auch meine onBeforeSaveOrder(Enlight_Event_EventArgs $args) aufgerufen, so wie es sein soll.

Mit $args->getSubject() bekomme Ich dann die Proxy-Klasse für sOrder, welche den Array sBasketData enthält, welcher wiederum einen Key _content _enthält.

Wenn Ich auf diesen zugreife, bekomme ich null zurück, obwohl der Debugger mir definitiv Elemente (Order Positionen) anzeigt.

Wie greife Ich korrekt auf die einzelnen Order Positionen zu?

Hier meine Bootstrap.php:

<?php /**
 * Created by PhpStorm.
 * User: michi
 * Date: 10.05.16
 * Time: 16:38
 */
class Shopware_Plugins_Backend_BbRabattProPositionPlugin_Bootstrap extends Shopware_Components_Plugin_Bootstrap
{

    public function getVersion()
    {
        return '1.0.0';
    }

    public function getLabel()
    {
        return 'RabattProPosition-Plugin von Blauband';
    }

    public function install()
    {

        $this->subscribeEvent( 'sOrder::sSaveOrder::before', 'onBeforeSaveOrder' ); return true; } public function onBeforeSaveOrder(Enlight\_Event\_EventArgs $args){ // following 3 lines only work if the Advanced Promotion Suite Plugin is installed! $sql = "SELECT \* FROM `s_plugin_promotion` WHERE `type` = 'product.percentage' AND `active` = ?"; //$promotions =Shopware()-\>Db()-\>fetchAll($sql, [1]); // try to get order positions //$orderProxy = $args-\>getSubject(); //$basketData = $orderProxy-\>sBasketData; //$i = count($basketData); } }

 

Bin um jeden Hinweis dankbar!

Der Beitrag liegt schon 2 Monate zurück, aber du kannst doch sOrderNumber auslesen? Damit kannst du wiederrum aus der DB die einzelnen Positionen auslesen - sofern ich deine Frage richtig verstanden habe.