Skip to content

iUsed Stores

iUsed Stores is the internal iUsed stock source representing iUsed's own Odoo inventory. It acts as a refurbisher within IRP to make iUsed's own stock available on the platform. Offers are retrieved via the Alumio integration platform.

Internal Refurbisher

iUsed Stores is an internal refurbisher — not a third-party partner. It represents iUsed's own physical store inventory managed in Odoo. Orders are fulfilled internally; there is no automated order placement to an external party.

  • Internal


    iUsed's own Odoo inventory

  • Integration


    Via Alumio middleware platform

  • Public Name


    iUsed

  • Currency


    EUR


Status

Artifact Acceptatie Productie
Refurbisher ID: 1 · → IRP ID: 1 · → IRP
Supplier ID: 1 · → IRP ID: 1 · → IRP
Offer connector Web POST · JSON · Header token (n8n) · → Web POST · JSON · Bearer token (Alumio, deprecated) · n8n endpoint ready, IRP switch pending · →
Order connector Not integrated Not integrated
Shipment webhook Not configured Not configured
Odoo/CITg order push Active (sales order) · Excluded by default (delivery update) · → Active (sales order) · Excluded by default (delivery update) · →

IRP

Field Value
Refurbisher ID 1
Supplier ID 1
Odoo Vendor ID 9
Public Name iUsed
Currency EUR
Shipping Costs Free (€0.00)
Home Copy Tax €4.38
Default Margin 99%
Stock Threshold 0
Approved Refurbished Yes
Drop-ship Yes

Monitoring Thresholds

Metric Threshold
Latest order (hours) 58
Offers stock (hours) 81
Open order (days) 9
Offers endpoint HTTP status 151

No automated order integration

iUsed Stores does not have an automated order integration. Orders placed for iUsed's own stock are fulfilled internally through Odoo.

Alumio deprecated in favor of n8n

CITg is deprecating their Alumio middleware in favor of n8n — the same migration as Maxicom.

Sales Channel 11 (iUsed Stores) is one of the three feeds covered by this migration, alongside Maxicom (Ch. 3) and Maxicom 2 (Ch. 10). Acceptatie is fully on the new n8n endpoint/header-auth below. Production is still on the old Alumio config, pending that switch. The n8n endpoints do already exist for accept and production and are ready for use as soon as IRP switches over.

config_key confirmed via DB on both — same key in both environments

Verified by joining refurbishers (id, refurbisher_config_id) to refurbisher_configs (id, config_key), 2026-10-15:

Environment Refurbisher ID refurbisher_config_id config_key
Acceptatie iUsed Stores 1 1002 iused-alumio
Production iUsed Stores 1 5 iused-alumio

Unlike Maxicom (which uses a -uat-suffixed config_key on acceptatie), iUsed Stores uses the same config_key — iused-alumio — in both environments. Each environment has its own database, so this is the same string resolving to a different row (and content) per environment, not a shared row.

Refurbisher Connector Config

iused-alumio (refurbisher 1, refurbisher_config_id 1002) is live on n8n.

config.json
"iused-alumio": {
  "name": "iUsed via n8n",
  "offers": {
    "enabled": true,
    "connection": "web_post",
    "endpoint": "https://connect.accept.circularit.group/webhook/odoo-citg/saleschannel/product/receive",
    "auth": { "type": "header_token", "http_header": "CITG-webhook-auth", "token": "<encrypted_token, distinct per channel>" },
    "body": "{ \"sales_channel_id\": 11 }",
    "type": "json",
    "paginate": false,
    "offer_location": "offers",
    "price_locale": "en_US",
    "mapping": {
      "name": "description",
      "sku": "sku",
      "stock_available": "quantity",
      "ean": "ean",
      "price_purchase_amount": "costPrice",
      "price_consumer_amount": "priceConsumer",
      "currency_iso": "currencyIso",
      "tax_percentage": "taxPercentage"
    }
  },
  "order": {}
}
config.json
"iused-alumio": {
  "name": "iUsed via Alumio",
  "offers": {
    "connection": "web_post",
    "endpoint": "https://flooris.alumio.com/api/v1/http-proxy/odoo-max-receive-sales-channel-products",
    "auth": { "type": "bearer", "token": "XXXXXXXXXXXXXXX" },
    "body": "{ \"sales_channel_id\": 11 }",
    "type": "json",
    "paginate": false,
    "offer_location": "offers",
    "price_locale": "en_US",
    "mapping": {
      "name": "description",
      "sku": "sku",
      "stock_available": "quantity",
      "ean": "ean",
      "price_purchase_amount": "costPrice",
      "price_consumer_amount": "priceConsumer",
      "currency_iso": "currencyIso",
      "tax_percentage": "taxPercentage"
    }
  },
  "order": {}
}

