Vue Storefront + Vendure = Comercio Electrónico de Código Abierto de Pila Completa

Rate this content
Bookmark

Crear una tienda en línea en estos días no es una tarea fácil. Con tantos competidores, el Tiempo de Lanzamiento al Mercado es la clave del éxito. Es por eso que decidimos construir una integración entre Vue Storefront, una plataforma de frontend ultrarrápida para el comercio sin cabeza, y Vendure, un marco de comercio electrónico moderno y sin cabeza basado en GraphQL. Ambas herramientas están construidas utilizando una pila de JavaScript moderna (Nuxt.js y Nest.js) y tienen varias integraciones listas para usar, como motores de búsqueda, CMS, pagos, y más. Además, ambos proyectos tienen una gran comunidad de colaboradores de código abierto que respaldan el proceso de desarrollo. En esta presentación, te mostraré lo rápido que puedes crear tu tienda con VSF y Vendure.

19 min
20 Oct, 2021

Video Summary and Transcription

Esta charla discute el comercio electrónico de código abierto de pila completa utilizando ViewStorefront y Venge. ViewStorefront es una plataforma de frontend ultrarrápida para el comercio sin cabeza, mientras que Venge es un marco para el backend. Ambas herramientas son altamente personalizables y están construidas utilizando marcos modernos. Crear una tienda en línea con Venge es rápido y fácil. En general, esta charla presenta una pila de ensueño para el comercio electrónico de código abierto y fomenta las contribuciones a los proyectos.

Available in English

1. Introducción

Short description:

Hola, VJs London. Hablemos de comercio electrónico de código abierto de pila completa, ¿de acuerdo? Mi nombre es Jakub y soy líder tecnológico en Vue Storefront. También soy miembro del equipo principal de storefront.UI, que es una biblioteca de interfaz de usuario para comercio electrónico.

Hola, VJs London. Hablemos de comercio electrónico de código abierto de pila completa, ¿de acuerdo? Mi nombre es Jakub y soy líder tecnológico en Vue Storefront. También soy miembro del equipo principal de storefront.UI, que es una biblioteca de interfaz de usuario para comercio electrónico. También soy el principal responsable de la integración de Vue Storefront y Venger. Aparte del trabajo, también soy un buceador técnico y actualmente estoy haciendo un curso de buceo en cuevas, y también soy un excursionista de montaña. En la segunda imagen, estoy en la cima del volcán Tabor de Tenerife, que en realidad fue nuestra ubicación de Vue Storefront en mayo de este año. Sí, estamos escondidos.

2. Overview of ViewStorefront and Headless Commerce

Short description:

En agosto de este año, me propuse una meta a largo plazo y ambiciosa. Me dije a mí mismo que el próximo año me gustaría unirme a Filip Rakowski, quien es el CTO de Vue Storefront, en una de las mejores conferencias de Vue.js y dar una charla. ¿Alguna vez te has preguntado cómo es construir una tienda de comercio electrónico desde cero? ¿Qué tal si te digo que existen soluciones en el mercado que puedes elegir y utilizar en minutos u horas en lugar de esperar a que los desarrolladores desarrollen la solución desde cero? Queremos presentarte lo que llamo una combinación de ensueño para el comercio electrónico de código abierto, que es ViewStorefront y Vengeo. ViewStorefront es una plataforma frontend ultrarrápida para el comercio sin cabeza. Pero en detalle, ¿qué es el comercio sin cabeza? El comercio sin cabeza básicamente significa que estás separando tu frontend, o la parte de interfaz de usuario de tu tienda de comercio electrónico, del backend. Esto permite que incluso las empresas maduras tengan la flexibilidad y maniobrabilidad de una startup. ¿Y qué hay de la pila tecnológica? Básicamente, ViewStoreFront se construye utilizando tres herramientas principales. Nuxt.js, que es un framework para Vue.js. También estamos utilizando TypeScript y GraphQL, pero ViewStoreFront también funciona con API REST. ViewStoreFront utiliza el concepto de composables, que se utilizan para mapear ciertas funcionalidades de tu comercio electrónico o mapear un dominio específico de tu comercio electrónico.

Ahora déjame contarte una breve historia. En agosto de este año, me propuse una meta a largo plazo y ambiciosa. Me dije a mí mismo que el próximo año me gustaría unirme a Filip Rakowski, quien es el CTO de Vue Storefront, en una de las mejores conferencias de Vue.js y dar una charla. Ahora mismo, en dos meses, estoy aquí dando una charla en lugar de esperar al próximo año. Todo es posible, chicos. Solo den este primer paso.

¿Alguna vez te has preguntado cómo es construir una tienda de comercio electrónico desde cero? Manejar todos estos pedidos, productos y categorías lleva tiempo. El tiempo es un recurso que es posible que no tengas como alguien que quiere ser líder en el mercado. ¿Qué tal si te digo que existen soluciones en el mercado que puedes elegir y utilizar en minutos u horas en lugar de esperar a que los desarrolladores desarrollen la solución desde cero? Lo cual básicamente lleva semanas o meses. ¿Qué tal si te digo que estas herramientas son gratuitas, de código abierto y respaldadas por una gran comunidad de colaboradores que hacen todo lo posible para que el proyecto sea lo mejor posible?

Queremos presentarte lo que llamo una combinación de ensueño para el comercio electrónico de código abierto, que es ViewStorefront y Vengeo. ViewStorefront es una plataforma frontend ultrarrápida para el comercio sin cabeza, pero ¿qué es exactamente el comercio sin cabeza? Si has jugado algunos videojuegos en los últimos años, probablemente conozcas a este personaje. Este es un personaje del juego Team Fortress 2 y se llama HeadlessHorselessHorseman. ¿Por qué traigo este ejemplo como una comparación con el comercio sin cabeza? HeadlessHorselessHorseman era un personaje muy poderoso, al igual que el comercio sin cabeza. Pero en más detalles, ¿qué es el comercio sin cabeza? El comercio sin cabeza básicamente significa que estás separando tu frontend, o la parte de interfaz de usuario de tu tienda de comercio electrónico, del backend. Esto permite que incluso las empresas maduras tengan la flexibilidad y maniobrabilidad de una startup. Básicamente significa que, por ejemplo, ViewStoreFront puede conectarse a muchas plataformas de comercio electrónico, CMS sin cabeza, pasarelas de pago, motores de búsqueda y muchos otros servicios de terceros. ¿Y qué hay de la pila tecnológica? Básicamente, ViewStoreFront se construye utilizando tres herramientas principales. Nuxt.js, que es un framework para Vue.js. También estamos utilizando TypeScript y GraphQL, pero ViewStoreFront también funciona con API REST. Algunos conceptos básicos de ViewStoreFront. ViewStoreFront utiliza el concepto de composables, que se utilizan para mapear ciertas funcionalidades de tu comercio electrónico o mapear un dominio específico de tu comercio electrónico. En este caso, veremos el dominio de productos. Cada composable contendrá cuatro elementos principales. El primero será una variable, en este caso, productos. Esta variable de productos contendrá un valor de tu dominio de productos. Luego, tendremos un método de búsqueda o el método de carga que se utilizará para obtener los datos de tu plataforma de comercio electrónico a Vue Storefront. Los composables pueden tener varios métodos, como por ejemplo, usar producto o usar dirección.

3. Composable and Customization

Short description:

Puede tener agregar dirección, eliminar dirección, actualizar dirección, obtener dirección. El objeto de error se mapeará a los métodos específicos que tiene este composable. La propiedad de carga indica si estamos esperando datos. Se pueden usar consultas personalizadas para anular las consultas predeterminadas. Las extensiones permiten la personalización de los métodos de API, la aplicación y los hooks del ciclo de vida. Vue Storefront se construye utilizando una pila de tecnología moderna y es altamente personalizable. Venture es un framework para la parte backend del comercio electrónico. Admite la gestión de inventario, comercio, múltiples idiomas, monedas, impuestos, canales de venta, gestión de medios y soporte de equipo.

Puede tener agregar dirección, eliminar dirección, actualizar dirección, obtener dirección. Por lo tanto, puede tener más de un método, pero debe tener al menos un método que se utilizará para obtener los datos.

