Skip to main content

Discogs Store Management

This is the installation and configuration guide for Discogs Store Management, the Odoo connector for Discogs sellers. Everything on this page describes the discogs_store_management module exactly as it ships today. The Odoo 19.0 and 20.0 builds are module version 1.1.1; the Odoo 17.0 and 18.0 builds are module version 1.0.13, and where they differ this page says so.

Technical namediscogs_store_management
Odoo versions17.0, 18.0, 19.0, 20.0 (Community or Enterprise)
Current shipped version20.0 → 20.0.1.1.1, 19.0 → 19.0.1.1.1, 18.0 → 18.0.1.0.13, 17.0 → 17.0.1.0.13
Price$499 USD — one-time, per Odoo version
Odoo module licenceOPL-1
CategoryConnector

There is no licence key and no activation step: install the module and connect it to Discogs.

What it does​

  • Listings — import your Discogs marketplace inventory into product mappings matched to Odoo products, with listing images. Export creates or updates a Discogs listing from an Odoo product: the product's Internal Reference (SKU) must be the Discogs release id, and the listing is sent with the product's sales price, its description as the listing comment, and the media condition Good (G) — adjust the grade on Discogs after the first export if your copy grades differently.
  • Orders — Discogs orders are imported as Odoo sale orders, every 15 minutes by default or on demand.
  • Buyers — Discogs buyers are imported as Odoo contacts.
  • Release metadata (19.0 and 20.0) — fetch the master release, artist and label profiles and the marketplace statistics (copies for sale and the lowest asking price) on the product mapping, so you can price against the real market.
  • Collection (19.0 and 20.0) — import your collection folders, then the copies filed in any folder. Discogs models each physical copy as an instance, so owning the same record twice gives you two rows; duplicates are never merged. Rate a copy and push the rating to Discogs, or remove a copy from Discogs (the row is archived in Odoo so your history stays).
  • Wantlist (19.0 and 20.0) — import the releases you are watching, group them by artist, keep your own notes, and add or remove entries on Discogs from Odoo.
  • Payouts and refunds — Discogs has no payout or refund API, so you enter them in Odoo: a payout creates a bank statement on the payout journal for reconciliation; a refund becomes a credit note. The Import Payout Reports and Import Refunds scheduled actions only record that there is nothing to fetch.
  • Risk scoring — new orders are scored on readable rules (order value, new buyer, order frequency, shipping and billing address mismatch, shipping abroad) against the per-instance Critical / High / Medium thresholds (80 / 60 / 30 by default).
  • Automation, queue and logs — sale auto-workflows (confirm, invoice, validate — all off by default), queue jobs with retry, a log record for every run, and an OWL dashboard. Each record syncs in its own savepoint, so one bad record is logged and the rest of the run still lands.

Discogs publishes no webhooks: everything runs on the scheduled actions below or from Discogs → Operations → Run Operations.

Requirements​

RequirementDetail
Odoo17.0, 18.0, 19.0 or 20.0, Community or Enterprise. Self-hosted or Odoo.sh — Odoo Online (SaaS) cannot install third-party modules
Odoo appsbase, sale_management, stock, account, delivery, mail, web, portal, product, contacts, digest — Odoo installs any that are missing
Python packagesrequests
Discogs accountA Discogs seller account with a Personal Access Token (Discogs Settings → Developers → Generate new token). On 19.0 and 20.0 you can instead use a registered Discogs application (consumer key and secret) for OAuth

Install the Python package into the interpreter that runs Odoo:

sudo -u odoo pip install requests

Installation​

  1. Download the module for your Odoo version from the Odoo Apps Store.

  2. Extract it into your addons path so that discogs_store_management/__manifest__.py sits directly inside an addons directory:

    ls /opt/odoo/addons/discogs_store_management/__manifest__.py # sanity check
  3. Restart Odoo, then in Apps click Update Apps List (developer mode on), search for Discogs Store Management and click Install.

A Discogs menu appears in the app switcher.

Configuration​

Connect to Discogs​

Open Discogs → Configuration → Instances and create an instance:

