I'm trying to follow a tutorail on connecting to magento API with Soap, but am stuck already ? SOAP seems to be installed on my sever as i can browse to the ?wsld and it displays an xml file.
I've setup the user and role in magento admin webservices.
i'm confused by 2 things in the tutorial
- choosing a soap client, In this tutorial we will assume the usage of the PHP SoapClient. what is this where do i find it ?
- Logging with the SOAP client
"So let's create a simple PHP-script that allows us to login into Magento through SOAP. The logic is here that we first need to initialize a new SoapClient object with as argument the Magento SOAP URL."
// Magento login information
$mage_url = 'http://MAGENTO/api/?wsdl';
$mage_user = 'soap_user';
$mage_api_key = '********';
// Initialize the SOAP client
$soap = new SoapClient( $mage_url );
// Login to Magento
$session_id = $soap->login( $mage_user, $mage_api_key );
Where do you create this script - is it a simple php file ? and how do you actualy make the call - do you just browse to it ?
http://blog.opensourcenetwork.eu/tutorials/guru/connecting-through-soap-with-magento-1
Many thanks in advance
You put this into a new blank file. Save this as name.php und run this is on your server:
<?php
$host = "127.0.0.1/magento/index.php"; //our online shop url
$client = new SoapClient("http://".$host."/api/soap/?wsdl"); //soap handle
$apiuser= "user"; //webservice user login
$apikey = "key"; //webservice user pass
$action = "sales_order.list"; //an action to call later (loading Sales Order List)
try {
$sess_id= $client->login($apiuser, $apikey); //we do login
print_r($client->call($sess_id, $action));
}
catch (Exception $e) { //while an error has occured
echo "==> Error: ".$e->getMessage(); //we print this
exit();
}
?>
Regards boti
this helped alot thanks
answered Nov 16 '11 at 7:26 boti
You put this into a new blank file. Save this as name.php und run this is on your server:
<?php
$host = "127.0.0.1/magento/index.php"; //our online shop url
$client = new SoapClient("http://".$host."/api/soap/?wsdl"); //soap handle
$apiuser= "user"; //webservice user login
$apikey = "key"; //webservice user pass
$action = "sales_order.list"; //an action to call later (loading Sales Order List)
try {
$sess_id= $client->login($apiuser, $apikey); //we do login
print_r($client->call($sess_id, $action));
}
catch (Exception $e) { //while an error has occured
echo "==> Error: ".$e->getMessage(); //we print this
exit();
}
?>
HI All,
The solution is :
from Magento Admin Panel...
System -> Configuration -> Web -> Url Options -> Add Store Code to Urls = NO
AND !!!!
Auto-redirect to Base URL = NO
Then Add user from
System -> Web Services-> Users
Make a user to use with the soapclient
Then make a role from
System -> Web Services -> Roles
Attach all resources if you want do it this way.
This is important ! add this role to the user you’ve just created
Also Make sure that PHP.ini from
;extension=php_soap.dll
to
extension=php_soap.dll
Then you can connect with this user I use this code
$proxy = new SoapClient(’http://localhost/api/soap/?wsdl’,array(
$apiuser = "user",
$apikey = "key"));
download soapui from forgesource
http://sourceforge.net/projects/soapui/?source=directory
<soapenv:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:Magento">
<soapenv:Header/>
<soapenv:Body>
<urn:login soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<username xsi:type="xsd:string">username</username>
<apiKey xsi:type="xsd:string">password</apiKey>
</urn:login>
</soapenv:Body>
</soapenv:Envelope>
Get the link of our server with link below and save as magentoV2.wsdl
http://localhost/index.php/api/v2_soap?wsdl
I hope this will help others because I a lost half a day to understand this simple things because there were no enough detail information on one place.
HR
They are referring to the standard SOAP client functionality of PHP(provided, i can't read the link you posted, but I'm assuming it is). Have a look here for more: http://php.net/manual/en/class.soapclient.php
As per your question i will tel you simple steps, follow those steps then you wii get result as we require.
1. Login to Magento admin panel then navigate to system-->webservices-->SOAP RPC Roles create SOAP RPC roles
2. Navigate to system-->webservices-->SOAP RPC users
create SOAP RPC user map this user with roles.
3. Create one PHP file name it as magentoapi.php
inside xampp-->htdocs-->folder(project name)
.
4. Here I am giving you one example, how to get customer Info.
5. Open magentoapi.php
file create one function name it as customerInfo
Below is the code:
function customerInfo($api_url, $api_user, $api_pwd) {
$websites = '' . $api_url . "/index.php/api/soap/?wsdl";
try {
$client = new SoapClient($websites);
$session = $client->login($api_user, $api_pwd);
$result = $client->call($session, 'customer.info', '1');
print_r($result);
} catch (\SoapFault $e) {
echo $e->getMessage();
}
}
Here,
$api_url
is your store url,$api_user
= api user name, $api_pwd
= api password
pass this value to the customerInfo
function. We will get complete information about a particular customer
Do same thing for all functions
Here is the API reference URL http://devdocs.magento.com/guides/m1x/api/soap/customer/customer.list.html
Finally run the below URL in browser you will get results
http://localhost/yourprojectname/magentoapi.php?functionName=customerLogout&store_url=http://127.0.0.1/magento19&api_username=magento&api_key=123456