A continuación, tenemos un objeto de error, que se utilizará para cada propiedad de este objeto de error que se mapeará a los métodos específicos que tiene este composable. En este caso particular del composable de uso de producto, el objeto de error contendrá solo una propiedad, que se llamará búsqueda. Y contendrá un error que puede ocurrir en una situación en la que estás obteniendo los datos de tu plataforma de comercio electrónico.

Por último, pero no menos importante, tenemos la propiedad de carga, que se utilizará para indicar si todavía estamos esperando que los datos se obtengan de tu plataforma de comercio electrónico. Estos fueron algunos conceptos básicos.

Ahora, en cuanto a la personalización. Echemos otro vistazo al composable de uso de producto. Tenemos un método de búsqueda que se utiliza para obtener un producto específico por ID. Esto dará como resultado un objeto que contendrá los datos de nuestro producto. Sin embargo, ¿qué pasa si queremos tener un objeto diferente o una estructura diferente o propiedades diferentes? Para este caso en particular, podríamos usar el concepto de consultas personalizadas. Estas consultas personalizadas se utilizarán para anular la consulta predeterminada que enviamos a la plataforma de comercio. ¿Y cómo funciona en más detalle? En middleware.config.js, que es básicamente el archivo de configuración principal de Vue Storefront, podríamos definir un objeto de consultas personalizadas. Podríamos definir estas consultas personalizadas, que son básicamente, por ejemplo, consultas GraphQL.

Además de las consultas personalizadas, también podemos personalizar Vue Storefront o nuestra tienda construida con Vue Storefront mediante el uso de extensiones. Entonces, en lugar de simplemente personalizar la consulta específica, podemos extender los métodos de API que se utilizan para obtener los datos o modificar los datos. Podemos extender la propia aplicación y también los hooks del ciclo de vida de toda la aplicación. Como Adam Jar y Greg Polak solían decir, repasemos. Vue Storefront se construye utilizando una pila de tecnología moderna. Vue Storefront puede conectarse a varios servicios externos y proporciona funcionalidad completa de comercio electrónico. Es altamente personalizable, como expliqué anteriormente.

Sí, y pasando a Venture. Venture también está relacionado con el comercio sin cabeza, pero en este caso, es un framework para la parte backend de tu comercio electrónico. Si quieres saber más sobre qué es Venture y cómo se conecta con Vue Storefront, recientemente hemos grabado una entrevista con Michael Bromley, quien es el fundador de Venture, y sí, puedes escuchar más sobre qué es Vue Storefront, qué es Venture, cómo se conectan y cuáles son los planes para las futuras versiones. Venture admite muchas funcionalidades de forma nativa. Tenemos gestión de inventario, comercio como pagos, promociones. Tenemos múltiples idiomas, monedas, impuestos y canales de venta. Venture también es escalable, listo para la nube y autoscalable. Tenemos gestión de medios, como recorte de imágenes, soporte de almacenamiento en la nube, y tenemos soporte para equipos con permisos basados en roles y una interfaz de administración.

4. Venture Technology Stack and Customization

Short description:

Venture se construye utilizando NestJS, TypeScript y GraphQL. También admite Elasticsearch y campos personalizables. Se utilizan las API de administración y de la tienda para diferentes operaciones. Venture permite extender la estructura predeterminada de las entidades y personalizar el flujo de pedidos. Admite complementos para funcionalidades adicionales, incluyendo complementos principales, empresariales y comunitarios.

Entonces, pila de tecnología. Venture se construye utilizando NestJS, que es un framework para Node.js y Express. También se construye utilizando TypeScript y GraphQL, y también cuenta con el soporte de Elasticsearch y la base de datos de tu elección.

Algunos conceptos básicos de Venture. Así es como realmente funciona Venture. Tenemos dos API de GraphQL. Tenemos la API de administración y la API de la tienda. La API de la tienda se utiliza principalmente para las operaciones de tu tienda, como obtener datos sobre productos, colecciones, usuarios y clientes, y la API de administración se utiliza para cosas más avanzadas, como gestionar roles, gestionar productos, etc. Si estás solicitando datos a través de la API de GraphQL, estos datos pasarán por el servidor de Venture, que iniciará una cola y creará un trabajador que accederá a la base de datos y devolverá los datos al servidor de Venture, y este servidor de Venture devolverá los datos a tu API de GraphQL.

