=== Boostlab Sellermania for WooCommerce ===
Contributors: boostlab
Tags: woocommerce, sellermania, inventory, orders
Requires at least: 6.5
Requires PHP: 8.1
Stable tag: 2.0.0-beta.2
License: GPL-2.0-or-later

Connecteur REST v4 et espace opérations WooCommerce développés par Boostlab. Version 2 bêta.

== Description ==
Version 2 bêta : WooCommerce > Boostlab · Opérations ouvre Commandes, Expédition, Suivi, Vérification, Stock et Paramètres.
Commandes Sellermania et WooCommerce affichées par pages de 50, files locales d’attente et articles non trouvés, sélection palette / rayon / international, parcours de picking et lots de 50 commandes complètes.
PDF de picking regroupé par produit/état/emplacement et bons de commande avec pagination indépendante. CSV Colis Privé France, Belgique et bpost international. Import manuel de suivis CSV/HTML et Excel bpost. Vérification au scanner des commandes et des exemplaires.
Modification de stock et d’emplacement avec lecture distante, contrôle après écriture et journal. Les corrections manuelles sont réservées au site coordinateur.
Les changements de statut sont traités en arrière-plan et contrôlés à distance. Les actions d’annulation sont exclues de ce panneau.
Les interfaces de cette version 2 sont en français ; les réglages historiques du connecteur disposent également d’une traduction anglaise.
Les listes ne couvrent que les pages chargées. Les imports de suivis par email, les liens publics de picking et l’ensemble des autres modules de Bibliopolis.app ne sont pas inclus dans cette version.

Réglages dans WooCommerce > Boostlab Sellermania.
Chaque module s’active séparément : stock entrant, transmission des ventes, boîte de commandes Sellermania, changements de statut, import de catalogue, création de produits et création d’offres.
Tous les modules sont désactivés à l’installation ; connexion sandbox sélectionnée. Un compte sandbox doit être fourni par Sellermania.

Les commandes sont consultées dans une boîte dédiée, sans générer de seconde facture WooCommerce ni déclencher de nouveaux emails aux acheteurs. Le filtre de date limite la récupération historique. La pagination parcourt toutes les pages renvoyées par l’API.

Stocks : correspondance SKU exacte. Un SKU Sellermania explicite peut être renseigné sur la fiche produit pour associer une référence différente. Les produits franchisés Bibliopolis et les exclusions explicites sont ignorés. Aucun rapprochement EAN ambigu n’est automatique.

Pour plusieurs boutiques utilisant le même compte Sellermania, désigner UN SEUL coordinateur et appairer les autres boutiques avec la même clé aléatoire. Le compte vendeur et l’environnement doivent être identiques ; chaque boutique peut utiliser sa propre application API. La transmission des ventes ne dépend pas de l’import des commandes marketplace. Les requêtes d’appairage sont signées et horodatées ; les événements sont idempotents.

Catalogue : fichier TXT tabulé Sellermania, analysé par lots. Le traitement attend la validation complète. Création en brouillon par défaut, prix Amazon.fr configuré s’il existe, sinon prix général. Les quantités sont relues dans l’API au moment de l’application. Catégorie et classe TVA doivent être choisies explicitement. Les titres, prix et descriptions existants ne sont modifiés que si les options correspondantes sont activées. Pas d’import d’images dans cette version.

Publication : création manuelle d’une offre pour un produit WooCommerce disposant d’un SKU, EAN13, état, prix et quantité. Mode add_modify exclusivement, SKU existant refusé pour éviter de remplacer son stock. Le suivi d’import est consultable. L’acceptation du fichier ne garantit pas la mise en ligne sur chaque marketplace ; les exigences de chacune restent applicables.

== Limites de la version pilote ==
L’API Sellermania expose une quantité absolue, sans décrément atomique ni version conditionnelle documentée. Le coordinateur sérialise les écritures des boutiques appairées mais ne verrouille pas les ventes natives Sellermania. Le contrôle après écriture détecte certaines divergences, pas toutes les courses possibles. Une validation de cette stratégie avec Sellermania reste nécessaire avant diffusion commerciale ou usage sans surveillance.

Les offres chaînées connues dans le catalogue sont bloquées en écriture. Les chaînes non présentes dans un export importé ne peuvent pas être détectées par la réponse de quantités REST ; elles doivent être exclues avant activation.

