- 1

Optimización Web con Next.js: Velocidad y Rendimiento Mejorados
01:38 - 2

Creación de Proyectos Next.js con TypeScript y App Router
10:22 - 3

Creación de Tienda Online con NextGIS y Shopify
06:42 - 4

Rutas Estáticas y Dinámicas en Next.js: Creación y Uso Práctico
08:26 - 5

Implementación de Layouts en Next.js: Globales y Locales
06:58 - 6

Navegación Optimizada con Next.js Usando el Componente Link
04:46 - 7

Rutas Dinámicas y Parámetros en Next.js: Implementación Práctica
08:24 - 8

Uso de React Server Components en Next.js: Cliente vs Servidor
09:23 - 9

Arquitectura de Componentes para Landing Page en Next.js
09:13 Prueba tus conocimientos de los conceptos de Next.js
Solución de errores de hidratación en carritos con Next.js y Shopify
Clase 48 de 57 • Curso de Next.js 14
Contenido del curso
- 10

Implementación de CSS Modules en Next.js para Estilizar Componentes
06:46 - 11

Instalación y Configuración de Sass en Next.js
08:39 - 12

Estilos Globales con SASS para Temas Oscuros en Aplicaciones Web
04:41 - 13

Agregar Archivos Estáticos en Next.js: Imágenes y Recursos Internos
04:10 - 14

Optimización de Imágenes con Next.js: Uso de Next.Image
05:48 - 15

Optimización y Responsividad con NextImage en Next.js
09:33 - 16

Optimización de Fuentes de Google en Next.js con Roboto
04:39 - 17

Estilos Dinámicos en React con Classnames y useState
08:39 Confirma que ya sabes manejar estilos y estáticos en Next.js
- 18

Creación de Tienda en Shopify para Desarrollo con Next.js
04:18 - 19

Creación y uso de variables de entorno en Next.js
07:53 - 20

Consumo de APIs con Shopify y React Server Components
09:22 - 21

Implementación de Loader en Next.js para Carga de Productos
09:07 - 22

Implementación de Root Grouping en Next.js
06:34 - 23

Manejo de Errores en Next.js con React Error Boundary
08:19 Pon a prueba lo que aprendiste de data fetching en Next.js
- 24

Manejo de Errores y Páginas 404 en Next.js
09:17 - 25

React Server Components en Next.js: Renderizado y Optimización
10:12 - 26

Diferencias entre archivos Template y Layout en Next.js
05:57 - 27

Arquitectura Escalable para Aplicaciones de Software
08:23 - 28

Creación de APIs con Next.js y Road Handlers
07:54 - 29

Configuración y Creación de Colecciones en Shopify
05:53 - 30

Patrones de Fetching en Next.js: Secuencial y Paralelo
11:36 - 31

Filtrado Dinámico de Productos en Shopify mediante API Collections
10:36 - 32

Uso de searchParams y params en componentes React cliente-servidor
07:38 - 33

Implementación de la Vista de Producto en TypeScript y React
11:43 - 34

Gestión de Caché en Next.js: Tipos y Recomendaciones Prácticas
10:31 - 35

Revalidación de Caché en Next.js: Endpoints por Tag y Path
11:20 - 36

Redirección en Next.js: Server y Client Components
06:34 - 37

Creación de un Componente React para Sanitizar HTML
10:26 - 38

SEO Dinámico y Estático en Next.js para Mejorar Posicionamiento Web
08:51 ¡Revisa los temas avanzados de Next.js en este quiz!
- 39

Implementación de API GraphQL en Shopify para Autenticación Segura
03:48 - 40

Uso de Server Actions en Next.js para Formularios React
06:22 - 41

Implementación de Signup con GraphQL y Shopify
12:56 - 42

Implementación de Cookies de Acceso en Shopify con Next.js
11:20 - 43

Implementación de Flujo de Login con Tokens y Cookies
07:50 - 44

Validación de Access Tokens en Next.js con GraphQL y Cookies
07:51 - 45

Implementación de Carrito de Compras con React Icons
11:37 - 46

Manejo de estado global con Sustant en Next.js 13
09:34 - 47

Implementación de Carrito de Compras en JavaScript y CSS
07:55 - 48

