【问题标题】:How can I (from a SalesOrderEntity) retrieve the shipping address?我如何(从 SalesOrderEntity)检索送货地址?
【发布时间】:2012-06-19 07:49:52
【问题描述】:

我正在通过带有 C# 的 Visual Studio 2012 RC 使用 SOAP 来使用 Magento API。为此,我添加了一个指向 SOAP WSDL 文件的服务引用。

现在,我在获取 SalesOrderEntity 的送货地址时遇到了困难。以下是我检索这些实体的方法。

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

这很好用,但是当我遍历它们并显示它们的一些信息时,我偶然发现了一些奇怪的东西。

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

收货地址不是0,确实设置了一个正确的数字(是的,出于某种奇怪的原因,它是一个字符串,尽管它总是代表一个数字)。

我在这里做错了什么?

【问题讨论】:

    标签: c# magento soap


    【解决方案1】:

    地址存储在salesOrderAddressEntity 中,它位于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);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-06-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-05
      • 1970-01-01
      相关资源
      最近更新 更多