CITg's n8n domain is connect.circularit.group (mirrors the accept domain connect.accept.circularit.group). CITg's endpoint is reportedly already functional here too; not yet switched on the IRP side.

config.json (target, not yet applied)
"iused-alumio": {
  "name": "iUsed via n8n",
  "offers": {
    "enabled": true,
    "connection": "web_post",
    "endpoint": "https://connect.circularit.group/webhook/odoo-citg/saleschannel/product/receive",
    "auth": { "type": "header_token", "http_header": "CITG-webhook-auth", "token": "<encrypted_token, distinct per channel>" },
    "body": "{ \"sales_channel_id\": 11 }",
    "type": "json",
    "paginate": false,
    "offer_location": "offers",
    "price_locale": "en_US",
    "mapping": {
      "name": "description",
      "sku": "sku",
      "stock_available": "quantity",
      "ean": "ean",
      "price_purchase_amount": "costPrice",
      "price_consumer_amount": "priceConsumer",
      "currency_iso": "currencyIso",
      "tax_percentage": "taxPercentage"
    }
  },
  "order": {}
}

API Integration

iUsed Stores offers are retrieved via an HTTP POST request. Sales channel ID 11 identifies the iUsed Stores inventory in Odoo. CITg is deprecating Alumio in favor of n8n (IUS-3867) — acceptatie has switched over; production still runs on the deprecated Alumio endpoint below, pending the IRP-side switch (the n8n endpoint itself is already functional, see warning above).

Credentials

Legacy Alumio Bearer token stored in 1Password under iUsed - IRP - Refurbisher: iUsed Stores.

New n8n header token (accept + production, all three channels): IF001.10.a – Receive sales channel products from Odoo CITG [n8n]

Acceptatie (n8n) — custom header, no Bearer prefix:

CITG-webhook-auth: <TOKEN>
Content-Type: application/json

Production (Alumio, deprecated) — Bearer token:

Authorization: Bearer <TOKEN>
Content-Type: application/json

CITg's n8n endpoint is functional for this channel on both environments already (IUS-3867) — the production "target" row below is blocked on the IRP-side switch, not on CITg.

Status Environment Method Endpoint Sales Channel
Live Acceptatie POST https://connect.accept.circularit.group/webhook/odoo-citg/saleschannel/product/receive 11
Deprecated (current) Production POST https://flooris.alumio.com/api/v1/http-proxy/odoo-max-receive-sales-channel-products 11
Target (not yet applied) Production POST https://connect.circularit.group/webhook/odoo-citg/saleschannel/product/receive 11

The sales channel is specified in the request body:

{ "sales_channel_id": 11 }

The offer feed is returned as a JSON object with an offers array. Fetched via HTTP POST to the endpoint in Endpoints above (format is unchanged by the n8n migration).

Field JSON Path
Name description
SKU sku
Stock quantity
EAN ean
Purchase Price costPrice
Consumer Price priceConsumer
Currency currencyIso
Tax Percentage taxPercentage

Format details

  • Type: json
  • Paginated: No
  • Price locale: en_US
  • Offer location: offers

Order Push to Odoo

iUsed Stores participates in the portal-wide push of sales orders and delivery/shipment updates into Odoo via CITg's middleware — the same AlumioConnector integration (being) migrated to n8n under IUS-3867, documented in full on the Maxicom page. This is portal-wide ALUMIO_CITG_MAXICOM_* env var configuration (config/services.php), not per-refurbisher config.json — it applies uniformly to all refurbishers/shops, aside from the exclusion below.

Interface Trigger Acceptatie (n8n) Production (Alumio, deprecated)
IF003.05a — sales order push Every order, no exclusions POST .../webhook/odoo-citg/sales-order/create POST .../api/v1/http-proxy/odoo-citg-send-saleorder
IF005.07d — delivery/shipment update push Every delivery, except iUsed Stores (see exclusion below) POST .../webhook/odoo-citg/purchase-order/delivery POST .../api/v1/http-proxy/odoo-citg-purchaseorder-delivery-update

iUsed Stores is excluded from IF005.07d by default

PushRefurbisherOrderDeliveryListener::refurbisherIsExcluded() (app/Listeners/PushRefurbisherOrderDeliveryListener.php) checks services.alumio.interface_order_delivery_update.exclude_refurbisher_ids (env ALUMIO_DELIVERY_UPDATES_EXCLUDE_REFURBISHER_IDS), which defaults to 1 — iUsed Stores' own Refurbisher ID. So by default, delivery-update pushes for iUsed Stores orders are skipped (this default can be overridden per environment; not independently verified here). IF003.05a has no equivalent exclusion and always fires, including for iUsed Stores.

Credentials

Portal-wide tokens (one per interface, shared across all shops/refurbishers — same as on the Maxicom page):