arazzo: 1.0.1
info:
title: Shopify Update Fulfillment Tracking
summary: Confirm an order, update a fulfillment's tracking details, then read the order back.
description: >-
Corrects or attaches carrier tracking after a shipment exists. The workflow
confirms the order, updates the tracking number, URL, and company on the
fulfillment, and reads the order back so the caller can confirm the change
propagated. Every step spells out its request inline so the flow can be read
and executed without opening the underlying OpenAPI description.
version: 1.0.0
x-realizes-capability-ids:
- BC-2330
x-capability-derivation:
method: 'deterministic join: sourceDescriptions -> per-tag OpenAPI -> tag/capability edge. No classification at this step.'
min_confidence: 0.7
sources:
- capability_id: BC-2330
capability_name: Omnichannel Order & Fulfilment Management
spec: shopify-fulfillments-api-openapi.yml
confidence: 0.8
model: Turbo EA Capabilities by Vincent Verdet — Turbo EA, https://github.com/vincentmakes/turbo-ea-capabilities, CC BY 4.0
sourceDescriptions:
- name: fulfillmentsApi
url: ../openapi/shopify-fulfillments-api-openapi.yml
type: openapi
- name: ordersApi
url: ../openapi/shopify-orders-api-openapi.yml
type: openapi
workflows:
- workflowId: update-fulfillment-tracking
summary: Update a fulfillment's tracking information and confirm via the order.
description: >-
Confirms the order, updates the fulfillment's tracking details, and reads
the order back to confirm.
inputs:
type: object
required:
- orderId
- fulfillmentId
- trackingNumber
properties:
orderId:
type: integer
description: The order the fulfillment belongs to.
fulfillmentId:
type: integer
description: The ID of the fulfillment to update.
trackingNumber:
type: string
description: The carrier tracking number.
trackingUrl:
type: string
description: The carrier tracking URL.
trackingCompany:
type: string
description: The shipping company name.
steps:
- stepId: confirmOrder
description: Read the order to confirm it exists before updating tracking.
operationId: getOrder
parameters:
- name: order_id
in: path
value: $inputs.orderId
successCriteria:
- condition: $statusCode == 200
outputs:
orderId: $response.body#/order/id
- stepId: updateTracking
description: >-
Update the fulfillment's tracking number, URL, and company so the customer
sees current shipment information.
operationId: updateFulfillmentTracking
parameters:
- name: fulfillment_id
in: path
value: $inputs.fulfillmentId
requestBody:
contentType: application/json
payload:
fulfillment:
tracking_info:
number: $inputs.trackingNumber
url: $inputs.trackingUrl
company: $inputs.trackingCompany
successCriteria:
- condition: $statusCode == 200
outputs:
trackingNumber: $response.body#/fulfillment/tracking_number
fulfillmentStatus: $response.body#/fulfillment/status
- stepId: getOrder
description: Read the order back to confirm the tracking update is reflected.
operationId: getOrder
parameters:
- name: order_id
in: path
value: $inputs.orderId
successCriteria:
- condition: $statusCode == 200
outputs:
order: $response.body#/order
outputs:
orderId: $steps.confirmOrder.outputs.orderId
trackingNumber: $steps.updateTracking.outputs.trackingNumber
order: $steps.getOrder.outputs.order
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we
store it to create your key and to recognise you if you sign in with another
provider. See our Privacy Policy and
Terms.