2012-06-27 3 views
5

Używam Magento API V2.Magento API V2 - dodaj dodatkowy atrybut do odpowiedzi API

Kiedy dzwonię pod numer salesOrderCreditmemoInfo, otrzymuję odpowiedź ze szczegółami noty kredytowej i listą produktów powiązanych z zamówieniem.

Ale na liście produktów nie ma atrybutu product_type.

Chcę ręcznie edytować odpowiedź, aby dodać ten atrybut.

Próbowałem edycji: app kod \ \ rdzeń \ Mage \ Sales \ Modele \ Order \ Nota kredytowa \ Api.php

i zastąpione:

public function info($creditmemoIncrementId) 
{ 
    ... 
    $result['items'] = array(); 
    foreach ($creditmemo->getAllItems() as $item) { 
     $result['items'][] = $this->_getAttributes($item, 'creditmemo_item'); 
    } 

z następującymi - (w zasadzie dołączając dodatkowy atrybut do tablicy):

public function info($creditmemoIncrementId) 
    { 
     ... 
    $result['items'] = array(); 
    foreach ($creditmemo->getAllItems() as $item) { 
      $product_type = '1'; //test value to check if works 
      $attribs = $this->_getAttributes($item, 'creditmemo_item'); 
      $attribs['product_type'] = $product_type; 

      $result['items'][] = $attribs; 
     } 

Kiedy zrobić maga :: log ($ wynik), dodatkowy atrybut wydaje się być dodane correc do tablicy. (wskazuje również, że ta funkcja jest nazywana wywoływaniem) Nie ma to jednak wpływu na rzeczywistą odpowiedź interfejsu API.

Czy szukam całkowicie w niewłaściwym miejscu lub czy jest coś jeszcze, co muszę zaktualizować?

Odpowiedz

7

Od uzywasz SOAP V2, należy zaktualizowaćwsdl.xmldostać wyjście.

Dla Twojego przypadku jest to product_type i odświeżanie pamięci podręcznej na serwerze. /tmp, aby załadować nową zaktualizowaną wersję wsdl.xml. nie zapomnij przejść do: System -> Zarządzanie pamięcią podręczną wyczyść całą pamięć podręczną.

+4

Absolutnie na miejscu dzięki – elMarquis

+0

@Josua możesz zaproponować rozwiązanie tego problemu http://stackoverflow.com/questions/19811307/get-simple-product-sku-and-qty-using-salesorderinfof-soap -api-in-magento – Muk

+0

@Muk roger to –