Shopify vs Magento: la perspectiva de un desarrollador
Publicado: 2019-04-23Cuando intente tomar la decisión entre Shopify y Magento, a menudo escuchará que Shopify es una solución alojada, mientras que Magento es un software de código abierto. Esto se cita a menudo como la diferencia clave entre Shopify y Magento. La solución alojada lo libera de tener que instalar y alojar su tienda en línea, pero el software de código abierto le permite un mayor grado de personalización.
Pero, ¿qué significa eso realmente para los desarrolladores en la práctica y cómo afecta esa elección a los comerciantes y sus clientes?
Seguridad de información
En el mundo Magento, cada tienda en línea es su propia instalación independiente del software Magento. Hay aproximadamente 200 000 tiendas que ejecutan Magento, y todas ejecutan muchas versiones, módulos, parches y personalizaciones diferentes.
Magento es un software de código abierto, lo que significa que su código (en todas las versiones y parches) está disponible públicamente para que cualquiera pueda verlo en línea. Esto, junto con el hecho de que hay más de 200 000 tiendas Magento en la naturaleza que manejan datos confidenciales de clientes y pagos, hace de Magento un objetivo extremadamente atractivo para los actores maliciosos que buscan encontrar y explotar vulnerabilidades de seguridad en el software.
Cuando el equipo de Magento lanza un parche de seguridad, cada tienda Magento debe actualizarse por separado, y es responsabilidad de cada comerciante asegurarse de que esto suceda. Este proceso a menudo se complica por el hecho de que las tiendas de Magento pueden variar drásticamente en su implementación. Una actualización que se aplica con éxito a una tienda podría fácilmente causar problemas cuando se aplica a otra tienda debido a las diferencias en los módulos, temas o personalizaciones locales de terceros.
Para comerciantes y desarrolladores, esto puede crear una carga de trabajo grande e inesperada, como en el caso de la actualización de seguridad SUPEE-6788 de Magento. Esta actualización solucionó varias vulnerabilidades en Magento, pero también rompió la compatibilidad con cientos de módulos comunitarios populares. Además de aplicar el parche de seguridad, sería necesario actualizar todos los módulos comunitarios afectados para que sean compatibles. Esto dio a los desarrolladores la difícil elección de esperar a que los proveedores lanzaran versiones actualizadas de sus módulos comunitarios o actualizar manualmente esos módulos ellos mismos. Si esperan a los vendedores, su tienda Magento sigue siendo vulnerable; si actualizan manualmente esos módulos, el código del módulo no está sincronizado con la versión del proveedor, lo que puede complicar futuras actualizaciones.
Y no todas las vulnerabilidades de seguridad son iguales. Tomemos, por ejemplo, SUPEE-5344, comúnmente conocido como el "error de hurto", una vulnerabilidad de Magento que permitió a los atacantes obtener acceso de administrador a una tienda y acceso completo a su base de datos. El riesgo que corre al no parchear regularmente su tienda Magento es extremadamente alto, y el proceso, a veces complicado y costoso, de aplicar parches de seguridad ha resultado en que muchas tiendas Magento permanezcan sin parchear y sean vulnerables hasta el día de hoy.
Desde que cambié al desarrollo en la plataforma Shopify Plus, no he tenido que perder tiempo parcheando las tiendas Shopify para detectar vulnerabilidades de seguridad. Esta es una de las mayores ventajas de elegir una solución alojada en lugar de un software de código abierto. La plataforma y todos los datos confidenciales están alojados y protegidos por Shopify, una empresa multimillonaria que cotiza en bolsa.
Shopify asume la responsabilidad de mantener su plataforma actualizada y sus datos seguros, lo que permite a los desarrolladores dedicar más tiempo a proyectos que ayudarán a los comerciantes a alcanzar sus objetivos comerciales.
Hosting, Tráfico Web, Bases de Datos y Escalado
En una prueba A/B, Amazon descubrió una vez que un retraso de 500 milisegundos en la velocidad de carga de la página provocó una caída del 5 % en las ventas. Google descubrió de manera similar que un retraso de 500 milisegundos causaba una caída del 20 % en el tráfico de búsqueda y los ingresos publicitarios, y acababa con la satisfacción del usuario.
La optimización de las velocidades de carga de la página es muy importante.
Esta es otra área donde las soluciones de comercio electrónico alojadas como Shopify realmente brillan. Tu tienda en línea y todos los medios asociados están alojados en Shopify, y su modelo de negocios significa que Shopify siente la misma presión que Amazon para que sus páginas se carguen rápido para maximizar las tasas de conversión. Su tienda en línea siempre está disponible y es muy rápida, y nunca es una preocupación para los comerciantes o sus desarrolladores.
Trabajando como desarrollador de Magento, las velocidades de carga de la página y la carga de la base de datos están constantemente en su mente.
Magento es una base de código muy grande compuesta por miles de archivos y millones de líneas de código. Almacena configuraciones de sistema, módulo y diseño en el sistema de archivos como archivos XML grandes que son computacionalmente costosos de analizar. Implementa el modelo Entidad-Atributo-Valor de almacenamiento de datos, distribuyendo datos relacionados en muchas tablas diferentes en la base de datos, lo que requiere consultas de base de datos complicadas y costosas incluso para cosas simples como recuperar datos de productos. Todo esto convierte a Magento en una de las plataformas más desafiantes para hospedar y escalar, y a medida que crece el tráfico a su sitio, las soluciones a esos desafíos se vuelven cada vez más complejas.
Para hacer que las cosas funcionen más rápido en producción, Magento implementa muchas capas de almacenamiento en caché a nivel de la aplicación, incluidas las cachés para la configuración del sistema, el diseño XML, la salida HTML en bloque y la generación de páginas completas. Esto significa que, como desarrollador, debe asegurarse (a través de una cuidadosa consideración y prueba) de que todas las personalizaciones locales y los módulos comunitarios utilicen correctamente todos estos cachés, porque incluso una sola invalidación de caché puede tener un impacto dramático en las velocidades de carga de la página.
Para el comerciante, todo esto se traduce en un aumento en los costos generales de desarrollo y alojamiento, y tiempos de carga de página notablemente más lentos en la mayoría de los casos.
Desarrollo, Tecnología y Recursos
En términos de desarrollo, la principal diferencia entre Magento y Shopify es que Magento es un marco de comercio electrónico monolítico, mientras que Shopify es una plataforma alojada que interactúa con una amplia variedad de servicios externos.
Al desarrollar para Magento, toda su actividad de desarrollo ocurre dentro de su marco; agrega y modifica el código dentro de ese marco para ampliar y modificar su funcionalidad. Todo su código se extiende desde el núcleo de Magento, que utiliza un conjunto predefinido de tecnologías y regula estrictamente cómo las usa.
Como desarrollador de Magento, escribe PHP orientado a objetos heredado de las bibliotecas Zend sobre una base de datos MySQL, con Prototype y, a veces, jQuery en la interfaz. Es un marco muy complicado y altamente especificado, y puede requerir mucha capacitación especializada para volverse productivo en él. Esto agrega costos y un grado de dificultad a la contratación y la incorporación.
Cuando desarrollas para Shopify, amplías y modificas su funcionalidad mediante una combinación del motor de plantillas de Liquid, Shopify Scripts, webhooks, SDK de JavaScript y mediante la creación de aplicaciones y servicios personalizados que interactúan con la plataforma de Shopify externamente.
Shopify proporciona una poderosa API REST, que permite que las aplicaciones externas tengan un amplio acceso a la plataforma de Shopify y brinda a los desarrolladores la libertad de tomar más de sus propias decisiones tecnológicas. Puede desarrollar para la plataforma Shopify utilizando cualquier lenguaje de programación o marco que desee. Brindar a los desarrolladores y las agencias la flexibilidad de seleccionar entre tecnologías más modernas y familiares otorga muchos beneficios, incluida una mayor eficiencia del desarrollador y la capacidad de contratar de un grupo de talentos mucho más grande.
Qué significa todo esto para los comerciantes
Elegir la solución de comercio electrónico adecuada para su empresa es algo más que listas de funciones y casillas de verificación. También es importante considerar qué impacto tendrá su decisión en el ciclo de desarrollo, en la seguridad de los datos de sus clientes y en su capacidad de escalar la plataforma para que coincida con el crecimiento de su negocio.
Con una solución alojada como Shopify, sus datos confidenciales generalmente estarán más seguros. Su tienda tendrá tiempos de carga de página consistentemente rápidos, escalará automáticamente y tendrá una capacidad casi ilimitada para absorber ráfagas repentinas en el tráfico web. Y lo que es más importante, sus desarrolladores estarán capacitados para trabajar de manera más eficiente utilizando tecnologías modernas y familiares, reduciendo sus costos de desarrollo y permitiendo que una mayor parte de su presupuesto se destine al aumento de las ventas y al logro de sus objetivos comerciales.