Section Overview
Fixed Sections (Always Rendered)
These sections are hardcoded outside the dynamic loop:Hero
Plan Required: 1 (OPORTUNIDAD)
Position: Before main content
Configurable: Layout, images, content
Position: Before main content
Configurable: Layout, images, content
Footer
Plan Required: 1 (OPORTUNIDAD)
Position: After main content
Configurable: Variant, social links
Position: After main content
Configurable: Variant, social links
Dynamic Sections (Reorderable)
These 9 sections can be reordered and toggled viaTenantCustomization.visual_effects['sections_order']:
Plan 1 (OPORTUNIDAD) - 5 Sections
Products
Required Plan: 1
Icon:
Label: “Productos”Display product catalog with multiple variants (grid3, carousel, etc.)
Icon:
tabler:shopping-cartLabel: “Productos”Display product catalog with multiple variants (grid3, carousel, etc.)
Services
Required Plan: 1
Icon:
Label: “Servicios”Service offerings with cards or list layouts
Icon:
tabler:toolLabel: “Servicios”Service offerings with cards or list layouts
Contact
Required Plan: 1
Icon:
Label: “Contacto”Contact information with map integration
Icon:
tabler:map-pinLabel: “Contacto”Contact information with map integration
Payment Methods
Required Plan: 1
Icon:
Label: “Medios de Pago”Accepted payment methods display
Icon:
tabler:credit-cardLabel: “Medios de Pago”Accepted payment methods display
CTA (Call-to-Action)
Required Plan: 1
Icon:
Label: “Llamado a Acción”Promotional banner with customizable button
Icon:
tabler:sendLabel: “Llamado a Acción”Promotional banner with customizable button
Plan 2 (CRECIMIENTO) - +2 Sections
About
Required Plan: 2
Icon:
Label: “Acerca de”About section with image and rich text
Icon:
tabler:info-circleLabel: “Acerca de”About section with image and rich text
Testimonials
Required Plan: 2
Icon:
Label: “Testimonios”Customer testimonials carousel or grid
Icon:
tabler:message-starLabel: “Testimonios”Customer testimonials carousel or grid
Plan 3 (VISIÓN) - +2 Sections
FAQ
Required Plan: 3
Icon:
Label: “FAQ”Frequently asked questions accordion
Icon:
tabler:help-circleLabel: “FAQ”Frequently asked questions accordion
Branches
Required Plan: 3
Icon:
Label: “Sucursales”Multiple business locations display
Icon:
tabler:building-bankLabel: “Sucursales”Multiple business locations display
Section Ordering System
Default Order
When no custom order is set, sections follow this default sequence:Custom Ordering
Sections are stored intenant_customization.visual_effects['sections_order'] as JSON:
Getting Available Sections
TheTenant model provides getAvailableSections() which filters sections by plan access:
Hero and footer are NOT included in
getAvailableSections() because they are rendered outside the dynamic loop (hero before main, footer after main).Section Visibility
Checking Visibility
Plan-Based Access Control
Section Configuration
Default Configurations
Each section has default settings stored inTenantCustomization:
Getting Section Config
Updating Section Config
Configuration Options
Each section supports multiple configuration properties:variant
variant
Section layout variant (e.g.,
grid3, carousel, cards, split, accordion)visible
visible
Boolean - Controls whether the section renders on the page
border
border
Border style (e.g.,
rounded, pill, square)effect
effect
Visual effects (e.g.,
none, glow, gradient, shadow)spacing
spacing
Section spacing (e.g.,
normal, airy, compact)order
order
Integer position in the sections sequence (0-indexed)
Architecture Notes
Why are hero and footer excluded from reordering?They serve as structural anchors:
- Hero: Always first (before
<main>) - Footer: Always last (after
</main>)
Related Models
Tenant Model
app/Models/Tenant.php:242-266Contains
getAvailableSections()TenantCustomization Model
app/Models/TenantCustomization.phpManages section visibility and config
Plan Constants
app/Models/Plan.php:15-22OPORTUNIDAD = 1, CRECIMIENTO = 2, VISION = 3