Question

Comme par l'API SOAP besoin de nous voulons à la rue dans la rue 1 délimitent et rue 2 champs pour résultat.

Je écrasent les méthodes de d'information de classe Mage_Sales_Model_Order_Api

    public function info($orderIncrementId)
    {

        $result = parent::info($orderIncrementId);
        $order = $this->_initOrder($orderIncrementId);

        $streetLines = $order->getBillingAddress()->getStreet();
       // unset($result['billing_address']['street']);
        foreach ($streetLines as $i=>$line) {
            $result['billing_address']['address_street'.($i+1)] = $line; 
        }  

        $streetLines1 = $order->getShippingAddress()->getStreet();
       // unset($result['shipping_address']['street']);
        foreach ($streetLines1 as $i=>$line) {
            $result['shipping_address']['address_street'.($i+1)] = $line; 
        }

        return $result;
    }

Et aussi ajouté ci-dessous le code dans wsdl.xml du module personnalisé dans locale

<?xml version="1.0" encoding="UTF-8"?>
<definitions>
    <types>
        <schema> 
              <complexType name="salesOrderAddressEntity">
                <all> 
                     <element name="address_street1" type="xsd:string" minOccurs="0" />
                     <element name="address_street2" type="xsd:string" minOccurs="0" />
                </all>
            </complexType>
            </schema>
        </types>
</definitions>

En outre ci-dessous code wsi.xml dans le module personnalisé

<?xml version="1.0" encoding="UTF-8"?>
<wsdl: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/"
             name="{{var wsdl.name}}"
             targetNamespace="urn:{{var wsdl.name}}">
        <wsdl:types>
            <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="urn:{{var wsdl.name}}">
                  <xsd:complexType name="salesOrderAddressEntity">
                    <xsd:sequence> 
                          <xsd:element name="address_street1" type="xsd:string" minOccurs="0" />
                      <xsd:element name="address_street2" type="xsd:string" minOccurs="0" />
                    </xsd:sequence>
                </xsd:complexType>
                </xsd:schema>
        </wsdl:types>
 </wsdl:definitions>

Voici le code dans api2.xml:

<?xml version="1.0"?>
<config>
    <api2>  
      <resources>
            <order translate="title" module="api2">
                <attributes   module="api2">
                  <order_type>Order Type</order_type>
                </attributes>
            </order>
             <order_address translate="title" module="api2">
                <attributes translate=" address_street1 address_street2 "   module="api2"> 
                     <address_street1>Street1</address_street1>
                 <address_street2>Street2</address_street2> 
                </attributes> 
             </order_address>
        </resources>
   </api2>
</config>

est tout ce que je dois modifier pour montrer que la rue et street1 street2 dans le résultat de la méthode API salesOrderInfo?

Si j'imprimer $ résultat dans info (), il montre street1 et les valeurs de champ street2 dans shipping_address et tableau billing_address, mais quand j'imprimer une réponse API SOAP alors il ne montre pas la valeur de ce.

Était-ce utile?

La solution

Selon la description ci-dessus tout d'un coup, il fonctionne bien. Maintenant, il montre address_street1 & address_street2 en réponse de la méthode SalesOrderInfo Savon Api.

Je pense qu'il était question Caching.

Licencié sous: CC-BY-SA avec attribution
Non affilié à magento.stackexchange
scroll top