FieldRequiredNotes
Instance NameYesYour label for this seller account
Discogs Seller URL (19.0/20.0) · Discogs Shop URL (17.0/18.0)YesYour public seller page, e.g. https://www.discogs.com/seller/<username>/profile
CompanyYesThe Odoo company that owns this account
Personal Access Token (19.0/20.0)For token authYour Discogs Personal Access Token
API Key / Client IDSee below19.0/20.0: your Discogs application's consumer key (OAuth). 17.0/18.0: paste your Personal Access Token here
Client SecretFor OAuth (19.0/20.0)Your Discogs application's consumer secret
Default WarehouseNoWarehouse for imported orders
PricelistNoPricelist (and currency) for imported orders
Payout JournalNoBank journal for payout bank statements
Auto Confirm Orders / Auto Create Invoice / Auto Validate InvoiceNoOff by default; switch on one at a time

Credentials are stored in fields only system administrators can read.

Odoo 19.0 and 20.0 — Personal Access Token: fill Personal Access Token and click Test Connection. The module asks Discogs who you are (GET /oauth/identity), stores your seller username, and marks the instance Connected. A failure is shown with Discogs' own reason and written to the logs.

Odoo 19.0 and 20.0 — OAuth 1.0a: fill the consumer key (API Key / Client ID) and Client Secret, then click Connect to Discogs. Odoo sends you to Discogs to approve the application and Discogs returns you to Odoo with the access token pair, which then signs every call. Only system administrators can start this.

Odoo 17.0 and 18.0: paste your Personal Access Token into API Key / Client ID and click Test Connection (the Connect to Discogs button runs the same token test). OAuth is not supported on these builds.

Reconnecting. The Connect to Discogs button is shown whenever the instance is not connected or a credential is missing, not only when the status says so. If you clear, rotate or revoke a token, the button stays available on the form so you can re-authorise straight away. On 17.0 and 18.0, a failed Test Connection also leaves the instance in the Error state (earlier builds could keep showing Connected after a failure).

Endpoints the module exposes​

RouteAccessPurpose
/discogs/install19.0/20.0: logged-in system administratorsStarts the OAuth authorization: fetches a request token and redirects to Discogs. On 17.0/18.0 the route exists but is not used by Discogs — connect with a token as described above
/discogs/callbackPublic (Discogs redirects the browser here)19.0/20.0: finishes the OAuth authorization by exchanging the verifier for the access token pair. Set https://<your-odoo-domain>/discogs/callback as the callback URL of your Discogs application. On 17.0/18.0 the route exists but is not used by Discogs
/discogs/webhook/product, /discogs/webhook/order, /discogs/webhook/customer, /discogs/webhook/refundPublic, HMAC-SHA256 signedOptional relay endpoints. Discogs itself sends no webhooks; these accept a signed notification from a relay you run, verified with the instance's client secret. The relay sends X-Discogs-Shop-Domain (your seller URL host) and X-Discogs-Hmac-SHA256 (base64 HMAC-SHA256 of the body); unsigned requests are rejected

Your firewall must allow outbound HTTPS to api.discogs.com.

Scheduled actions​

Discogs → Configuration → Scheduled Actions. All are enabled on install.

Scheduled actionRuns everyBuilds
Discogs: Sync Products30 minutesall
Discogs: Sync Orders15 minutesall
Discogs: Sync Customers60 minutesall
Discogs: Sync Inventory10 minutes17.0/18.0 only (removed in 1.1.0 — Discogs stock is your listings)
Discogs: Process Queue Jobs5 minutesall
Discogs: Import Payout Reports6 hoursall (logs only — Discogs has no payout API)
Discogs: Import Refunds30 minutesall (logs only — Discogs has no refund API)
Discogs: Auto Risk Detection30 minutesall
Discogs: Generate Analytics4 hoursall
Discogs: Webhook Health Check60 minutesall (no-op — Discogs has no registered webhooks)
Discogs: Cleanup Old Logs24 hoursall
Discogs: Process Workflows10 minutesall
Discogs: Daily Summary Report1 dayall

Discogs limits API calls per minute; shortening intervals is the usual cause of throttling errors in the logs.

Roles​

Seven security groups ship with the module (Settings → Users): Discogs User, Manager, Administrator, Analytics, Developer, Finance and Operations. Every Discogs record is restricted to the user's companies.

