Magento Enterprise 1.12 - 从V2 API访问客户自定义属性

时间:2012-07-03 18:56:46

标签: api magento soap

我有一个客户希望使用Magento的Web服务API来创建和更新客户。使用API​​,我们可以使用V1或V2 API轻松操作系统定义的属性 - firstname,lastname等。我们很高兴去那里。

这就是它变得棘手的地方 - 这个网站使用Magento Enterprise 1.12,我们添加了一些自定义客户属性,用于将Magento客户链接到外部系统上的CRM数据。使用V1 API,我可以完全访问自定义属性。但是,V2 API不会公开它们。由于调用者来自.NET,我相信他需要使用V2 API。

使用调试器跟踪代码,我看到V2代码获取所有属性数据,然后在生成Web服务响应时删除所有自定义数据。我尝试将属性添加到Customer(Mage / Customer / etc /)WSDL和WSI文件中,但这并没有成功。

任何人都可以给我一个指针,告诉我应该做些什么来揭露客户属性吗?

格雷格

2 个答案:

答案 0 :(得分:2)

  1. 创建新模块
  2. Your_Module/etc/wsdl.xmlwsi.xml中,将新属性添加到与Mage_Customer wsdl.xmlwsi.xml
  3. 相同的节点中
  4. Magento将所有wsdl.xmlwsi.xml个文件合并在一起

答案 1 :(得分:0)

以下是我用于将customer_number添加到API的wsdl.xml文件的示例。

<?xml version="1.0" encoding="UTF-8"?>
<definitions xmlns:typens="urn:{{var wsdl.name}}" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns="http://schemas.xmlsoap.org/wsdl/"
name="{{var wsdl.name}}" targetNamespace="urn:{{var wsdl.name}}">
    <types>
        <schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="urn:Magento">
          <complexType name="customerCustomerEntity">
             <all>
               <element name="customer_number" type="xsd:string" minOccurs="0" />
             </all>
          </complexType>
       </schema>
    </types>
</definitions>