Usando Mailchimp en Magento2 (parte 2, sincronizando subscribers)

Hasta ahora vimos cómo instalar la extensión, obtener nuestra API Key y alguna cosa más.

Ahora le toca el turno a cómo sincronizar nuestros subscribers, así que vamos con eso.

Los suscriptores están asociados a una lista, ¿cual?, la de nuestra Mailchimp Store. Tenés que tener en cuenta, como vimos antes, que cuando vos elegís una Mailchimp Store también estás eligiendo una lista, que se selecciona automáticamente y la cual no podemos cambiar.

Acá tenemos que conocer la diferencia:

Ahí ves que dice Total Member y Total List. El primer valor son todos los subscribers que tenés asociados a tu cuenta de Mailchimp (no importa de que lista, se incluyen todos), y el segundo valor son únicamente los subscribers de la lista seleccionada.

Como sabrás, Mailcimp es bastante exquisito (y difícil de engañar) en cuanto a de dónde vienen tus subscribers. Si compras una lista por ahí y tratás de subirla, se van a dar cuenta al toque y te van a bloquear la cuenta.

Esto lleva a la pregunta… ¿cual es la manera correcta de configurar todo?.

Lo primero que deberías hacer es configurar en tu Magento que querés manejar double opt-in, así que vamos a Stores -> Configuration -> Newsletter, y dentro de ésta a Subscription Option y habilitamos el «Need to confirm».

Luego, verificamos en la configuración de la extensión que el valor de «Magento always manage emails» sea «No» (esto es para evitar que Magento mande el email de confirmación, ya que esto lo va a hacer Mailchimp).

Con esto es suficiente para que Mailchimp mande el double opt-in, no es necesario (aunque si deseable) que vayas a Mailchimp y le digas a tu lista que vas a usar double opt-in.

Así que ahora, cuando alguien se suscriba en tu store de Magento, el subscriber va a aparecer como esperando confirmación en Magento (por eso habilitamos el double opt-in en Magento) y se va a mandar a Mailchimp como que necesita confirmación, así que Mailchimp va a mandarle un email pidiendo esta confirmación.

Eso nos lleva al siguiente paso… deberías habilitar el «Two Way Sync».

¿Que es esto?. Cuando un usuario hace un cambio a su suscripción en Mailchimp (ponele que va a Mailchimp y cambia su nombre, o simplemente se desuscribe), Mailchimp va a intentar avisarle mediante un webhook a tu tienda de esta situación.

O sea que básicamente el «Two Way Sync» es: quiero que la sincronización sea en ambos sentidos, cuando algo pasa en mi tienda yo le voy a avisar a Mailchimp, pero también quiero que Mailchimp me avise cuando pasa algo, así tengo siempre ambos extremos sincronizados.

Lo siguiente que vamos a configurar es cómo queremos que se traten los webooks cuando es un delete. Es decir, nuestro subscriber se desuscribió en Mailchimp y Mailchimp nos esta avisando de esta situación.

Acá tenemos que hacer un pequeño apartado para comprender como se componen los webhooks.

En https://developer.mailchimp.com/documentation/mailchimp/guides/about-webhooks/ tenemos la documentación acerca de los webhooks, que en realidad es bastante simple. Cada vez que hay una modificación, Mailchimp va a hacer un POST a nuestra tienda. Estos POST no se procesan en el momento, sino que se guardan en una tabla (mailchimp_webhook_request) para ser procesados mas tarde por un cronjob. Esto se hace para evitar sobrecargar tu tienda en determinadas situaciones. Sin embargo esto no siempre es posible (me refiero a no sobrecargar tu tienda), ya que por ejemplo si importas una lista en Mailchimp y tenes configurado un webhook, Mailchimp va a hacer un POST a tu tienda por cada nuevo subscriber que se importe, avisando que hay un nuevo subscriber.

En ese caso, deberías ir Mailchimp y borrar ese webhook, así evitamos la sobrecarga.

Para eso, vas a Mailchimp y elegís tu lista.

En Settings tenés una opción para ir a tus webhooks.

Y ahí vas a tener toooodos tus webhooks asociados a la lista (podes tener todos los que quieras).

