14

I finally found the reason for the problem and the solution: The problem: SOAPv2 with WS-I does not use the single_data and multi_data attributes. Therefore the check in /app/code/core/Mage/Catalog/Model/Product/Api/V2.php in _prepareDataForSave fails. The method _prepareDataForSave checks for single_data and multi_data which are both not part of the SOAP-...


9

If you're using the SOAP Api try this: Create a basic custom module and ensure that has <Mage_Catalog/> as dependency Then add an api config file for overwrite the "category" complex types definitions: app/code/{pool}/{vendor}/{module}/etc/wsdl.xml And add this contents: <?xml version="1.0" encoding="UTF-8"?> <definitions xmlns:typens="...


8

Use the following code to avail all the images of a particular product. $product = Mage::getModel('catalog/product')->load(2); $base = $product->getImage(); $thumb = $product->getThumbnail(); $small = $product->getSmallImage(); foreach ($product->getMediaGalleryImages() as $image) { //will load all gallery images in loop //print_r($...


6

Unfortunately as far as I know you can't simply pass a limit to the SOAP API. One approach which would work if you don't need to filter the list by any attributes, want to get all attributes and have no missing entity_ids for products (i.e. you have never deleted a product). This is the approach to get bunches of x products based on the maximum entity_id ...


5

I got the answer by replacing this http://127.0.0.1/index.php/api/v2_soap/"; by http://machines Ip address/index.php/api/v2_soap/"; and I started to use V2 soap api. Its working fine.


5

SOAP server needs to be initialized with WSDL to understand how to process incoming requests (it basically loads WSDL from the specified URL in case of Magento). This happens in \Mage_Api_Model_Server_Adapter_Soap::_instantiateServer(): $this->_soap = new Zend_Soap_Server( $this->getWsdlUrl(array("wsdl" => 1)), array('encoding' => $...


4

I've tested your for WS-I compliance disabled and here are the results. The wsdl is correct and it (almost) works. First change this in your config.xml. <helpers> <syncreports> <class>Mycompany_Syncreports_Helper</class> </syncreports> </helpers> To this: <helpers> &...


4

Formally, you can pass to complex filter any field from sales/order_invoice model and this field will take part in the filtering. Magento passes your complex filter to \Mage_Sales_Model_Order_Invoice_Api::items. This method inits an invoices collection: $invoiceCollection = Mage::getResourceModel('sales/order_invoice_collection'); and then iterates over ...


4

It is pity, but there is no drop-in solution to make Magento SOAP API faster. API is slow not only on Magento side but also on the client side, as WSDL size is incredibly huge for loading into memory and creating all necessary objects to work with it. Depending on your API usage you might consider the following: Avoid using API at all and switch to ...


4

You can get products all images by following script including images that are excluded: $product->getMediaGalleryImages('images') $product should be an instance of Mage_Catalog_Model_Product


4

Problem is when you pass session to get customer list $result = $cli->customerCustomerList($session_id); Now change to following code: <?php $api_url_v2 = "https://ninobambino.in/index.php/api/v2_soap/?wsdl"; $username = 'test123'; $password = 'test123'; $cli = new SoapClient($api_url_v2); //retreive session id from login //$session_id = $cli->login($...


3

In your config.xml: <adminhtml> <events> <sales_order_collection_load_after> <observers> <mycompany_mymodule> <type>singleton</type> <model>mycompany_mymodule/observer</model> <method>...


3

All the SOAP cals go through the method Mage_Api_Model_Server_Adapter_Soap::run there is an if-else statement in there. The if branch generates the WSDL, you don't need to log that. On the else branch you get the response as XML from the line $this->_soap->handle(). Log that response. For the xmlrpc calls everything passes through ...


3

Thanks to the help of SoapUI, I found the following request format would work using PHP SoapClient: $request = [ 'sessionId' => $session, 'filters' => [ 'filter' => [ [ 'key' => 'status', 'value' => 'pending' ] ] ] ]; XML ...


3

As mentioned in the comments above: The right URL to use with SOAPv2 API is: http://localhost/magento/index.php/api/v2_soap?wsdl=1 (with or without index.php) Further information on the SOAP API usage can be found in the Magento SOAP API introduction: http://magentocommerce.com/api/soap/introduction.html


3

First,You need to check available shipping methods for current cart/Quote using Soap api function shoppingCartShippingList().See at link .If you have multiple store view/stores /websites then you need to send store id/code as it parmas. Just like: $result = $proxy->shoppingCartShippingList($sessionId, 10,'default'); In order to get shipping methods ...


3

It seems your URL is wrong. It should be https://www.ourshop.com/shop/index.php/api/v2_soap/?wsdl=1 instead of https://www.ourshop.com/shop/index.php/api/v2_soap/index/


3

The Magento 1 soap server attempts to address itself by domain name. If you look in the apache access logs you should be seeing errors when attempting to test the soap connection like this. This can be seen in Mage_Api_Model_Server_Adapter_Soap::_instantiateServer where it has a bit of code like: try { $this->_soap = new Zend_Soap_Server($this->...


3

Below Variable returns you array of all media images with respect to that product id. $images = Mage::getModel('catalog/product')->load($item->product_id)->getMediaGalleryImages();


3

You have to write the SOAP API, like below. <?php require('vendor/zendframework/zend-server/src/Client.php'); require('vendor/zendframework/zend-soap/src/Client.php'); require('vendor/zendframework/zend-soap/src/Client/Common.php'); $token = 'seguq0wb13s495lip1j3p8ms3iledcnd'; // Use your Access Token $wsdlUrl = 'http://YourMagentoRoot/soap/default?...


2

This errors comes from here: \Mage_Api_Model_Server::initialize You are using the rest adapter, which is defined in app/code/core/Mage/Api/etc/api.xml <adapters> <soap> <model>api/server_adapter_soap</model> <handler>default</handler> <active>1</active> ...


2

The problem in the end was how we had setup the admin domain. We had configured it through ngnix to use the 'admin' store code. Fix was to change the ngnix configuration so if a request to the api route was made, it would not set the store code to admin


2

Having looked at it in some depth, I think this is simply not implemented in the Magento code and therefore the API would have to be extended for grouped products to work properly Because I have found other concerns around soap - what I really needed is a front end solution - I am now writing a module that will "service" a javascript/ajax front end module (...


2

API V2 queries use a "complex filter" for advanced queries. Their syntax is a bit different. Here's a complex filter query for your sample: $filter = array( array( 'complex_filter' => array( array( 'key' => 'sku', 'value' => array('key' => 'nin', 'value' => '1,2,3') ) ) ) ); $productList = $client-&...


2

If your element is a product attribute, Magento is ready to handle with the Soap API. The catalogProductCreate method has additional_attributes parameter. You can use it to set one or more values to your attribute using single_data or multi_data. Example: Add a manufacturer info $newProduct->name = "product name"; $newProduct->description = "...


2

you can try the following: Session SQL: INSERT INTO core_config_data(path, value) VALUES ('web/cookie/cookie_lifetime', 86400) ON DUPLICATE KEY UPDATE value = 86400; or manual: System -> Configuration General > Web Session Cookie management Cookie Lifetime: 86400 API SQL: INSERT INTO core_config_data(path, value) VALUES ('api/config/session_timeout', ...


2

I was experiencing the same issue. I did install the orocrm bridge which needs to access the soap api, followed the given steps to configure a soap role and a user and then I tried to connect: 💥 After digging in the logs, I did notice this error: [2017-07-03 16:57:46] app.CRITICAL: MageCheck error: 0: [message] SOAP-ERROR: Parsing WSDL: ...


2

None of Magento APIs provide access to "full" product. Using REST API would be easier so go for it if it does not matter. Your application needs to authenticate as an admin user (not customer), see example here. Here are APIs that you need with examples (note that SKU should work as well as product ID in :productId place-holder below: Product by SKU: GET ...


2

$this->_fault() throws a Mage_Api_Exception exception. Because this is within your try..catch block, you catch this Mage_Api_Exception with catch (Exception $ex) where you throw a different Mage_Api_Exception with the same message but the data_invalid key. What you want to do instead is only catch exceptions which are not of the Mage_Api_Exception type. ...


2

No, This type of soap api is not available in default magento. if you require, then create a custom API. Please follow the step given in below link. http://www.magentocommerce.com/api/soap/create_your_own_api.html


Only top voted, non community-wiki answers of a minimum length are eligible