Skip to content

Add ecommerce catalog upload API to Preview spec#580

Merged
harish-intercom merged 1 commit into
mainfrom
harish.raj/ecommerce-catalog-upload-api-spec
Jul 9, 2026
Merged

Add ecommerce catalog upload API to Preview spec#580
harish-intercom merged 1 commit into
mainfrom
harish.raj/ecommerce-catalog-upload-api-spec

Conversation

@harish-intercom

Copy link
Copy Markdown
Contributor

Why?

Documents the POST /ecommerce/connectors/{id}/catalog endpoint, which enables integrators to upload product catalogs to an ecommerce connector. The endpoint exists in the API but had no spec coverage.

How?

Adds a new Ecommerce Connectors tag and a POST /ecommerce/connectors/{id}/catalog path in descriptions/0/api.intercom.io.yaml, covering single-file and multipart upload flows via query parameters, with two new response schema components.

Companion PR in developer-docs: https://github.com/intercom/developer-docs/pull/1021

Generated with Claude Code

@harish-intercom harish-intercom self-assigned this Jul 8, 2026
@zilleeizad-inter

Copy link
Copy Markdown

Reviewed against the actual controller (app/controllers/api/v3/ecommerce/connectors/catalog_controller.rb). Verdict: good to ship to Preview.

Verified accurate against code: the Preview/Unstable version gate (AddEcommerceCatalogUploadApi, registered in the UnstableVersion block), all 8 documented status codes (200/202/400/401/404/409/422/503), all 10 named error codes, the write_content OAuth scope, and the feature-flag 404 message ("The catalog API is not available for this workspace"). Both $refs resolve and fern check is green.

Non-blocking accuracy nits:

  1. Missing 422 error code import_job_id_required. The controller returns this (status 422) when finalize is present with part_number != "1" and no import_job_id. Worth adding an example so the multipart error contract is complete — this is the only real gap.
  2. finalize enum semantics. Modeling it as a string is correct (not a boolean). But the controller keys on presence + the literal "true", not a validated true/false: any present value enters multipart mode, and only "true" with no file triggers finalize. enum: ['true','false'] slightly over-promises validation. The prose is accurate, so this is low priority.
  3. FYI, not changes. intercom_version_invalid (400) is also returned by the version gate but is generic to every Preview endpoint, so omitting it is consistent with the rest of the spec. And path param {id} matches this spec's house style (the focal resource is always {id}) even though the Rails route names it :import_source_id — path params are positional, so it's harmless.

Please keep Intercom-OpenAPI#580 and developer-docs#1021 identical — any of the above should be applied to both.

Companion PRs: #580 ↔ intercom/developer-docs#1021

~ Automated via Claude

Introduces the POST /ecommerce/connectors/{id}/catalog endpoint under a new
Ecommerce Connectors tag, covering single-file and multipart upload flows with
all error responses and two new schema components.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@harish-intercom harish-intercom force-pushed the harish.raj/ecommerce-catalog-upload-api-spec branch from 5df24c0 to 4f3756b Compare July 8, 2026 16:11

@zilleeizad-inter zilleeizad-inter left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approving. ✅ Good for Preview.

Re-verified after the latest push: the new 422 import_job_id_required example matches the controller verbatim (code + message + status), the endpoint is correctly gated to the Preview/Unstable version, and all status/error codes, the write_content scope, and the feature-flag 404 line up with app/controllers/api/v3/ecommerce/connectors/catalog_controller.rb. fern check is green, and this PR is byte-identical to its companion.

Merge order reminder: land developer-docs#1021 first, then Intercom-OpenAPI#580.

~ Automated via Claude

@harish-intercom harish-intercom merged commit 7996c63 into main Jul 9, 2026
3 checks passed
@harish-intercom harish-intercom deleted the harish.raj/ecommerce-catalog-upload-api-spec branch July 9, 2026 12:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants