Shopify · Arazzo Workflow

Shopify Create Customer With Address

Version 1.0.0

Create a customer record, attach a mailing address, then read the customer back.

1 workflow 1 source API 1 provider
View Spec View on GitHub CommerceEcommercePaymentsRetailShopping CartT1ArazzoWorkflows

Provider

shopify

Workflows

create-customer-with-address
Create a customer and attach a mailing address, returning the full record.
Creates a customer record, adds an address to it, and reads the customer back so the customer and address identifiers are available downstream.
3 steps inputs: address1, city, country, email, firstName, lastName, phone, province, zip outputs: addressId, customer, customerId
1
createCustomer
createCustomer
Create the customer record with name, email, and phone.
2
addAddress
createCustomerAddress
Attach a mailing address to the newly created customer.
3
getCustomer
getCustomer
Read the customer back so callers receive the full record with addresses.

Source API Descriptions

Arazzo Workflow Specification

shopify-create-customer-with-address-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: Shopify Create Customer With Address
  summary: Create a customer record, attach a mailing address, then read the customer back.
  description: >-
    Onboards a new customer with a shipping or billing address in a single flow.
    The workflow creates the customer, adds a mailing address to that customer,
    and reads the customer back so callers receive the complete record including
    the address identifier. 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
sourceDescriptions:
- name: shopifyAdminRestApi
  url: ../openapi/shopify-admin-rest-api-openapi.yml
  type: openapi
workflows:
- workflowId: create-customer-with-address
  summary: Create a customer and attach a mailing address, returning the full record.
  description: >-
    Creates a customer record, adds an address to it, and reads the customer
    back so the customer and address identifiers are available downstream.
  inputs:
    type: object
    required:
    - email
    - firstName
    - lastName
    properties:
      email:
        type: string
        description: Customer email address.
      firstName:
        type: string
        description: Customer first name.
      lastName:
        type: string
        description: Customer last name.
      phone:
        type: string
        description: Phone number in E.164 format.
      address1:
        type: string
        description: Street address line 1.
      city:
        type: string
        description: City.
      province:
        type: string
        description: State or province.
      country:
        type: string
        description: Country.
      zip:
        type: string
        description: Postal or ZIP code.
  steps:
  - stepId: createCustomer
    description: Create the customer record with name, email, and phone.
    operationId: createCustomer
    requestBody:
      contentType: application/json
      payload:
        customer:
          first_name: $inputs.firstName
          last_name: $inputs.lastName
          email: $inputs.email
          phone: $inputs.phone
    successCriteria:
    - condition: $statusCode == 201
    outputs:
      customerId: $response.body#/customer/id
  - stepId: addAddress
    description: Attach a mailing address to the newly created customer.
    operationId: createCustomerAddress
    parameters:
    - name: customer_id
      in: path
      value: $steps.createCustomer.outputs.customerId
    requestBody:
      contentType: application/json
      payload:
        address:
          first_name: $inputs.firstName
          last_name: $inputs.lastName
          address1: $inputs.address1
          city: $inputs.city
          province: $inputs.province
          country: $inputs.country
          zip: $inputs.zip
          phone: $inputs.phone
    successCriteria:
    - condition: $statusCode == 201
    outputs:
      addressId: $response.body#/customer_address/id
  - stepId: getCustomer
    description: Read the customer back so callers receive the full record with addresses.
    operationId: getCustomer
    parameters:
    - name: customer_id
      in: path
      value: $steps.createCustomer.outputs.customerId
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      customer: $response.body#/customer
  outputs:
    customerId: $steps.createCustomer.outputs.customerId
    addressId: $steps.addAddress.outputs.addressId
    customer: $steps.getCustomer.outputs.customer