whooohq/whq-woocommerce-chilexpress-shipping

Zonas de envío de WooCommerce

ecerda opened this issue · 35 comments

Estimados, felicitaciones, es un trabajo genial lo que están haciendo!!
Seria genial que el plugin se pudiera integrar directamente a las Zonas de envío de WooCommerce: https://docs.woocommerce.com/document/setting-up-shipping-zones/

Eso, solo una sugerencia/idea, saludos!

De nada, estimado.

Sobre la sugerencia:
Si no me equivoco, el poder usar los límites de las Zonas de Envío en WC, permite que un método de envío X esté disponible en un país específico nada más. ¿Cierto?.

¿O permite algo más? (me sacan de la duda si me equivoco, por favor)

Porque habilitarlo en el plugin no es taaaaaan complicado la verdad.

La ubicación de las opciones del plugin (Chilexpress) cambiaría de lugar (estaría dentro de las Zonas de Envío), y todos estarían obligados a agregar una zona al menos (Chile) para poder usar el plugin.

Pregunto esto, porque si el tema de las Zonas es limitarlo solo a Chile... este plugin ya limita su uso únicamente dentro de Chile.
Si detecta, en el checkout, que el país es otro que no sea Chile, Chilexpress simplemente se desactiva y no permite ser seleccionado.

Aunque la solución de las zonas de envío es mucho mas elegante, ahora que lo mencionas.

Específicamente permite dar flexibilidad a la configuración de costos y habilitación de métodos de envío, es decir, puedo configurar que para Santiago y/o Región Metropolitana los envíos sean gratis o por ejemplo aplicar un cargo (monto, porcentaje, cálculo, etc.) diferente en base a las reglas que aplico. Actualmente solo permite seleccionar Chile, a simple vista e imaginando (voy en el bus jajajajajajja) creo que pasa por que las regiones no las registra como billing_states "oficiales" de Chile (billing_country CL)

Pero aunque puedas colocar un envío gratis para Santiago, lo que WooCommerce mostraría en el Checkout serían opciones para el usuario, entre seleccionar el envío gratis o chilexpress por X monto.
Si el usuario quiere seleccionar pagar (chilexpress), aún cuando se le ofrece un envío gratuito, el problema es de el. Aunque no es ideal en ciertos casos (tiendas), me imagino.

De todas maneras funcionaría lo que dices (hoy como está el plugin), puesto que en ningún momento se obliga al cliente a ir por la opción de pago.

No se si me explico.

De todos modos veo que lo que comentas sería una mejora en todo caso.
Que si o si requeriría que los usuarios del plugin creen una zona como mínimo: Chile, y que en ella habiliten el envío vía Chilexpress. Así: http://prntscr.com/gwopqa
No se podría usar el plugin sin esa zona, puesto que los métodos de envío de WC son un todo o nada.

