mikih57 Posted March 25, 2011 Share Posted March 25, 2011 Bonsoir, Je suis actuellement sur un projet qui se base intégralement sur le web services de la dernières version de PS (1.4) Cependant la version 1.4 (stable) contient de nombreux bug.Le premier bug est causé par la ligne 68 du fichier dispatcher.php$result = $class_name::getInstance()->fetch($key, $method, $_GET['url'], $params, $bad_class_name, $input_xml); qui lève une erreur, en effet il n'arrive pas à interpréter $class_name que j'ai du remplacer par WebserviceRequest pour avoir $result = WebserviceRequest::getInstance()->fetch($key, $method, $_GET['url'], $params, $bad_class_name, $input_xml);ce bug n'est pas vraiment gênant. Le plus embêtant est lorsque j'attaque l'URL de l'api permettant d'avoir le synopsis d'un item. par exemple : /prestashop1.4/api/categories?schema=synopsisCe qui retourne : Internal error Internal error Internal error Internal error Donc il est impossible de connaitre les champs nécessaire, ni la structure nu d'un item.L'internal erreur n'est pas sur tous les items puisque /prestashop1.4/api/customers?schema=synopsis fonctionne très bien.Y a t-il une manipulation à faire, ou un fix est il prévus ? Très bonne soirée et merci d'avance Mikael Link to comment Share on other sites More sharing options...
Lucas Cherifi Posted March 25, 2011 Share Posted March 25, 2011 Bonjour, Pour le premier point, c'est malheureusement un fix que nous avons fait dans l'urgence le jour de la release : cela fonctionne parfaitement en php 5.3 mais pas en 5.2. Ce point a été corrigé le lendemain de la release (version SVN). Et c'est depuis parfaitement fonctionnel avec php 5.2.Voici un bon tutoriel pour les interessés : http://wixiweb.fr/articles/utilisation-webservices-prestashop-1.4/Pour le second point c'est un comportement normal, bien que pas évident :Pour voir les erreurs en détail, il vous faut configurer la variable d'env. PHP 'display_error' à 'on' (voir premières lignes de config/config.inc.php). C'est une sécurité pour l'ensemble de vos boutiques.Lucas. Link to comment Share on other sites More sharing options...
mikih57 Posted March 25, 2011 Author Share Posted March 25, 2011 Merci de la réponse, Cependant meme en passant dispya_error a "on", j'obtiens : [php Notice #8] Undefined index: fields (/Applications/MAMP/htdocs/prestashop1.4/classes/WebserviceRequest.php, line 1308) [php Warning #2] Invalid argument supplied for foreach() (/Applications/MAMP/htdocs/prestashop1.4/classes/WebserviceRequest.php, line 1308) [php Notice #8] Undefined index: fields (/Applications/MAMP/htdocs/prestashop1.4/classes/WebserviceRequest.php, line 1308) [php Warning #2] Invalid argument supplied for foreach() (/Applications/MAMP/htdocs/prestashop1.4/classes/WebserviceRequest.php, line 1308) Après je ne sais pas si le fixe qu'il y a eu entre temps à corrigé ces problèmes je vérifie ça et vous tiens au courant Merci Beaucoup Mikael Link to comment Share on other sites More sharing options...
mikih57 Posted March 25, 2011 Author Share Posted March 25, 2011 Dans WebservicesRequest.php à la ligne il faut remplacer la ligne foreach ($this->_resourceConfiguration['associations'][$assocName]['fields'] as $fieldName => $fieldAttributes)par foreach ($this->_resourceConfiguration['associations'] as $fieldName => $fieldAttributes)en effet $this->_resourceConfiguration['associations'][$assocName]contient : Array ( [getter] => getProductsWs [resource] => product [setter] => setWsProducts ) le champs fields n'existe donc pas Link to comment Share on other sites More sharing options...
mikih57 Posted March 25, 2011 Author Share Posted March 25, 2011 Au passage, même avec la derniere version disponible sur le site l'exception T_PAAMAYIM_NEKUDOTAYIM est levéMikael Link to comment Share on other sites More sharing options...
mikih57 Posted March 25, 2011 Author Share Posted March 25, 2011 Encore une petit bug, toujours dans le fichier WebservicesRequest.php à la ligne 1218 if (array_key_exists('xlink_resource', $field) && $this->_schemaToDisplay != 'blank'){ if (!is_array($field['xlink_resource'])) $ret .= ' xlink:href="'.$this->_wsUrl.$field['xlink_resource'].'/'.($this->_schemaToDisplay != 'synopsis' ? $object->$key : '').'"'; else $ret .= ' xlink:href="'.$this->_wsUrl.$field['xlink_resource']['resourceName'].'/'.(isset($field['xlink_resource']['subResourceName']) ? $field['xlink_resource']['subResourceName'].'/'.$object->id.'/' : '').($this->_schemaToDisplay != 'synopsis' ? $object->$key : '').'"'; } Ce bout de code retourne une erreur : Trying to get property of non-objectCeci peut s'expliquer en regardant la déclaration de la function [code]private function getXmlFromEntity($object = null)[/code]Nous faisons donc un appel à des variables de classe : $object->id et $object->$key alors que l'objet n'existe pas (null), j'ai modifier le code pour que ça fonctionne mais c'est du bricolage [code]if (array_key_exists('xlink_resource', $field) && $this->_schemaToDisplay != 'blank'){ if (!is_array($field['xlink_resource'])) $ret .= ' xlink:href="'.$this->_wsUrl.$field['xlink_resource'].'/'.($this->_schemaToDisplay != 'synopsis' ? $object->$key : '').'"'; else{ /* * Ajout d'une condition, on vérifie que l'objet $objet n'est pas vide, si c'est le cas l'attribut xlink:href * prendra alors comme valeurs, l'URL de base pointant sur l'api */ if($object == null) $ret .= ' xlink:href="'.$this->_wsUrl.$field['xlink_resource']['resourceName'].'/'. (isset($field['xlink_resource']['subResourceName']) ? $field['xlink_resource']['subResourceName'].'/' : '').'"'; else $ret .= ' xlink:href="'.$this->_wsUrl.$field['xlink_resource']['resourceName'].'/'. (isset($field['xlink_resource']['subResourceName']) ? $field['xlink_resource'] ['subResourceName'].'/'.$object->id.'/' : '').($this->_schemaToDisplay != 'synopsis' ? $object->$key : '').'"'; }}[/code] Link to comment Share on other sites More sharing options...
Lucas Cherifi Posted March 28, 2011 Share Posted March 28, 2011 Bonjour,Avez-vous posté ce bug sur le bug tracker ? Si oui, pouvez-vous me préciser le lien.Merci d'avance, Link to comment Share on other sites More sharing options...
mikih57 Posted March 28, 2011 Author Share Posted March 28, 2011 Non il n'a pas été signalé, ni les deux autres que j'ai poster ce matin.Mikael Link to comment Share on other sites More sharing options...
Avid Posted April 11, 2011 Share Posted April 11, 2011 j'ai appliqué tous les correctifs énoncés dans ce threadnéanmoins j'ai toujours −−Internal errorpour info j'ai essayé sur une version de prestashop téléchargée et installé en tout début d'après midi Link to comment Share on other sites More sharing options...
mikih57 Posted April 11, 2011 Author Share Posted April 11, 2011 Bonsoir Pourrais tu passé le display_error a "On" dans le fichier confi/confi.inc.php de prestashop et me retourner l'erreur. Un membre de mon équipe à poster un message dans le forum anglais Je t'invite donc à faire également les modifications suivantes (Cf : voir lien) http://www.prestashop.com/forums/viewthread/101216/development/webserviceBonne soirée Mikael PS : N’hésite pas a me faire parvenir l'erreur même par PM, je verais si je peux t'aider Link to comment Share on other sites More sharing options...
Avid Posted April 20, 2011 Share Posted April 20, 2011 bonjour,le problème est que lorsque j'accède à /api/ il me demande ma clef d'authentification: ok. je la rentre. il me remet la boite pour m'identifier. je remet la clef dans le champ login. puis encore puis encore puis j'arrête j'en ai marrele message Internal server error devient alors−Authentication key is empty----------------------Version de Prestashop: 1.4.0.17Informations sur votre serveur: Linux #1 SMP Wed Mar 16 20:29:36 UTC 2011 i686Version du logiciel serveur: ApacheVersion de PHP: 5.2.4-2ubuntu5.14Version de MySQL: 5.0.51a-3ubuntu5.8-log Link to comment Share on other sites More sharing options...
jubianchi Posted April 21, 2011 Share Posted April 21, 2011 Bonjour à tous,Je m'introduit dans cette discussion afin de vous signaler un petit rapport de bug qui traite d'un problème semblable à celui de ce thread. Pour le consulter, suivez ce lien : http://forge.prestashop.com/browse/PSCFI-1392J'ai fais quelques recherches sur ces messages d'erreur qui apparaissent lorsque l'on demande les schemas "synopsis" et il semble qu'un bug se soit glisser dans la gestion des relations entre objets au niveau des web services.Je vous invite donc à consulter ce rapport et éventuellement les commentaires que j'ai posté ainsi que les petits correctifs. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now