indianricardo Posted July 17, 2014 Share Posted July 17, 2014 Estoy desarrollando una aplicación para iOS y Android desde la que se podrán comprar productos de una tienda desarrollada con PrestaShop. La aplicación la estoy desarrollando con Phonegap/Cordova con lo cuál puedo usar HTML y JavaScript. He activado el webservice en el panel de control de PrestaShop y generado una clave para la aplicación. Para conectarme con el servidor realizo peticiones vía ajax y le paso el parámetro ws_key con la clave generada. Cuando realizo estas peticiones a este tipo de url's: http://midominio.com/api/customers/?ws_key=CLAVE&schema=blank la conexión con el servidor es correcta y me devuelve el esquema de un cliente en XML. Con el XML puedo parsearlo a JSON para que sea más fácil su manipulación en JavaScript, hasta aquí sin problemas. El problema viene cuando yo modifico el esquema recibido, lo relleno con los datos de cliente, parseo el JSON a XML. He mirado varias veces si lo que me envía el servidor y lo que yo le envío es igual, tiene la misma estructura. Entonces con jQuery le envío el xml en string (he visto que se le ha de enviar texto plano) pero la respuesta que recibo es 400 Bad Request. El código de jQuery es el siguiente: $.ajax({ url: 'http://midominio.com/api/customers/?ws_key=CLAVE_GENERADA', data: { xml: string // el xml en string con la estructura correcta }, type: 'post', dataType: "text", success : function( data ) { console.log(data); }, error : function (xhr, ajaxOptions, thrownError){ console.log(xhr.status); console.log(thrownError); } }); ¿Alguien sabe o a logrado crear clientes/modificar carrito/lo que se desde JavaScript con el webservice de PrestaShop? Link to comment Share on other sites More sharing options...
maxxis Posted July 19, 2014 Share Posted July 19, 2014 Yo siguiendo los pasos de la guia mediante PHP no conseguí modificar nada. Al final, opté por hacer una web en php que modificase en mysql los campos en las tablas que quería, siendo hasta más rápido que por webservice. En tu caso, estoy seguro que si has llegado hasta el punto en el que te encuentras estarás a nada de conseguirlo. Link to comment Share on other sites More sharing options...
indianricardo Posted July 19, 2014 Author Share Posted July 19, 2014 Yo siguiendo los pasos de la guia mediante PHP no conseguí modificar nada. Al final, opté por hacer una web en php que modificase en mysql los campos en las tablas que quería, siendo hasta más rápido que por webservice. En tu caso, estoy seguro que si has llegado hasta el punto en el que te encuentras estarás a nada de conseguirlo. Al final he conseguido crear clientes, rellenaba el parámetro ID y lo ponía a 0 pero luego vi que la llamada por ajax me devolvía XML aún siendo 400 Bad Request y me ponía que el ID no estaba permitido, se lo quité y me creó el contacto correctamente. Ya puedo crear, modificar y eliminar contactos ahora ya solo me queda crear carritos de la compra que entiendo que será parecido a lo que ya he conseguido con los clientes. Link to comment Share on other sites More sharing options...
jose.fantasia Posted September 11, 2014 Share Posted September 11, 2014 Al final he conseguido crear clientes, rellenaba el parámetro ID y lo ponía a 0 pero luego vi que la llamada por ajax me devolvía XML aún siendo 400 Bad Request y me ponía que el ID no estaba permitido, se lo quité y me creó el contacto correctamente. Ya puedo crear, modificar y eliminar contactos ahora ya solo me queda crear carritos de la compra que entiendo que será parecido a lo que ya he conseguido con los clientes. Tenes algun ejemplo de codigo que haga un put ? porque lo intento desde java y me da error 400, vi que alguien soluciono sacando algun campo que no puede modificarse pero no me anda y tampoco me queda muy claro. Consigo hacerlo con otras entiades mas simples pero con productos me da 400 siempre. Gracias !! Link to comment Share on other sites More sharing options...
indianricardo Posted September 11, 2014 Author Share Posted September 11, 2014 Tenes algun ejemplo de codigo que haga un put ? porque lo intento desde java y me da error 400, vi que alguien soluciono sacando algun campo que no puede modificarse pero no me anda y tampoco me queda muy claro. Consigo hacerlo con otras entiades mas simples pero con productos me da 400 siempre. Gracias !! Mmmm... En el código de error no te dice cual es el error? Fíjate bien porque yo ignoraba la parte restante del 400 Bad Request y vi que me notificaba de que el id era incorrecto y gracias a ello lo solucioné. Link to comment Share on other sites More sharing options...
jose.fantasia Posted September 11, 2014 Share Posted September 11, 2014 Mmmm... En el código de error no te dice cual es el error? Fíjate bien porque yo ignoraba la parte restante del 400 Bad Request y vi que me notificaba de que el id era incorrecto y gracias a ello lo solucioné. No me viene pelado el error 400 Asi tengo definido en presta para la notificacion por las dudas que me falte algo /* Debug only */ if (!defined('_PS_MODE_DEV_')) define('_PS_MODE_DEV_', true); /* Compatibility warning */ define('_PS_DISPLAY_COMPATIBILITY_WARNING_', false); if (_PS_MODE_DEV_) { @ini_set('display_errors', 'on'); @error_reporting(E_ALL | E_STRICT); define('_PS_DEBUG_SQL_', true); } else { @ini_set('display_errors', 'off'); define('_PS_DEBUG_SQL_', false); } Link to comment Share on other sites More sharing options...
mysterion Posted April 10, 2015 Share Posted April 10, 2015 Did you ever get this project completed? I have the same requirement from a client and am not sure if the WebService is suitable. Link to comment Share on other sites More sharing options...
apositivo Posted July 3, 2015 Share Posted July 3, 2015 hola indianricardo . , saludos, puedes colocar mas detalles de como solucionaste ? Link to comment Share on other sites More sharing options...
apositivo Posted July 9, 2015 Share Posted July 9, 2015 es increible, muchas personas llegan al foro, en algunos casos consiguen la respuesta aqui y no dan ni las gracias, otros preguntan algo, los foristas le indican que tienen el mismo problema, luego solucionan y no aportan nada de la solucion encontrada al foro. se imaginan que todos pensaran igual ? quien ayudaria a quien y como ? 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