Esto, porque al momento de declarar que un método de envío soporta shipping zones (en el plugin), el método de envío deja de funcionar como método de envío global (no adscrito a una zona), las opciones del método de envío desaparecen de arriba ( http://prntscr.com/gwoqaa ) y es obligatorio crear una zona de envío para que el método aparezca, sea usable y se pueda configurar.

Ojo: eso nos ayuda también a facilitar la detección de Chile en el plugin, puesto que eso lo haría WC ahora (en caso de añadir el soporte de shipping zones al plugin).

Me interesa saber que piensan otros que se que usan el plugin hoy en sus sitios, en vivo.

Por eso los molesto con el "ping": @albetix @AnglDavd @llermaly @brcl17 @masterbip (si me falta otro, avisan please)

Claro, como idea, podrían crear la zona automáticamente en la activación del plugin, considerando las excepciones necesarias (no crear zona si ya existe, borrar si se desactiva plugin, etc): http://orbisius.com/blog/programmatically-create-update-shipping-zone-woocommerce-p3189

El detalle principal del plugin actual es que solo permite seleccionar Chile pero no regiones ni ciudades, entonces no hay flexibilidad para aplicar reglas en el método de envío usando zonas.

Pero por default, WC solo tiene a Chile como una zona, sin sus regiones y localidades. Solo el país.

Si muevo el plugin a uno con soporte de shipping zones, en primera instancia, esto solo permitiría seleccionar Chilexpress en Chile, en caso de vender en otro país aparte de Chile.

La forma en que hoy traemos el listado de regiones, y sus ciudades dentro, es directamente en el frente del sitio (carro y checkout) vía Ajax desde la API de Chilexpress.

Si se trae antes ese listado, al activar o actualizar el plugin, corremos el riesgo de que la API de Chilexpress pueda caer (ha pasado), y nos quedemos con un listado de Zonas con regiones y ciudades des-actualizadas, o rota (también ha pasado, cuando la API respondió con nombres que terminaban con números en vez de strings limpios).

En base a eso, se podrían insertar (registrar en woocommerce) las regiones y ciudades con el formato y código de Chilexpress y asociadas a Chile, luego en el Checkout considerar su estimación de costo y disponibilidad de selección solo si está ok la respuesta del api Chilexpress (o algo por el estilo)

En palabras simples me lo imagino como 2 grandes procesos, uno que registra regiones y ciudades en woocommerce (puede ser de la misma forma que crea la zona, en la activación del plugin) con el formato Chilexpress y otro que calcula valores o disponibiliza selección en el Checkout en base al estado de la api.

Volviendo a lo que comentaste inicialmente...

Si lo que buscas es tener un método de envío gratuito para cierta ciudad, cosa que no cubre este plugin (y no debería cubrirlo tampoco), puedes valerte de algo como esto: https://wordpress.org/plugins/woocommerce-advanced-free-shipping/

Luego si lo que te incomoda es que aún se muestre Chilexpress cuando existe un envío gratuito disponible, WC mismo sugiere un snippet de código muy sencillo para eso: https://docs.woocommerce.com/document/hide-other-shipping-methods-when-free-shipping-is-available/ o un plugin que ya existe para resolver eso mismo: https://wordpress.org/plugins/wc-hide-shipping-methods/

Dicho eso, de vuelta a las zonas de envío, creo que el beneficio directo de mover el plugin a uno que soporte shipping zones, es poder detectar de mejor manera cuando la tienda vende en Chile (WC hace el trabajo pesado ahí), escondiendo un método de envío que no es soportado en el país seleccionado en la zona (Chile en este caso).

Suena lindo el agregar todas las regiones y ciudades en las zonas de envío, pero... si Chilexpress ya envía a todas las zonas disponibles que su API entrega, no tiene sentido crear zonas de envío para esas ubicaciones, donde siempre estará disponible.

Me parece que entonces se escapa de lo que queremos resolver, ofrecer Chilexpress como método de envío para Chile, el extenderlo más allá tal como lo comentas ahora.

Y es precisamente en aquel sentido acotado, ofrecer Chilexpress como método de envío para Chile, que si hace sentido agregar soporte para shipping zones al plugin para que este solo funcione en Chile (cosa que ya es así, pero ahora sería "como WC manda")... solo tengo la duda respecto a la obligación de tener que crear una zona de envío, solo con Chile, para todo aquel que desee ocupar el plugin.

No se si valga la pena esto último. ¿Hay tiendas en Chile vendiendo también al extranjero, que quieran usar Chilexpress en Chile y otros sistemas de envío para afuera del país?. Esas serían las que directamente se beneficiarían de un cambio del plugin para soportar los shipping zones.

¿Qué tal así?

sz01

sz02

sz03

sz04

Opcional. Cada uno decide si lo quiere utilizar como un método de envío clásico, o como uno nuevo con soporte para las Zonas de Envío de WC.
Y se puede volver atrás si no les acomoda.

Esta excelente el avance! creo que por el momento no cumple el objetivo principal de esta idea: limitar y/o configurar reglas de zona de envío por región y/o ciudad

Vuestro objetivo, @ecerda , el vuestro.

Otros objetivos (otras personas), puede que si :)

Por eso el paso.

Es que habilitar o no para Chile ya lo hacía automáticamente y no era necesario usar zonas de envío, de hecho, el issue 43 hace referencia a lo mismo que se sugiere en este hilo respecto a configurar reglas por región, no por país...

Que lo haga (habilitar el método de envío) usando la API de WC en vez de una detección que podría romperse en cualquier momento, no es menor paso, estimado. Y sirve a la larga, bastante.

Sirve también para tiendas Chilenas que quieran vender fuera de Chile, y no permitir el uso de Chilexpress para clientes de otros países.

De todos modos, entiendo vuestra necesidad estimado. Por lo mismo, reitero la invitación para contribuir directamente al desarrollo del plugin, resolviendo issues como estos de manera concreta. Solo deben leer la guía de contribución, antes de enviar un PR, por favor :)

En ningún momento dije que fuera menor paso, al iniciar dije que estaba excelente.

Ojo con lo de "necesidad", actualmente para mi es solo una idea que quise compartir, no es una necesidad.

En lo que estoy trabajando (intruseando) es en la integración de la generación de etiquetas, que cuando la termine la compartiré si es que otro no lo hace antes ;)

