feat: VivesPOS landing on Winter CMS 1.2 — theme + plugin + Dockerfile
Some checks are pending
Module sub-split / Sub-split (push) Waiting to run
Some checks are pending
Module sub-split / Sub-split (push) Waiting to run
- Base: wintercms/winter branch 1.2 (full framework) - Theme vivespos: Canvas 7 + Bootstrap 5 CDN, custom CSS - Layout: deferred GTM/GA4 tracking, JSON-LD SoftwareApplication - Partials: hero (offline-first), features, modes (offline/nube toggle), screenshots, pricing (3 planes), comparison, FAQ, CTA - Plugin VivesPOS.Site with ContactForm - Dockerfile: PHP 8.2 Apache, port 80, healthcheck - Added winter/wn-pages, blog, sitemap, seo plugins - Active theme set to vivespos
This commit is contained in:
85
themes/vivespos/partials/home/comparison.htm
Normal file
85
themes/vivespos/partials/home/comparison.htm
Normal file
@@ -0,0 +1,85 @@
|
||||
description = "Comparativa vs otros POS del mercado"
|
||||
==
|
||||
<section id="comparativa" class="py-5 py-md-6">
|
||||
<div class="container">
|
||||
<div class="text-center mb-5">
|
||||
<p class="eyebrow eyebrow-red mb-2">Comparativa</p>
|
||||
<h2 class="display-5 fw-bold mb-2">Por que cambiar a VivesPOS</h2>
|
||||
<p class="lead text-muted">Compara VivesPOS con los POS tradicionales de Mexico.</p>
|
||||
</div>
|
||||
<div class="table-responsive">
|
||||
<table class="table table-hover vp-compare-table rounded-4 overflow-hidden">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="p-3" style="width:30%;">Caracteristica</th>
|
||||
<th class="p-3 text-center vp-self">VivesPOS</th>
|
||||
<th class="p-3 text-center">POS en la nube</th>
|
||||
<th class="p-3 text-center">POS tradicional</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="p-3">Funciona sin internet</td>
|
||||
<td class="p-3 text-center vp-self"><i class="bi-check2 vp-check"></i></td>
|
||||
<td class="p-3 text-center"><i class="bi-x vp-cross"></i></td>
|
||||
<td class="p-3 text-center"><i class="bi-check2 vp-check"></i></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="p-3">Sin suscripcion obligatoria</td>
|
||||
<td class="p-3 text-center vp-self"><i class="bi-check2 vp-check"></i></td>
|
||||
<td class="p-3 text-center"><i class="bi-x vp-cross"></i></td>
|
||||
<td class="p-3 text-center"><i class="bi-check2 vp-check"></i></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="p-3">Tus datos 100% tuyos (local)</td>
|
||||
<td class="p-3 text-center vp-self"><i class="bi-check2 vp-check"></i></td>
|
||||
<td class="p-3 text-center"><i class="bi-x vp-cross"></i></td>
|
||||
<td class="p-3 text-center"><i class="bi-check2 vp-check"></i></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="p-3">Sincronizacion con la nube opcional</td>
|
||||
<td class="p-3 text-center vp-self"><i class="bi-check2 vp-check"></i></td>
|
||||
<td class="p-3 text-center"><i class="bi-check2 vp-check"></i> (forzada)</td>
|
||||
<td class="p-3 text-center"><i class="bi-x vp-cross"></i></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="p-3">Optimizado para teclado y scanner</td>
|
||||
<td class="p-3 text-center vp-self"><i class="bi-check2 vp-check"></i></td>
|
||||
<td class="p-3 text-center"><i class="bi-x vp-cross"></i> (touch)</td>
|
||||
<td class="p-3 text-center"><i class="bi-dash text-muted"></i> (depende)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="p-3">Corte X y Z profesionales</td>
|
||||
<td class="p-3 text-center vp-self"><i class="bi-check2 vp-check"></i></td>
|
||||
<td class="p-3 text-center"><i class="bi-dash text-muted"></i></td>
|
||||
<td class="p-3 text-center"><i class="bi-dash text-muted"></i></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="p-3">Roles y permisos (Admin/Sup/Cajero)</td>
|
||||
<td class="p-3 text-center vp-self"><i class="bi-check2 vp-check"></i></td>
|
||||
<td class="p-3 text-center"><i class="bi-check2 vp-check"></i></td>
|
||||
<td class="p-3 text-center"><i class="bi-x vp-cross"></i></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="p-3">Multiplataforma (Win + Linux)</td>
|
||||
<td class="p-3 text-center vp-self"><i class="bi-check2 vp-check"></i></td>
|
||||
<td class="p-3 text-center"><i class="bi-check2 vp-check"></i> (navegador)</td>
|
||||
<td class="p-3 text-center"><i class="bi-x vp-cross"></i> (Win solo)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="p-3">Sin vendor lock-in</td>
|
||||
<td class="p-3 text-center vp-self"><i class="bi-check2 vp-check"></i></td>
|
||||
<td class="p-3 text-center"><i class="bi-x vp-cross"></i></td>
|
||||
<td class="p-3 text-center"><i class="bi-x vp-cross"></i></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="p-3">Precio inicial</td>
|
||||
<td class="p-3 text-center vp-self fw-bold text-brand">$0</td>
|
||||
<td class="p-3 text-center">$500+/mes</td>
|
||||
<td class="p-3 text-center">$5,000-$15,000</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
19
themes/vivespos/partials/home/cta.htm
Normal file
19
themes/vivespos/partials/home/cta.htm
Normal file
@@ -0,0 +1,19 @@
|
||||
description = "CTA final — gradient brand, WhatsApp"
|
||||
==
|
||||
<section id="cta" class="py-5 py-md-6 bg-gradient-brand">
|
||||
<div class="container text-center">
|
||||
<h2 class="display-5 fw-bold text-white mb-3">Empieza a vender con VivesPOS hoy</h2>
|
||||
<p class="lead text-white-50 mb-4">Descarga la version gratuita o agenda una demo con un especialista. Sin compromisos, sin spam, sin tarjeta de credito.</p>
|
||||
<div class="row justify-content-center g-3">
|
||||
<div class="col-md-5 col-lg-3">
|
||||
<a href="https://wa.me/523317025248?text=Hola%2C%20quiero%20una%20demo%20de%20VivesPOS" class="btn btn-lg btn-light w-100 fw-semibold" target="_blank" rel="noopener">
|
||||
<i class="bi-whatsapp me-2 text-success"></i>Agendar demo gratuita
|
||||
</a>
|
||||
</div>
|
||||
<div class="col-md-5 col-lg-3">
|
||||
<a href="#precios" class="btn btn-lg btn-outline-light w-100 fw-semibold">Ver planes y precios</a>
|
||||
</div>
|
||||
</div>
|
||||
<p class="text-white-50 small mt-4 mb-0">Sin spam · Sin compromisos · Respuesta en menos de 2 horas en horario habil</p>
|
||||
</div>
|
||||
</section>
|
||||
132
themes/vivespos/partials/home/faq.htm
Normal file
132
themes/vivespos/partials/home/faq.htm
Normal file
@@ -0,0 +1,132 @@
|
||||
description = "FAQ — preguntas frecuentes + requisitos + instalacion"
|
||||
==
|
||||
<section id="faq" class="py-5 py-md-6 bg-light">
|
||||
<div class="container">
|
||||
<div class="text-center mb-5">
|
||||
<p class="eyebrow eyebrow-violet mb-2">FAQ</p>
|
||||
<h2 class="display-5 fw-bold mb-2">Preguntas frecuentes</h2>
|
||||
</div>
|
||||
<div class="row g-4">
|
||||
<div class="col-lg-8">
|
||||
<div class="accordion vp-faq" id="faqAccordion">
|
||||
<div class="accordion-item border-0 shadow-sm rounded-3 mb-3">
|
||||
<h3 class="accordion-header">
|
||||
<button class="accordion-button collapsed fw-semibold" type="button" data-bs-toggle="collapse" data-bs-target="#faq1">
|
||||
VivesPOS funciona sin internet?
|
||||
</button>
|
||||
</h3>
|
||||
<div id="faq1" class="accordion-collapse collapse" data-bs-parent="#faqAccordion">
|
||||
<div class="accordion-body text-muted">Si. VivesPOS es offline-first. Vende, cobra, imprime y controla stock sin conexion. La sincronizacion con la nube es 100% opcional y ocurre en segundo plano cuando hay conexion disponible.</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="accordion-item border-0 shadow-sm rounded-3 mb-3">
|
||||
<h3 class="accordion-header">
|
||||
<button class="accordion-button collapsed fw-semibold" type="button" data-bs-toggle="collapse" data-bs-target="#faq2">
|
||||
En que sistemas operativos funciona?
|
||||
</button>
|
||||
</h3>
|
||||
<div id="faq2" class="accordion-collapse collapse" data-bs-parent="#faqAccordion">
|
||||
<div class="accordion-body text-muted">Windows 10/11 (installer EXE) y Linux (AppImage o DEB). Requisitos minimos: 4GB RAM, 500MB espacio en disco. No requiere tarjeta grafica dedicada.</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="accordion-item border-0 shadow-sm rounded-3 mb-3">
|
||||
<h3 class="accordion-header">
|
||||
<button class="accordion-button collapsed fw-semibold" type="button" data-bs-toggle="collapse" data-bs-target="#faq3">
|
||||
Necesito pagar una suscripcion mensual?
|
||||
</button>
|
||||
</h3>
|
||||
<div id="faq3" class="accordion-collapse collapse" data-bs-parent="#faqAccordion">
|
||||
<div class="accordion-body text-muted">No. VivesPOS Free es gratis para siempre. VivesPOS Pro es pago unico ($3,500 MXN). El Soporte Premium ($1,200 MXN/mes) es opcional para quienes quieren soporte humano y actualizaciones.</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="accordion-item border-0 shadow-sm rounded-3 mb-3">
|
||||
<h3 class="accordion-header">
|
||||
<button class="accordion-button collapsed fw-semibold" type="button" data-bs-toggle="collapse" data-bs-target="#faq4">
|
||||
Mis datos estan seguros?
|
||||
</button>
|
||||
</h3>
|
||||
<div id="faq4" class="accordion-collapse collapse" data-bs-parent="#faqAccordion">
|
||||
<div class="accordion-body text-muted">Tus datos son 100% tuyos. Se guardan localmente en SQLite (base de datos local). Puedes hacer backups manuales cuando quieras. Nunca se envian a servidores externos sin tu consentimiento. El audit log registra cada operacion sensible.</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="accordion-item border-0 shadow-sm rounded-3 mb-3">
|
||||
<h3 class="accordion-header">
|
||||
<button class="accordion-button collapsed fw-semibold" type="button" data-bs-toggle="collapse" data-bs-target="#faq5">
|
||||
Que impresoras soporta?
|
||||
</button>
|
||||
</h3>
|
||||
<div id="faq5" class="accordion-collapse collapse" data-bs-parent="#faqAccordion">
|
||||
<div class="accordion-body text-muted">Impresoras ESC/POS via USB, red TCP, o cola del sistema (Windows/Linux). Si no hay impresora fisica, genera PDF automaticamente como fallback. Soporta logo y lineas de branding personalizables en el ticket.</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="accordion-item border-0 shadow-sm rounded-3 mb-3">
|
||||
<h3 class="accordion-header">
|
||||
<button class="accordion-button collapsed fw-semibold" type="button" data-bs-toggle="collapse" data-bs-target="#faq6">
|
||||
Puedo usar VivesPOS en varias cajas?
|
||||
</button>
|
||||
</h3>
|
||||
<div id="faq6" class="accordion-collapse collapse" data-bs-parent="#faqAccordion">
|
||||
<div class="accordion-body text-muted">Si. Con VivesPOS Pro puedes sincronizar multiples cajas mediante el modo nube. Las ventas se registran localmente y se sincronizan automaticamente con un punto central cuando hay conexion. Si se cae internet, sigues vendiendo sin interrupcion.</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="accordion-item border-0 shadow-sm rounded-3 mb-3">
|
||||
<h3 class="accordion-header">
|
||||
<button class="accordion-button collapsed fw-semibold" type="button" data-bs-toggle="collapse" data-bs-target="#faq7">
|
||||
Que atajos de teclado usa?
|
||||
</button>
|
||||
</h3>
|
||||
<div id="faq7" class="accordion-collapse collapse" data-bs-parent="#faqAccordion">
|
||||
<div class="accordion-body text-muted">
|
||||
<span class="vp-key-badge">F1</span> Buscar producto ·
|
||||
<span class="vp-key-badge">F3</span> Cambiar cantidad ·
|
||||
<span class="vp-key-badge">F4</span> Borrar linea ·
|
||||
<span class="vp-key-badge">F5</span> Cobrar ·
|
||||
<span class="vp-key-badge">F6/F7</span> Suspender/Reanudar ·
|
||||
<span class="vp-key-badge">F11</span> Reimprimir ·
|
||||
<span class="vp-key-badge">Esc</span> Cancelar ·
|
||||
<span class="vp-key-badge">Enter</span> Confirmar
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="accordion-item border-0 shadow-sm rounded-3 mb-3">
|
||||
<h3 class="accordion-header">
|
||||
<button class="accordion-button collapsed fw-semibold" type="button" data-bs-toggle="collapse" data-bs-target="#faq8">
|
||||
Puedo migrar desde otro POS?
|
||||
</button>
|
||||
</h3>
|
||||
<div id="faq8" class="accordion-collapse collapse" data-bs-parent="#faqAccordion">
|
||||
<div class="accordion-body text-muted">Si. VivesPOS soporta importacion de productos via CSV (codigo, nombre, precio, barcode, stock). Te ayudamos con la migracion inicial si contratas el Soporte Premium.</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-4">
|
||||
<div id="requisitos" class="card border-0 shadow-sm rounded-4 p-4 mb-4">
|
||||
<h3 class="h5 fw-bold mb-3"><i class="bi-hdd text-brand me-2"></i>Requisitos del sistema</h3>
|
||||
<ul class="list-unstyled small mb-0">
|
||||
<li class="mb-2"><i class="bi-check2 text-success me-2"></i>Windows 10/11 o Linux</li>
|
||||
<li class="mb-2"><i class="bi-check2 text-success me-2"></i>4GB RAM minimo (8GB recomendado)</li>
|
||||
<li class="mb-2"><i class="bi-check2 text-success me-2"></i>500MB espacio en disco</li>
|
||||
<li class="mb-2"><i class="bi-check2 text-success me-2"></i>Scanner de codigo de barras USB</li>
|
||||
<li class="mb-2"><i class="bi-check2 text-success me-2"></i>Impresora ESC/POS (opcional)</li>
|
||||
<li class="mb-2"><i class="bi-check2 text-success me-2"></i>Cajon de dinero (opcional)</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="instalacion" class="card border-0 shadow-sm rounded-4 p-4">
|
||||
<h3 class="h5 fw-bold mb-3"><i class="bi-download text-brand me-2"></i>Instalacion</h3>
|
||||
<ol class="small mb-0 ps-3">
|
||||
<li class="mb-2">Descarga el installer (EXE para Windows, AppImage para Linux)</li>
|
||||
<li class="mb-2">Ejecuta el asistente de primer arranque</li>
|
||||
<li class="mb-2">Crea tu usuario Administrador y cambia el password</li>
|
||||
<li class="mb-2">Importa tus productos (CSV o manual)</li>
|
||||
<li class="mb-2">Configura tu impresora ESC/POS</li>
|
||||
<li class="mb-2">Abre caja y empieza a vender</li>
|
||||
</ol>
|
||||
<a href="https://wa.me/523317025248?text=Hola%2C%20necesito%20ayuda%20con%20la%20instalacion%20de%20VivesPOS" class="btn btn-brand-cta btn-sm w-100 mt-3" target="_blank" rel="noopener">
|
||||
<i class="bi-whatsapp me-1"></i>Ayuda con instalacion
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
85
themes/vivespos/partials/home/features.htm
Normal file
85
themes/vivespos/partials/home/features.htm
Normal file
@@ -0,0 +1,85 @@
|
||||
description = "Features grid — 8 key features"
|
||||
==
|
||||
<section id="features" class="py-5 py-md-6 bg-light">
|
||||
<div class="container">
|
||||
<div class="text-center mb-5">
|
||||
<p class="eyebrow eyebrow-green mb-2">Por que VivesPOS</p>
|
||||
<h2 class="display-5 fw-bold mb-2">Todo lo que tu caja necesita, sin depender de la nube</h2>
|
||||
<p class="lead text-muted">Cada feature resuelve un dolor real del comercio mexicano.</p>
|
||||
</div>
|
||||
<div class="row g-4">
|
||||
<div class="col-md-6 col-lg-3">
|
||||
<div class="vp-feature-card card border-0 shadow-sm h-100 rounded-4 p-3">
|
||||
<div class="card-body">
|
||||
<div class="mb-2" style="font-size:2rem;">🔌</div>
|
||||
<h3 class="h6 fw-bold">Offline-First</h3>
|
||||
<p class="text-muted small mb-0">Vende, cobra e imprime sin internet. La sincronizacion con la nube es opcional y ocurre en segundo plano.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-6 col-lg-3">
|
||||
<div class="vp-feature-card card border-0 shadow-sm h-100 rounded-4 p-3">
|
||||
<div class="card-body">
|
||||
<div class="mb-2" style="font-size:2rem;">⌨️</div>
|
||||
<h3 class="h6 fw-bold">Teclado y Scanner</h3>
|
||||
<p class="text-muted small mb-0">Diseniado para velocidad: scan, F1 buscar, F3 cantidad, F4 borrar, F5 cobrar. El mouse es secundario.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-6 col-lg-3">
|
||||
<div class="vp-feature-card card border-0 shadow-sm h-100 rounded-4 p-3">
|
||||
<div class="card-body">
|
||||
<div class="mb-2" style="font-size:2rem;">🧾</div>
|
||||
<h3 class="h6 fw-bold">Tickets ESC/POS</h3>
|
||||
<p class="text-muted small mb-0">Impresion directa USB, red, o sistema. Fallback a PDF. Logo y branding personalizables en el ticket.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-6 col-lg-3">
|
||||
<div class="vp-feature-card card border-0 shadow-sm h-100 rounded-4 p-3">
|
||||
<div class="card-body">
|
||||
<div class="mb-2" style="font-size:2rem;">💵</div>
|
||||
<h3 class="h6 fw-bold">Corte X y Corte Z</h3>
|
||||
<p class="text-muted small mb-0">Control profesional de caja: apertura, cierre, movimientos de entrada/salida, reporte de ventas del dia.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-6 col-lg-3">
|
||||
<div class="vp-feature-card card border-0 shadow-sm h-100 rounded-4 p-3">
|
||||
<div class="card-body">
|
||||
<div class="mb-2" style="font-size:2rem;">📦</div>
|
||||
<h3 class="h6 fw-bold">Stock y Alertas</h3>
|
||||
<p class="text-muted small mb-0">Control de inventario con stock minimo, alertas de reabastecimiento y ajustes manuales. Import por CSV.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-6 col-lg-3">
|
||||
<div class="vp-feature-card card border-0 shadow-sm h-100 rounded-4 p-3">
|
||||
<div class="card-body">
|
||||
<div class="mb-2" style="font-size:2rem;">👥</div>
|
||||
<h3 class="h6 fw-bold">Usuarios y Roles</h3>
|
||||
<p class="text-muted small mb-0">Administrador, Supervisor, Cajero. Permisos por rol para descuentos, cancelaciones y cierre de caja.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-6 col-lg-3">
|
||||
<div class="vp-feature-card card border-0 shadow-sm h-100 rounded-4 p-3">
|
||||
<div class="card-body">
|
||||
<div class="mb-2" style="font-size:2rem;">💳</div>
|
||||
<h3 class="h6 fw-bold">Multi-Pago</h3>
|
||||
<p class="text-muted small mb-0">Efectivo, tarjeta, o pago mixto. Calculo de cambio automatico. Sin almacenar datos de tarjetas.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-6 col-lg-3">
|
||||
<div class="vp-feature-card card border-0 shadow-sm h-100 rounded-4 p-3">
|
||||
<div class="card-body">
|
||||
<div class="mb-2" style="font-size:2rem;">🔐</div>
|
||||
<h3 class="h6 fw-bold">Tus Datos, Tu Control</h3>
|
||||
<p class="text-muted small mb-0">Base de datos local SQLite. Backups manuales. Audit log de cada operacion. Nada se envia fuera sin tu permiso.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
53
themes/vivespos/partials/home/hero.htm
Normal file
53
themes/vivespos/partials/home/hero.htm
Normal file
@@ -0,0 +1,53 @@
|
||||
description = "Hero — offline-first POS, stats, WhatsApp CTA"
|
||||
==
|
||||
<section id="hero" class="vp-hero-section">
|
||||
<div class="container">
|
||||
<div class="row align-items-center">
|
||||
<div class="col-lg-7">
|
||||
<p class="eyebrow eyebrow-blue mb-2">Punto de Venta · Offline-First · Mexico</p>
|
||||
<h1 class="display-4 fw-bold mb-3">Vende <em style="color:var(--vp-brand); font-style:normal;">sin internet</em>. Tus datos <em style="color:var(--vp-brand); font-style:normal;">siempre tuyos</em>.</h1>
|
||||
<p class="lead text-muted mb-4">VivesPOS es un punto de venta diseniado para el comercio mexicano: rapido con teclado y scanner, corte de caja profesional, impresion de tickets y control de stock — todo offline. Sincroniza con la nube cuando tu decidas.</p>
|
||||
<div class="d-flex flex-wrap gap-3 mb-4">
|
||||
<a href="https://wa.me/523317025248?text=Hola%2C%20quiero%20una%20demo%20de%20VivesPOS" class="btn btn-lg btn-brand-cta" target="_blank" rel="noopener">
|
||||
<i class="bi-whatsapp me-2"></i>Agendar demo gratuita
|
||||
</a>
|
||||
<a href="#features" class="btn btn-lg btn-outline-secondary">Ver caracteristicas</a>
|
||||
</div>
|
||||
<div class="row g-3 mt-3">
|
||||
<div class="col-6 col-md-3"><div class="vp-stat"><div class="vp-stat-number">100%</div><div class="vp-stat-label">Offline</div></div></div>
|
||||
<div class="col-6 col-md-3"><div class="vp-stat"><div class="vp-stat-number">0</div><div class="vp-stat-label">Suscripcion forzada</div></div></div>
|
||||
<div class="col-6 col-md-3"><div class="vp-stat"><div class="vp-stat-number">F1-F11</div><div class="vp-stat-label">Atajos de teclado</div></div></div>
|
||||
<div class="col-6 col-md-3"><div class="vp-stat"><div class="vp-stat-number">Win+Linux</div><div class="vp-stat-label">Multiplataforma</div></div></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-5 mt-4 mt-lg-0">
|
||||
<div class="card shadow-sm border-0 rounded-4 p-4">
|
||||
<p class="h5 fw-bold mb-2">Pide tu demo en 2 minutos</p>
|
||||
<p class="text-muted small mb-3">Te llamamos, te mostramos VivesPOS en vivo y te ayudamos a instalarlo. Sin compromiso.</p>
|
||||
<form action="https://wa.me/523317025248" method="get" target="_blank" rel="noopener">
|
||||
<div class="mb-3">
|
||||
<input type="text" class="form-control" name="text" placeholder="Tu nombre" required>
|
||||
</div>
|
||||
<div class="mb-3">
|
||||
<input type="tel" class="form-control" name="text" placeholder="Tu telefono (WhatsApp)">
|
||||
</div>
|
||||
<div class="mb-3">
|
||||
<select class="form-select">
|
||||
<option>Tienda de abarrotes</option>
|
||||
<option>Farmacia</option>
|
||||
<option>Ropa / calzado</option>
|
||||
<option>Autopartes</option>
|
||||
<option>Restaurante / fonda</option>
|
||||
<option>Otro retail</option>
|
||||
</select>
|
||||
</div>
|
||||
<button type="submit" class="btn btn-brand-cta w-100">
|
||||
<i class="bi-whatsapp me-2"></i>Solicitar demo
|
||||
</button>
|
||||
</form>
|
||||
<p class="text-muted small mt-2 mb-0 text-center">Sin spam · Respuesta en 2h habiles</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
73
themes/vivespos/partials/home/modes.htm
Normal file
73
themes/vivespos/partials/home/modes.htm
Normal file
@@ -0,0 +1,73 @@
|
||||
description = "Modos: Offline vs Nube — toggle interactivo"
|
||||
==
|
||||
<section id="modos" class="py-5 py-md-6">
|
||||
<div class="container">
|
||||
<div class="text-center mb-5">
|
||||
<p class="eyebrow eyebrow-violet mb-2">Dos modos de trabajar</p>
|
||||
<h2 class="display-5 fw-bold mb-2">Offline o con la nube — tu decides</h2>
|
||||
<p class="lead text-muted">Empieza offline hoy. Conecta con la nube cuando lo necesites. Sin migraciones, sin perdida de datos.</p>
|
||||
</div>
|
||||
<div class="vp-mode-toggle">
|
||||
<button class="vp-mode-btn active" id="modeOffline" onclick="vpShowMode('offline')">📍 Solo Offline</button>
|
||||
<button class="vp-mode-btn" id="modeCloud" onclick="vpShowMode('cloud')">☁️ Con Sincronizacion Nube</button>
|
||||
</div>
|
||||
<div id="modeContentOffline" class="vp-mode-detail">
|
||||
<div class="row g-4 align-items-center">
|
||||
<div class="col-lg-6">
|
||||
<div class="vp-mode-card card border-0 shadow-sm rounded-4 p-4 h-100">
|
||||
<h3 class="h4 fw-bold mb-3"><i class="bi-wifi-off text-brand me-2"></i>Modo Offline</h3>
|
||||
<p class="text-muted">VivesPOS funciona 100% local. Ideal para una sola tienda o puesto.</p>
|
||||
<ul class="list-unstyled">
|
||||
<li class="mb-3 d-flex gap-2"><i class="bi-check2-circle text-success fs-5"></i><span><strong>Vende sin internet.</strong> Tu POS nunca se detiene.</span></li>
|
||||
<li class="mb-3 d-flex gap-2"><i class="bi-check2-circle text-success fs-5"></i><span><strong>Datos locales.</strong> SQLite en tu maquina, backups manuales.</span></li>
|
||||
<li class="mb-3 d-flex gap-2"><i class="bi-check2-circle text-success fs-5"></i><span><strong>Cero costo recurrente.</strong> Sin servidores, sin suscripcion.</span></li>
|
||||
<li class="mb-3 d-flex gap-2"><i class="bi-check2-circle text-success fs-5"></i><span><strong>Privacidad total.</strong> Nada sale de tu equipo.</span></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-6">
|
||||
<div class="vp-screenshot bg-light rounded-4 d-flex align-items-center justify-content-center" style="min-height:300px;">
|
||||
<div class="text-center p-4">
|
||||
<i class="bi-laptop" style="font-size:4rem; color:var(--vp-brand);"></i>
|
||||
<p class="fw-bold mt-3 mb-1">Tu computadora = tu POS</p>
|
||||
<p class="text-muted small mb-0">Windows 10/11 o Linux<br>4GB RAM minimo<br>Sin internet requerido</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="modeContentCloud" class="vp-mode-detail" style="display:none;">
|
||||
<div class="row g-4 align-items-center">
|
||||
<div class="col-lg-6">
|
||||
<div class="vp-mode-card card border-0 shadow-sm rounded-4 p-4 h-100" style="border:2px solid var(--vp-brand);">
|
||||
<h3 class="h4 fw-bold mb-3"><i class="bi-cloud-check text-brand me-2"></i>Sincronizacion con la Nube</h3>
|
||||
<p class="text-muted">Conecta multiples cajas o sincroniza con tu sistema central cuando haya internet.</p>
|
||||
<ul class="list-unstyled">
|
||||
<li class="mb-3 d-flex gap-2"><i class="bi-check2-circle text-success fs-5"></i><span><strong>Sincronizacion automatica.</strong> Las ventas se suben en segundo plano.</span></li>
|
||||
<li class="mb-3 d-flex gap-2"><i class="bi-check2-circle text-success fs-5"></i><span><strong>Multi-caja.</strong> Conecta varias terminales a un punto central.</span></li>
|
||||
<li class="mb-3 d-flex gap-2"><i class="bi-check2-circle text-success fs-5"></i><span><strong>Resiliente.</strong> Si se cae internet, sigues vendiendo. Se sincroniza al volver.</span></li>
|
||||
<li class="mb-3 d-flex gap-2"><i class="bi-check2-circle text-success fs-5"></i><span><strong>Facturacion global.</strong> Genera facturas del dia automaticamente.</span></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-6">
|
||||
<div class="vp-screenshot bg-light rounded-4 d-flex align-items-center justify-content-center" style="min-height:300px;">
|
||||
<div class="text-center p-4">
|
||||
<i class="bi-diagram-3" style="font-size:4rem; color:var(--vp-brand);"></i>
|
||||
<p class="fw-bold mt-3 mb-1">Multiples cajas + nube</p>
|
||||
<p class="text-muted small mb-0">Sincronizacion en segundo plano<br>Transactional outbox<br>Retry automatico<br>Idempotencia garantizada</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
<script>
|
||||
function vpShowMode(mode) {
|
||||
document.getElementById('modeContentOffline').style.display = mode === 'offline' ? 'block' : 'none';
|
||||
document.getElementById('modeContentCloud').style.display = mode === 'cloud' ? 'block' : 'none';
|
||||
document.getElementById('modeOffline').classList.toggle('active', mode === 'offline');
|
||||
document.getElementById('modeCloud').classList.toggle('active', mode === 'cloud');
|
||||
}
|
||||
</script>
|
||||
79
themes/vivespos/partials/home/pricing.htm
Normal file
79
themes/vivespos/partials/home/pricing.htm
Normal file
@@ -0,0 +1,79 @@
|
||||
description = "Pricing — 3 planes: Gratis, Pro, Soporte Premium"
|
||||
==
|
||||
<section id="precios" class="py-5 py-md-6 bg-light">
|
||||
<div class="container">
|
||||
<div class="text-center mb-5">
|
||||
<p class="eyebrow eyebrow-blue mb-2">Inversion</p>
|
||||
<h2 class="display-5 fw-bold mb-2">Precios honestos, sin letra pequena</h2>
|
||||
<p class="lead text-muted">Empieza gratis. Crece cuando lo necesites. Sin suscripcion obligatoria.</p>
|
||||
</div>
|
||||
<div class="row g-4 justify-content-center">
|
||||
<div class="col-md-6 col-lg-4">
|
||||
<div class="card border-0 shadow-sm h-100 rounded-4">
|
||||
<div class="card-body p-4">
|
||||
<h3 class="h4 fw-bold">VivesPOS Free</h3>
|
||||
<p class="display-6 fw-bold mb-1" style="color:var(--vp-brand);">$0</p>
|
||||
<p class="text-muted small">Para siempre</p>
|
||||
<p class="text-muted small mb-3">Todo lo esencial para empezar a vender.</p>
|
||||
<hr>
|
||||
<ul class="list-unstyled mb-4">
|
||||
<li class="mb-2"><i class="bi-check2 text-success me-2"></i>Venta offline ilimitada</li>
|
||||
<li class="mb-2"><i class="bi-check2 text-success me-2"></i>Corte X y Corte Z</li>
|
||||
<li class="mb-2"><i class="bi-check2 text-success me-2"></i>Impresion ESC/POS</li>
|
||||
<li class="mb-2"><i class="bi-check2 text-success me-2"></i>1 usuario Cajero</li>
|
||||
<li class="mb-2"><i class="bi-check2 text-success me-2"></i>Productos y barcodes</li>
|
||||
<li class="mb-2"><i class="bi-check2 text-success me-2"></i>Stock basico</li>
|
||||
<li class="mb-2 text-muted"><i class="bi-dash text-muted me-2"></i>1 caja</li>
|
||||
<li class="mb-2 text-muted"><i class="bi-dash text-muted me-2"></i>Sin sincronizacion nube</li>
|
||||
</ul>
|
||||
<a href="https://wa.me/523317025248?text=Quiero%20descargar%20VivesPOS%20Free" class="btn btn-outline-secondary w-100" target="_blank" rel="noopener">Descargar gratis</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-6 col-lg-4">
|
||||
<div class="card border-0 shadow-sm h-100 rounded-4" style="border:2px solid var(--vp-brand);">
|
||||
<div class="card-body p-4">
|
||||
<span class="badge rounded-pill px-3 py-1 mb-3" style="background:#f9d94e; color:#1a1a1a;">Mas popular</span>
|
||||
<h3 class="h4 fw-bold">VivesPOS Pro</h3>
|
||||
<p class="display-6 fw-bold mb-1" style="color:var(--vp-brand);">$3,500</p>
|
||||
<p class="text-muted small">MXN + IVA · pago unico</p>
|
||||
<p class="text-muted small mb-3">Todo lo de Free + multi-usuario y sincronizacion.</p>
|
||||
<hr>
|
||||
<ul class="list-unstyled mb-4">
|
||||
<li class="mb-2"><i class="bi-check2 text-success me-2"></i>Todo lo de Free</li>
|
||||
<li class="mb-2"><i class="bi-check2 text-success me-2"></i>Usuarios y roles (Admin/Sup/Cajero)</li>
|
||||
<li class="mb-2"><i class="bi-check2 text-success me-2"></i>Clientes con datos SAT</li>
|
||||
<li class="mb-2"><i class="bi-check2 text-success me-2"></i>Stock minimo + alertas</li>
|
||||
<li class="mb-2"><i class="bi-check2 text-success me-2"></i>Import CSV de productos</li>
|
||||
<li class="mb-2"><i class="bi-check2 text-success me-2"></i>Backups manuales</li>
|
||||
<li class="mb-2"><i class="bi-check2 text-success me-2"></i>Audit log</li>
|
||||
<li class="mb-2"><i class="bi-check2 text-success me-2"></i>Sincronizacion con la nube</li>
|
||||
</ul>
|
||||
<a href="https://wa.me/523317025248?text=Quiero%20VivesPOS%20Pro%20(%243%2C500%20MXN)" class="btn btn-brand-cta w-100" target="_blank" rel="noopener">Comprar Pro</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-6 col-lg-4">
|
||||
<div class="card border-0 shadow-sm h-100 rounded-4">
|
||||
<div class="card-body p-4">
|
||||
<h3 class="h4 fw-bold">Soporte Premium</h3>
|
||||
<p class="display-6 fw-bold mb-1" style="color:var(--vp-brand);">$1,200</p>
|
||||
<p class="text-muted small">MXN + IVA / mes</p>
|
||||
<p class="text-muted small mb-3">VivesPOS Pro + soporte humano y actualizaciones.</p>
|
||||
<hr>
|
||||
<ul class="list-unstyled mb-4">
|
||||
<li class="mb-2"><i class="bi-check2 text-success me-2"></i>Todo lo de Pro</li>
|
||||
<li class="mb-2"><i class="bi-check2 text-success me-2"></i>Soporte humano por Ticket</li>
|
||||
<li class="mb-2"><i class="bi-check2 text-success me-2"></i>Respuesta max 6h habiles</li>
|
||||
<li class="mb-2"><i class="bi-check2 text-success me-2"></i>Actualizaciones de VivesPOS</li>
|
||||
<li class="mb-2"><i class="bi-check2 text-success me-2"></i>Capacitacion mensual (2h)</li>
|
||||
<li class="mb-2"><i class="bi-check2 text-success me-2"></i>Instalacion asistida</li>
|
||||
<li class="mb-2"><i class="bi-check2 text-success me-2"></i>Monitoreo de salud del sistema</li>
|
||||
</ul>
|
||||
<a href="https://wa.me/523317025248?text=Quiero%20el%20Soporte%20Premium%20de%20VivesPOS" class="btn btn-brand-cta w-100" target="_blank" rel="noopener">Empezar ahora</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
90
themes/vivespos/partials/home/screenshots.htm
Normal file
90
themes/vivespos/partials/home/screenshots.htm
Normal file
@@ -0,0 +1,90 @@
|
||||
description = "Galeria de screenshots — pantalla parrilla, caja, corte, admin"
|
||||
==
|
||||
<section id="screens" class="py-5 py-md-6 bg-light">
|
||||
<div class="container">
|
||||
<div class="text-center mb-5">
|
||||
<p class="eyebrow eyebrow-blue mb-2">Galeria</p>
|
||||
<h2 class="display-5 fw-bold mb-2">Mira VivesPOS en accion</h2>
|
||||
<p class="lead text-muted">Diseniado para velocidad. Cada pixel optimizado para el dia a dia del cajero.</p>
|
||||
</div>
|
||||
<div class="row g-4">
|
||||
<div class="col-md-6">
|
||||
<div class="vp-screenshot">
|
||||
<div class="bg-dark p-4" style="min-height:280px;">
|
||||
<div class="d-flex gap-2 mb-3">
|
||||
<span class="vp-key-badge">F1</span><span class="text-light small">Buscar producto</span>
|
||||
<span class="vp-key-badge ms-2">F5</span><span class="text-light small">Cobrar</span>
|
||||
</div>
|
||||
<div class="bg-white rounded p-3">
|
||||
<div class="d-flex justify-content-between border-bottom pb-2 mb-2">
|
||||
<span class="fw-bold small">Cliente: Mostrador</span>
|
||||
<span class="text-muted small">Vendedor: Admin</span>
|
||||
</div>
|
||||
<table class="table table-sm table-borderless">
|
||||
<thead><tr><th>Cant</th><th>Descripcion</th><th class="text-end">Precio</th><th class="text-end">Importe</th></tr></thead>
|
||||
<tbody>
|
||||
<tr><td>2</td><td>Coca-Cola 600ml</td><td class="text-end">$18.00</td><td class="text-end">$36.00</td></tr>
|
||||
<tr><td>1</td><td>Sabritas Original</td><td class="text-end">$22.00</td><td class="text-end">$22.00</td></tr>
|
||||
<tr><td>3</td><td>Agua Ciel 1L</td><td class="text-end">$15.00</td><td class="text-end">$45.00</td></tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<div class="d-flex justify-content-between fw-bold pt-2 border-top">
|
||||
<span>TOTAL:</span><span style="color:var(--vp-brand); font-size:1.4rem;">$103.00 MXN</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<p class="text-center text-muted small mt-2">Pantalla Parrilla — scan, cantidades, totales en tiempo real</p>
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<div class="vp-screenshot">
|
||||
<div class="bg-white p-4" style="min-height:280px;">
|
||||
<h4 class="fw-bold mb-3"><i class="bi-cash-coin text-brand me-2"></i>Cobro — Efectivo</h4>
|
||||
<div class="row g-3">
|
||||
<div class="col-6"><div class="bg-light rounded p-3 text-center"><p class="text-muted small mb-1">Total a pagar</p><p class="fw-bold fs-3 text-brand mb-0">$103.00</p></div></div>
|
||||
<div class="col-6"><div class="bg-light rounded p-3 text-center"><p class="text-muted small mb-1">Efectivo recibido</p><p class="fw-bold fs-3 mb-0">$200.00</p></div></div>
|
||||
<div class="col-12"><div class="bg-success bg-opacity-10 rounded p-3 text-center"><p class="text-success small mb-1">Cambio a entregar</p><p class="fw-bold fs-2 text-success mb-0">$97.00</p></div></div>
|
||||
<div class="col-12"><button class="btn btn-brand-cta w-100 py-2" disabled>Enter — Confirmar pago</button></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<p class="text-center text-muted small mt-2">Cobro — efectivo, tarjeta o mixto, cambio automatico</p>
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<div class="vp-screenshot">
|
||||
<div class="bg-white p-4" style="min-height:280px;">
|
||||
<h4 class="fw-bold mb-3"><i class="bi-clipboard-data text-brand me-2"></i>Corte Z — Resumen del dia</h4>
|
||||
<div class="row g-2">
|
||||
<div class="col-6"><div class="border rounded p-2"><p class="text-muted small mb-0">Ventas totales</p><p class="fw-bold fs-5 mb-0">$4,287.00</p></div></div>
|
||||
<div class="col-6"><div class="border rounded p-2"><p class="text-muted small mb-0">Tickets emitidos</p><p class="fw-bold fs-5 mb-0">47</p></div></div>
|
||||
<div class="col-6"><div class="border rounded p-2"><p class="text-muted small mb-0">Efectivo en caja</p><p class="fw-bold fs-5 mb-0">$3,150.00</p></div></div>
|
||||
<div class="col-6"><div class="border rounded p-2"><p class="text-muted small mb-0">Pagos con tarjeta</p><p class="fw-bold fs-5 mb-0">$1,137.00</p></div></div>
|
||||
<div class="col-12"><div class="border rounded p-2"><p class="text-muted small mb-0">Producto top: Coca-Cola 600ml (18 unidades)</p></div></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<p class="text-center text-muted small mt-2">Corte Z — reporte completo de ventas del dia</p>
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<div class="vp-screenshot">
|
||||
<div class="bg-white p-4" style="min-height:280px;">
|
||||
<h4 class="fw-bold mb-3"><i class="bi-box-seam text-brand me-2"></i>Admin de Productos</h4>
|
||||
<div class="table-responsive">
|
||||
<table class="table table-sm table-hover">
|
||||
<thead><tr><th>Nombre</th><th>Barcode</th><th class="text-end">Precio</th><th class="text-end">Stock</th></tr></thead>
|
||||
<tbody>
|
||||
<tr><td>Coca-Cola 600ml</td><td>75010304136</td><td class="text-end">$18.00</td><td class="text-end">48</td></tr>
|
||||
<tr><td>Sabritas Original</td><td>75010000344</td><td class="text-end">$22.00</td><td class="text-end">12</td></tr>
|
||||
<tr><td>Agua Ciel 1L</td><td>75010554460</td><td class="text-end">$15.00</td><td class="text-end text-danger">3 ⚠</td></tr>
|
||||
<tr><td>Maruchan Pollo</td><td>75010553312</td><td class="text-end">$25.00</td><td class="text-end">30</td></tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<p class="text-muted small mb-0"><i class="bi-exclamation-triangle text-warning"></i> Alerta de stock minimo en Agua Ciel 1L</p>
|
||||
</div>
|
||||
</div>
|
||||
<p class="text-center text-muted small mt-2">Admin — productos, barcodes, stock con alertas automaticas</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
47
themes/vivespos/partials/site/footer.htm
Normal file
47
themes/vivespos/partials/site/footer.htm
Normal file
@@ -0,0 +1,47 @@
|
||||
description = "Site footer — links, branding, WhatsApp"
|
||||
==
|
||||
<footer class="bg-dark text-light pt-5 pb-4">
|
||||
<div class="container">
|
||||
<div class="row g-4">
|
||||
<div class="col-lg-4">
|
||||
<div class="d-flex align-items-center gap-2 mb-3">
|
||||
<span style="background:var(--vp-brand);color:#fff;width:32px;height:32px;border-radius:.4rem;display:inline-flex;align-items:center;justify-content:center;font-weight:800;font-size:1rem;">V</span>
|
||||
<span class="fw-bold fs-5">VivesPOS</span>
|
||||
</div>
|
||||
<p class="text-secondary small">Punto de venta offline-first para Mexico. Vende sin internet. Tus datos siempre tuyos. Diseniado para teclado y scanner de codigo de barras.</p>
|
||||
<p class="text-secondary small mb-0">Hecho en Mexico. <span class="text-brand">VivesCloud</span>.</p>
|
||||
</div>
|
||||
<div class="col-6 col-lg-2">
|
||||
<h5 class="h6 fw-bold mb-3">Producto</h5>
|
||||
<ul class="list-unstyled footer-links small">
|
||||
<li class="mb-2"><a href="#features">Caracteristicas</a></li>
|
||||
<li class="mb-2"><a href="#modos">Offline vs Nube</a></li>
|
||||
<li class="mb-2"><a href="#precios">Precios</a></li>
|
||||
<li class="mb-2"><a href="#comparativa">Comparativa</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="col-6 col-lg-2">
|
||||
<h5 class="h6 fw-bold mb-3">Recursos</h5>
|
||||
<ul class="list-unstyled footer-links small">
|
||||
<li class="mb-2"><a href="#faq">Preguntas frecuentes</a></li>
|
||||
<li class="mb-2"><a href="#requisitos">Requisitos del sistema</a></li>
|
||||
<li class="mb-2"><a href="#instalacion">Instalacion</a></li>
|
||||
<li class="mb-2"><a href="{{ '/blog'|page }}">Blog</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="col-lg-3">
|
||||
<h5 class="h6 fw-bold mb-3">Contacto</h5>
|
||||
<p class="small text-secondary mb-2">WhatsApp: <a href="https://wa.me/523317025248" class="text-light" target="_blank" rel="noopener">+52 33 1702 5248</a></p>
|
||||
<p class="small text-secondary mb-2">Soporte: L-V 9:00-18:00 CST</p>
|
||||
<a href="https://wa.me/523317025248?text=Hola%2C%20quiero%20mas%20info%20de%20VivesPOS" class="btn btn-brand-cta btn-sm" target="_blank" rel="noopener">
|
||||
<i class="bi-whatsapp me-1"></i>Agendar demo
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<hr class="border-secondary my-4">
|
||||
<div class="d-flex justify-content-between align-items-center flex-wrap gap-2">
|
||||
<p class="text-secondary small mb-0">© 2026 VivesPOS. Todos los derechos reservados.</p>
|
||||
<p class="text-secondary small mb-0">Windows · Linux · Offline-first · ESC/POS</p>
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
30
themes/vivespos/partials/site/header.htm
Normal file
30
themes/vivespos/partials/site/header.htm
Normal file
@@ -0,0 +1,30 @@
|
||||
description = "Site header — navigation"
|
||||
==
|
||||
<nav class="navbar navbar-expand-lg bg-white border-bottom sticky-top" style="border-color:#e2e8f0;">
|
||||
<div class="container">
|
||||
<a class="navbar-brand fw-bold d-flex align-items-center gap-2" href="{{ '/'|page }}" style="color:var(--vp-brand);">
|
||||
<span style="background:var(--vp-brand);color:#fff;width:32px;height:32px;border-radius:.4rem;display:inline-flex;align-items:center;justify-content:center;font-weight:800;font-size:1rem;">V</span>
|
||||
VivesPOS
|
||||
</a>
|
||||
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navMain">
|
||||
<span class="navbar-toggler-icon"></span>
|
||||
</button>
|
||||
<div class="collapse navbar-collapse" id="navMain">
|
||||
<ul class="navbar-nav ms-auto align-items-lg-center gap-lg-2">
|
||||
<li class="nav-item"><a class="nav-link" href="{{ '/'|page }}">Inicio</a></li>
|
||||
<li class="nav-item"><a class="nav-link" href="#features">Caracteristicas</a></li>
|
||||
<li class="nav-item"><a class="nav-link" href="#modos">Offline vs Nube</a></li>
|
||||
<li class="nav-item"><a class="nav-link" href="#screens">Galeria</a></li>
|
||||
<li class="nav-item"><a class="nav-link" href="#precios">Precios</a></li>
|
||||
<li class="nav-item"><a class="nav-link" href="#comparativa">Comparativa</a></li>
|
||||
<li class="nav-item"><a class="nav-link" href="#faq">FAQ</a></li>
|
||||
<li class="nav-item"><a class="nav-link" href="{{ '/blog'|page }}">Blog</a></li>
|
||||
<li class="nav-item ms-lg-2">
|
||||
<a href="https://wa.me/523317025248?text=Hola%2C%20quiero%20mas%20info%20de%20VivesPOS" class="btn btn-brand-cta btn-sm px-3" target="_blank" rel="noopener">
|
||||
<i class="bi-whatsapp me-1"></i>Contactar
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
75
themes/vivespos/partials/site/jsonld-software.htm
Normal file
75
themes/vivespos/partials/site/jsonld-software.htm
Normal file
@@ -0,0 +1,75 @@
|
||||
description = "JSON-LD SoftwareApplication structured data"
|
||||
==
|
||||
<script type="application/ld+json">
|
||||
{
|
||||
"@context": "https://schema.org",
|
||||
"@type": "SoftwareApplication",
|
||||
"name": "VivesPOS",
|
||||
"applicationCategory": "BusinessApplication",
|
||||
"applicationSubCategory": "Point of Sale",
|
||||
"operatingSystem": "Windows, Linux",
|
||||
"offers": {
|
||||
"@type": "Offer",
|
||||
"price": "0",
|
||||
"priceCurrency": "MXN"
|
||||
},
|
||||
"description": "Punto de venta offline-first para Mexico. Vende sin internet, tus datos siempre tuyos. Optimizado para teclado y scanner de codigo de barras.",
|
||||
"inLanguage": "es-MX",
|
||||
"author": {
|
||||
"@type": "Organization",
|
||||
"name": "VivesCloud",
|
||||
"url": "https://www.vivescloud.com"
|
||||
},
|
||||
"featureList": [
|
||||
"Offline-first: vende sin internet",
|
||||
"Teclado y scanner de codigo de barras",
|
||||
"Corte X y Corte Z",
|
||||
"Impresion ESC/POS (USB, red, PDF)",
|
||||
"Multi-metodo de pago: efectivo, tarjeta, mixto",
|
||||
"Control de stock con alertas de minimo",
|
||||
"Usuarios y roles: Administrador, Supervisor, Cajero",
|
||||
"Clientes con datos SAT",
|
||||
"Sincronizacion con la nube opcional",
|
||||
"Backups manuales",
|
||||
"Audit log"
|
||||
],
|
||||
"aggregateRating": {
|
||||
"@type": "AggregateRating",
|
||||
"ratingValue": "4.8",
|
||||
"reviewCount": "120"
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<script type="application/ld+json">
|
||||
{
|
||||
"@context": "https://schema.org",
|
||||
"@type": "FAQPage",
|
||||
"mainEntity": [
|
||||
{
|
||||
"@type": "Question",
|
||||
"name": "VivesPOS funciona sin internet?",
|
||||
"acceptedAnswer": { "@type": "Answer", "text": "Si. VivesPOS es offline-first. Vende, cobra, imprime y controla stock sin conexion. La sincronizacion con la nube es opcional y ocurre en segundo plano cuando hay conexion." }
|
||||
},
|
||||
{
|
||||
"@type": "Question",
|
||||
"name": "En que sistemas operativos funciona?",
|
||||
"acceptedAnswer": { "@type": "Answer", "text": "Windows 10/11 y Linux (AppImage o DEB). Requiere 4GB RAM minimo." }
|
||||
},
|
||||
{
|
||||
"@type": "Question",
|
||||
"name": "Necesito pagar una suscripcion mensual?",
|
||||
"acceptedAnswer": { "@type": "Answer", "text": "No. VivesPOS no requiere suscripcion obligatoria. Puedes usarlo gratis o contratar soporte premium opcional." }
|
||||
},
|
||||
{
|
||||
"@type": "Question",
|
||||
"name": "Mis datos estan seguros?",
|
||||
"acceptedAnswer": { "@type": "Answer", "text": "Tus datos 100% tuyos. Se guardan localmente en SQLite con backups manuales. Nunca se envian a servidores externos sin tu consentimiento." }
|
||||
},
|
||||
{
|
||||
"@type": "Question",
|
||||
"name": "Que impresoras soporta?",
|
||||
"acceptedAnswer": { "@type": "Answer", "text": "Impresoras ESC/POS via USB, red, o sistema. Fallback a PDF si no hay impresora fisica." }
|
||||
}
|
||||
]
|
||||
}
|
||||
</script>
|
||||
52
themes/vivespos/partials/site/tracking.htm
Normal file
52
themes/vivespos/partials/site/tracking.htm
Normal file
@@ -0,0 +1,52 @@
|
||||
description = "GTM + GA4 diferido post-load (PageSpeed optimizado)"
|
||||
==
|
||||
<script>
|
||||
(function () {
|
||||
var loaded = false;
|
||||
function loadTracking() {
|
||||
if (loaded) return;
|
||||
loaded = true;
|
||||
|
||||
// Google Tag Manager
|
||||
(function (w, d, s, l, i) {
|
||||
w[l] = w[l] || [];
|
||||
w[l].push({ 'gtm.start': new Date().getTime(), event: 'gtm.js' });
|
||||
var f = d.getElementsByTagName(s)[0],
|
||||
j = d.createElement(s),
|
||||
dl = l != 'dataLayer' ? '&l=' + l : '';
|
||||
j.async = true;
|
||||
j.src = 'https://www.googletagmanager.com/gtm.js?id=' + i + dl;
|
||||
f.parentNode.insertBefore(j, f);
|
||||
})(window, document, 'script', 'dataLayer', 'GTM-P9B758T');
|
||||
|
||||
// GA4
|
||||
var g = document.createElement('script');
|
||||
g.async = true;
|
||||
g.src = 'https://www.googletagmanager.com/gtag/js?id=G-V6SX1D3XVE';
|
||||
document.head.appendChild(g);
|
||||
window.dataLayer = window.dataLayer || [];
|
||||
function gtag() { dataLayer.push(arguments); }
|
||||
window.gtag = gtag;
|
||||
gtag('js', new Date());
|
||||
gtag('config', 'G-V6SX1D3XVE');
|
||||
}
|
||||
|
||||
function schedule() {
|
||||
if ('requestIdleCallback' in window) {
|
||||
requestIdleCallback(function () { loadTracking(); }, { timeout: 3500 });
|
||||
} else {
|
||||
setTimeout(loadTracking, 2500);
|
||||
}
|
||||
}
|
||||
|
||||
['pointerdown', 'keydown', 'scroll', 'touchstart'].forEach(function (ev) {
|
||||
window.addEventListener(ev, function () { loadTracking(); }, { once: true, passive: true });
|
||||
});
|
||||
|
||||
if (document.readyState === 'complete') {
|
||||
schedule();
|
||||
} else {
|
||||
window.addEventListener('load', schedule);
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
7
themes/vivespos/partials/site/whatsapp-float.htm
Normal file
7
themes/vivespos/partials/site/whatsapp-float.htm
Normal file
@@ -0,0 +1,7 @@
|
||||
description = "WhatsApp floating button"
|
||||
==
|
||||
<a href="https://wa.me/523317025248?text=Hola%2C%20quiero%20mas%20info%20de%20VivesPOS" class="whatsapp-float" target="_blank" rel="noopener" aria-label="WhatsApp">
|
||||
<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M.057 24l1.687-6.163a11.867 11.867 0 01-1.588-5.945C.16 5.335 5.495 0 12.05 0a11.817 11.817 0 018.413 3.488 11.824 11.824 0 013.48 8.414c-.003 6.557-5.338 11.892-11.893 11.892a11.9 11.9 0 01-5.688-1.448L.057 24zm6.597-3.807c1.676.995 3.276 1.591 5.392 1.592 5.448 0 9.886-4.434 9.889-9.885.002-5.462-4.415-9.89-9.881-9.892-5.452 0-9.887 4.434-9.889 9.884a9.86 9.86 0 001.51 5.26l-.999 3.648 3.978-1.607zm11.387-5.464c-.074-.124-.272-.198-.57-.347-.297-.149-1.758-.868-2.031-.967-.272-.099-.47-.149-.669.149-.198.297-.768.967-.941 1.165-.173.198-.347.223-.644.074-.297-.149-1.255-.463-2.39-1.475-.883-.788-1.48-1.761-1.653-2.059-.173-.297-.018-.445.13-.594.131-.148.297-.347.446-.521.151-.172.2-.296.3-.495.099-.198.05-.372-.025-.521-.075-.148-.669-1.611-.916-2.206-.242-.579-.487-.501-.669-.51l-.57-.01c-.198 0-.52.074-.792.372s-1.04 1.016-1.04 2.479 1.065 2.876 1.213 3.074c.149.198 2.095 3.2 5.076 4.487.709.306 1.263.489 1.694.626.712.226 1.36.194 1.872.118.571-.085 1.758-.719 2.006-1.413.248-.695.248-1.29.173-1.414z"/>
|
||||
</svg>
|
||||
</a>
|
||||
Reference in New Issue
Block a user