Une offre relie un produit Odoo à un contrat de vendeur ManoMano. Il y en a une par produit et par contrat. Si vous republiez un produit qui avait déjà une offre, l'assistant la met à jour.
Avant la première offre
Trois données sont indispensables, sans quoi aucune offre ne part :
- La référence interne du produit. C'est le SKU de l'offre. Si un produit n'en a pas, l'assistant s'arrête sans créer aucune offre et l'indique avec
The following products have no Internal Reference (SKU) and cannot be published to ManoMano. Please set one first:suivi de la liste de ces produits. - La grille de transport du contrat. Dans ManoMano › Configuration › Contracts, le champ « Carrier grid » reprend le nom de la grille tel qu'il figure dans la Toolbox de ManoMano. Elle accompagne chaque offre, avec « Delivery days (min) » et « Delivery days (max) », qui valent 2 et 5 jours. L'assistant ne la vérifie pas : si elle manque, l'offre est créée et passe en erreur avec le motif.
- Un prix supérieur à zéro. Si le prix d'un produit sort à 0, l'assistant s'arrête avec
Product '…' has a price of 0. ManoMano requires a positive price., avec le nom du produit, et avec un prix manuel de 0 il s'arrête avecManual price must be greater than zero.Il ne crée alors aucune offre non plus.
Une offre qui existe déjà passe ses propres contrôles à chaque envoi : si elle perd ensuite sa référence ou son prix, elle passe en erreur avec The product has no Internal Reference: it is the SKU of the offer. ou avec ManoMano requires a price greater than zero.
Si le produit a un code-barres, il part comme EAN, et le poids du produit accompagne l'offre.
Publier pas à pas
- Ouvrez une liste de variantes de produit. Dans Odoo 17, 18, 19 et 20, il y a Inventory › Reporting › Stock, que seuls voient les administrateurs de l'Inventaire ; dans les versions 17, 18 et 19, également les menus « Product Variants » des Ventes, de l'Inventaire et des Achats, si les variantes sont activées. Dans la liste « Products » des Ventes ou de l'Inventaire, l'action n'apparaît pas.
- Cochez au moins un produit, pour que le menu des actions s'affiche, et choisissez « Publish on ManoMano ». L'assistant « Publish offers » s'ouvre.
- Dans « Products », ajoutez les produits que vous voulez vendre sur ManoMano. L'assistant ne reprend pas ceux que vous avez cochés dans la liste : si vous le laissez vide, la publication s'arrête avec
Select at least one product to publish. - Choisissez le contrat et, si vous le souhaitez, la catégorie. La catégorie est indicative : ManoMano la reprend de son catalogue, par l'EAN, ou du flux produits que vous chargez dans la Toolbox.
- Choisissez l'origine du prix : « Sales price, plus the product taxes », qui est la valeur par défaut, « Public price, plus the product taxes » ou « Manual, VAT included ». Avec les deux premières, l'assistant ajoute au prix les taxes du produit pour la société du contrat, car ManoMano reçoit le prix payé par le client.
- Cliquez sur « Publish ». Odoo crée ou met à jour les offres, avec la quantité disponible de chaque produit comme stock, et les envoie à ManoMano 20 par 20.

L'état de chaque offre
| État | Ce qui s'est passé | Ce que vous faites |
|---|---|---|
| Draft | Créée et non envoyée | Rien : la tâche quotidienne l'envoie, ou publiez-la vous-même |
| Published | ManoMano l'a acceptée | Regardez « Online » pour savoir si les clients la voient |
| Error | Une donnée manque ou ManoMano l'a refusée | Lisez le message : les motifs de ManoMano suivent ManoMano refused it: |
| Unpublished | Retirée de la vente | Republiez-la si vous voulez la vendre à nouveau |
Une offre acceptée n'est pas toujours visible : « Online » reflète ce que dit ManoMano, et les avertissements qu'elle envoie sont conservés dans le message de l'offre. Si une offre publiée n'a pas changé depuis son dernier envoi, Odoo ne la renvoie pas.
Retirer une offre
ManoMano ne propose pas d'appel pour supprimer une offre. Lorsque vous cliquez sur « Unpublish », Odoo envoie l'offre avec un stock de 0 et ne la passe à Unpublished que lorsque ManoMano confirme qu'elle n'est plus en ligne. Si ManoMano l'affiche encore, l'offre garde son état, avec ce message : ManoMano took the stock at 0 but still shows the offer online: it is not unpublished yet.
Une offre qui n'a jamais été envoyée passe à Unpublished sans appeler ManoMano.

