whooohq / whq-woocommerce-chilexpress-shipping

Chilexpress Shipping method for WooCommerce / Agrega Chilexpress como método de envío para WooCommerce
https://wordpress.org/plugins/woo-chilexpress-shipping/
GNU General Public License v2.0
23 stars 12 forks source link

Actualizar llamadas WSDL a API Rest ya que WSDL está desactualizada #234

Closed PatrickCaneloDigital closed 2 years ago

PatrickCaneloDigital commented 2 years ago

Un cliente me avisó que actualmente el plugin no muestra servicio a varias comunas, es decir las comunas aparecen en el listado de región, pero dan un "sin servicio". Eso lo verifique en mi ambiente de desarrollo como en el sitio del cliente. (No tiene que ver con "tipos de envio" no configurados, están todos en la lista... según debug.log es la API de Chilexpress que retorna un SIN SERVICIO

Por ejemplo envío hacia:

La Granja (LAGR) o > Til Til (TILT) y varias mas solo en la RM (Alto jahuel, Cerro navia, El monte, El paico, Enea express, Isla de maipo, La granja, La pintana, Nos ,Padre hurtado, San ramón, Til til)

Me metí para contrachequeo en developers.wschilexpress.com y allí la API cotización si arroja servicios a esas comunas. Revisé el plugin de nuevo y me dí cuenta, que las llamadas aún funcionan con la antigua API Soap de Chilexpress.

me parece mucho que la API Soap ya no es actualizada o al menos está mostrano algunos resultados divergentes de la API REST por lo cual parece que habría que cambiar el plugin hacia la API REST... (lamentablemente)

En la tarde trataré de hacer ese cambio local y haría la sugerencia de cambios de código

grafik grafik
TCattd commented 2 years ago

Hola @PatrickCaneloDigital , un gusto leerte por acá. Incluso si es para traer malas noticias :D

Este punto, el donde Chilexpress dejase de dar soporte a la API WSDL (o presentase errores vs la API REST y dejase de ser 100% funcional para producción), es algo que esperaba.

Como bien dices, tienen una API nueva, REST, que es la que soportan y la que tienen documentada en https://developers.wschilexpress.com

El pero es que el acceso esa API es "de pago". Al menos a la API productiva final.

Ya había pasado por esto con un cliente, que no estaba feliz con el plugin oficial de Chilexpress.

Como puedes ver en https://developers.wschilexpress.com/como-integrarse el proceso para poder usar la API REST en producción requiere de una llave (por desarrollo) que ellos entregan, diferente a la que puedes obtener en https://developers.wschilexpress.com/profile

Para obtener ese tipo de llaves (productivas) para usar la API REST, necesitas ser cliente de ellos. Y, ser cliente de ellos, requiere pagarles un costo mensual (condicional), como explican muy bien acá: https://wordpress.org/support/topic/no-es-gratis-2/ (pantallazo https://i.imgur.com/L46yMWa.png )

Por lo tanto, sin poder usar la API REST públicamente sin generar ese pago (volviéndose cliente de ellos), toda la utilidad de la API REST se restringe (en la práctica) detrás de un muro de pago.

¿Tiene sentido entonces que sigamos manteniendo este plugin para una API REST de pago a la que no vamos a poder acceder (sin pagar) para probar el plugin en producción?, considerar que no generamos ni un solo peso con la mantención de este plugin. El aporte fue por "amor al arte", para devolver a la comunidad de WordPress, porque podíamos.

¿Tiene sentido si ya existe un plugin oficial de Chilexpress que corre sobre la API REST, y que es el plugin que recomiendan para WooCommerce a todos los clientes que contratan sus servicios?

Dejo la conversación abierta.

De nuevo, gracias por el aviso, @PatrickCaneloDigital Un abrazo.

Esteban

PatrickCaneloDigital commented 2 years ago

Hola @TCattd, Igualmente un gusto, hace rato no conversamos :-)

Si, es un temon lo de Chilexpress, mas encima porque el plugin de ellos claramente carece de una buena usuabilidad y por el otro lado eso de mantener un plugin "por amor al arte" tiene que tener limites.

Poniendome práctico, a la rápida hubiera dicho, bueno, se puede implementar una opcion para elegir que API ocupar e hacer la implementacion de la API Rest, pero por razones obvias solo con datos de desarrollo. Y allí surge el problema: un día chilexpress puede o limitar los datos que envian a traves de REST DEV (no todas las comunas), o limitar la cantidad de llamadas de un usuario X, o pueden enviar datos falsos, en teoría estarían 100% en su derecho a hacerlo; y hacer soporte cuando uno no puede ver los datos productivos es un cacho.

por el otro lado, implementar la opción ocpuar API WS o API Rest y hacer la implementación, tecnicamente no creo que sería tanto tiempo (de hecho lo voy a ver); pero concuerdo al 100% que son los problemas logisticos y comerciales de Chilexpress que limitan y hacen questionar sentido de mucho... Aunque también está claro que el WS un día quizas deja de funcionar o cada vez soporta menos comunas, etc. y allí el plugin se convierte en historia, lo que tampoco es ideal.

Trataré de tomarme el tiempo para ver que tanto trabajo sería la llamada REST

Un abrazo a ti también...

Patrick

TCattd commented 2 years ago

Ref: https://github.com/whooohq/whq-woocommerce-chilexpress-shipping/pull/235

TCattd commented 2 years ago

@PatrickCaneloDigital en vivo en la versión 1.5.0 Gracias de nuevo por el trabajo acá. Te las mandaste.

Ordené un poco el cuento, y aplique los Transients. Aún no cambio el cURL por wp_remote_get / wp_remote_post. Falta tiempo. Ya vendrá.

No tengo como probar, así es que... dependo de ti acá.

Esteban