-
Posts
19 -
Joined
-
Last visited
Everything posted by Victor Casajuana Mas
-
Yo los estoy actualizando por el recurso https://devdocs.prestashop.com/1.7/webservice/resources/stock_availables/ y me está funcionando bien. Puedes poner un ejemplo del XML que le envías? la synopsis es la siguiente: <prestashop xmlns:xlink="http://www.w3.org/1999/xlink"> <stock_available> <id_product required="true" format="isUnsignedId"/> <id_product_attribute required="true" format="isUnsignedId"/> <id_shop format="isUnsignedId"/> <id_shop_group format="isUnsignedId"/> <quantity required="true" format="isInt"/> <depends_on_stock required="true" format="isBool"/> <out_of_stock required="true" format="isInt"/> <location maxSize="255" format="isString"/> </stock_available> </prestashop> hay algunos campos "required" y otros que no lo pone pero quizás igualmente hay que ponerlos como la id_shop, is_shop_group, etc...
-
Gracias por la info!!!! más o menos es como lo hago yo ahora. Me bajo los schema en blanco y los relleno, aunque en la documentación dice que como campos obligatorios para el producto son el precio, nanai, si le envías un xml con el precio solo te lo escupe, que se entiende, porque le hace falta la tienda, categoría, etc... pero al menos que lo diga en la doc... Lo que no he visto en tu fuente es para "modificar" productos o cualquier otro recurso (PUT) Yo lo estoy haciendo en otro lenguaje (harbour) y de momento tengo un escollo ya que no dispongo de la función curl_file(), estoy investigando a ver que opciones tengo, porque no sé realmente que devuelve esta función.
-
POST/PUT vía API en formato JSON
Victor Casajuana Mas replied to Victor Casajuana Mas's topic in Desarrolladores PrestaShop
Bueno, la verdad es que comparada con la de hace algunos años, al menos es algo: https://devdocs.prestashop.com/1.7/webservice/ El primer conector que hice me las tuve que ingeniar para que funcionase. Ahora estoy con un conector multiplataforma que sirva para prestashop, woocomerce y magento (de momento) y la verdad es que cuando veo la documentación de las otras API me pongo a llorar lo completas que están, y sobre todo que trabajan bidireccionalmente en JSON, eso de enviarle por XML a Prestashop, pues que quieres que te diga, a gustos colores, pero habiendo prefiero trabajar en JSON. Saludos! -
POST/PUT vía API en formato JSON
Victor Casajuana Mas replied to Victor Casajuana Mas's topic in Desarrolladores PrestaShop
si, al final también lo he echo. He seguido estos pasos; primero me descargo la sinopsys donde aparecen los campos que son "readonly" y la guardo para futuros procesos de actualización. Luego cuando tengo que actualizar un producto, me descargo GET el recurso del producto que quiera actualizar, reviso la sinopsys descargada anteriormente y me cargo los campos "readonly", luego ya simplemente envío la estructura XML sin esos campos por PUT y el producto se actualiza correctamente. Bajo mi punto de vista, lo hacen un poco complicado, no costaría nada tener 2 métodos en el API, uno para descargar el recurso completo y otro para poder modificarlo, o en el recurso completo que te descargas mediante GET, poner etiquetas de readonly para no depender de la sinopsys descargada anteriormente, aunque para algunos esto pueda resultar cargar de información la respuesta. Son diferentes formas de trabajar, quizás el origen de todo es que la documentación sea un poco "escueta" en este aspecto. -
POST/PUT vía API en formato JSON
Victor Casajuana Mas replied to Victor Casajuana Mas's topic in Desarrolladores PrestaShop
Esto es lo que hago, al final he visto en la documentación que los JSON solamente son para "consultar" los recursos mediante GET, pero si quieres añadir POST o modificar PUT, has de hacerlo mediante los XML que genera él. No obstante, ahora me he encontrado en un problema y no entiendo porqué lo hace así el API, resulta que según la documentación, para modificar un recurso, por ejemplo un producto mediante PUT, has de recibir el XML del producto mediante GET, modificar el XML recibido con los cambios que desees y volverlo a enviar por PUT, pero resulta que el XML que ser recibe por GET tiene campos que no son "Writables" cuando los envías por PUT. Entonces no entiendo la lógica para modificar los recursos, salvo que tengas que eliminar dichos campos del XML, cosa que no indica en la documentación oficial. Alguien se ha topado con esto? -
Estoy en lo mismo, pero por lo que he averiguado, solo se trabaja en JSON a nivel de respuesta, toda la info que le envías al API a de ser en XML. A parte me he dado cuenta que la información que recibes en JSON no es tan completa como la que recibes en XML. Por ejemplo si le haces un schema=blank en xml recibes esto en el tag <name> <name> <language id="1"/> <language id="2"/> <language id="3"/> <language id="4"/> </name> en cambio cuando lo pides en json recibes esto: name: "", por lo que la opción de pedir el esquema en blanco con JSON para añadir los campos necesarios y luego convertirlo a XML para enviarlo al API de Prestashop no es válido.
-
Hola. Según https://devdocs.prestashop.com/1.7/webservice/resources/products/ el único campo requerido para crear artículos por el API del webservice es Price pero cuando le envío el XML para crear el artículo me da error, he realizado pruebas y como mínimo he de enviarle la siguiente información: id_shop_default is_virtual state online_only low_stock_alert price wholesale_price active available_for_order show_price indexed link_rewrite name Me extraña que en la documentación solo requiera precio pero si no lo envío más completo no me lo acepta. El XML mínimo que he de enviarle es el siguiente: <?xml version="1.0" encoding="UTF-8"?> <prestashop xmlns:xlink="http://www.w3.org/1999/xlink"> <product> <id_shop_default> <![CDATA[1]]> </id_shop_default> <is_virtual> <![CDATA[0]]> </is_virtual> <state> <![CDATA[1]]> </state> <online_only> <![CDATA[0]]> </online_only> <low_stock_alert> <![CDATA[0]]> </low_stock_alert> <price> <![CDATA[0.000000]]> </price> <wholesale_price> <![CDATA[0.000000]]> </wholesale_price> <active> <![CDATA[1]]> </active> <available_for_order> <![CDATA[1]]> </available_for_order> <show_price> <![CDATA[1]]> </show_price> <indexed> <![CDATA[1]]> </indexed> <link_rewrite> <language id="1"> <![CDATA[]]> </language> </link_rewrite> <name> <language id="1"> <![CDATA[ARTICULO NUEVO]]> </language> </name> </product> </prestashop> No me importa en enviarlo todo pero me extraña. Mi pregunta es; a la hora de crear productos o cualquier otro recurso, es aconsejable tomar todo el recurso desde ?schema=blank, modificar lo que deseas y enviarlo en XML por PUT o POST o crearlo y enviar solo lo que realmente necesitas para crearlo?
-
POST/PUT vía API en formato JSON
Victor Casajuana Mas replied to Victor Casajuana Mas's topic in Desarrolladores PrestaShop
Gracias por la respuesta, así es, continuamos con XML para enviar datos. -
Hola. Estoy haciendo un conector para utilizar el API de Prestashop en mi aplicación y veo que añadiendo &output_format=JSON a la petición GET me devuelve la información en formato JSON, pero me interesaría también enviarle las peticiones PUT y POST para crear/modificar productos, etc... en formato JSON, no obstante siempre me las solicita en XML. Estoy haciendo algo mal o para enviarle info solo acepta XML el API de prestashop? Gracias!!
-
Hola. Veo que tanto el getcurl como el postcurl los trabajas en JSON, pero se puede hacer un PUT o POST al api de Prestashop en formato Json? creía entendido que solo te devuele JSON y que para enviarle datos como por ejemplo crear un producto ha de ser en XML. Si lo haces en JSON, como lo haces?
- 1 reply
-
- php
- core developers
-
(and 4 more)
Tagged with:
-
Hola de nuevo. Me autorespondo con la solución, He rebuscado en las tablas y hay un parámetro que asignaba incorrectamente en el XML que pasaba al webservice para crear el producto: cache_default_attribute lo asignaba a la misma ID que id_category_default , y si el producto no tiene atributos y cache_default_attribute tiene valor, entonces lo que ocurre es que no se activa el botón del carrito de la tienda ni tampoco se muestra el precio. Lo pongo por si alguien más le ocurre este problema que no se vuelva loco buscando el porque.
-
Gracias gusman126 por la respuesta, el tema es que no se donde ver la diferencia que hay entre los webservices, en la documentación no lo encuentro. Sabes donde lo puedo ver? Lo que yo tengo no es un módulo para prestashop, es un ERP que trabaja en modo local (PC) y se comunica por webservice con prestashop, y lo hace todo bien, importar pedidos, crear productos con imágenes, atributos, metadatos, actualizar el stock de los productos, etc... pero lo único que no muestra en el frontoffice es el precio y el botón de añadir al carrito, en cambio en el BackOffice si que lo muestra bien, cosa más rara. Por cierto, tengo el Prestashop 1.7 instalado "Pelado" con los datos de demo, sin ningún módulo adicional para que no interfiera en nada.
-
Subida imágenes por webservice
Victor Casajuana Mas replied to Victor Casajuana Mas's topic in Desarrolladores PrestaShop
Me autorespondo, sí que las crea. -
Hola. Tengo realizado un enlace con prestashop atacando directamente las tablas por SQL y las imágenes por FTP, pero no es muy estable. Ahora lo estoy reprogramando para trabajar con el webservice de Prestashop, pero tengo una duda. Cuando le envío la imagen de un producto por webservice, el api crea el resto de imágenes que le hacen falta y las redimensiona? Gracias de antemano por la respuesta. Un Saludo.