2013-11-12 3 views
0

Я имею следующий код, чтобы переопределить V2.phpКак получить возвращаемые значения как объекта StdClass

class Sigma_Sales_Model_Order_Api_V2 extends Mage_Sales_Model_Order_Api_V2 
{ 
    public function info($orderIncrementId) 
    { 
     $result = parent::info($orderIncrementId); 
     $order = Mage::getModel('sales/order')->loadByIncrementId($orderIncrementId);  
     $orderItems = $order->getItemsCollection(); 

     $skuQtyArray = array(); 
     foreach ($orderItems as $item) 
     { 
       $product_id = $item->product_id; 
      $product_sku = $item->sku; 
       $item_id = $item->getItemId();  
      $tax_percent = $item->gettaxPercent();      
      $product_qty = $item->getQtyOrdered();      

      $product = Mage::getModel('catalog/product')->loadByAttribute('sku', $product_sku);    
      $productType=$product->getTypeID(); 
      if($productType=='simple') 
      {           
        $skuQtVal = $product_sku."=".$item_id; 
        $skuQtyArray[] = $skuQtVal;         
      } 
     } 

    $result['simple_product_skus'] = array_unique($skuQtyArray);   

    return $result; 
    } 

} 

Теперь я доступ к этому, как

<?php 
$client = new SoapClient('localhost/magento/index.php/api/v2_soap/index?wsdl=1'); 
$session = $client->login('testuser', 'testuser'); 

$result = $client ->salesOrderInfo($session, '100000026'); 
print_r($result); 
?> 

выход, как

stdClass Object 
(
     ------ 
     ------ 
     ------ 

    [status_history] => Array 
    (
     [0] => stdClass Object 
      (
       [parent_id] => 72 
       [created_at] => 2013-11-08 14:42:11 
       [is_customer_notified] => 1 
       [status] => pending 
      ) 

    ) 

      [simple_product_skus] => Array 
      (
       [0] => ASL-B346-67-64-98=155=166=1.0000=0.0000 
       [1] => ASL-B346-67-64-98=156=116=1.0000=0.0000 
      ) 

) 

Я хочу simple_product_skus как объект stdClass Как я получаю status_history.

Как я могу получить это, пожалуйста, помогите.

+0

Вы хотите, чтобы status_history был объектом stdClass вместо массива? –

+0

@Michael J. Anderson Я хочу [simple_product_skus] как объект stdClass, Как будто я получаю статус status_history. – Muk

+0

http://www.kathirvel.com/php-convert-or-cast-array-to-object-object-to-array/ –

ответ

0

Я думаю, что это поможет вам, что вы хотите:

$result['simple_product_skus'] = (object)array_unique($skuQtyArray); 

Этот тип заливки массива в стандартный объект PHP.

+0

JAnderson Я получаю Неустранимая ошибка: исключение SoapFault: [SOAP-ENV: Server] Вызов неопределенного объекта функции() – Muk

+0

Странно, что это исключение SOAP. В этот момент кода, который вы уже получили ответ от ваших запросов, исправьте? Можете ли вы опубликовать более подробную информацию? –

+0

Я получаю правильные значения в array_unique ($ skuQtyArray). Но преобразование в объект является проблемой – Muk

Смежные вопросы