Ce qui se passe seul chaque jour
- « ManoMano: sync offers » publie les offres en Draft et renvoie les Published qui ont changé depuis leur dernier envoi. Il envoie le « Stock » enregistré sur l'offre, et non la quantité disponible du jour. Celles en Error attendent que vous les corrigiez et les publiiez vous-même.
- « ManoMano: pull offer status » interroge ManoMano sur les offres envoyées, 50 références par 50. Celles que ManoMano liste passent à « Online », avec leur « ManoMano product ID », et à Published, sauf si leur dernière mise à jour s'est terminée en erreur. Celles qu'il ne liste pas sont marquées hors ligne.
D'où vient le stock de l'offre ?
C'est la quantité que le produit avait en stock au moment où vous l'avez publié avec l'assistant, et elle ne change pas toute seule : les ventes dans Odoo, y compris celles qui arrivent d'autres canaux, ne la diminuent pas. Pour envoyer le chiffre du jour, repassez le produit par l'assistant. Vous pouvez aussi modifier « Stock » sur l'offre : si elle est en Draft ou en Error, cliquez sur « Publish » ; si elle est déjà publiée, ce bouton n'apparaît pas et c'est la tâche quotidienne qui envoie la modification.
Puis-je vendre le même produit avec deux contrats ?
Oui. Il y a une offre par produit et par contrat, donc chaque contrat a la sienne, avec son prix et sa grille.
Pourquoi une offre publiée n'apparaît-elle pas sur ManoMano ?
Parce qu'acceptée ne veut pas dire visible. Vérifiez la case « Online » et le message de l'offre après la vérification quotidienne : c'est là que figurent les avertissements et les motifs donnés par ManoMano.
À lire aussi
Vérifié dans le code du connecteur (version 17.0, 18.0, 19.0 et 20.0) et dans les sources citées
Sources
- Code du module : flexigobe_manomano_connector · 17.0 af39294 · 18.0 ace8d3a · 19.0 57d3f8e · 20.0 093b2e3: wizard/offer_publish_wizard.py, wizard/offer_publish_wizard_views.xml, models/manomano_offer.py, views/manomano_offer_views.xml
- Code du module : flexigobe_manomano_connector · 17.0 af39294 · 18.0 ace8d3a · 19.0 57d3f8e · 20.0 093b2e3: models/manomano_contract.py, models/manomano_offer.py (_build_payload), views/menu.xml
- Code du module : flexigobe_manomano_connector · 17.0 af39294 · 18.0 ace8d3a · 19.0 57d3f8e · 20.0 093b2e3: models/manomano_offer.py (_payload_problem, _put, _row_outcome, action_publish)
- Code du module : flexigobe_manomano_connector · 17.0 af39294 · 18.0 ace8d3a · 19.0 57d3f8e · 20.0 093b2e3: models/manomano_offer.py (action_unpublish)
- Code du module : flexigobe_manomano_connector · 17.0 af39294 · 18.0 ace8d3a · 19.0 57d3f8e · 20.0 093b2e3: data/manomano_cron.xml, models/manomano_offer.py (_cron_sync_offers, _pull_status)
- github.com/odoo/odoo/blob/20.0/addons/stock/views/product_views.xml
