MerchantProductView. By default, Octogen checks the product index first. If the URL is not indexed and on-demand product resolution is available, Octogen fetches the page and returns the useful product fields it can verify.
The response always identifies its source:
source: "indexed"returns the full indexed product record and catalog context.source: "on_demand"returns a partial-safe product view without inventing an indexed UUID, catalog ownership, or lifecycle state.
Choose a resolution mode
Requests that can use on-demand resolution also accept
onDemandCachePolicy:
refresh does not apply to index_only requests.
Make a lookup request
On-demand resolution is synchronous and bounded. It reads the returned HTML but does not render JavaScript. Allow up to 8 seconds for a cold request, and use your normal timeout and retry policy for transient errors.
Handle indexed and on-demand results
Both sources returnproduct: MerchantProductView, but some fields have different guarantees.
For follow-up lookups, use
normalizedUrl on indexed results and
resolvedUrl on on-demand results: submit either on a follow-up lookup and it
deterministically re-resolves the same product. Prefer storing them over the
URL you originally submitted.
On-demand results are ephemeral. Octogen does not add them to your catalogs or product index, and you cannot retrieve them later by UUID. Store the returned resolvedUrl and any fields your application needs.
On-demand example
resolution.completeness is complete or partial. resolution.method identifies the strongest evidence used: json_ld, open_graph, html_meta, or resolved_url. missingFields and warnings tell you which expected fields were unavailable or need attention. Do not treat partial as an error when the fields your application needs are present.
Preserve indexed-only behavior
If your integration assumes every result has a stable UUID, catalog context, and lifecycle state, opt out of the default fallback:404 product_not_found, matching the previous Product Lookup behavior.
Handle errors
All Product Lookup calls use the service-wide API budget described in Rate Limits. See Error Handling for the SDK exception model and general retry guidance.