Skip to content

fix(connectors): rewrite Oxomi connector to the official Public API#383

Merged
keysersoft merged 1 commit into
mainfrom
keysersoft/oxomi-public-api-rewrite
Jun 29, 2026
Merged

fix(connectors): rewrite Oxomi connector to the official Public API#383
keysersoft merged 1 commit into
mainfrom
keysersoft/oxomi-public-api-rewrite

Conversation

@keysersoft

Copy link
Copy Markdown
Contributor

Summary

The existing Oxomi adapter was broken: hallucinated paths (/catalog/search, /product/search, /document/search, /product/cross-selling), wrong HTTP method (GET vs POST), and wrong auth param (portalId vs the API's portal). This rewrites it onto the official Oxomi Public API (/portals/api/...) — JSON, documented — replacing the deprecated /service/json frontend API (Oxomi sunsets it 2026-12-31).

Scope (10 tools)

  • oxomi_search_products (v2 search), oxomi_get_product_data (rich blocks: images, attachments, prices, pages, availability…)
  • oxomi_resolve_gtin, oxomi_product_availability
  • oxomi_get_brand_info, oxomi_list_documents, oxomi_render_datasheet
  • product-sync: oxomi_sync_products_changed, oxomi_get_product_spx, oxomi_update_sync_date

Auth

QUERY_AUTHportal/user/accessToken in the query string (verified). apiToken injected only on the sync tools via $OXOMI_API_TOKEN.

Verification (live, portal 3001049)

  • product/data resolved a real product; brand/info and documents returned real data; resolve-gtin OK.
  • product-search and per-block data are permission-gated on the token (Oxomi-side config, not a connector defect).
  • validate-adapters: 183/183 pass. Adds oxomi.live.spec.ts (static always-on + opt-in live).

The previous Oxomi adapter used hallucinated paths (/catalog/search,
/product/search, /document/search, /product/cross-selling), the wrong
HTTP method (GET vs POST), and the wrong auth param (portalId instead of
portal) — it could not work against the real service.

Rewrite onto the official Oxomi Public API (/portals/api/...), JSON and
documented, replacing the deprecated /service/json frontend API (sunset
2026-12-31). Full scope, 10 tools: product search + rich product/data,
resolve-gtin, availability, brand/info, documents, datasheet render, and
product-sync (changed/spx/update-sync-date).

Auth is QUERY_AUTH (portal/user/accessToken in the query string);
apiToken is injected only on the sync tools via $OXOMI_API_TOKEN.
Endpoints, auth and request shapes verified live against portal 3001049
(product/data resolved a real product; brand/info and documents returned
real data). Adds oxomi.live.spec.ts (static + opt-in live checks).
@keysersoft keysersoft requested a review from D3nisty as a code owner June 29, 2026 10:26
@keysersoft keysersoft merged commit 8ac544b into main Jun 29, 2026
12 checks passed
@keysersoft keysersoft deleted the keysersoft/oxomi-public-api-rewrite branch June 29, 2026 10:29
@github-actions github-actions Bot locked and limited conversation to collaborators Jun 29, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant