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.
"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": {}
}
"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.
"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):