Dando en Edit, podés hacer varias cosas. Desde cambiar cuando querés que el webhook te llame, hasta borrarlo definitivamente. En el caso de que estés importando una lista en Mailchimp, es conveniente que le saques el «subscribes».

Volviendo al tema de qué hago si viene un unsubscribe. Como podés ver en la documentación de Mailchimp, lo que viene son datos del subscriber como nombre, email, etc y la lista. Pero una lista puede estar asociada a muchas Mailchimp Stores, y una Mailchimp Store puede estar asociada a muchas tiendas en Magento. Así que en principio no se muy bien de dónde se esta desuscribiendo este cristiano.

Lo que se hace es buscar todas las stores en tu Magento que tienen asociada esa lista, y se desuscribe de cada una de ellas, es decir, no hay forma de desuscribirlo de una store de Magento en especial, ya que Mailchimp no conoce de stores de Magento, solo conoce de listas.

Si sos medianamente prolijo en tu configuración no deberías tener problemas con esto, pero es bueno que lo sepas.

Lo siguiente es ver los merge fields.

Como ya vimos en la parte 1, podés agregar campos a tus subscribers (y a tus customers a partir de la version 10x.x.37) (si ya se no esta disponible, pero estamos en eso y pronto la vas a tener).

Los merge fields, son campos que por defecto Mailchimp no tiene, pero que podés agregarlos cuando vos quieras. ¿Podés agregar cualquier cosa? No, no podes. Podés agregar SÓLO customer attributes. Así que si querés agregar algo que no este ya ahí, vas a tener que si o si agregarlo como un customer attribute (si ya se, no es muy cómodo ya que Magento 2 no tiene una forma fácil de agregar customer attributes).

Así que lo primero que hay que hacer, es agregar un nuevo merge field.

Hay dos columnas: una Mailchimp y otra Magento.

En la de Mailchimp se van a mostrar todos los MERGE tags que están definidos en tu lista.

¿De dónde saca eso? Si vas en Mailchimp a tu lista, podes encontrar en Settings un ítem del menú que te lleva a tus MERGE tags.

Ahí vas a encontrarte con algo así.

Tenés una columna «Field label and type» que indica el nombre con que vas a ver ese campo en Mailchimp y el tipo del campo, después tenes si es requerido o no, si es visible o no y el nombre interno (que siempre es en mayúsculas).

Si te fijás en la figura de Magento, ahí tenés casi los mismos datos, es decir el nombre interno, el label y el tipo. De esta forma podés tener, creo, bastante claro a que MERGE tags estas haciendo referencia.

En la otra columna vas a tener todos los customer attributes.

Así que a esta altura, tenés que mapear uno con el otro, teniendo un poco de cuidado de que se correspondan, que tengan el mismo tipo.

En 2 minutos, después que tengo definidos mis MERGE tags en Mailchimp, lo puedo configurar.

¿Qué cosas tenés que tener en cuenta?. Si ponés un MERGE tag como obligatorio en Mailchimp, vas a tener que si o si mapearlo, y vas a tener que asegurarte que ese dato esté en Magento.

Por ejemplo, en mi caso si hubiese puesto el GENDER como obligatorio en Mailchimp, tendría que hacer algo para hacerlo también obligatorio en Magento, sino cuando intente sincronizar me va a fallar para los que no lo tengan.

Para lo último deje el caso del PHONE. Si te fijás en Magento, no existe un customer attribute que sea el phone, este atributo, como otros, por ejemplo el codigo postal o la cuidad, forman parte de una address, asi que si quiero pasar el PHONE no tengo mas remedio que pasar una address completa.

Obviamente la extensión mapea una address de Magento a una address de Mailchimp.

Por ahora esto es todo con respecto a los subscribers, en la próxima vamos a ver cómo sincronizar tus datos de ecommerce.

Y como siempre, ante cualquier duda… Twitter esta siempre disponible.

Publicado por Gonzalo Dominguez

Magento fanatic developer. Do not try and bend the spoon. That's impossible. Instead... only try to realize the truth. There is no spoon. @gonzalezuy