Module UltimateMarketPlace FR: Difference between revisions

Jump to navigation Jump to search
no edit summary
Tag: 2017 source edit
No edit summary
Tag: 2017 source edit
Line 1: Line 1:
[[Category:Modules]]
[[Category:Modules]]
[[Category:AtooNet]]
[[Category:AtooNet]]
{{TemplateDocDev}}
{{TemplateDocUtil}}


=Module UltimateMarketPlace=
=Module UltimateMarketPlace=
Line 8: Line 10:
Le module '''UltimateMarketPlace''' est une extension pour Dolibarr ERP/CRM éditée par [https://www.atoo-net.com Atoo-Net].
Le module '''UltimateMarketPlace''' est une extension pour Dolibarr ERP/CRM éditée par [https://www.atoo-net.com Atoo-Net].


Il fournit toutes les fonctionnalités nécessaires pour publier une '''place de marché en ligne mono-vendeur''' : un modèle de site Web prêt à l'emploi (catalogue produits, panier, tunnel de commande, comptes clients), utilisable avec le module Site Web de Dolibarr, pour vendre vos propres produits et services directement en ligne.
Il fournit toutes les fonctionnalités nécessaires pour publier une '''place de marché en ligne mono-vendeur''' : un modèle de site Web prêt à l'emploi (catalogue produits, panier, tunnel de commande, comptes clients, espace de téléchargement), utilisable avec le module Site Web de Dolibarr, pour vendre vos propres produits et services directement en ligne.


Il s'agit d'un fork simplifié du module Dolibarr « Marketplace » (utilisé pour dolistore.com), duquel tout ce qui est spécifique à l'association Dolibarr ainsi que le circuit multi-vendeurs / soumission et revue de modules par des développeurs tiers a été retiré.
Il s'agit d'un fork simplifié du module Dolibarr « Marketplace » (utilisé pour dolistore.com), duquel tout ce qui est spécifique à l'association Dolibarr ainsi que le circuit multi-vendeurs / soumission et revue de modules par des développeurs tiers a été retiré.
Line 18: Line 20:
|Auteur||Philippe Grand — Atoo-Net
|Auteur||Philippe Grand — Atoo-Net
|-
|-
|Version||1.0
|Version||24.0.0
|-
|-
|Licence||GNU GPL v3+
|Licence||GNU GPL v3+
Line 24: Line 26:
|Dolibarr minimum||v24.0
|Dolibarr minimum||v24.0
|-
|-
|PHP minimum||v8.0
|PHP minimum||v8.2
|}
|}


Line 34: Line 36:


====Vente de produits physiques ou dématérialisés====
====Vente de produits physiques ou dématérialisés====
Publiez votre catalogue de produits ou de services directement depuis les fiches produits Dolibarr. Le module gère aussi bien les biens physiques (avec frais de port) que les articles dématérialisés (téléchargements, licences, prestations).
Publiez votre catalogue de produits ou de services directement depuis les fiches produits Dolibarr : il suffit de les placer sous la catégorie racine de la boutique. Les fichiers joints au produit peuvent être livrés au client dans son espace de téléchargement après paiement.


====Fidélisation de la clientèle professionnelle====
====Abonnements et licences à durée limitée====
Grâce aux remises automatiques pour les « clients privilégiés » (catégorie tiers dédiée), offrez un tarif préférentiel négocié à vos meilleurs clients, avec possibilité d'exclure certains produits de la remise.
Avec la durée de validité des produits et les niveaux de prix de Dolibarr (« Multiprix »), vendez un même produit en plusieurs durées d'abonnement : les liens de téléchargement expirent automatiquement à la fin de la période achetée.
 
====Tarifs préférentiels pour vos meilleurs clients====
Les '''remises par catégorie''' associent une catégorie de clients à une catégorie de produits : le prix remisé s'affiche automatiquement dès que le client est connecté, sans code à saisir.


====Opérations commerciales et codes promo====
====Opérations commerciales et codes promo====
Créez des codes de réduction (pourcentage ou montant fixe), limités dans le temps ou en nombre d'utilisations, éventuellement réservés à un produit précis, pour animer vos ventes en ligne.
Créez des codes de réduction (pourcentage ou montant fixe), limités dans le temps ou en nombre d'utilisations, chacun réservé à un produit précis, pour animer vos ventes en ligne.
 
====Vente additionnelle (upsell) au panier====
Proposez automatiquement un produit complémentaire dans le panier (ex. assurance, garantie, éco-participation), calculé en pourcentage du total et limité aux pays de votre choix.


====Paiement en ligne====
====Paiement en ligne====
Connectez le tunnel d'achat aux modes de paiement déjà configurés dans Dolibarr (Stripe, PayPal, virement…), soit en redirection classique vers votre back-office, soit intégré en frame dans la boutique.
Connectez le tunnel d'achat aux modules de paiement en ligne déjà configurés dans Dolibarr (Stripe, PayPal…), soit en redirection classique vers les pages publiques de paiement, soit intégré dans un cadre de la boutique.


====Suivi d'audience====
====Référencement et suivi d'audience====
Intégrez Matomo Analytics pour suivre la fréquentation et le comportement d'achat sur votre boutique, sans dépendre de Google Analytics.
URLs simplifiées, <code>sitemap.xml</code>, <code>robots.txt</code> et <code>llms.txt</code> générés automatiquement, balisage Schema.org, vérification Google Search Console et intégration de Matomo Analytics pour suivre la fréquentation sans dépendre de Google Analytics.


