Nuestra compañera Silvia Suria ha publicado recientemente un libro sobre comercio electrónico en formato Kindle, titulado Errores comunes en la creación de un comercio electrónico. El enlace de la obra es éste: Ir a Amazon Kindle
En ella explica los problemas recurrentes que normalmente cometen los emprendedores o/y las empresas que deciden abrir una tienda online, y cómo evitarlos, por lo que es una obra recomendada para un amplio abanico de lectores, desde los entusiastas fundadores de una startup, a los directores de departamento que deciden entrar en el mundo digital de las ventas online de empresas más o menos consolidadas en el mercado tradicional.

El error “Unable to serialize value” viene generado por una codificación errónea del archivo CSV para las traducciones. Para los que trabajan con Windows, recordaros que hay que codificar siempre en UTF-8.

Para comprobarlo, hay que ejecutar en la línea de comandos

php -dmemory_limit=5G bin/magento setup:static-content:deploy de_DE --jobs=0 -f

El 3 de junio saltaron las alarmas entre los clientes de PcComponentes: se estaban realizando compras fraudulentas con sus tarjetas. Por lo que se cuenta en esta noticia (ver noticia), parece ser que PcComponentes ha tenido un problema de seguridad y las cuentas de usuarios se han visto comprometidas, aunque más tarde la empresa ha querido desmentirlo. Lo que llama la atención es que se hayan visto implicados clientes de PcComponentes.

Este supuesto robo de información no debería haber supuesto un problema más allá de haber hecho público los datos de los usuarios, si no fuera porque al parecer, PcComponentes guardaba sus números de tarjetas en sus propias bases de datos, lo que ha llevado a los clientes a pensar que ha habido alguna filtración.

Llevamos años insistiendo en contra de guardar los datos bancarios de los usuarios a los clientes que nos piden guardar ellos mismos los números de tarjetas y de CCC con el objeto de hacer más cómoda la compra para sus clientes cuando éste repite. Y nuestra respuesta siempre ha sido la misma: hace falta tener una seguridad muy alta en los sistemas que custodian esos datos (no sólo implican una encriptación de datos, también una seguridad perimetral mayor, un técnico dedicado a los servidores, backups y la seguridad de la plataforma, etc), y esa seguridad es una inversión demasiado cara, por lo menos para un comercio electrónico medio, ya que hoy día no genera tanto margen de beneficio como para costear ese incremento en la seguridad. Un cliente no va dejar de comprar en un comercio electrónico simplemente porque tenga que meter su tarjeta cada vez, sobretodo si se le escribe una nota aclarando que es una medida de seguridad pasiva muy efectiva “¿Por qué no guardamos tu tarjeta bancaria? Porque en caso de hackeo, tus datos bancarios no se verán comprometidos”. Al contrario, si se le explica, el comprador se sentirá más seguro en un comercio electrónico que no guarda la tarjeta frente al que sí lo guarda.

Si al entrar en el detalle de cada cliente en el backend de Magento 1.9 os devuelve el mensaje:

error: error in [unknown object].fireEvent():

event name: address_country_changed error message:

cannot read property ‘show’ of undefined.

Lo que debéis hacer es ir a la administración de bases de datos que tengáis (PHPMyAdmin, Adminer, etc) la tabla de eav_attribute y buscar el elemento postcode. Lo editáis y cambiáis el valor del campo is_required de 0 a 1, ya que es un campo necesario para los envíos.

A veces me he encontrado con que ha habido que corregir a mano la url o el nombre de la imagen de algún producto en una base de datos de Magento. Cuando esto pasa, hemos de saber que hay que trabajar con 2 tablas:

catalog_product_entity_varchar

catalog_product_entity_media_gallery

A veces nos ha ocurrido que aunque la plataforma Magento (versión 1.9) funciona perfectamente y las URLs van bien, cuando hemos querido instalar desde el Downlader una extensión con la URL del Marketplace de Magento, nos ha dado el error:

Leer más

En este caso, tenemos un cliente que quiere que sólo los atributos con valor a “Sí” (o TRUE, o “Verdadero”, como queráis). ¿Cómo lo conseguimos?
Nos iremos al archivo attribute.phtml del paquete del tema que estamos utilizando, cuya ruta es:

/app/design/frontend/nuestro_tema/paquete_usado/template/catalog/product/view/attribute.phtml

Y buscamos este código:
[crayon-5e2f7c8261510296137952/]
Y lo reemplazamos por este otro:
[crayon-5e2f7c826151e791637940/]
Obviamente, en el punto del código donde pone ‘No’, podemos poner
[crayon-5e2f7c8261524978014117/]

Cuando sacaron la actualización de Woocommerce a la versión 2.0, oí muchas críticas y quejas, y he decidido que lo mejor es que explique qué ocurrió. Como bien nos explican en este artículo en inglés, el problema fue no respetar la compatibilidad hacia atrás (sus razones tenían, pero fue algo doloroso para la comunidad de usuarios), unido a que los usuarios de WordPress están muy mal acostumbrados (porque todo suele ir bien, claro), e instalan las actualizaciones sin testear previamente en una plataforma aparte. Y ahí llegó el problema: muchos carritos y tiendas dejaron de vender.

Así que, como moraleja: antes de actualizar una plataforma en producción, instalen las actualizaciones en una plataforma aparte, que sea exactamente igual a la de producción, testeen, y cuando estén seguros de que todo funciona, hagan una copia de seguridad de la plataforma y la BD antes de actualizar. Mas vale tardar 6 horas en actualizar, que 6 días en echar a andar de nuevo una plataforma.