Receptor de provisioning de Explosion Store Engine
Provisioning bundle Explosion Commerce Platform (V-3.2.0224): - Nuevo endpoint interno POST /api/internal/store-engine-provision protegido por header x-explosion-internal-key (compara contra EXPLOSION_INTERNAL_API_KEY con timingSafeEqual). - Si el email no existe en POS: crea owner, asigna Live Commerce Pro mensual y activa add-on explosion_store_engine en pending_payment. - Si el email ya existe con Live mensual activo: reutiliza owner, NO duplica plan, sólo conecta el tenant. - Si el email existe con Starter u Omnichannel mensual: upgrade a Live mensual + add-on. - Si el email tiene plan ANUAL activo: NO se cambia el plan, se devuelve status pending_review con mensaje claro y se deja el tenant en pending para revisión manual. - Si el email existe con suscripción cancelada/vencida: reactiva como Live mensual pending_payment. - Idempotente por email, tenant_id y subdomain. Reintentos NO duplican owner, add-on, ni store_engine_config. - Auditoría server-side en store_engine_provision_log con email, tenant, plan previo, ciclo previo, action_taken y result_status. - Respuestas tipadas: created, upgraded, addon_only, reactivated, pending_review, idempotent. Errores: unauthorized (401), invalid_payload (400), tenant_owner_conflict (409), provisioning_failed (500). Sin stack traces ni secrets en la respuesta. - No toca POS físico, EcartPay, AI, bodegas, subastas, WooCommerce, Shopify ni multi-store existente.
Aspectos destacados
- Endpoint interno /api/internal/store-engine-provision
- Auto-creación / reutilización de owner POS
- Activación automática de Live Commerce Pro + Store Engine
- Protección total a planes anuales (pending_review)
- Idempotencia por email, tenant y subdomain