Tenemos un panel de administración disponible para ti, donde puedes agregar productos, agregar colecciones, modificar usuarios, etc. También tenemos la API de GraphQL, que te permite obtener datos para tu tienda. En cuanto a la personalización, Venture admite un patrón similar al de tu tienda, porque en lugar de consultas personalizadas, tenemos campos personalizados, que nos permiten extender la estructura predeterminada de los dominios o entidades en nuestra base de datos. Por ejemplo, si queremos extender un producto, podemos agregar una nueva propiedad llamada info-url de tipo string. Luego, podemos crear una mutación en nuestro GraphQL para actualizar el producto con la nueva propiedad info-url. Gracias a esto, no tenemos que crear una nueva entidad, simplemente estamos extendiendo la entidad predeterminada. También podemos personalizar el flujo de pedidos, lo que nos permite no utilizar el flujo predeterminado. Por ejemplo, podemos agregar un paso entre agregar artículos y realizar el pago. El predeterminado es agregar artículos y luego pasar a realizar el pago. Agregar artículos significa visitar la tienda y agregar productos al carrito. Y realizar el pago significa gestionar los datos de pago y proceder al pago. Digamos que antes de realizar el pago, queremos validar al cliente. ¿Cómo podemos hacer eso? En primer lugar, crearemos un nuevo proceso que contendrá un objeto con propiedades que nos permitirán crear un nuevo flujo. Agregaremos la validación del cliente y también modificaremos el paso existente de agregar artículos para que vayamos al paso de validación en lugar de ir al pago. Luego, en la validación del cliente, diremos que desde este paso podemos volver atrás al paso de agregar artículos o avanzar al paso de realizar el pago. Y luego solo tenemos que registrar este nuevo proceso en la configuración de Venture, así de simple.

Venture también admite complementos que te permiten extender la funcionalidad predeterminada. Tenemos complementos principales, como la interfaz de administración que has visto anteriormente, el soporte de Elasticsearch, el soporte de correo electrónico y el servidor de activos, que se proporcionan de forma predeterminada. Luego tenemos los complementos empresariales que llegarán próximamente, como Búsqueda Avanzada, Tarjeta de Regalo, Lista de Deseos, etc. Y también tenemos los complementos comunitarios, que permiten integrar Stripe, Braintree, pasarelas de pago, reseñas, autenticación social con Auth0, por ejemplo. Así que repasemos una vez más. Venture se construye utilizando una pila de tecnología moderna.

5. Creating an Online Store with Venge

Short description:

Puede conectarse a varios servicios externos utilizando complementos, proporciona funcionalidad completa de comercio electrónico y es altamente personalizable. Ambas herramientas están construidas utilizando frameworks modernos como Next.js y Nest.js. Son personalizables por defecto utilizando consultas y campos personalizados. Esta Aventura Divertida Fused 2.0 suena y parece ser un sueño de comercio electrónico de código abierto de pila completa. Crear una tienda en línea desde cero con Venge implica configurar un proyecto, definir bases de datos e idioma, crear una tienda con Fused Storefront e instalar dependencias. En menos de un minuto y medio, tendrás una tienda en línea configurada y lista para aceptar pedidos. Dale una estrella a los proyectos ViewStoreFront y Venger si te gusta lo que ves y considera contribuir a través de Slack o Discord. Contáctame en GitHub o Twitter. Gracias y adiós.

Puede conectarse a varios servicios externos utilizando complementos, proporciona funcionalidad completa de comercio electrónico, y es altamente personalizable. Entonces podrías estar pensando, hay un patrón similar aquí, y tienes toda la razón. Ambas herramientas están construidas utilizando frameworks modernos como Next.js y Nest.js. Son personalizables por defecto utilizando consultas y campos personalizados. Proporciona, proporcionan funcionalidad completa de comercio electrónico, y están configurados para integrarse con herramientas y servicios externos, como pasarelas de pago, CMS sin cabeza, y así sucesivamente. Y son de código abierto y respaldados por una gran comunidad de colaboradores.

