2013-09-19 1 views
0

Я собираюсь использовать веб-сервис Prestashop 1.5.4, чтобы получить все продукты с их атрибутами, такими как описание, имя и т. Д. Моя проблема - всякий раз, когда я вызываю веб-сервис, он возвращает мне только продукты Ids. Как я могу получить атрибуты?Получение продуктов и их атрибутов от prestashop webservice

Отредактировано:

код:

class ShopApi 
{ 
    public $client; 

    public function __construct() 
    { 
     $this->getClient(); 
    } 

    public function getClient() 
    { 
     try { 
      // creating web service access 
      $this->client = new PrestaShopWebservice('http://wikibazaar.ir/', 'A38L095W0RHRXE8PM9CM01CZW7KIU4PX', false); 
     } catch (PrestaShopWebserviceException $ex) { 
      // Shows a message related to the error 
      echo 'error: <br />' . $ex->getMessage(); 
     } 
    } 
} 

class ProductApi extends ShopApi 
{ 
    public function findAll() 
    { 
     $products = array(); 
     /// The key-value array 
     $opt['resource'] = 'products'; 
     $opt['display'] = '[description]'; 
     $opt['limit'] = 1; 
     $xml = $this->client->get($opt); 
     $resources = $xml->products->children(); 
     foreach ($resources as $resource) 
      $products[] = $resource->attributes(); 
     return $products; 
    } 
} 

EDIT:
Я обнаружил, что ответ от веб-сервиса в порядке. но во время разбора xml возникает проблема с функцией simplexml_load_string(). Есть идеи? это $ продукт var_dump:

SimpleXMLElement#1 ([products] => SimpleXMLElement#2 ([product] => SimpleXMLElement#3 ([description] => SimpleXMLElement#4 ([language] => SimpleXMLElement#5 ([@attributes] => array ('id' => '1')))))) 
+0

ваш звонок что-то вроде 'yoursite.com/API /' продуктов? – lelloman

+0

Я отредактировал свой вопрос и поместил свои коды. да, это URL, который я использую. – hamedkh

+0

ouh Я думал, что вы вызываете веб-сервис извне, это будет yoursite.com/api/products?display=full, или yoursite.com/api/products?display=[id.name] для отображения только идентификаторов и имен, надеюсь, что он может помочь ^^ – lelloman

ответ

4

Я думаю, что $opt['display'] = 'full'; бы сделать работу Вы также можете выбрать только некоторые конкретные атрибуты, например,

$opt['display'] = '[id,name]'; 

Посмотрите на official documentation, вы могли бы найти это интересно

+0

он работает в некоторой степени, когда я устанавливаю display [description], он возвращает атрибут описания, но есть элемент языка int it со значением one. – hamedkh

+0

@hamedkh извините, я не понял момент – lelloman

+0

Я имею в виду описание return 1 – hamedkh

Смежные вопросы