2012-06-19 18 views
5

Używam SOAP przez Visual Studio 2012 RC z C# do korzystania z interfejsu API Magento. Zrobiłem to przez dodanie odwołania do usługi wskazującego plik WSDL SOAP.Jak mogę (z SalesOrderEntity) odzyskać adres wysyłki?

Teraz mam problemy z uzyskaniem adresu wysyłki do SalesOrderEntity. Oto, jak pobrać te elementy.

To działa świetnie, ale kiedy przeglądam je i wyświetlam niektóre z ich informacji, natknę się na coś dziwnego.

foreach (var entity in entities) 
{ 

    //the following line crashes for some strange reason. 
    //the error is SoapHeaderException: Address not exists. 
    var info = mservice.customerAddressInfo(mlogin, int.Parse(entity.shipping_address_id)); 

    Debug.WriteLine(info.firstname); 
} 

adres wysyłki nie 0 jest rzeczywiście został ustawiony na odpowiedniej liczbie (i tak, jest to ciąg z jakiegoś powodu dziwnej choć zawsze oznacza liczbę).

Co ja tu robię źle?

Odpowiedz

5

Adres jest przechowywany w salesOrderAddressEntity, który znajduje się wewnątrz salesOrderEntity.

var magento = new MagentoService(); 
var session = magento.login("LOGIN", "APIKEY"); 

var order = magento.salesOrderInfo(session, "100029631"); 

var address = order.shipping_address; 

Console.WriteLine(address.firstname + " " + address.lastname); 
Console.WriteLine(address.street); 
Console.WriteLine(address.postcode + " " + address.city); 
Powiązane problemy