Jump to content

Problema con WebService para creación de categorías: "Category->name está vacio"


Recommended Posts

Estiamdos compañeros

Desde hace varios días vengo lidiando con un error que no soy capaz de solucionar. Y es a la hora de usar el webservice para la creación de categorias.

Estoy usando la libreria PSWebServiceLibrary.php y customizado el ejemplo para creación de Productos pero en mi caso para la creación de categorías...

La respuesta que obtengo es que "El campo Category->name está vacio" ... cuando no lo esta... Si bien tengo que menccionar que eliminé todos los idiomas de mi instalacion quedando sólo uno... y que el schema=blank indica que para el campo <name> debería ir esto:

<name><language id="1"></language></name>

Hasta este punto, he leido por ahí que el campo name, como el link_rewrite, requiere que sea un Array por el tema de los idiomas, pero no consigo dar con el "chorizo" adecuado para poder completar la tarea con éxito...

Este es el ejemplo del error, y es lo que general el código de ejemplo; obteniendo el schema=blank y rellerandolo a continuación, pero no pide campos para el lenguage=1 del name o.O:

XML SENT
<?xml version="1.0" encoding="UTF-8"?>
<prestashop xmlns:xlink="http://www.w3.org/1999/xlink">
<category>
	<id_parent></id_parent>
	<active>1</active>
	<id_shop_default>1</id_shop_default>
	<is_root_category>0</is_root_category>
	<position></position>
	<name>asdfdasf</name>
	<link_rewrite>asdfa</link_rewrite>
	<description>sdvaf</description>
	<meta_title>sfdvsdfg</meta_title>
	<meta_description>awfawef</meta_description>
	<meta_keywords></meta_keywords>
<associations></associations>
</category>
</prestashop>
RETURN HTTP BODY
<?xml version="1.0" encoding="UTF-8"?>
<prestashop xmlns:xlink="http://www.w3.org/1999/xlink">
<errors>
<error>
<code><![CDATA[84]]></code>
<message><![CDATA[Validation error: "La propiedad Category->name está vacía."]]></message>
</error>
</errors>
</prestashop>

 

¿Alguna ayudita de como habría que formar el chorizo para el campo <name></name>?

Lo más obvio sería <language id="1">valor para el campo</language> ... pero el input para el name me capa los caracteres especiales, tirandome otro tipo de error:

 

XML SENT
<?xml version="1.0" encoding="UTF-8"?>
<prestashop xmlns:xlink="http://www.w3.org/1999/xlink">
<category>	
	<id_parent></id_parent>
	<active>0</active>
	<id_shop_default>0</id_shop_default>
	<is_root_category>0</is_root_category>
	<position></position>	
	<name>&lt;language id="1"&gt;adsf&lt;/language&gt;</name>
	<link_rewrite>asdfa</link_rewrite>
	<description>sdvaf</description>
	<meta_title>sfdvsdfg</meta_title>
	<meta_description>awfawef</meta_description>
	<meta_keywords></meta_keywords>
<associations></associations>
</category>
</prestashop>
RETURN HTTP BODY
<?xml version="1.0" encoding="UTF-8"?>
<prestashop xmlns:xlink="http://www.w3.org/1999/xlink">
<errors>
<error>
<code><![CDATA[84]]></code>
<message><![CDATA[Validation error: "La propiedad Category->name no es válida"]]></message>
</error>
</errors>
</prestashop>

 

¿Como podría volver a convertir los caractesres escapados ( &lt;  por >, dentro de name, por ejemplo ) a su valor inicial?

Gracias por vuestra paciencia

Atentamente, MiK

 

 

 

 

  • Like 1
Link to comment
Share on other sites

Pues eso... no iba mal encaminado...

La solución pasa por formar la siguiente estructra "a pelazo" para el name:  ... y si tuvieras más idiomas, hacer lo mismo para los indices [1]-[2]-[n]

// CAMPOS REQUERIDOS
$resources->active = 1;
$resources->name->language[0] = 'test';
$resources->link_rewrite->language[0] = 'link-rewrite-test';

Gracias de todas formas

Link to comment
Share on other sites

  • nadie locked this topic
Guest
This topic is now closed to further replies.
×
×
  • Create New...