【问题标题】:Magento API v1 product list call on VB.NETVB.NET 上的 Magento API v1 产品列表调用
【发布时间】:2018-07-03 14:07:54
【问题描述】:

这对于 VB.NET 来说是什么?

$filters = array('sku' => array('like'=>'zol%'));

$products = $proxy->call($sessionId, 'product.list', array($filters));

因为我试图通过执行以下操作从 Magento 检索特定产品:

Dim products = magentoV1_servico.call(magentoV1_sessao, "product.list", filters)

我得到的只是一条错误消息,上面写着“创建 XML 文件时出错”。我猜我的过滤器是错误的,因为我不确定如何正确发送这些数组参数。我正在使用 Magento 1.9,SOAP API v1。

【问题讨论】:

    标签: vb.net api magento soap


    【解决方案1】:

    我无法访问 WSDL,但从外观上看,.Net 签名应该是这样的:

    Dim filters As New List(Of String, List(Of KeyValuePair(Of String, String)))()
    

    也许应该使用字典而不是列表,但从examples on their page 看来,它支持重复。如果不正确,请检查 WSDL 并尝试使用这些技术。

    问题中特定过滤器的翻译将按如下方式创建:

    Dim filter1 As New List(Of KeyValuePair(of String, String))
    filter1.Add(New KeyValuePair("like", "zol%"))
    
    filters.Add("sku", filter1)
    

    【讨论】:

      【解决方案2】:

      在 Magento V1 中尝试使用许多不同的对象后,我遇到了同样的问题。总是同样的“创建 XML 文件时出错”问题。

      由于我们需要处理应该序列化的复杂对象,我什至尝试使用

      SerializableDictionary<TKey, TValue> Class
      

      ,但没有运气。在这种情况下,问题出在编译过程中,“Microsoft.WindowsServerSolutions.Administration.ObjectModel.dll 已损坏”。

      我已经使用 Magento SOAP V2 绕过了我的问题,实际上我需要的请求不需要关联数组。

      另一种可能的解决方案是为您自己提供一个 SerializibleDictonary,如 this onethis one 等指南中所述,但我没有时间对其进行测试。

      【讨论】:

        猜你喜欢
        • 2012-12-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-11-28
        • 1970-01-01
        • 2015-05-27
        相关资源
        最近更新 更多