Les annulations, remboursements et retours ne remettent pas automatiquement des quantités en stock distant. Le rapprochement physique reste manuel. Après une remise en stock WooCommerce, les produits concernés sont exclus de la synchronisation avec un avis de contrôle. Rapprocher les quantités dans Sellermania puis retirer l’exclusion sur leur fiche. Une nouvelle réduction de la même commande reçoit une nouvelle révision.

Un résultat distant incertain n’est jamais réenvoyé automatiquement. Il reste « review ». Le coordinateur propose un contrôle des quantités et une confirmation de rapprochement manuel, sans nouveau décrément.

Le quota de requêtes est limité localement. Plusieurs installations et autres intégrations partagent le quota du compte Sellermania : régler les intervalles en conséquence. Un HTTP 429 suspend le traitement au lieu de multiplier les requêtes.

Stock et commandes sont actualisés par tâches planifiées ; la propagation n’est pas instantanée et dépend du nombre de produits, du cron et de l’hébergement. Les lots sont reprenables ; l’onglet du navigateur peut être fermé.

Les tests locaux utilisent WordPress Playground et des réponses API simulées. Aucune certification Sellermania ni aucun audit de sécurité indépendant ne sont revendiqués. Les vérifications locales utilisent des réponses API simulées ; les journaux de production servent au contrôle des ventes réelles.

== Exigences techniques ==
WooCommerce actif, Action Scheduler, PHP OpenSSL, WordPress avec MySQL/MariaDB prenant en charge GET_LOCK. Un cron serveur est recommandé.
Les clés sont chiffrées avec les salts WordPress. Leur rotation nécessite de reconfigurer les secrets. Le secret API peut aussi être fourni par la constante serveur BOOSTLAB_SELLERMANIA_SECRET.
Les commandes conservées en base sont chiffrées. Les administrateurs autorisés peuvent les consulter. Prévoir les durées de conservation et sauvegardes adaptées à la boutique.
La désactivation suspend les tâches. La désinstallation conserve les données par défaut.
Activation multisite réseau non prise en charge : activer et configurer par boutique.

== Changelog ==
= 2.0.0-beta.2 =
Espace opérations, confirmation des changements de statut, filtre rayon, recherche EAN sur Google, tags lorsqu’ils sont disponibles, tâches de stock indépendantes de la file locale.
Intégration des correctifs 0.1.4–0.1.6 : reprise des lectures temporaires, heartbeat WP-Cron, rapprochement des ventes et acquittement sans nouveau décompte.


= 0.1.0 =
Première version pilote Boostlab : API REST, configuration sécurisée, modules indépendants, catalogue par lots, commandes, statuts, publication et coordinateur de stocks avec journal durable.

== Version 0.1.1 ==
Interface français/anglais selon le profil WordPress. Appairage entre applications distinctes du même compte SellerMania. Rapprochement EAN par fichier TSV ean, sku, condition, tag pour les offres Bibliopolis neuves ou comme neuves, sans changer prix ni quantités.

== Version 0.1.2 ==
Option stock limité aux produits associés et suspension disponible même pendant un lot actif.

== Services externes ==
Sellermania REST v4 (https://api.sellermania.com/v4/ et environnement sandbox) reçoit les identifiants de connexion lors de l’authentification, puis les requêtes de stock, commandes ou catalogue des modules activés. Un compte Sellermania est requis. Documentation et accès au service : https://doc.sellermania.com/ et https://www.sellermania.com/.
Une boutique appairée envoie les références et quantités vendues au coordinateur configuré par l’administrateur. Les requêtes sont signées.
Le clic volontaire sur un code produit ouvre une recherche Google contenant ce code. Politique : https://policies.google.com/privacy.
Les visuels WooCommerce sont chargés depuis les URLs de votre médiathèque. Les liens de suivi ouvrent le site du transporteur avec le suivi et le code postal.
Aucune clé ni donnée de boutique n’est fournie dans le ZIP.

== Sources et construction ==
Les sources du panneau sont incluses dans src/. Installer les dépendances avec npm install --ignore-scripts puis npm run build depuis le dossier de l’extension. Les fichiers compilés sont dans assets/.
