i'm new at magento api and need some help...
when i want to call connectorSyncMultiUpdateProduct(...) i'll get this Error:
Fatal error: Uncaught SoapFault exception: [SOAP-ENV:Server] Procedure 'connectorSyncMultiUpdateProduct' not present in test_connect.php
test_connect.php
$api_v2_18 = 'http://localhost/emalo_mag/index.php/api/v2_soap?wsdl=1
$apiuser_18 = 'magento';
$apikey_18 = 'magento';
$client = new SoapClient( $api_v2_18, $options );
$sessionId = $client->login( $apiuser_18, $apikey_18 );
$result = $client->connectorSyncMultiUpdateProduct($sessionId, array("2", "3"), array("1", "2"));
My Structure
MyCompany
-- Connector
- Block
- etc
- adminhtml.xml
- api.xml
- config.xml
- system.xml
- wsdl.xml
- wsi.xml
- Helper
- Data.php
- Model
- Catalog
- ...
- Resource
- ...
- Sync
- Api
- V2.php
- Api.php
api.xml
<?xml version="1.0"?>
<config>
<api>
<resources>
<connector_sync translate="title" module="connector">
<model>MyCompany_Connector_Model_Sync_Api</model>
<title>MyCompany Product API</title>
<acl>connector/sync</acl>
<methods>
<multiUpdateProduct translate="title" module="connector">
<title>Multi Update</title>
<acl>connector/sync/multiUpdateProduct</acl>
<method>multiUpdateProduct</method>
</multiUpdateProduct>
</methods>
</connector_sync>
</resources>
<resources_alias>
<sync>connector_sync</sync>
</resources_alias>
<v2>
<resources_function_prefix>
<sync>connectorSync</sync>
</resources_function_prefix>
</v2>
<acl>
<resources>
<connector translate="title" module="connector">
<title>Connector</title>
<sync translate="title" module="connector">
<title>Sync</title>
<sort_order>110</sort_order>
<multiUpdateProduct translate="title" module="connector">
<title>MultiUpdateProduct</title>
</multiUpdateProduct>
</sync>
</connector>
</resources>
</acl>
</api>
</config>
config.xml
<?xml version="1.0" encoding="UTF-8"?>
<config>
<modules>
<myCompany_connector>
<version>0.1.0</version>
</myCompany_connector>
</modules>
<global>
<helpers>
<myCompany_connector>
<class>MyCompany_connector_Helper</class>
</myCompany_connector>
</helpers>
<models>
<myCompany_connector>
<class>MyCompany_connector_Model</class>
</myCompany_connector>
<catalog>
<rewrite>
<product_api>MyCompany_connector_Model_Catalog_Product_Api</product_api>
<product_api_v2>MyCompany_connector_Model_Catalog_Product_Api_V2</product_api_v2>
</rewrite>
</catalog>
</models>
<blocks>
<myCompany_connector>
<class>MyCompany_connector_Block</class>
</myCompany_connector>
<adminhtml>
<rewrite>
<sales_order_grid>MyCompany_connector_Block_Adminhtml_Sales_Order_Grid</sales_order_grid>
</rewrite>
</adminhtml>
</blocks>
<events>
<catalog_product_save_after>
<observers>
<myCompany_connector_observer>
<type>singleton</type>
<class>MyCompany_connector_Model_Observer</class>
<method>logUpdate</method>
</myCompany_connector_observer>
</observers>
</catalog_product_save_after>
<admin_system_config_changed_section_MyCompany_options>
<observers>
<MyCompanyconnector>
<class>MyCompany_connector_Model_Observer</class>
<method>validateAdminLicense</method>
<type>singleton</type>
</MyCompanyconnector>
</observers>
</admin_system_config_changed_section_MyCompany_options>
<sales_order_save_after>
<observers>
<MyCompanyconnector>
<type>singleton</type>
<class>MyCompany_connector_Model_Observer</class>
<method>onSalesOrderSaveAfter</method>
</MyCompanyconnector>
</observers>
</sales_order_save_after>
</events>
</global>
<default>
<myCompany_connector>
<config>
<MyCompanyCategoriesSeparator><![CDATA[//]]></MyCompanyCategoriesSeparator>
</config>
</myCompany_connector>
</default>
</config>
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 = "catalogProductCreateEntity">
<all>
<element name = "associated_skus" type = "typens:ArrayOfString" minOccurs = "0"/>
<element name = "configurable_attributes" type = "typens:ArrayOfString" minOccurs = "0"/>
<element name = "price_changes" type = "typens:associativeArray" minOccurs = "0"/>
</all>
</complexType>
<complexType name = "catalogProductCreateEntityArray">
<complexContent>
<restriction base = "soapenc:Array">
<attribute ref = "soapenc:arrayType" wsdl:arrayType = "typens:catalogProductCreateEntity[]"/>
</restriction>
</complexContent>
</complexType>
</schema>
</types>
<binding name="{{var wsdl.handler}}Binding" type="typens:{{var wsdl.handler}}PortType">
<soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http" />
<!--BEGIN CUSTOMER BINDINGS -->
<operation name="connectorSyncMultiUpdateProduct18">
<soap:operation soapAction="urn:{{var wsdl.handler}}Action" />
<input>
<soap:body namespace="urn:{{var wsdl.name}}" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
</input>
<output>
<soap:body namespace="urn:{{var wsdl.name}}" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
</output>
</operation>
<!--END CUSTOMER BINDINGS -->
</binding>
<!-- END BINDINGS -->
<portType name = "{{var wsdl.handler}}PortType">
<operation name = "connectorSyncMultiUpdateProduct18">
<documentation>Remove all product assignments from a category</documentation>
<input message = "typens:connectorSyncMultiUpdateProduct18Request"/>
<output message = "typens:connectorSyncMultiUpdateProduct18Response"/>
</operation>
</portType>
<!-- END PORTTYPE -->
<message name = "connectorSyncMultiUpdateProduct18Request">
<part name = "sessionId" type = "xsd:string"/>
<part name = "productIds" type = "typens:ArrayOfString"/>
<part name = "productData" type = "typens:catalogProductCreateEntityArray"/>
<part name = "store" type = "xsd:string"/>
<part name = "identifierType" type = "xsd:string"/>
</message>
<message name = "connectorSyncMultiUpdateProduct18Response">
<part name = "result" type = "xsd:boolean"/>
</message>
</definitions>
wsi.xml
<?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="complexMultiFilter">
<xsd:sequence>
<xsd:element name="key" type="xsd:string" />
<xsd:element name="value" type="typens:associativeArray" />
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="complexMultiArray">
<xsd:sequence>
<xsd:element minOccurs="0" maxOccurs="unbounded" name="complexObjectArray" type="typens:complexMultiFilter" />
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="catalogProductCreateEntity">
<xsd:sequence>
<xsd:element name="associated_skus" type="typens:ArrayOfString" minOccurs="0" />
<xsd:element name="configurable_attributes" type="typens:ArrayOfString" minOccurs="0" />
<xsd:element name="price_changes" type="typens:complexMultiArray" minOccurs="0" />
</xsd:sequence>
</xsd:complexType>
</xsd:schema>
</wsdl:types>
<wsdl:message name="connectorSyncMultiUpdateProduct18Request">
<wsdl:part name="sessionId" type="xsd:string" />
<wsdl:part name="productIds" type="typens:ArrayOfString" />
<wsdl:part name="productData" type="typens:catalogProductCreateEntityArray" />
<wsdl:part name="store" type="xsd:string" />
<wsdl:part name="identifierType" type="xsd:string" />
</wsdl:message>
<wsdl:message name="connectorSyncMultiUpdateProduct18Response">
<wsdl:part name="result" type="xsd:boolean" />
</wsdl:message>
<wsdl:portType name="{{var wsdl.handler}}PortType">
<wsdl:operation name="connectorSyncMultiUpdateProduct18">
<wsdl:documentation>Retrieve customer groups</wsdl:documentation>
<wsdl:input message="typens:mapy_customerGroupListRequest" />
<wsdl:output message="typens:mapy_customerGroupListResponse" />
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="{{var wsdl.handler}}Binding" type="typens:{{var wsdl.handler}}PortType">
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" />
<wsdl:operation name="connectorSyncMultiUpdateProduct18">
<soap:operation soapAction=""/>
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
</wsdl:definitions>
MyCompany/Connector/Model/Sync/Api.php
<?php
class MyCompany_Connector_Model_Sync_Api extends Mage_Api_Model_Resource_Abstract {
public function multiUpdateProduct($productIds, $productData, $store = null, $identifierType = null)
{
return true;
}
}
MyCompany/Connector/Model/Sync/Api/V2.php
<?php
class MyCompany_Connector_Model_Sync_Api_V2 extends MyCompany_Connector_Model_Sync_Api {
public function multiUpdateProduct($productIds, $productData, $store = null, $identifierType = null)
{
return true;
}
}
I'll hope that anyone can help me...
Thanks in advance :)