Así que diría que esta Aventura Divertida Fused 2.0 suena y parece ser un sueño de comercio electrónico de código abierto de pila completa. Y permíteme mostrarte cómo funciona. Básicamente, lo que estamos haciendo aquí es crear una tienda en línea desde cero con Venge. Configuramos un proyecto, definimos una base de datos, idioma, proveedor de correo, en este caso, el local, y también creamos una tienda con Fused Storefront y configuramos una plantilla para Venger. Luego, instalamos las dependencias, como siempre, y configuramos algunas variables de entorno para que la tienda funcione como se espera. Aquí, la API de GraphQL y el método de autenticación, y también tenemos que agregar este método a la configuración de Venger, dos pasos sencillos que nos permiten ejecutar nuestra tienda. Así que esperemos un segundo para eso. Vale, tenemos una tienda Venger en funcionamiento, y también tenemos un ViewStoreFront en funcionamiento, así que podemos desplazarnos hacia abajo para listar, agregar algunos productos, definir alguna configuración, modificar la cantidad de los productos, agregar algunos datos de cliente a nuestro proceso de pago, configurar algunos datos de envío, así como el método de envío. Algunos datos de facturación, en este caso, es lo mismo, pago y hacer un pedido, y eso es todo. Así que en menos de un minuto y medio, tendrás una tienda en línea configurada y lista para aceptar algunos pedidos y jugar. Así que si te gusta lo que ves, asegúrate de darle una estrella tanto a ViewStoreFront como al proyecto Venger porque son de código abierto y así es como, digamos, viven, gracias a estas estrellas. Así que asegúrate de darles. Y también, si te gustaría contribuir, asegúrate de visitar el canal de Slack de Venger o el canal de Discord de ViewStoreFront. Y eso será todo. Muchas gracias por tu atención y asegúrate de contactarme en GitHub utilizando el identificador Paroshen o en Twitter utilizando el identificador d.andrewski. Nos vemos. Gracias. Adiós. Adiós. Adiós. Adiós. Adiós. Adiós. Adiós.

6. Conclusion

Short description:

Adiós. Adiós. Adiós. Adiós. Adiós. Adiós. Adiós. Adiós. Adiós. Adiós.

Adiós.

Adiós.

Adiós.

Adiós.

Adiós.

Adiós.

Adiós.

Adiós.

Adiós.

Adiós.

Adiós.

Adiós.

Adiós.

Adiós.

Adiós.

Adiós.

Adiós.

Adiós.

Adiós.

Adiós.

Adiós.

Adiós.

Adiós.

Adiós.

Adiós.

Adiós.

Adiós.

Adiós.

Check out more articles and videos

We constantly think of articles and videos that might spark Git people interest / skill us up or help building a stellar career

Vue.js London Live 2021Vue.js London Live 2021
34 min
Everything Beyond State Management in Stores with Pinia
Top Content
When we think about Vuex, Pinia, or stores in general we often think about state management and the Flux patterns but not only do stores not always follow the Flux pattern, there is so much more about stores that make them worth using! Plugins, Devtools, server-side rendering, TypeScript integrations... Let's dive into everything beyond state management with Pinia with practical examples about plugins and Devtools to get the most out of your stores.
Vue.js London Live 2021Vue.js London Live 2021
20 min
One Year Into Vue 3
Top Content
Vue 3 may still sound new to many users, but it's actually been released for over a year already. How did Vue 3 evolve during this period? Why did it take so long for the ecosystem to catch up? What did we learn from this process? What's coming next? We will discuss these questions in this talk!
Vue.js London Live 2021Vue.js London Live 2021
8 min
Utilising Rust from Vue with WebAssembly
Top Content
Rust is a new language for writing high-performance code, that can be compiled to WebAssembly, and run within the browser. In this talk you will be taken through how you can integrate Rust, within a Vue application, in a way that's painless and easy. With examples on how to interact with Rust from JavaScript, and some of the gotchas to be aware of.
Remix Conf Europe 2022Remix Conf Europe 2022
37 min
Full Stack Components
Top Content
Remix is a web framework that gives you the simple mental model of a Multi-Page App (MPA) but the power and capabilities of a Single-Page App (SPA). One of the big challenges of SPAs is network management resulting in a great deal of indirection and buggy code. This is especially noticeable in application state which Remix completely eliminates, but it's also an issue in individual components that communicate with a single-purpose backend endpoint (like a combobox search for example).
In this talk, Kent will demonstrate how Remix enables you to build complex UI components that are connected to a backend in the simplest and most powerful way you've ever seen. Leaving you time to chill with your family or whatever else you do for fun.