==Installation==
==Installation==


'''Prérequis''' : le module nécessite que les modules Dolibarr suivants soient activés (ils sont activés automatiquement si besoin) : Tiers, Produits, Services, Catégories, Commandes, Factures, Banque, Mailing et Site Web.
'''Prérequis''' :
*Dolibarr 24.0 ou supérieur et PHP 8.2 ou supérieur ;
*les pages de la boutique contiennent du code PHP dynamique : avant d'activer le module, ajoutez la ligne <code>$dolibarr_website_allow_custom_php = '1';</code> dans <code>htdocs/conf/conf.php</code> (valeur <code>2</code> si les fonctions système de PHP <code>exec</code>, <code>passthru</code>, <code>shell_exec</code>, <code>system</code>, <code>popen</code> et <code>proc_open</code> ne sont pas désactivées dans <code>php.ini</code>). Sans cette ligne, Dolibarr refuse d'importer le modèle de site et la boutique reste vide ;
*les modules Dolibarr Tiers, Produits, Services, Catégories, Commandes, Factures, Banques, Emailings et Site Web sont nécessaires : ils sont activés automatiquement avec le module.


#Télécharger le module depuis [https://www.dolistore.com DoliStore] ou cloner le dépôt Git dans <code>htdocs/custom/ultimatemarketplace</code>
#Télécharger le module depuis [https://www.dolistore.com DoliStore] ou cloner le dépôt Git dans <code>htdocs/custom/ultimatemarketplace</code>
#Aller dans '''Accueil → Configuration → Modules/Applications'''
#Aller dans '''Accueil → Configuration → Modules/Applications'''
#Localiser '''UltimateMarketPlace''' dans la section '''AtooNet'''
#Localiser '''Ultimate Market Place''' dans la famille '''Sites web et autres applications frontales'''
#Activer le module en cliquant sur le bouton de la colonne ''Activé''
#Activer le module en cliquant sur le bouton de la colonne ''Activé''


[[File:ultimatemarketplace_activation.png|center|thumb|800px|Activation du module UltimateMarketPlace dans la section AtooNet]]
[[File:Ultimatemarketplace-v25-activation-fr.png|center|thumb|800px|Activation du module UltimateMarketPlace]]


À l'activation, le module effectue automatiquement plusieurs actions :
À l'activation, le module effectue automatiquement plusieurs actions :


