2011-11-15 8 views
7

Sto provando a seguire un tutorial sul collegamento all'API di Magento con Soap, ma sono già bloccato? SOAP sembra essere installato sul mio server poiché posso navigare su? Wsld e visualizza un file xml.Connessione all'API di Magento con SOAP

Ho impostato l'utente e il ruolo nei servizi web di amministrazione magento.

Sono confuso da 2 cose nel tutorial

  1. scelta di un client SOAP, In questo tutorial ci assumeremo l'utilizzo del PHP SoapClient. cos'è questo dove lo trovo?
  2. Logging con il client SOAP

"Quindi cerchiamo di creare un semplice script PHP che ci permette di effettuare il login nel Magento tramite SOAP. La logica è qui che abbiamo prima bisogno di inizializzare un nuovo oggetto SoapClient con come argomento l'URL SOAP Magento. "

// 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); 

Dove si fa a creare questo script - è un semplice file php? e in che modo effettui la chiamata: ti limiti ad accedervi?

http://blog.opensourcenetwork.eu/tutorials/guru/connecting-through-soap-with-magento-1

Molte grazie in anticipo

risposta

12

Mettete questo in un nuovo file vuoto. Salva questo come name.php und eseguire questo è nel vostro 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(); 
     } 
?> 

saluti Boti

+0

scusate per il ritardo nel relsplying, quindi devo semplicemente aprire questo file nel mio browser? eseguire wamp server 2.1 con Php_soap ext abilitato ho bisogno di qualcosa per eseguire lo script? Molte grazie – Ledgemonkey

+1

sì solo eseguire questo script nel browser. ;) È necessario aggiungere un utente e un ruolo Webserver nel back-end Magento. Quindi lo script dovrebbe funzionare :) – boti

+0

È anche possibile eseguire questi script SOAP PHP dalla riga di comando ad es. php name.php. Questo è utile quando si esegue il test in quanto non è necessario riportare tutto in HTML. – Pete855217

1

Essi si riferiscono alla funzionalità di client SOAP standard PHP (a condizione, non riesco a leggere il link che hai postato, ma sto assumendo che sia) . Date un'occhiata qui per maggiori: http://php.net/manual/en/class.soapclient.php

+0

molte grazie, ho bisogno di installarlo, come si integra con la connessione all'API di Magento? – Ledgemonkey

3
  1. Sì, i Soap Client i documenti si riferiscono a è il costruito in PHP SoapClient oggetto. Ci sono una pletora di clienti di sapone scritti in una pletora di lingue diverse. SOAP, come protocollo, è indipendente dalla lingua e dalla piattaforma. (anche se le singole lingue/piattaforme tendono ad avere le loro stranezze). Magento fornisce un server Soap, che può interagire con un client. Questa è l'architettura client/server.

  2. Si chiama questo script come si desidera. È possibile caricare in una singola pagina web, è possibile eseguirlo dalla riga di comando $ php script.php, si può mettere in un include file, è possibile inserirlo nel file di classe di un altro quadro, ecc

+0

grazie, quindi devo fare qualcosa con questo client di sapone, devo caricare non sono sicuro di come si adatta? Ho scritto uno script.php - ho incluso il codice esatto nella domanda. Tutto quello che torno indietro se lo trovo nel browser è il codice meno la prima riga grazie ancora PS uso il layoutviewer tutto il tempo! – Ledgemonkey

+0

non può modificare la domanda! ecco il codice che sto usando nel file di script login ('soap-user', 'greeneyed'); $ customerinfo = $ proxy-> customerInfo ($ sessionId, 1); \t print_r ($ customerinfo); – Ledgemonkey

+0

@Ledgemonkey sembra che il tuo server web non sia configurato per l'esecuzione di script PHP. Potresti voler trovare un veloce primer PHP prima di utilizzare qualcosa come l'API SOAP. –

3

questo ha aiutato un sacco, grazie

risposto 16 novembre '11 a 07:26 Boti

Si inserisce questo in un nuovo file vuoto. Salva questo come nome.php und eseguire questo è nel vostro 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(); 
    } 
?> 

Ciao a tutti,

La soluzione è:

da Magento pannello di amministrazione ...

System -> Configuration -> Web -> Url Options -> Add Store Code to Urls = NO 

E !!!!

Auto-redirect to Base URL = NO 

quindi aggiungere utente

System -> Web Services-> Users 

Fare un utente da utilizzare con il soapclient

poi fare un ruolo da

System -> Web Services -> Roles 

Allegare tutte le risorse se si vuole farlo per di qua.

Questo è importante! aggiungere questo ruolo per l'utente che hai appena creato

anche fare in modo che php.ini da

;extension=php_soap.dll 

a

extension=php_soap.dll 

Quindi è possibile connettersi con questo utente io uso questo codice

$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> 

ottenere il link del nostro server con link qui sotto e salvare come magentoV2.wsdl

http://localhost/index.php/api/v2_soap?wsdl 

Spero che questo aiuterà gli altri perché ho un perso mezza giornata per capire questo semplice cose perché ci sono stati nessuna informazione di dettaglio sufficiente su un posto.

HR

0

Secondo la vostra domanda lo farò Tel È semplici passaggi, seguire quei passi allora si wii risultato get come abbiamo bisogno. 1. Accedere al pannello di amministrazione di Magento, quindi selezionare system-->webservices-->SOAP RPC Roles create SOAP RPC roles 2. Passare a system-->webservices-->SOAP RPC users creare la mappa utente RPC SOAP con questo utente. 3. Creare un nome file PHP come magentoapi.php all'interno di xampp-->htdocs-->folder(project name). 4. Qui vi sto dando un esempio, come ottenere informazioni sui clienti. 5.Aprire magentoapi.php file di creare un nome della funzione come customerInfo

Di seguito si riporta il codice:

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(); 
     } 
    } 

Qui, $api_url è il tuo negozio url, $api_user = nome utente api, la password $api_pwd = api passare questo valore la funzione customerInfo. Noi ottenere informazioni complete su un determinato cliente

Fare stessa cosa per tutte le funzioni Ecco l'URL di riferimento API http://devdocs.magento.com/guides/m1x/api/soap/customer/customer.list.html

Infine eseguire il seguente URL nel browser che si ottengono risultati

http://localhost/yourprojectname/magentoapi.php?functionName=customerLogout&store_url=http://127.0.0.1/magento19&api_username=magento&api_key=123456