Commerce Layer · Arazzo Workflow

Commerce Layer Add Two Line Items to an Order

Version 1.0.0

Create an order, then add two SKU line items to it and read the recalculated totals.

1 workflow 2 source APIs 1 provider
View Spec View on GitHub Headless CommerceComposable CommerceAPI-FirstE-CommerceJSON:APIAuthenticationMulti-MarketMulti-CurrencyB2CB2BSubscriptionPromotionsInventoryOrder ManagementCheckoutArazzoWorkflows

Provider

commerce-layer

Workflows

order-add-two-line-items
Create an order and add two SKU line items to it.
Creates a draft order, adds two SKU line items, then retrieves the order to read the recalculated SKU count and totals.
4 steps inputs: accessToken, marketId, quantityOne, quantityTwo, skuCodeOne, skuCodeTwo outputs: firstLineItemId, orderId, secondLineItemId, totalAmountCents
1
createOrder
Create a draft order in the supplied market.
2
addFirstLineItem
Add the first SKU line item to the order.
3
addSecondLineItem
Add the second SKU line item to the order.
4
getOrder
Retrieve the order to read the recalculated SKU count and totals.

Source API Descriptions

Arazzo Workflow Specification

Raw ↑
arazzo: 1.0.1
info:
  title: Commerce Layer Add Two Line Items to an Order
  summary: Create an order, then add two SKU line items to it and read the recalculated totals.
  description: >-
    A Commerce Layer multi-item cart flow. The workflow creates a draft order in
    a market and adds two distinct SKU line items to it, then retrieves the
    order to expose the recalculated SKU count and totals. Every step spells out
    its JSON:API 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-520.40
  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-520.40
      capability_name: Order Fulfilment Management
      spec: commerce-layer-orders-api-openapi.yml
      confidence: 0.7
    model: Turbo EA Capabilities by Vincent Verdet — Turbo EA, https://github.com/vincentmakes/turbo-ea-capabilities, CC BY 4.0
sourceDescriptions:
- name: lineItemsApi
  url: ../openapi/commerce-layer-line-items-api-openapi.yml
  type: openapi
- name: ordersApi
  url: ../openapi/commerce-layer-orders-api-openapi.yml
  type: openapi
workflows:
- workflowId: order-add-two-line-items
  summary: Create an order and add two SKU line items to it.
  description: >-
    Creates a draft order, adds two SKU line items, then retrieves the order to
    read the recalculated SKU count and totals.
  inputs:
    type: object
    required:
    - accessToken
    - marketId
    - skuCodeOne
    - quantityOne
    - skuCodeTwo
    - quantityTwo
    properties:
      accessToken:
        type: string
        description: Bearer access token for the Commerce Layer organization.
      marketId:
        type: string
        description: The id of the market the order belongs to.
      skuCodeOne:
        type: string
        description: The first SKU code to add.
      quantityOne:
        type: integer
        description: Quantity for the first SKU.
      skuCodeTwo:
        type: string
        description: The second SKU code to add.
      quantityTwo:
        type: integer
        description: Quantity for the second SKU.
  steps:
  - stepId: createOrder
    description: Create a draft order in the supplied market.
    operationId: POST/orders
    parameters:
    - name: Authorization
      in: header
      value: "Bearer $inputs.accessToken"
    requestBody:
      contentType: application/vnd.api+json
      payload:
        data:
          type: orders
          relationships:
            market:
              data:
                type: markets
                id: $inputs.marketId
    successCriteria:
    - condition: $statusCode == 201
    outputs:
      orderId: $response.body#/data/id
  - stepId: addFirstLineItem
    description: Add the first SKU line item to the order.
    operationId: POST/line_items
    parameters:
    - name: Authorization
      in: header
      value: "Bearer $inputs.accessToken"
    requestBody:
      contentType: application/vnd.api+json
      payload:
        data:
          type: line_items
          attributes:
            sku_code: $inputs.skuCodeOne
            quantity: $inputs.quantityOne
          relationships:
            order:
              data:
                type: orders
                id: $steps.createOrder.outputs.orderId
    successCriteria:
    - condition: $statusCode == 201
    outputs:
      lineItemId: $response.body#/data/id
  - stepId: addSecondLineItem
    description: Add the second SKU line item to the order.
    operationId: POST/line_items
    parameters:
    - name: Authorization
      in: header
      value: "Bearer $inputs.accessToken"
    requestBody:
      contentType: application/vnd.api+json
      payload:
        data:
          type: line_items
          attributes:
            sku_code: $inputs.skuCodeTwo
            quantity: $inputs.quantityTwo
          relationships:
            order:
              data:
                type: orders
                id: $steps.createOrder.outputs.orderId
    successCriteria:
    - condition: $statusCode == 201
    outputs:
      lineItemId: $response.body#/data/id
  - stepId: getOrder
    description: Retrieve the order to read the recalculated SKU count and totals.
    operationId: GET/orders/orderId
    parameters:
    - name: Authorization
      in: header
      value: "Bearer $inputs.accessToken"
    - name: orderId
      in: path
      value: $steps.createOrder.outputs.orderId
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      skusCount: $response.body#/data/attributes/skus_count
      totalAmountCents: $response.body#/data/attributes/total_amount_cents
  outputs:
    orderId: $steps.createOrder.outputs.orderId
    firstLineItemId: $steps.addFirstLineItem.outputs.lineItemId
    secondLineItemId: $steps.addSecondLineItem.outputs.lineItemId
    totalAmountCents: $steps.getOrder.outputs.totalAmountCents

Work with this as data

Every workflow here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for arazzo workflows

4 MCP tools reach this
  • find_arazzoBrowse and filter every workflow in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This workflow
curl "https://apis.io/api/v1/arazzo/commerce-layer-order-add-two-line-items-workflow"
All arazzo workflows
curl "https://apis.io/api/v1/arazzo?limit=25"

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.

A second provider on the same verified email joins the account you already have.