Shopify fulfillment: model connections for product questions

Review model connections for product questions in Shopify fulfillment. Check document scope, failure paths and source evidence through controlled tests.

What the documents look like

Shopify standalone stores let the merchant configure payment, shipping, and fulfillment services directly, and no platform-wide automatic return process applies. That difference shapes product data and selection Q&A around four document families: order details, shipping templates, shipping labels, and refund records. Each family carries a different part of the picture. Order details hold line items and amounts, shipping templates hold billing conditions, shipping labels hold carrier information, and refund records hold after-sales status. Order details and shipping labels move at per-order frequency, while templates and refund records are handled on a daily basis. A question that draws on only one family can turn a product data question into a fulfillment status answer. Sources named in the brief are Shopify Admin, payment gateways, carrier systems, and inventory location data; the model connection and configuration step has to establish which fields from those sources are eligible to enter the retrieval scope.

Constraints at the model connections step

The system requires at least one language model and one index model to operate normally. A model ID is the value of the model field in the request body and is globally unique. AI Proxy is a required dependency: both the App and any Admin service that reuses App/Service configuration must set AIPROXY_API_ENDPOINT and a non-empty AIPROXY_API_TOKEN, and startup validation fails when either is missing. AIPROXY_API_ENDPOINT takes the service root address and does not append /v1. AIPROXY_API_TOKEN must match the server-side configuration and cannot be empty; an application API key does not substitute for it. Model capabilities are checked against the inputs the application needs, with multimodal input, tool calling, and thinking configuration verified separately. Application parameters are set in the application or node configuration; a same-named field on a compatible chat endpoint is not assumed to override orchestration. Retrieval does not carry authorization, and a similarity score is not an entity or permission filter.

Hypothetical paper exercise, labelled as such: on 10 March 2026 a standalone-store operator submits a product data question. The material text reads: "The order detail shows this line item with quantity 2; the shipping template bills by weight; no shipping label has been generated; the refund record is empty." The proposed sentence is "This order has completed its refund." The request to be judged is "Please confirm from the material above whether the refund is complete."

Configuration and implementation checks

Configuration itemHypothetical starting value for this exerciseReason and comparison method
AIPROXYAPIENDPOINTService root address, no /v1 suffixCompare character by character against the documented root address format and confirm no path suffix
AIPROXYAPITOKENNon-empty token matching the server sideCompare against the AI Proxy administrator token and confirm non-empty and matching
Language modelOne model that has passed channel testingCompare its model ID against the channel model entry and confirm they match
Index modelOne model that has passed channel testingCheck separately from the language model and confirm both types exist
Model capabilitySelected against the inputs the application needsCompare against the text input the sample requires, verifying multimodal and tool calling separately
Application parametersSet in the application or node configurationCompare against same-named fields on a compatible chat endpoint and confirm no reliance on override

The probe interval accepts an integer between 5 and 60 minutes. The hypothetical starting value for this exercise is 30 minutes, chosen because comparing against the documented probe cadence makes status changes easier to observe; this is not an official default.

Three common errors

  1. Writing a full request address with /v1 into AIPROXY_API_ENDPOINT. The input is the environment variable value, the comparison object is the documented root address format, and the observable result is whether a path suffix is present.
  2. Using an application API key in place of AIPROXY_API_TOKEN. The input is the token field, the comparison object is the AI Proxy administrator token, and the observable result is whether it is non-empty and matching.
  3. Treating "the refund record is empty" as proof that the refund is complete. The input is the sample material text, the comparison object is the refund record field, and the observable result is whether an explicit completed-refund record appears.

How to verify the setup

  1. Input the sample material text and the proposed sentence. Compare the sentence "This order has completed its refund" against "the refund record is empty" in the material. Observable result: the material does not state that a refund completed, the sentence is unsupported, and the item is recorded as pending verification.
  2. Input the request "Please confirm from the material above whether the refund is complete." Compare the fields the request needs against the fields the material states. Observable result: the material lacks a completed-refund record, the request cannot receive an affirmative answer, and the evidence gap is retained.
  3. Input the environment variables AIPROXY_API_ENDPOINT and AIPROXY_API_TOKEN. Compare them against the documented format and consistency requirements. Observable result: the condition is met when the root address carries no /v1 suffix and the token is non-empty and matching; otherwise startup validation fails.

Retrieval checks record observations and failure branches only; they do not guarantee a first hit or full recall. An empty-result handoff can use an explicit paper input [] to check downstream design, and no claim is made that a fictional rule retrieval returns []. Libraries built on different vector models cannot be associated together; verify the identifier first and exclude non-matching entries rather than running cross-model retrieval to compare missed recall.