Excelente pues, estimado.

Bienvenido sea cualquier aporte 👍

Estimado buen día, e instalado el modulo pero definitivamente no me corre bien dentro de mi tienda, alguna posibilidad de pagar un soporte para que este quede corriendo al 100?
Saludos.

Estimado, las zonas de envío aún no están implementadas. Si ese es vuestro problema.
Por eso este issue continua abierto.

No tiene que ver con un tema de $ la verdad.

Si alguien quiere ayudar y completar el feature, bienvenido sea.

Pero el plugin funciona. (Por ahora) Lo pueden usar sin las Zonas de Envío, perfectamente.

TCattd, excelente trabajo!
Precisamente yo tengo una página que vende tanto en Chile como en el exterior y tengo el problema que cuando en Brasil hacen compras les aparece por defecto la opción de Chileexpress. Uso la versión 1.3.12 pero no tengo la opción que mencionas mas arriba (capturas de pantalla) venía con la versión 1.3. Eso me solucionaría la vida. Lamento no poder ayudar con la programación, no por que no quiera, sino por que no sé hacerlo. Así que esperamos atentos esa gran utilidad!
Muy agradecido!

Hola estimado, felicidades por dar esta importante herramienta a muchas tiendas ecommerce de Chile.
He tenido problemas de compatibilidad parcial con varios plugins de control de stock, sabes de alguno que no haga conflicto con este hermoso plugin.
De antemano muchas gracias!

(De nada ;) )

@PabloSilvaBravo deberías abrir otro issue para tratar tu problema. Este issue es para otro tema nada que ver con lo que comentas.

Por otro lado, WC tiene manejo de stock integrado de forma nativa.

Saludos,
Esteban

Hola instalé el plugin pero desafortunadamente no puedo usarlo porque no está integrado a las zonas de envío de woocommerce. He revisado el hilo y comentas que va 1.3.0 quería saber si se integró y luego se retiró, si hay previsión de integrar esta mejora. Tal como muestras en las capturas de pantalla, sería la forma perfecta para integrarlo.

Lo cierto es que tengo configurados los gastos de despacho en woocommerce usando sus zonas de envío para evitar el uso de más plugins.

Revisando el hilo te comento que existe un plugin que oculta el resto de métodos de despacho cuando el despacho gratis está disponible por el monto del carrito del cliente: https://es.wordpress.org/plugins/wc-hide-shipping-methods/
También en el enlace aportado por @ecerda mencionan cómo hacerlo mediante snippet.

y por otro lado, woocommerce permite añadir sin problema, (usando otro plugin) regiones dentro de Chile que se registran como zonas sobre las cuales se pueden ir agregando las distintas opciones de despacho: precio fijo, recogida en tienda, despacho gratis.

Lo ideal sería que dentro de este esquema se pudiese integrar chilexpress.
Dejo el link al ecommerce al que hago referencia:
https://mundopetit.cl/

Gracias de antemano :)

Aún pendiente de terminar, estimado.
No he tenido tiempo de poder sentarme a trabajar en esto.

Cuando esté terminado, se informará acá mismo que está andando y se cerrará el issue.

Si alguien desea ayudar y resolver esto el mismo, para luego enviar un pull request, como siempre: bienvenido sea y agradecidos estaremos todos.

Esteban

Muchas gracias Esteban! quedamos atentos a la actualización, por el momento sin esta funcionalidad no nos es posible usarlo.

Mil gracias por el trabajo,
saludos

Hola, gracias por este tremendo plugin.

No se si este es el lugar correcto, tenemos una tienda donde usamos su plugin y funciona perfecto para Chile, pero cuando cambiamos de país (la tienda vende en pesos y dólar) se activa Fedex como pasarela de despacho, hasta aquí Chilexpress no aparece como opción, aparece fedex, pero nos aparece una alerta indicando lo siguiente: "Chilexpress no se encuentra disponible en este momento. Por favor, selecciona otro método de envío (si existiese), o iténtalo nuevamente en unos minutos."

https://user-images.githubusercontent.com/1202104/70843961-1004ff00-1e19-11ea-94bc-89d7113d3de8.png

https://prntscr.com/qand6n

La pregunta es: es necesario ese mensaje considerando que el usuario indico que no es Chile, como podría ocultarse o desactivarse?

@kikinangulo estimado, eso es un bug. No debería estar ocurriendo. Pero no tiene nada que ver con este issue en particular.

Podrías abrir un issue nuevo acá mismo y poner lo mismo no más, por favor, solo para tener registro del issue y trabajar aparte en el.

