Connecting to Magento API with SOAP

前端 未结 5 2026
悲&欢浪女
悲&欢浪女 2021-01-12 09:45

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 di

相关标签:
5条回答
  • 2021-01-12 10:04

    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

    0 讨论(0)
  • 2021-01-12 10:07

    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

    0 讨论(0)
  • 2021-01-12 10:11
    1. Yes, the Soap Client the documents refer to is the built in PHP SoapClient object. There are a plethora of soap client's written in a plethora of different languages. SOAP, as a protocol, is language/platform independent. (although individual languages/platforms tend to have their own quirks). Magento provides a Soap Server, which can interacted with via a client. This is client/server architecture.

    2. You call this script however you want. You can load it in an individual web page, you can run it from the command line $ php script.php, you can put it in an include files, you can place it in another framework's class files, etc.

    0 讨论(0)
  • 2021-01-12 10:16

    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

    0 讨论(0)
  • 2021-01-12 10:22

    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

    0 讨论(0)
提交回复
热议问题