Saltar al contenido principal

Descripción general

El carrito se almacena en el localStorage del navegador y persiste entre recargas de página. Todas las operaciones del carrito son síncronas y actualizan el estado local de inmediato.
El objeto komerza está disponible globalmente después de incluir el script. Llama a komerza.init('tu-id-de-tienda') antes de usar otros métodos.

Añadir artículos

Añade una variante de producto al carrito con una cantidad especificada.
komerza.addToBasket(productId, variantId, quantity);

Parámetros

productId
string
requerido
El identificador único del producto
variantId
string
requerido
El identificador único de la variante del producto
quantity
number
Cuántos artículos añadir (por defecto 1 si no se indica)

Ejemplo

// Añadir 2 artículos de una variante de producto específica
komerza.addToBasket("prod_abc123", "var_xyz789", 2);

// Controlador del botón añadir al carrito
document.getElementById("add-to-cart").addEventListener("click", () => {
  const productId = "prod_abc123";
  const variantId = document.getElementById("variant-select").value;
  const quantity = parseInt(document.getElementById("quantity").value) || 1;

  komerza.addToBasket(productId, variantId, quantity);
  alert("¡Añadido al carrito!");
});

Ver el carrito

Obtén todos los artículos que hay actualmente en el carrito.
const items = komerza.getBasket();

Retorna

Retorna un array de objetos BasketItem:
interface BasketItem {
  productId: string; // ID del producto
  variantId: string; // ID de la variante
  quantity: number; // Número de artículos
}

Ejemplo

const basket = komerza.getBasket();

if (basket.length === 0) {
  console.log("El carrito está vacío");
} else {
  basket.forEach((item) => {
    console.log(
      `Producto: ${item.productId}, Variante: ${item.variantId}, Cant: ${item.quantity}`,
    );
  });
}

Obtener el recuento de artículos

Obtén el número total de artículos en el carrito (suma de todas las cantidades).
const count = komerza.getBasketItemCount();

Retorna

Retorna un número que representa la cantidad total de todos los artículos.

Ejemplo

function actualizarInsigniaCarrito() {
  const count = komerza.getBasketItemCount();
  document.getElementById("cart-count").textContent = count;

  if (count > 0) {
    document.getElementById("cart-badge").style.display = "block";
  }
}

actualizarInsigniaCarrito();

Eliminar artículos

Elimina una variante de producto completamente del carrito.
komerza.removeFromBasket(productId, variantId);

Parámetros

productId
string
requerido
El ID del producto a eliminar
variantId
string
requerido
El ID de la variante a eliminar

Ejemplo

function eliminarArticulo(productId, variantId) {
  if (confirm("¿Eliminar este artículo del carrito?")) {
    komerza.removeFromBasket(productId, variantId);
    actualizarVistaCarrito();
  }
}

Vaciar el carrito

Elimina todos los artículos del carrito de una vez.
komerza.clearBasket();

Ejemplo

document.getElementById("clear-cart").addEventListener("click", () => {
  if (confirm("¿Eliminar todos los artículos del carrito?")) {
    komerza.clearBasket();
    actualizarVistaCarrito();
  }
});

Copia de seguridad y restauración

Crea copias de seguridad del estado del carrito y restáuralas más tarde. Útil para gestionar errores de pago o implementar funciones de «guardar para después».

Crear copia de seguridad

const success = komerza.createBasketBackup();
Retorna true si la copia de seguridad se creó correctamente.

Restaurar copia de seguridad

const success = komerza.restoreBasketFromBackup();
Retorna true si la copia de seguridad se restauró correctamente.

Ejemplo

async function procederAlPago() {
  komerza.createBasketBackup();

  try {
    const order = await komerza.checkout(email, couponCode);
    // Éxito - redirigir al pago
  } catch (error) {
    // Restaurar el carrito si hay error
    komerza.restoreBasketFromBackup();
  }
}