*Création d'un '''site Web dédié''' (référence <code>ultimatemarketplace</code>) avec le modèle de site "website_template-ultimatemarketplace" importé
*Activation de la gestion multilingue (<code>MAIN_MULTILANGS</code>), car les fiches produits peuvent être traduites
*Création d'une '''catégorie produit racine''' pour les articles visibles sur la marketplace
*Création d'une '''catégorie produit racine''' et d'une '''catégorie tiers''' « prospect/client » si aucune n'est encore configurée
*Création d'une '''catégorie tiers''' pour les clients/prospects créés depuis le site marchand
*Enregistrement du modèle de PDF de facture propre au module
*Ajout de 3 '''extrafields produit''' : séparateur "Marketplace", commentaire après prix (<code>PriceComment</code>) et message d'avertissement public (<code>DisclaimerMessage</code>)
*Création (ou réactivation) d'un '''site Web dédié''' dans lequel est importé le modèle de site fourni par le module
 
'''Mise à jour''' : après le remplacement des fichiers, désactivez puis réactivez le module (vos réglages sont conservés). Pour remettre les pages du site en cohérence avec la nouvelle version, utilisez ensuite le bouton '''Réinitialiser le template du site''' (voir [[#Mode maintenance et réinitialisation du modèle|Mode maintenance]]).
 
Le module ne déclare aucun droit propre : les pages d'administration sont réservées aux administrateurs Dolibarr, et les pages de la boutique utilisent leur propre session client.


==Configuration==
==Configuration==


La configuration du module se fait dans '''Accueil → Configuration → Modules/Applications → UltimateMarketPlace''', répartie en plusieurs onglets.
La configuration du module se fait dans '''Accueil → Configuration → Modules/Applications → Ultimate Market Place''', répartie en plusieurs onglets : '''Paramètres''', '''Configuration des paiements''', '''Codes promo''', '''Remises par catégorie''', '''Sécurité''', '''Configuration du serveur API''' (affiché seulement si le module API REST est activé), '''Matomo Analytics''', '''Carrousel''', '''Guide utilisateur''' et '''À propos'''.


===Général : produits et tiers===
Avant d'ouvrir le site au public, parcourez les onglets dans cet ordre : Paramètres (sections Divers, Produits, Tiers, Site web et Modèles des courriels), Configuration des paiements, Sécurité, puis désactivez le mode maintenance.
 
===Paramètres===
 
[[File:Ultimatemarketplace-v25-setup-fr.png|center|thumb|800px|Onglet Paramètres de la configuration du module]]
 
====Divers====


{| class="wikitable"
{| class="wikitable"
|-
|-
!Constante!!Description
!Paramètre!!Constante!!Description
|-
|<code>ULTIMATEMARKETPLACE_NAME</code>||Nom de la marketplace
|-
|<code>ULTIMATEMARKETPLACE_EMAIL</code>||Email de contact de la marketplace
|-
|-
|<code>ULTIMATEMARKETPLACE_ROOT_CATEGORY_ID</code>||Catégorie racine des produits vendus sur la marketplace
|Nom de la place de marché||<code>ULTIMATEMARKETPLACE_NAME</code>||Nom de la boutique : titre de la page d'accueil, titre du <code>llms.txt</code>, nom de l'expéditeur sur la facture PDF
|-
|-
|<code>ULTIMATEMARKETPLACE_ROOT_CATEGORY_ID_BIS</code>||Catégorie mise en avant dans le bloc central de la page d'accueil
|Description / Mots-clés de la place de marché||<code>ULTIMATEMARKETPLACE_DESCRIPTION</code> / <code>_KEYWORDS</code>||Méta-description et mots-clés de la page d'accueil, traduisibles par langue
|-
|-
|<code>ULTIMATEMARKETPLACE_VERSIONS_CATEGORY_ID</code>||Catégorie utilisée par le widget "Version" de la page d'accueil
|Email de la place de marché||<code>ULTIMATEMARKETPLACE_EMAIL</code>||Email de contact public affiché sur le site
|-
|-
|<code>ULTIMATEMARKETPLACE_SPECIAL_CATEGORY_ID</code>||Catégorie utilisée par le widget "Promotions" de la page d'accueil
|Mode maintenance||<code>ULTIMATEMARKETPLACE_MAINTENANCE_MODE</code>||Ferme la boutique au public et bloque les ventes
|-
|-
|<code>ULTIMATEMARKETPLACE_MIN_PRODUCT_PRICE</code>||Prix minimum d'un produit (si celui-ci n'est pas gratuit)
|Bloquer les nouvelles inscriptions||<code>ULTIMATEMARKETPLACE_BLOCK_REGISTRATION</code>||Ferme la création de nouveaux comptes clients
|-
|-
|<code>ULTIMATEMARKETPLACE_DELAY_FOR_NEW</code>||Ancienneté maximale (en jours) pour qu'un produit apparaisse dans la section "Nouveautés"
|Adresses IP autorisées à bypasser le mode maintenance et le blocage des inscriptions||<code>ULTIMATEMARKETPLACE_MAINTENANCE_MODE_ALLOWED_IPS</code>||Liste blanche d'adresses IP (par exemple celle du bureau)
|-
|-
|<code>ULTIMATEMARKETPLACE_PROSPECTCUSTOMER_ID</code>||Catégorie assignée à tous les prospects/clients créés depuis le site marchand
|Durée du cache du bloc latéral||<code>ULTIMATEMARKETPLACE_SIDEBAR_CACHE_ENABLED</code> / <code>_SIDEBAR_CACHE_DURATION</code>||Cache du bloc latéral en minutes (5 par défaut), avec un bouton pour vider le cache du site
|}
|}


===Remises pour les clients privilégiés===
====Produits====


{| class="wikitable"
{| class="wikitable"
|-
|-
!Constante!!Description
!Paramètre!!Constante!!Description
|-
|-
|<code>ULTIMATEMARKETPLACE_PROSPECTCUSTOMER_PREFERRED_ID</code>||Catégorie des tiers labellisés "Privilégié", éligibles à la remise
|Catégorie racine des produits à vendre sur la place de marché||<code>ULTIMATEMARKETPLACE_ROOT_CATEGORY_ID</code>||Les produits/services de cette catégorie et de ses sous-catégories forment le catalogue (obligatoire)
|-
|-
|<code>ULTIMATEMARKETPLACE_PROSPECTCUSTOMER_PREFERRED_DISCOUNT</code>||Pourcentage de remise appliqué à ces tiers
|Catégorie mise en avant dans le bloc central de la page d'accueil||<code>ULTIMATEMARKETPLACE_ROOT_CATEGORY_ID_BIS</code>||Optionnelle, la catégorie racine à défaut
|-
|-
|<code>ULTIMATEMARKETPLACE_DISCOUNT_EXCLUDE_PRODUCTS_CATEGORY_ID</code>||Catégorie des produits exclus de cette remise
|Catégorie pour le widget « Version »||<code>ULTIMATEMARKETPLACE_VERSIONS_CATEGORY_ID</code>||Produits portant des numéros de version (logiciels téléchargeables)
|}
 
===Site Web===
 
{| class="wikitable"
|-
|-
!Constante!!Description
|Catégorie pour le widget « Promotions »||<code>ULTIMATEMARKETPLACE_SPECIAL_CATEGORY_ID</code>||Produits affichés avec un badge de promotion
|-
|-
|<code>ULTIMATEMARKETPLACE_URL_FOR_LOGO</code>||URL du logo de la marketplace
|Prix minimum du produit||<code>ULTIMATEMARKETPLACE_MIN_PRODUCT_PRICE</code>||Les produits payants moins chers sont exclus du catalogue
|-
|-
|<code>ULTIMATEMARKETPLACE_THEME_COLOR</code>||Couleur principale du thème (boutons, bannières, éléments mis en avant)
|Âge maximum (en jours) pour qu'un produit soit visible dans la section « Nouveaux produits »||<code>ULTIMATEMARKETPLACE_DELAY_FOR_NEW</code>||30 jours par défaut
|-
|-
|<code>ULTIMATEMARKETPLACE_WEBSITE_ID</code>||Site Web Dolibarr utilisé par la marketplace
|Catégorie pour forcer le statut « Nouveau produit »||<code>ULTIMATEMARKETPLACE_NEW_CATEGORY_ID</code> / <code>_NEW_CATEGORY_MAX_AGE</code>||Force le badge « Nouveau » ; une tâche planifiée quotidienne en retire les produits après le délai indiqué
|-
|-
|<code>ULTIMATEMARKETPLACE_USER_MANAGE_WEBSITE</code>||Utilisateur technique autorisé à exécuter les actions du site (ajout de produits, gestion des tiers, création de commandes)
|Activer la durée de validité du produit||<code>ULTIMATEMARKETPLACE_ENABLE_PRODUCT_VALIDITY_DURATION</code>||Dates de début et de fin de validité sur les lignes de commande, qui pilotent l'expiration des téléchargements ; durées par niveau de prix si les « Multiprix » sont activés
|}
|}


'''Important''' : si vous changez le site Web associé (<code>ULTIMATEMARKETPLACE_WEBSITE_ID</code>), les utilisateurs, tiers et commandes déjà créés restent liés à l'ancien site et ne sont pas migrés automatiquement.
====Tiers====
 
===Modèles d'emails===
 
Trois modèles d'emails Dolibarr peuvent être personnalisés :
 
*'''Email de bienvenue''' envoyé à la création du compte client
*'''Email "Mot de passe oublié"'''
*'''Email de confirmation de commande''' envoyé à l'acheteur
 
===Produit additionnel dans le panier===
 
Permet d'ajouter automatiquement un produit complémentaire (assurance, garantie, éco-participation…) au panier :


{| class="wikitable"
{| class="wikitable"
|-
|-
!Constante!!Description
!Paramètre!!Constante!!Description
|-
|-
|<code>ULTIMATEMARKETPLACE_ADDITIONAL_PRODUCT_IN_CART_ID</code>||Produit additionnel à ajouter
|Catégorie pour tous les prospects ou clients créés depuis le site de la place de marché||<code>ULTIMATEMARKETPLACE_PROSPECTCUSTOMER_ID</code>||Catégorie assignée à chaque tiers créé par le formulaire d'inscription
|-
|-
|<code>ULTIMATEMARKETPLACE_ADDITIONAL_PRODUCT_TOTAL_PERCENT</code>||Prix du produit additionnel, exprimé en % du total du panier
|Activer les adresses multiples||<code>ULTIMATEMARKETPLACE_ENABLE_MULTI_ADDRESS</code>||Section « Mes adresses » du compte client (adresses de facturation et de livraison)
|-
|-
|<code>ULTIMATEMARKETPLACE_ADDITIONAL_PRODUCT_APPLICABLE_COUNTRIES</code>||Codes pays où ce produit additionnel s'applique
|Convertir le prospect en client dès son premier paiement||<code>ULTIMATEMARKETPLACE_CONVERT_PROSPECT_TO_CUSTOMER_ON_FIRST_PAYMENT</code>||Le prospect devient client dès sa première facture payée
|}
|}


===Frais de port===
====Site Web====


{| class="wikitable"
{| class="wikitable"
|-
|-
!Constante!!Description
!Paramètre!!Constante!!Description
|-
|URL du logo de la place de marché||<code>ULTIMATEMARKETPLACE_URL_FOR_LOGO</code>||Logo de l'en-tête du site ; à défaut celui de la société, puis un logo fourni avec le module
|-
|URL de l'image de bienvenue / Masquer l'image de bienvenue||<code>ULTIMATEMARKETPLACE_WELCOME_IMAGE_URL</code> / <code>_WELCOME_IMAGE_HIDE</code>||Bannière de la page d'accueil
|-
|Couleur principale / secondaire du site||<code>ULTIMATEMARKETPLACE_THEME_COLOR</code> / <code>_SECONDARY_COLOR</code>||Couleurs du thème (<code>#a45931</code> et <code>#333333</code> par défaut)
|-
|Activer les URLs simplifiées||<code>ULTIMATEMARKETPLACE_FRIENDLY_URLS</code>||URLs du type <code>/fr/123-nom-du-produit.html</code>
|-
|Jeton de vérification Google Search Console||<code>ULTIMATEMARKETPLACE_GOOGLE_SITE_VERIFICATION</code>||Balise meta de vérification
|-
|-
|<code>ULTIMATEMARKETPLACE_SHIPPING_FEES_PRODUCT</code> / <code>ULTIMATEMARKETPLACE_SHIPPING_FEES_PRODUCT_ID</code>||Produit Dolibarr utilisé pour facturer les frais de port
|Description pour llms.txt||<code>ULTIMATEMARKETPLACE_LLMS_DESCRIPTION</code>||Phrase de présentation du site dans le <code>llms.txt</code>
|}
 
===Inscription : Google reCAPTCHA===
 
{| class="wikitable"
|-
|-
!Constante!!Description
|Utilisateur disposant des autorisations nécessaires pour effectuer des opérations sur le site Web||<code>ULTIMATEMARKETPLACE_USER_MANAGE_WEBSITE</code>||Utilisateur technique utilisé par la boutique (création des tiers, des commandes…)
|-
|-
|<code>ULTIMATEMARKETPLACE_GOOGLE_RECAPTCHA_REGISTER_FORM</code>||Active le Captcha Google sur le formulaire d'inscription
|Site Web à utiliser pour la place de marché||<code>ULTIMATEMARKETPLACE_WEBSITE_ID</code>||Site Web Dolibarr géré par le module, défini à l'activation
|-
|-
|<code>ULTIMATEMARKETPLACE_GOOGLE_RECAPTCHA_SITE_KEY</code>||Clé publique reCAPTCHA fournie par Google
|Toujours supprimer la commande provisoire à la déconnexion||<code>ULTIMATEMARKETPLACE_DELETE_ORDER_ON_LOGOUT</code>||Vide le panier en cours à la déconnexion du client
|-
|-
|<code>ULTIMATEMARKETPLACE_GOOGLE_RECAPTCHA_SECRET_KEY</code>||Clé privée reCAPTCHA (à garder confidentielle)
|Afficher une bannière de consentement aux cookies||<code>ULTIMATEMARKETPLACE_ENABLE_COOKIE_BANNER</code>||Bannière de consentement sur le site
|}
|}


===Paiement===
'''Important''' : si vous changez le site Web associé (<code>ULTIMATEMARKETPLACE_WEBSITE_ID</code>), les utilisateurs, tiers et commandes déjà créés restent liés à l'ancien site et ne sont pas migrés automatiquement.
 
====Modèles des courriels====
 
Trois listes déroulantes permettent de choisir, parmi les modèles d'emails de Dolibarr ('''Configuration → Emails → Modèles'''), celui de l'email de bienvenue envoyé à la création du compte (<code>ULTIMATEMARKETPLACE_WELCOME_EMAIL_TEMPLATE</code>), celui de l'email « Mot de passe oublié » (<code>ULTIMATEMARKETPLACE_FORGOT_PASSWORD_EMAIL_TEMPLATE</code>) et celui de la confirmation de commande de l'acheteur (<code>ULTIMATEMARKETPLACE_BUYER_ORDER_CONFIRMATION_TEMPLATE</code>).
 
===Configuration des paiements===
 
[[File:Ultimatemarketplace-v25-payment-fr.png|center|thumb|800px|Onglet Configuration des paiements]]


{| class="wikitable"
{| class="wikitable"
|-
|-
!Constante!!Description
!Paramètre!!Constante!!Description
|-
|Bloquer les ventes sur la place de marché||<code>ULTIMATEMARKETPLACE_BLOCK_SALES</code>||Le catalogue reste consultable mais la commande est désactivée ; forcé tant que le mode maintenance est actif
|-
|-
|<code>ULTIMATEMARKETPLACE_BLOCK_SALES</code>||Bloque temporairement les ventes sur la marketplace
|Fermeture automatique des commandes en cas de paiement réussi||<code>ULTIMATEMARKETPLACE_CLOSE_ORDER_AFTER_PAYMENT</code>||Clôture la commande Dolibarr une fois le paiement confirmé
|-
|-
|<code>ULTIMATEMARKETPLACE_CLOSE_ORDER_AFTER_PAYMENT</code>||Clôture automatiquement la commande après paiement réussi
|Sélectionner le mode de paiement à utiliser||<code>ULTIMATEMARKETPLACE_MAIN_PAYMENT_METHOD</code>||Module de paiement en ligne de Dolibarr utilisé à la validation de la commande
|-
|-
|<code>ULTIMATEMARKETPLACE_MAIN_PAYMENT_METHOD</code>||Mode de paiement à utiliser
|Inclure les pages de paiement fournies par Dolibarr à l'intérieur d'un cadre de la boutique marketplace (utilisateurs avancés)||<code>ULTIMATEMARKETPLACE_PAYMENT_IN_FRAME</code>||Paiement affiché dans un cadre sous le domaine de la boutique
|}
|}


Deux modes d'intégration du paiement sont possibles :
Deux modes d'intégration du paiement sont possibles :


*'''Page séparée''' (par défaut) : aucune configuration particulière, le client est redirigé vers les pages de paiement publiques de votre back-office Dolibarr. Inconvénient : le domaine du back-office est visible du client.
*'''Page séparée''' (par défaut) : aucune configuration particulière, le client est redirigé vers les pages de paiement publiques de votre Dolibarr. Inconvénient : le domaine du back-office est visible du client.
*'''Frame''' (utilisateurs avancés) : la page de paiement du back-office est appelée via une URL de la boutique marketplace elle-même. Nécessite une configuration de proxy sur le serveur Web de la marketplace pour rediriger les requêtes vers le back-office Dolibarr. Avantage : le domaine du back-office reste masqué.
*'''Cadre''' (utilisateurs avancés, Stripe et Stancer) : la page de paiement est appelée via une URL de la boutique elle-même. Une règle de proxy inverse est nécessaire sur le serveur Web de la boutique ; un exemple de configuration est affiché sur la page une fois l'option activée.
 
===Codes promo===
 
[[File:Ultimatemarketplace-v25-coupons-fr.png|center|thumb|800px|Onglet Codes promo]]
 
Chaque code promo est lié à '''un produit précis''' et comporte un type de réduction (pourcentage ou montant fixe), une valeur, des dates de validité et un nombre d'utilisations maximum optionnels, ainsi qu'un indicateur actif/inactif. L'acheteur saisit le code dans le panier : il n'est accepté que s'il est actif, dans ses dates de validité, sous son plafond d'utilisation et si le produit concerné est dans le panier. Le compteur d'utilisations n'est incrémenté qu'à la validation de la commande.
 
===Remises par catégorie===
 
[[File:Ultimatemarketplace-v25-discounts-fr.png|center|thumb|800px|Onglet Remises par catégorie]]


===API===
Une remise par catégorie associe une '''catégorie de clients''' à une '''catégorie de produits''' avec un pourcentage de remise. Pour un client connecté appartenant à cette catégorie, le prix remisé s'affiche directement sur la fiche produit et dans le panier, sans code à saisir. Si plusieurs règles s'appliquent, le pourcentage le plus élevé l'emporte.
 
===Sécurité===
 
[[File:Ultimatemarketplace-v25-security-fr.png|center|thumb|800px|Onglet Sécurité]]


{| class="wikitable"
{| class="wikitable"
|-
|-
!Constante!!Description
!Paramètre!!Constante!!Description
|-
|Fournisseur de captcha||<code>ULTIMATEMARKETPLACE_CAPTCHA_PROVIDER</code>||Aucun, Google reCAPTCHA ou Cloudflare Turnstile, avec leurs clés de site et clés secrètes
|-
|Activer cette protection||<code>ULTIMATEMARKETPLACE_LOGIN_PROTECTION_ENABLED</code>||Limitation des tentatives de connexion à la boutique
|-
|Nombre d'échecs avant blocage / Durée avant déblocage (minutes)||<code>ULTIMATEMARKETPLACE_LOGIN_MAX_ATTEMPTS</code> / <code>_LOGIN_BLOCK_DURATION</code>||5 échecs et 15 minutes par défaut
|-
|-
|<code>ULTIMATEMARKETPLACE_PUBLIC_API_KEY</code>||Clé publique utilisée pour accéder à l'API produits/catégories
|Adresses IP autorisées à bypasser cette protection||<code>ULTIMATEMARKETPLACE_LOGIN_BYPASS_IPS</code>||Liste blanche (tests automatisés, réseau de confiance)
|}
|}


L'API expose un flux XML des produits et des catégories, avec les paramètres <code>categorieid</code>, <code>limit</code>, <code>page</code>, <code>search</code> et <code>lang</code>. Un routage proxy peut être mis en place pour masquer l'URL réelle de l'API derrière le domaine de la boutique.
Le captcha et la protection de connexion sont désactivés par défaut : configurez-les avant d'ouvrir l'inscription au public.
 
===Configuration du serveur API===
 
Cet onglet n'apparaît que si le module '''API REST''' de Dolibarr est activé. Il contient la '''Clé API publique''' (<code>ULTIMATEMARKETPLACE_PUBLIC_API_KEY</code>, avec un bouton pour en générer une), passée en paramètre <code>apikey</code> aux deux points d'accès publics en lecture seule ajoutés par le module : <code>/api/index.php/ultimatemarketplace/categories</code> et <code>/api/index.php/ultimatemarketplace/products</code>.
 
===Matomo Analytics===


===Matomo===
[[File:Ultimatemarketplace-v25-matomo-fr.png|center|thumb|800px|Onglet Matomo Analytics]]


{| class="wikitable"
{| class="wikitable"
Line 208: Line 243:
!Constante!!Description
!Constante!!Description
|-
|-
|<code>ULTIMATEMARKETPLACE_ENABLE_MATOMO</code>||Active Matomo Analytics sur le site marketplace
|<code>ULTIMATEMARKETPLACE_ENABLE_MATOMO</code>||Active Matomo sur le site : le code de suivi est injecté dans chaque page
|-
|-
|<code>ULTIMATEMARKETPLACE_MATOMO_SITE_KEY</code>||Identifiant de site (Site ID) Matomo
|<code>ULTIMATEMARKETPLACE_MATOMO_SITE_KEY</code>||Identifiant de site Matomo
|-
|-
|<code>ULTIMATEMARKETPLACE_MATOMO_SERVER_URL</code>||URL complète du serveur Matomo
|<code>ULTIMATEMARKETPLACE_MATOMO_SERVER_URL</code>||URL complète du serveur Matomo
|-
|<code>ULTIMATEMARKETPLACE_MATOMO_AUTH_TOKEN</code>||Jeton d'authentification optionnel, nécessaire pour afficher les statistiques Matomo dans Dolibarr
|}
|}


===Codes promo (coupons)===
===Carrousel===


Un onglet '''Codes promo''' dédié permet de créer des codes de réduction :
[[File:Ultimatemarketplace-v25-carousel-fr.png|center|thumb|800px|Onglet Carrousel]]


*'''Type de remise''' : pourcentage ou montant fixe hors taxes
Réglages du carrousel de la page d'accueil : type de transition (aucune, fondu enchaîné, glissement), vitesse en millisecondes, pause au survol de la souris et répétition en boucle. Chaque diapositive comporte une image, un lien optionnel et un titre ; l'ordre se change par glisser-déposer et les images se choisissent ou s'envoient par un sélecteur d'images.
*'''Nombre d'utilisations maximum''' (laisser vide pour un usage illimité)
*Réservation possible à un '''produit précis'''
*Suivi du nombre d'utilisations déjà effectuées