Using the module​

The menu is laid out as:

  • Discogs → Dashboard
  • Discogs → Orders, Refunds, Products, Customers, Payouts, Analytics — plus Collection and Wantlist on 19.0/20.0
  • Discogs → Operations — Run Operations, Queue Jobs, Logs
  • Discogs → Configuration — Instances, Payment Gateways, Scheduled Actions, Webhooks (relay endpoints) — plus Locations on 17.0/18.0

A normal first run:

  1. Save the instance and click Test Connection (token) or Connect to Discogs (OAuth, 19.0/20.0).
  2. Run Operations → Import Products to bring in your listings, then Import Orders. On 19.0/20.0, Import Collection Folders and Import Wantlist are also available.
  3. Check the results and the Logs, then let the scheduled actions take over.

Troubleshooting​

SymptomCause and fix
Enter your Discogs credentials first (19.0/20.0)Neither a Personal Access Token nor a consumer key and secret is filled on the instance.
Please enter a Discogs Personal Access Token in the 'API Key' field (17.0/18.0)Paste the token into API Key / Client ID.
The Connect to Discogs button is missingUpdate to 1.1.1 (19.0/20.0) or 1.0.13 (17.0/18.0): the button now appears whenever the instance is not connected or a credential is missing.
The instance still reads Connected after a failed Test Connection (17.0/18.0)Fixed in 1.0.13: the failure status is now kept, so the instance shows Error and offers Connect to Discogs.
Test Connection fails with 401The token is wrong or revoked, or the OAuth authorization was not completed. Generate a new token, or click Connect to Discogs again.
The OAuth callback shows an error (19.0/20.0)The Discogs approval was cancelled, or the callback URL of your Discogs application does not point at /discogs/callback on this Odoo.
Product has no SKU/default_code set on exportSet the product's Internal Reference to the Discogs release id; Discogs needs it to create a listing.
A collection import stops with an error (19.0/20.0)The folder fetch failed on Discogs' side; the platform's error is recorded in Logs. Fix the cause (usually the token) and run it again — a failed import never reports success.
Nothing syncs although the connection is fineThe scheduled actions are disabled or Odoo's cron worker is not running (--max-cron-threads must be greater than zero).
Payouts or refunds never importDiscogs has no API for them. Enter them in Payouts / Refunds; the module books the bank statement or credit note.
A run stops part-wayOpen Operations → Logs. One bad record is logged with the platform's error and the rest of the run still lands.

Version history​

Odoo versionVersion you download today
20.020.0.1.1.1
19.019.0.1.1.1
18.018.0.1.0.13
17.017.0.1.0.13

ECOSIRE module versions are <odoo major>.<module major>.<minor>.<patch>, so 19.0.1.1.0 is the Odoo 19 build of module version 1.1.0.

1.1.1 (19.0 and 20.0)​

  • The Connect to Discogs button no longer depends on the status alone: it is shown whenever the instance is not connected or a credential is missing, so a cleared, rotated or revoked token can always be re-authorised from the form.

1.0.13 (17.0 and 18.0)​

  • A failed Test Connection no longer leaves the instance reading Connected: the failure status is now kept, and the connector always offers a way back into the authorisation flow.
  • The Connect to Discogs button is shown whenever the instance is not connected or a credential is missing, so a cleared, rotated or revoked token can always be re-authorised from the form.

1.1.0 (19.0 and 20.0)​

  • Your Discogs collection, folder by folder: import folders and the copies in them (each physical copy is its own row), rate a copy, remove a copy from Discogs.
  • Your Discogs wantlist: import, group by artist, notes, add and remove entries on Discogs.
  • Release metadata on the product mapping: master release, artist and label profiles, and marketplace statistics.
  • New Operations entries Import Collection Folders and Import Wantlist, and the Collection and Wantlist menus.
  • Connect with a Personal Access Token or with OAuth 1.0a.
  • A failed collection import no longer reports success.
  • The inventory-sync scheduled action and the Locations screen, which did nothing on Discogs, were removed.

1.0.12 (all versions)​

  • Every per-record sync and import runs in its own savepoint: one bad record rolls back alone and can no longer abort the rest of the run.

Support​