2012-06-19 17 views
5

Magento API'sini kullanmak için Visual Studio 2012 RC ile C# kullanarak SOAP kullanıyorum. Bunu, SOAP WSDL dosyasına işaret eden bir hizmet başvurusu ekleyerek yaptım.(SalesOrderEntity'den) nasıl gönderim adresini alabilirim?

Şimdi, SalesOrderEntity ürününün gönderim adresini almakta zorluk çekiyorum. İşte bu varlıkları nasıl alıyorum.

var f = new filters(); 
f.filter = new associativeEntity[] { 
    new associativeEntity { 
     key ="status", 
     value ="processing" 
    } 
}; 
var entities = mservice.salesOrderList(mlogin, f); 

Bu sadece harika çalışıyor ama onlardan yineleme ve bunların bazı bilgileri görüntülemek, ben garip bir şey denk.

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); 
} 

sevkıyat adresi değil 0 olduğunu gerçekten uygun bir sayı olarak ayarlandı (ve evet, her defasında bir sayıyı temsil eder rağmen bazı garip nedenden için zincir).

Burada yanlış olan ne yapıyorum?

cevap

5

Adres, salesOrderEntity'un içinde bulunan salesOrderAddressEntity'da depolanır.

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); 
İlgili konular