Flujo lineal: crear la empresa → aparecer en la web
- Staff (admin del sitio) entra por
company/login_admin.phpy abrecompany/wizard_alta_empresa.php. Sin sesión admin, el wizard redirige al login admin. El borrador vive en sesión y enadmin_wizard_empresa_draft. - Pasos 1–7 definen identidad comercial, coordenadas, sedes, áreas, almacenes, categorías ERP y productos (todo sigue siendo borrador hasta el paso 8).
- Paso 8 — “Crear en el ERP” (
wizard_action=paso8_crear): en una transacción se insertanempresa, cada fila desedesy, por sede, se llama achancay_empresa_provision_marker_for_sede(): crea (o reutiliza) un registro enmarkers, asignasedes.map_marker_idy genera unslugestable (p. ej.erp-e{id}-s{id}). También se crean áreas, almacenes, categorías,empresa_productoy el usuario owner enempresa_usuarioparalogin_empresa.php. - URL pública de la ficha: el visitante abre la ficha con el
slugdel pin, resuelto enincludes/establecimiento-bootstrap.php(SELECT id FROM markers WHERE slug = ?) y la vistaestablecimiento.php(o equivalente conid). - Carta / menú en la web:
paginas/get_pagina_establecimiento.phpyapi/chancay/paginas/get_pagina_establecimiento.phpusan elmarkers.idde la ficha. Si hay sede ERP conmap_marker_id= ese pin, la carta sale deempresa_producto(empresa_gestion_pos_catalog_rows); si no, productos legacy del marcador. - Después del alta, el dueño entra por
login_empresa.php→ panelesdashboard_empresa_*.php(resumen, sedes ERP, gestión, ventas…) y sigue editando el mismo tenant. El flujo “pin clásico” sigue disponible conlogin_establecimiento.php→dashboard_establecimiento.php/ panel. - Visitante: mapa o enlace con
slug→establecimiento.php(trasincludes/establecimiento-bootstrap.php) pide la carta por AJAX/fetch al endpoint;carrito.phppuede volver a pedir la misma página para sugerencias u ofertas ligadas al establecimiento.
“Publicar” en el sentido mínimo es el commit del paso 8 (pin markers + slug + sede). Lo demás es evolución de contenido y canales (mapa home, SEO, marketing en dashboard_empresa_marketing.php, etc.).
Cupones (cinta #estCuponesBelt en la ficha pública)
- Admin del sitio:
company/dashboard_admin.phpconmarker_iddel pin elegido. En el menú lateral, bloque Marketing: Crear Cupones → URL?marker_id=…§ion=crear-cupones(includecompany/sections/establecimiento_crear_cupones.php). Configurar Cartillas →section=configurar-cupones(mismo archivoestablecimiento_configurar_cupones.phpque el aliasconfigurar-cartillas). - Dueño del establecimiento (login pin):
company/dashboard_establecimiento_panel.phpexpone las mismas entradas de cupones bajo marketing cuando el tipo de negocio lo permite (crear-cupones,configurar-cupones). Resumen alterno:dashboard_establecimiento.phpenlaza a gestión de cupones vía flujo simple. - Base de datos: los cupones que alimentan la ficha están en la tabla
coupons, conestablishment_id=markers.iddel pin. - API de lectura:
paginas/get_pagina_establecimiento.php?marker_id=…(y la copia bajoapi/chancay/paginas/si el front apunta allí) agrega al JSON el arraycoupons(consulta acotada, p. ej. orden porcreated_at DESC). - Vista pública:
establecimiento.phpllamaApi.getPaginaEstablecimiento(markerId); si hay cupones,setCuponesBelt()muestra#estCuponesBelty rellena#estCuponesScroll. Si el array viene vacío, fallback:Api.getCupones()y filtro porestablishment_id. El badge “HOT” en la cinta es solo maquetación en el JS, no un campo “hot” en BD.
Canje en pedidos (código al pagar, POS, marcar usado) usa sobre todo cupones_canjeados y lógica en company/sections/establecimiento_ordenes.php; eso es distinto del listado promocional de la banda en la ficha.
1 · ¿Quién entra y por qué URL?
Núcleo
Público
Staff
Alta ERP
Tenant
Local
Lectura web
2 · Wizard alta empresa (inicio “desde cero” del tenant)
Archivo: company/wizard_alta_empresa.php. Si no hay admin_logged_in → redirección a login_admin.php. Borrador admin_wizard_empresa_draft; al final: empresa, sedes, mapa, catálogo ERP…
Gate
Wizard
BD
BD
Mapa web
BD
3 · Cómo encaja con la web pública
Origen config
Gestión
Gestión
Público
Include
Vista
Lectura
4 · Diagrama maestro: de login admin al carrito
Una sola vista del recorrido: staff crea tenant → tablas MySQL → paneles empresa / establecimiento → visitante lee carta y puede ir al carrito. Las aristas son lectura/guardado lógico, no siempre un include directo.