[[File:ultimatemarketplace_coupons.png|center|thumb|800px|Onglet d'administration des codes promo]]
===Guide utilisateur===


Le code est vérifié lors de son application au panier : un code inexistant, expiré ou déjà entièrement utilisé est refusé (message "Ce code promo est invalide, expiré ou déjà utilisé").
[[File:Ultimatemarketplace-v25-guide-fr.png|center|thumb|800px|Onglet Guide utilisateur]]
 
L'onglet '''Guide utilisateur''' affiche, dans la langue de l'utilisateur, un guide complet de la configuration et de l'exploitation du module, en texte seul : les copies d'écran se trouvent sur cette page.


==Utilisation==
==Utilisation==


===Boutique en ligne (front office)===
===Boutique en ligne===
 
[[File:Ultimatemarketplace-v25-shop-home-fr.png|center|thumb|800px|Page d'accueil de la boutique]]
 
Le site généré par le module reprend le logo et les couleurs définis dans la configuration et propose :
 
#un catalogue organisé par catégories, avec les badges « Nouveau » et « Promotions » et un carrousel en page d'accueil ;
#une fiche produit avec le prix (remise par catégorie déjà appliquée) et, pour les produits à niveaux de prix, le choix de la durée ;
#un panier, conservé en session jusqu'à la validation, avec la saisie d'un code promo ;
#un tunnel de commande relié au module de paiement en ligne choisi ;
#un espace client : informations personnelles, « Mes adresses », historique des commandes et espace de téléchargement.
 
[[File:Ultimatemarketplace-v25-shop-product-fr.png|center|thumb|800px|Fiche produit de la boutique]]
 
La validation du panier crée une commande Dolibarr standard ; le paiement produit une facture Dolibarr standard.
 
===Fichiers livrés au client===
 
L'onglet '''Fichiers boutique''' de la fiche produit indique, pour chaque fichier joint, s'il est affiché sur la fiche produit publique. Un fichier coché « '''Fichier principal''' » ou « '''Visible par le client''' » est téléchargeable par le client une fois sa commande payée ; un avertissement s'affiche si aucun fichier du produit ne l'est. Si la durée de validité des produits est activée, le lien de téléchargement expire à la fin de la période achetée ; sinon, il n'expire jamais.


Le site généré par le module reprend la charte graphique définie dans la configuration (logo, couleur principale) et propose :
===Menu UltimateMarketPlace===


#Un catalogue de produits organisé par catégories, avec mise en avant des '''nouveautés''' et des '''promotions'''
[[File:Ultimatemarketplace-v25-statistics-fr.png|center|thumb|800px|Statistiques de la place de marché]]
#Une fiche produit avec prix, commentaire libre après le prix et message d'avertissement public si configurés
#Un panier avec application de code promo, calcul automatique des remises "client privilégié" et ajout du produit additionnel éventuel
#Un tunnel de commande relié aux modes de paiement configurés dans Dolibarr
#Un espace client (inscription, connexion, historique de commandes) protégé par Google reCAPTCHA si activé


[[File:ultimatemarketplace_home.png|center|thumb|800px|Page d'accueil de la boutique générée par UltimateMarketPlace]]
Le menu principal '''Place de marché''' donne accès à :


===Gestion des tags produits===
*'''Statistiques''' : statistiques des factures, statistiques clients, statistiques sur les produits, liste des ventes et, si Matomo est configuré, statistiques Matomo ;
*'''Produits sans tag''' : produits du catalogue sans mots-clés, pour contrôler la qualité du catalogue ;
*'''Paniers''' et '''Factures''' : listes standard des commandes et des factures de Dolibarr, filtrées sur celles qui proviennent de la boutique.


Le menu '''UltimateMarketPlace → Produits sans tags''' liste les produits/services de la marketplace qui n'ont pas encore été rattachés à une catégorie/tag, afin de leur appliquer en masse un ou plusieurs tags (catégories).
===Mode maintenance et réinitialisation du modèle===


===Statistiques===
Le '''mode maintenance''' ferme le site au public (sauf pour les adresses IP autorisées) et bloque les ventes. Tant qu'il est actif, l'onglet Paramètres propose deux boutons :


Le module ajoute des pages statistiques dédiées à la marketplace :
*'''Générer le sitemap.xml''' : régénère immédiatement <code>sitemap.xml</code> ;
*'''Réinitialiser le template du site''' : réimporte le modèle de site du module dans le site existant, '''en écrasant les modifications faites à la main dans l'éditeur de pages'''. À utiliser après une mise à jour du module.


*Statistiques des '''factures''' et des '''ventes''' (regroupement par pays/taux de TVA ou par zone/taux de TVA)
Pensez à désactiver le mode maintenance une fois les vérifications faites : il ne se désactive pas de lui-même.
*Statistiques '''clients''' (derniers tiers créés, derniers tiers "privilégiés")
*Statistiques '''produits/services''' (classement par popularité)


===Suivi des commandes et factures===
===Référencement===


Deux entrées de menu permettent de retrouver rapidement les commandes et factures issues de la marketplace (filtrées sur <code>module_source = ultimatemarketplace</code>).
<code>robots.txt</code>, <code>sitemap.xml</code> et <code>llms.txt</code> sont régénérés automatiquement à l'activation, à l'ouverture de l'onglet Paramètres et après une réinitialisation du modèle. Une fois les URLs simplifiées activées, les anciennes URLs restent valides pendant la transition.
 
==Nouveautés de la version 24.0.0==
 
===Compatibilité===
*'''Dolibarr 24 et PHP 8.2 minimum''' : le module requiert désormais Dolibarr 24.0.0 et PHP 8.2 ; il est testé jusqu'à PHP 8.5. La vérification de mise à jour lit <code>versionmodules/ultimatemarketplace/v24/ultimatemarketplace.txt</code>.
*'''Numérotation alignée sur Dolibarr''' : après la 1.0.8, le module passe directement en 24.0.0, comme les autres modules Atoo-Net.
 
===Traductions===
*Le bloc panier de la boutique affichait des clés brutes (<code>quantity</code>, <code>total</code>, <code>shipping</code>, <code>FreeShipping</code>) : il charge désormais les traductions du module. Réinitialisez le template du site pour en profiter.
*Ajout des libellés manquants des pages de la boutique (références, TVA, articles, ajout et suppression d'adresses, contrôles du formulaire d'inscription…) et des messages d'administration, dans les cinq langues.
*Traduction en français, allemand, espagnol et italien des libellés qui n'existaient qu'en anglais.
 
===Documentation et diffusion===
*Guide utilisateur : section de prérequis et de compatibilité ; le guide anglais devient <code>GUIDE_UTILISATEUR-EN.md</code>.
*Page wiki réécrite d'après les écrans actuels, avec des copies d'écran dans les cinq langues.
*Script de construction du paquet DoliStore et intégration continue (installation des dépendances et contrôle de syntaxe sous PHP 8.4 et 8.5).
 
==Versions précédentes==
 
Le détail des versions 1.0.0 à 1.0.8 (codes promo, remises par catégorie, carrousel, protection de connexion, URLs simplifiées, <code>llms.txt</code>, guide utilisateur…) figure dans le fichier <code>ChangeLog.md</code> livré avec le module.


==FAQ==
==FAQ==


===Le site marketplace n'a pas été créé automatiquement===
===Le site marketplace n'a pas été créé ou la boutique est vide===
Vérifiez que le module '''Site Web''' de Dolibarr est bien activé. Si le site n'existe toujours pas après activation du module, désactivez puis réactivez UltimateMarketPlace.
Vérifiez la présence de la ligne <code>$dolibarr_website_allow_custom_php</code> dans <code>conf.php</code>, puis désactivez et réactivez le module. Sans cette ligne, Dolibarr refuse d'importer les pages du modèle, qui contiennent du code PHP.
 
===Le bloc panier affiche « quantity » ou « FreeShipping »===
Le site utilise encore les pages d'une version antérieure du module. Passez en mode maintenance et cliquez sur '''Réinitialiser le template du site''' dans l'onglet Paramètres.


===Comment changer le site Web utilisé sans perdre les commandes existantes ?===
===Comment changer le site Web utilisé sans perdre les commandes existantes ?===
Ce n'est pas recommandé : changer <code>ULTIMATEMARKETPLACE_WEBSITE_ID</code> ne migre pas les utilisateurs, tiers et commandes déjà créés vers le nouveau site. Ils restent associés à l'ancien site.
Ce n'est pas recommandé : changer <code>ULTIMATEMARKETPLACE_WEBSITE_ID</code> ne migre pas les utilisateurs, tiers et commandes déjà créés vers le nouveau site. Ils restent associés à l'ancien site.


===Puis-je limiter la remise "client privilégié" à certains produits uniquement ?===
===Quelle différence entre un code promo et une remise par catégorie ?===
Oui, en configurant <code>ULTIMATEMARKETPLACE_DISCOUNT_EXCLUDE_PRODUCTS_CATEGORY_ID</code> avec une catégorie regroupant les produits à exclure de la remise.
Le code promo est saisi par l'acheteur et ne s'applique qu'à un produit précis. La remise par catégorie est automatique : elle s'applique à tous les produits d'une catégorie pour les clients d'une catégorie donnée, dès qu'ils sont connectés.
 
===Le client ne peut pas télécharger le produit acheté===
Vérifiez, dans l'onglet '''Fichiers boutique''' du produit, qu'un fichier est coché « Fichier principal » ou « Visible par le client ». La page d'accueil du menu '''Place de marché''' signale les produits déjà vendus qui n'ont plus de fichier livrable.


===Le paiement en frame est-il obligatoire ?===
===Le paiement en cadre est-il obligatoire ?===
Non, c'est une option pour utilisateurs avancés. Par défaut, le paiement redirige simplement vers les pages publiques de paiement de votre back-office Dolibarr, sans configuration serveur particulière.
Non, c'est une option pour utilisateurs avancés. Par défaut, le paiement redirige simplement vers les pages publiques de paiement de votre Dolibarr, sans configuration serveur particulière.


===Quels moyens de paiement sont supportés ?===
===Quelles langues sont supportées ?===
Tous les modes de paiement déjà pris en charge nativement par Dolibarr (Stripe, PayPal, virement, etc.), sélectionnés via <code>ULTIMATEMARKETPLACE_MAIN_PAYMENT_METHOD</code>.
Le module et le modèle de site sont disponibles en '''français''', '''anglais''', '''allemand''', '''espagnol''' et '''italien'''.


==Voir aussi==
==Voir aussi==

Navigation menu