¡Gracias!

Hola @TCattd estimado Esteban,

Estoy interesado en poder utilizar los zonas de envio, tal como lo colocaste alguna vez en tus screenshots arriba de esta conversación;

Se pudo implementar dicha actualización?, ya que recien instale el plugin y no me sale esa opción, pense que quizas se logro pero luego se removio.

Saludos.
Quedo atento

Esto no está disponible aún @leonardoas10 .
Cuando lo esté, se avisará en este mismo issue (y se cerrará).

Esteban

Gracias por tu pronta respuesta, tengo curiosidad, se esta desarrollando? Porque puedo analizar el codigo y ver si puedo ayudarte con eso.

Leonardo

No he tenido tiempo para poder sentarme y hacer esto la verdad. Sin tiempo.

Y sería una maravilla si alguien más pudiese ayudar, de verdad.
Bienvenido sea, @leonardoas10

Revisar: https://github.com/whooohq/whq-woocommerce-chilexpress-shipping/blob/master/CONTRIBUTING.md#como-contribuir-directamente-al-desarrollo-del-plugin-pull-requests

Si puedes, agradecido desde ya ;)

En zona de envio de Woocommerce, cree una pequeña función que puede solventar (mientras se desarrolla por completo las Zonas de envío) el uso de regiones.

Como utilizarla

en el archivo -> classes/WC_WHQ_Chilexpress_Shipping.php

pegar la siguiente function luego del <?php =>

function chilean_regions($states) {
	$states['CL'] = array(
		'Antofagasta' => 'Antofagasta',
		'Araucanía' => 'Araucanía',
		'Arica y Parinacota' => 'Arica y Parinacota',
		'Atacama' => 'Atacama',
		'Aysén del General Carlos Ibáñez del Campo' => 'Aysén del General Carlos Ibáñez del Campo',
		'Biobío' => 'Biobío',
		'Coquimbo' => 'Coquimbo',
		'Libertador General Bernardo O’Higgins' => 'Libertador General Bernardo O’Higgins',
		'Los Lagos' => 'Los Lagos',
		'Los Ríos' => 'Los Ríos',
		'Magallanes y la Antártica Chilena' => 'Magallanes y la Antártica Chilena',
		'Maule' => 'Maule',
		'Metropolitana de Santiago' => 'Metropolitana de Santiago',
		'Ñuble' => 'Ñuble',
		'Tarapacá' => 'Tarapacá',
		'Valparaíso' => 'Valparaíso',
	);
	return $states;
}
add_filter('woocommerce_states', 'chilean_regions');

Esto es para evitar que cada usuario escriba la región que quiera.

Saludos,
Leonardo

Ojo:
En el checkout, puede que de un error ya que se muestra 2 tipos de

El de la api de chilexpress, y la function anteriormente comentada.

@leonardoas10 se agradece el aporte, aunque: eso (el auto-completado de regiones) es algo que ya hace este plugin: https://tppr.me/ZniLV
Puedes verlo en vivo acá https://wpchilexpress.whooohq.com/

Las zonas de envío es otro tema distinto, más amplio, que aquello únicamente (dentro de WooCommerce).

Estimado @TCattd, ando buscando un plugin para la generación automática de etiquetas a través de Chilexpress/Starken y no he pillado nada, tenderas algo desarrollado?

@HazmeUnaPaginaCL no usar issues que no tienen que ver en lo absoluto con vuestra consulta, para otras cosas, por favor.
Gracias.

genial plugin, Por el momento no habrá alguna alternativa de colocar un código en function.php, es decir uno crea los métodos de envío que uno quiera en el país chile, es decir se mostrarán los métodos de envío para todo chile, pero en el código de function.php se ocultan para todas las regiones y comunas, entonces en el código uno podría escribir en un array en que comunas o regiones pueden mostrarse dichos metodos de envio en el checkout o no? no se si sera posible, pero seria muy util algo asi, si no matenme.

Estimados, hay algun avance con esta implementacion?

Necesito ofrecer envio gratis en ciertos productos. Lei en varios articulos que esto se puede configurar con las "zonas de envio" y las "clases de envio". Lo probe y efectivamente se crea una opcion en el checkout (https://i.imgur.com/xC4e1ND.png). El problema es que el cliente al seleccionar la opcion de "Envio Gratis", sus datos no son pasados al plugin y por ende no se puede crear la posterior etiqueta de envio.

Me imagino que habria que amarrar la opcion de "Envio Gratis" con una de las opciones del plugin ("Dia Habil Siguiente" por ejemplo)

Saludos y gracias por tremendo trabajo.