Introduce tu dominio web o el nombre de tu barbería
Conectando con tu barbería...
Color principal
+
Estilo de fuente
Minimalista
Moderna
Barbería
Elegante
Premium
Tema
1 / 6
← Otra barbería
';
}/* ── Micro-components ── */
function TAG(txt){
var c=C();
return '
'+txt+'
';
}
function PILL(label,val){
var c=C();
return '
'
+''+label+''
+''+val+''
+'
';
}
function STEP(n,title,sub){
var c=C();
return '
'
+'
'
+''+n+'
'
+'
'+title+'
'
+'
'+sub+'
'
+'
';
}
function DIV(){
var c=C();
return '';
}function buildStories(s){
var c=C();
var ppu = Number(s.pts_per_euro)||10;
var ticket = {budget_10:10,standard_15:15,mid_20:20,premium_25:25}[s.ticket_model]||15;
var sd = Number(s.streak_expiry_days)||50;
var wu = s.web_url||'';
var rewards= Array.isArray(s.rewards)?s.rewards:[];/* Misiones activas */
var mDefs=[
['pts_review', 'Reseña en Google'],
['pts_story', 'Historia en Instagram'],
['pts_referral', 'Traer un amigo'],
['pts_follow_instagram', 'Seguir en Instagram'],
['pts_birthday', 'Tu cumpleaños'],
['pts_complete_profile', 'Completar tu perfil']
];
var activeMissions=mDefs.filter(function(m){ return (Number(s[m[0]])||0)>0; });
(s.custom_missions||[]).filter(function(m){ return Number(m.pts)>0; })
.forEach(function(m){ activeMissions.push([m.name,m.name,true,m.pts]); });/* Racha */
var sl=[
{v:3, b:Number(s.streak_bonus_3) ||10},
{v:6, b:Number(s.streak_bonus_6) ||20},
{v:12, b:Number(s.streak_bonus_12)||50}
];/* ─────────────────────────────────────────────────────────
STORY 1 — HOOK: instala la app
Objetivo: que el cliente entienda desde el primer segundo
que tiene una app gratuita esperándole, y que se quede
hasta el último paso para ver el enlace.
───────────────────────────────────────────────────────── */
var s1=shell(
'
'/* Decorativo fondo */
+'
✶
'+'
'
+TAG('Tu app gratuita')/* Headline principal */
+'
'
+'Instala ya tu app '
+'y gana puntos.'
+'
'+''+'
'
+'Cada corte suma puntos. Canjéalos por premios de verdad. Sin coste.'
+'
'/* Card tease — crea motivo para ver hasta el final */
+'
'
+'
'
+'
App gratuita
'
+'
El enlace directo está en el último paso
'
+'
Sigue viendo las stories →
'
+'
'
+'
'
+''
+'
'
+'
'+'
'
+'
',
s.shop_name
);/* ─────────────────────────────────────────────────────────
STORY 2 — CÓMO FUNCIONA (3 pasos)
───────────────────────────────────────────────────────── */
var s2=shell(
'
'
+TAG('Cómo funciona')
+'
'
+'En 3 pasos.'
+'
'
+'
'
+STEP(1,'Reserva y ven','Por la app, web o WhatsApp')
+DIV()
+STEP(2,'Ganas puntos','Se suman solos al pagar tu corte')
+DIV()
+STEP(3,'Canjea tu premio','Cuando quieras, desde la app')
+'
'
+'
',
s.shop_name
);/* ─────────────────────────────────────────────────────────
STORY 3 — LA REGLA DEL EURO
───────────────────────────────────────────────────────── */
var exPts=ticket*ppu;
var s3=shell(
'
'
+TAG('La regla')/* Ecuación grande */
+'
'
+'
'
+'1'
+'€'
+'
'
+' = '
+'
'
+''+ppu+''
+'
'
+'
'
+'
puntos
'+''/* Ejemplo */
+'
'
+'
Ejemplo
'
+'
'
+'Corte de '+ticket+'€ → '+exPts+' puntos'
+'
'
+'
'+'
',
s.shop_name
);/* ─────────────────────────────────────────────────────────
STORY 4 — MISIONES
───────────────────────────────────────────────────────── */
var mRows=activeMissions.slice(0,6).map(function(m){
var pts=m[2]===true ? m[3] : (Number(s[m[0]])||0);
var lbl=m[1];
return PILL(lbl,'+'+pts+' pts');
}).join('');
if(!mRows) mRows=PILL('Completa tu perfil','+150 pts')+PILL('Reseña en Google','+200 pts');var s4=shell(
'
'
+TAG('Misiones')
+'
'
+'Gana puntos sin gastar.'
+'
'
+'
Haz misiones y suma puntos extra
'
+'
'+mRows+'
'
+'
',
s.shop_name
);/* ─────────────────────────────────────────────────────────
STORY 5 — RACHA
───────────────────────────────────────────────────────── */
/* Tamaño uniforme para los 3 porcentajes — nowrap + fuente que cabe sin desbordar */
var sCards=sl.map(function(l){
return '
'
+'
'+l.v+' visitas
'
+'
+'+l.b+'%
'
+'
extra
'
+'
';
}).join('');var s5=shell(
'
'
+TAG('Racha de visitas')
+'
'
+'Cuanto más vengas, más ganas.'
+'
'
+'
'+sCards+'
'
+'
'
+'Racha se reinicia si pasas '
+''+sd+' días'
+' sin visita'
+'
';
}var panelUrl=(wu?wu+'/panel-del-cliente':'tu web /panel-del-cliente');/* ── helpers mini-guide ── */
function MSTEP(n,main,sub){
return '
'
+'
'
+''+n+'
'
+'
'+main+'
'
+(sub?'
'+sub+'
':'')
+'
';
}
function MDIV(){
return '';
}var s6=shell(
'
'
+TAG('Último paso')
+'
'
+'Descarga tu app gratis.'
+'
'/* Zona donde el barbero añade el link sticker de Instagram */
+'
'
+'
'
+'
Enlace de la app
'
+'
Toca el botón que el barber pone aquí
'
+'
↑ sticker de enlace en Instagram
'
+'
'
+'
'
+''
+'
'
+'
'/* Mini guía instalación */
+'
Cómo instalar la app:
'
+'
'
+MSTEP(1,'Toca el enlace','Se abre la web en tu móvil')
+MDIV()
+MSTEP(2,'iPhone: Compartir → Añadir a inicio','Android: menú ⋮ → Instalar')
+MDIV()
+MSTEP(3,'Toca Añadir — ¡listo!','Ya tienes la app instalada')
+'