Solución de errores de hidratación en carritos con Next.js y Shopify
12:13 - 49

Implementación de Middlewares en Next.js para Control de Acceso
08:39
¿Cómo integrar el checkout de Shopify a nuestro carrito de compras?
Bienvenidos a una inmersión profunda en la integración del checkout de Shopify con nuestro carrito de compras. En este tutorial, exploraremos cómo solucionar problemas de hidratación en React, manejar componentes de carga dinámica y finalmente implementar el sistema de compras usando Shopify.
¿Qué es un problema de hidratación en React?
El problema de hidratación en React ocurre cuando hay una discordancia entre el HTML que el servidor envía al cliente y lo que se renderiza finalmente en el cliente. A menudo, esto crea inconsistencias visibles entre lo esperado y lo presentado, especialmente cuando algunos datos o componentes dependen de estados o almacenamientos locales que no coinciden instantáneamente.
- Hidratación: Es el proceso de integrar el JavaScript necesario en la estructura HTML proporcionada desde el servidor para hacer que el componente funcione adecuadamente en la aplicación.
- Solución: Utilizamos
Next Dynamicpara manejar componentes dinámicos, evitando que pasen por el proceso de renderizado en el lado del servidor.
¿Cómo manejar componentes de carga dinámica en Next.js?
Para evitar problemas de hidratación, específicamente en un carrito de compras que depende de localStorage, emplearemos import dynamic de Next.js. Este manejo permite que los componentes carguen únicamente en el cliente.
import dynamic from 'next/dynamic';
const NoSSRShoppingCart = dynamic(() => import('./ShoppingCart'), {
ssr: false,
});
export default function Header() {
return (
<header>
{/* Otros componentes */}
<NoSSRShoppingCart />
</header>
);
}
- import dynamic: Se utiliza para importar componentes que no deberían ser renderizados en el lado del servidor.
ssr: false: Evita que el componente pase por el Server-Side Rendering.
¿Cómo implementar el sistema de compras de Shopify?
Una vez superados los problemas de hidratación, el siguiente paso es vincular nuestro carrito con Shopify para completar las compras.
Obtener la URL de checkout de Shopify
Usaremos GraphQL con una mutación para crear un carrito (create cart) que devuelva una URL de checkout.
async function handleCreateCart() {
const token = // Obtener token del acceso
if (!token) redirectToLogin();
const userEmail = // Extraer correo electrónico
const variables = {
buyerIdentity: { accessToken: token, email: userEmail },
lines: // Obtener y formatear productos del carrito
};
const response = await fetch('/api/shopify', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ query: CREATE_CART_MUTATION, variables }),
});
const data = await response.json();
return data.data.cartCreate.cart.checkoutUrl;
}
buyerIdentity: Identifica al comprador usando un token de acceso y correo electrónico.lines: Productos en el carrito, formateados para GraphQL.
Manejar la acción de compra y redirección
Implementaremos la lógica para limpiar el carrito y redirigir al usuario a la página de Shopify tras crear un checkout exitoso.
async function handleBuy() {
try {
setIsBuying(true);
const checkoutUrl = await handleCreateCart();
if (checkoutUrl) {
localStorage.removeItem('shopping-cart');
window.location.href = checkoutUrl;
}
} catch (error) {
console.error(error);
} finally {
setIsBuying(false);
}
}
setIsBuying(true): Indica que se está procesando una compra.localStorage.removeItem('shopping-cart'): Limpia el carrito luego de enviar la compra.window.location.href = checkoutUrl: Dirige al usuario al checkout de Shopify.
Ajustes finales y pruebas en Shopify
Para probar la funcionalidad, configuraremos una pasarela de pagos de prueba en Shopify y realizamos una compra simulada.
- Configuración de pruebas: En Shopify, activamos pagos de prueba utilizando el proveedor 'Bogus' para imitar transacciones.
Este flujo no solo asegura que la funcionalidad de compra en línea esté activa y corriendo, sino que también mejora la experiencia del usuario al reducir errores de renderizado. ¡Continúa explorando y experimentando! implementar correctamente estas técnicas te acercará más al dominio completo de integraciones e-commerce.