/* global React, Heading, WAIcon, waLink, OfficialSeal, cartGet, cartRemove, cartSetQty, cartClear, orderCreate, newFolio, priceNum, money, useStore, PAYMENT_HOLDER, PAYMENT_METHODS, BRAND */ const { useState: useStateCt } = React; /* ---------- Resumen de importe ---------- */ function cartTotals(items) { const subtotal = items.reduce((n, i) => n + priceNum(i.price) * (i.qty || 1), 0); const count = items.reduce((n, i) => n + (i.qty || 1), 0); return { subtotal, count }; } /* ---------- Vista: carrito ---------- */ function CartList({ items, onContinue }) { const { subtotal, count } = cartTotals(items); return (
{items.map((i) => (

{i.code}

{i.line} · {i.cat}

{i.price} MXN c/u
{i.qty || 1}
{money(priceNum(i.price) * (i.qty || 1))}
))}
); } /* ---------- Vista: pago (datos + comprobante) ---------- */ function Checkout({ order, onClose }) { const waMsg = "Hola, generé el pedido " + order.folio + " en la página oficial de Rancho La Vega.\n\n" + order.items.map((i) => "• " + (i.qty || 1) + "× " + i.code + " (" + i.line + ") — " + i.price).join("\n") + "\n\nSubtotal: " + money(order.subtotal) + " MXN.\nYa realicé el pago / transferencia y adjunto mi comprobante."; return (

Pedido generado

{order.folio}

{order.date}

Datos de pago oficiales

Titular: {PAYMENT_HOLDER}

{PAYMENT_METHODS.map((m) => (
{m.bank} {m.kind}
{m.extra && ( )}
))}

Realiza el pago únicamente a estos datos oficiales. Rancho La Vega no se hace responsable por depósitos a cuentas no publicadas aquí.

¿Cómo continúo?

  1. Realiza el pago por transferencia o depósito a una de las cuentas.
  2. Guarda tu comprobante (captura o foto del recibo).
  3. Envíanos el comprobante por WhatsApp junto con tu folio.
  4. Confirmamos tu pago y coordinamos la entrega o envío.

Adjunta tu comprobante

Ya pagué — enviar comprobante
Guarda tu folio {order.folio} para dar seguimiento a tu pedido.
); } function copyNum(v) { const clean = v.replace(/\s/g, ""); if (navigator.clipboard) navigator.clipboard.writeText(clean); } function CopyIco() { return ( ); } /* ---------- Página de carrito ---------- */ function Cart() { useStore(); const [order, setOrder] = useStateCt(null); const items = cartGet(); const generate = () => { const { subtotal } = cartTotals(items); const o = { folio: newFolio(), date: new Date().toLocaleString("es-MX", { dateStyle: "long", timeStyle: "short" }), items: items.map((i) => ({ ...i })), subtotal, status: "Pendiente de pago", }; orderCreate(o); setOrder(o); cartClear(); window.scrollTo({ top: 0, behavior: "smooth" }); }; return (
{order ? ( { setOrder(null); location.href = "ejemplares.html"; }} /> ) : items.length === 0 ? (

Tu carrito está vacío

Explora el catálogo y añade los ejemplares disponibles que te interesen.

Ver ejemplares
) : (
)}
); } function CartBig() { return ( ); } Object.assign(window, { Cart });