{% extends 'layouts/authenticated.html.twig' %} {% block page_title %}Plateforme{% endblock %} {% macro fcfa(cents) %}{{ (cents / 100)|number_format(0, ',', ' ') }} FCFA{% endmacro %} {% block content %} {% import _self as helper %}

Vue plateforme

Consolidé de toutes les boutiques — 30 derniers jours.

{# KPIs #}

Boutiques actives

{{ boutiques.active }}

{{ boutiques.total }} au total

Licences actives

{{ licenses.active }}

{{ licenses.suspended }} suspendues · {{ licenses.expired }} expirées

Connecteurs actifs

{{ activeConnectors }}

contact < 48 h

CA (30 j)

{{ helper.fcfa(sales.revenueCents) }}

{{ sales.salesCount }} ventes · net des avoirs

{# Consolidé financier #}

Créances clients

{{ helper.fcfa(customerDebt) }}

à recouvrer (toutes boutiques)

Dettes fournisseurs

{{ helper.fcfa(supplierDebt) }}

à régler (toutes boutiques)

Avoirs remboursés (30 j)

{{ helper.fcfa(refunded) }}

déduits du CA

{# Ventes en ligne #}

Ventes en ligne (30 j)

Commandes en ligne
{{ sales.onlineCount }}
CA en ligne
{{ helper.fcfa(sales.onlineRevenueCents) }}
Part en ligne
{{ sales.revenueCents > 0 ? (sales.onlineRevenueCents / sales.revenueCents * 100)|round : 0 }} %
{# Top boutiques #}

Meilleures boutiques (CA, 30 j)

{% for c in topCompanies %} {% else %} {% endfor %}
Boutique Ventes CA
{{ c.company }} {{ c.salesCount }} {{ helper.fcfa(c.revenueCents) }}
Aucune vente sur la période.
{# Connecteurs par boutique #}

Connecteurs e-commerce par boutique

{% for l in connectors %} {% set online = l.lastSeenAt and l.lastSeenAt >= connectorSince %} {% else %} {% endfor %}
Boutique Offre Statut Site Dernier contact
{{ l.company.name }} {{ l.offerLabel }} {{ l.status.value }} {{ l.siteUrl ?? '—' }} {{ l.lastSeenAt ? l.lastSeenAt|date('d/m/Y H:i') : 'jamais' }}{{ online ? ' ●' : '' }}
Aucun connecteur lié.
{% endblock %}