À propos du projet
Ce dépôt est une plateforme de travail e-commerce orientée exploitation réelle, et non un simple tableau de bord de données. Le système prend en charge simultanément les ventes intérieures, le commerce extérieur, la chaîne d'approvisionnement, les stocks, la logistique, la finance et la clôture mensuelle, et relie les modules entre eux via une base unifiée de données métier et d'écritures financières.
Les principaux points d'entrée de travail se divisent en trois parties : l'espace de travail ventes intérieures (vue d'ensemble de l'exploitation, centre de ventes, produits de base, centre de stocks, centre de chaîne d'approvisionnement, messagerie et logistique, centre financier), l'espace de travail commerce extérieur (vue d'ensemble du commerce extérieur, commandes à l'export, clients B2B et distributeurs, gestion des canaux, mapping des SKU à l'étranger, expéditions internationales Shipment, finance du commerce extérieur, activité Alsvid), ainsi qu'un centre financier indépendant.
Le centre financier prend l'entité juridique comme première dimension et le périmètre d'activité comme deuxième dimension ; l'entité par défaut est la société du Zhejiang, avec des extensions d'entités prévues pour l'Autriche, l'Allemagne, Hong Kong, etc., sans avoir à refaire le système financier. Le modèle central est FinanceEntry, couvrant l'entité juridique, le périmètre d'activité, le module source et le numéro de pièce, la catégorie financière, les encaissements et décaissements, la devise, le montant et la taxe, le prévisionnel et le réel, le statut de règlement, le statut de facturation, la période comptable, ainsi que les dimensions telles que l'impact sur la trésorerie et sur le résultat. La trésorerie et le résultat sont traités séparément : par exemple, la TVA à l'importation déductible impacte la trésorerie mais pas directement le résultat ; le coût des marchandises d'un Shipment impacte le résultat mais ne recompte pas la trésorerie du paiement d'achat.
Concernant les chaînes métier, les ventes intérieures intègrent dans FinanceEntry de manière unifiée les commandes de vente, les remboursements après-vente, le coût des ventes, les dettes fournisseurs à la réception des achats, ainsi que le rapprochement entre les estimations de messagerie et logistique et les factures réelles ; le commerce extérieur suit l'ordre de flux : commandes à l'export, bons d'expédition Shipment, exportation depuis la Chine, transport international, dédouanement à l'importation dans l'UE, livraison finale à l'étranger, écritures financières et clôture mensuelle. Le Shipment peut enregistrer les entités juridiques d'exportation et d'importation, la partie responsable de l'importation, le Tracking du connaissement et du numéro de conteneur, le dédouanement à l'exportation et à l'importation, les droits de douane ordinaires, les droits antidumping, les droits compensateurs, la TVA à l'importation, les frais portuaires de dédouanement et la livraison finale, la détaxe à l'exportation ainsi que les coûts prévisionnels et réels. Les taxes et frais d'importation n'entrent dans la finance de l'entité correspondante que lorsque notre entité assume la responsabilité de l'importation.
Le centre de clôture mensuelle bascule selon l'entité juridique, lit directement la base de données métier, et fournit le contrôle d'intégrité des données métier, le contrôle des montants et coûts de vente, les détails des transactions bancaires et les avis de règlement, les revenus sans facture, la synthèse financière du commerce extérieur, l'archivage mensuel au format ZIP, l'envoi des finances par e-mail ainsi que l'archivage des versions historiques. Si un SKU vendu manque de coût d'entrée en stock à l'achat, le système signale explicitement le SKU manquant, plutôt que de générer un résultat erroné avec un coût fictif.
Les sources de données externes actuellement prises en charge ou prévues incluent Jikeyun, 1688, l'import de fichiers de Zhejiang Rural Credit, les listes de factures fiscales, les e-mails financiers SMTP, ainsi que l'intégration ultérieure des canaux de commerce extérieur et de Shopify ; les systèmes externes non configurés affichent honnêtement l'état non configuré, sans utiliser de données simulées pour déguiser une connexion réelle.
La pile technique côté backend est Python 3.12, FastAPI, SQLAlchemy 2, Alembic, Pydantic, PostgreSQL, Celery et Redis ; côté frontend, Next.js 16, React 19, Tailwind CSS 4, avec export statique hébergé par FastAPI sur le même port, le port de service par défaut étant 127.0.0.1:8000, PostgreSQL et Redis n'étant pas ouverts au réseau public. L'environnement principal actuel de développement et de recette est une exécution native locale sur Mac ; le déploiement sur NAS et Zspace est suspendu, tandis que la conteneurisation et la configuration de publication sont conservées.
Le processus de développement adopte le mode de commit direct : les modifications quotidiennes sont directement commitées et poussées vers develop, la CI est déclenchée par push, et main constitue la ligne principale de publication officielle. Le dépôt fournit des commandes make pour consulter l'état, redémarrer, reconstruire le frontend, exécuter les migrations Alembic, lancer les tests backend, la vérification de types frontend, la recette complète locale et la sauvegarde. Le principe de persistance met l'accent sur la séparation entre le code, la base de données, les fichiers métier, les sauvegardes et les journaux, configurée via PERSIST_ROOT, DATA_DIR, BACKUP_DIR, LOG_DIR, afin d'éviter qu'une mise à jour Git ou un changement de branche n'écrase les données métier.
Les principes de sécurité incluent : le fichier .env n'est pas commité dans Git, la base de données et le cache ne sont pas ouverts au réseau public, le port 8000 n'est pas exposé au réseau public pendant la phase de développement, 1688 synchronise uniquement les achats déjà réalisés sans passer automatiquement commande ni payer, les documents financiers originaux sont conservés en versions, toute modification de structure de base de données doit passer par Alembic, et une sauvegarde est effectuée avant toute restructuration importante. La mise à jour du système prend en charge le mode natif et l'identification de publication conteneurisée, et vérifie la branche Git et le dépôt distant, l'état de l'espace de travail, l'environnement Python et Node, Alembic, la capacité de sauvegarde, les artefacts frontend, le contrôle de santé et l'espace disque.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.