Workshops on related topic

Vue.js London Live 2021Vue.js London Live 2021
169 min
Vue3: Modern Frontend App Development
Top Content
Featured WorkshopFree
The Vue3 has been released in mid-2020. Besides many improvements and optimizations, the main feature of Vue3 brings is the Composition API – a new way to write and reuse reactive code. Let's learn more about how to use Composition API efficiently.

Besides core Vue3 features we'll explain examples of how to use popular libraries with Vue3.

Table of contents:
- Introduction to Vue3
- Composition API
- Core libraries
- Vue3 ecosystem

Prerequisites:
IDE of choice (Inellij or VSC) installed
Nodejs + NPM
JSNation 2023JSNation 2023
174 min
Developing Dynamic Blogs with SvelteKit & Storyblok: A Hands-on Workshop
Featured WorkshopFree
This SvelteKit workshop explores the integration of 3rd party services, such as Storyblok, in a SvelteKit project. Participants will learn how to create a SvelteKit project, leverage Svelte components, and connect to external APIs. The workshop covers important concepts including SSR, CSR, static site generation, and deploying the application using adapters. By the end of the workshop, attendees will have a solid understanding of building SvelteKit applications with API integrations and be prepared for deployment.
Vue.js London Live 2021Vue.js London Live 2021
117 min
Using Nitro – Building an App with the Latest Nuxt Rendering Engine
Top Content
Workshop
We'll build a Nuxt project together from scratch using Nitro, the new Nuxt rendering engine, and Nuxt Bridge. We'll explore some of the ways that you can use and deploy Nitro, whilst building a application together with some of the real-world constraints you'd face when deploying an app for your enterprise. Along the way, fire your questions at me and I'll do my best to answer them.
React Summit Remote Edition 2021React Summit Remote Edition 2021
87 min
Building a Shopify App with React & Node
Top Content
WorkshopFree
Shopify merchants have a diverse set of needs, and developers have a unique opportunity to meet those needs building apps. Building an app can be tough work but Shopify has created a set of tools and resources to help you build out a seamless app experience as quickly as possible. Get hands on experience building an embedded Shopify app using the Shopify App CLI, Polaris and Shopify App Bridge.We’ll show you how to create an app that accesses information from a development store and can run in your local environment.
React Summit 2023React Summit 2023
139 min
Create a Visually Editable Next.js Website Using React Bricks, With Blog and E-commerce
WorkshopFree
- React Bricks: why we built it, what it is and how it works- Create a free account- Create a new project with Next.js and Tailwind- Explore the directory structure- Anatomy of a Brick- Create a new Brick (Text-Image)- Add a title and description with RichText visual editing- Add an Image with visual editing- Add Sidebar controls to edit props (padding and image side)- Nesting Bricks using the Repeater component- Create an Image gallery brick- Publish on Netlify or Vercel- Page Types and Custom fields- Access Page meta values- Internationalization- How to reuse content across pages: Stories and Embeds- How to create an E-commerce with Products’ data from an external database and landing pages created visually in React Bricks- Advanced enterprise features: flexible permissions, locked structure, custom visual components
React Advanced Conference 2023React Advanced Conference 2023
104 min
Building High-Performance Online Stores with Shopify Hydrogen and Remix
WorkshopFree
I. Introduction- Overview of Shopify Hydrogen and Remix- Importance of headless e-commerce and its impact on the industry
II. Setting up Shopify Hydrogen- Installing and setting up Hydrogen with Remix- Setting up the project structure and components
III. Creating Collections and Products- Creating collections and products using Hydrogen’s React components- Implementing a Shopping Cart- Building a shopping cart using Hydrogen’s built-in components
VI. Building the home page with Storyblok- Cloning the space and explaining how it works- Implementing Storyblok in the repo- Creating the Blok components- Creating the Shopify components- Implementing personalisation