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 sourceDescriptions: - name: coreApi url: ../openapi/commerce-layer-core-api-openapi.json 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