Salla · Arazzo Workflow

Salla Create and Verify Product

Version 1.0.0

Create a product, read it back, and confirm its generated SKUs.

1 workflow 1 source API 1 provider
View Spec View on GitHub ArabicE-CommerceGCCHeadless CommerceMerchantMENAOnline StoresRetailSaudi ArabiaSMBStorefrontArazzoWorkflows

Provider

salla

Workflows

create-verify-product
Create a product and verify it persisted with its SKUs.
Creates a new catalog product, fetches it back by id, and lists the SKUs Salla generated for it.
3 steps inputs: categories, description, name, price, productType, quantity outputs: productId, productStatus, skus
1
createProduct
createProduct
Create the product from the supplied attributes and capture its generated id.
2
getProduct
getProduct
Fetch the newly created product by id to confirm it persisted and read its canonical representation.
3
listSkus
listProductSkus
List the SKUs Salla generated for the product so they can be mapped into downstream inventory systems.

Source API Descriptions

Arazzo Workflow Specification

salla-product-create-verify-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: Salla Create and Verify Product
  summary: Create a product, read it back, and confirm its generated SKUs.
  description: >-
    The canonical catalog onboarding pattern for a Salla store. A product is
    created from the supplied attributes, the created product is fetched back
    by its id to confirm persistence, and its generated SKUs are listed so an
    integration can map them into downstream inventory systems. Each 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: merchantApi
  url: ../openapi/salla-merchant-api-openapi.yml
  type: openapi
workflows:
- workflowId: create-verify-product
  summary: Create a product and verify it persisted with its SKUs.
  description: >-
    Creates a new catalog product, fetches it back by id, and lists the SKUs
    Salla generated for it.
  inputs:
    type: object
    required:
    - name
    - price
    - productType
    properties:
      name:
        type: string
        description: Display name of the product.
      price:
        type: number
        description: Base price of the product.
      productType:
        type: string
        description: Product type (e.g. product, service, digital, food).
      quantity:
        type: integer
        description: Initial stock quantity.
      description:
        type: string
        description: Product description.
      categories:
        type: array
        description: Category ids to assign the product to.
        items:
          type: integer
  steps:
  - stepId: createProduct
    description: >-
      Create the product from the supplied attributes and capture its
      generated id.
    operationId: createProduct
    requestBody:
      contentType: application/json
      payload:
        name: $inputs.name
        price: $inputs.price
        product_type: $inputs.productType
        quantity: $inputs.quantity
        description: $inputs.description
        categories: $inputs.categories
    successCriteria:
    - condition: $statusCode == 201
    outputs:
      productId: $response.body#/data/id
  - stepId: getProduct
    description: >-
      Fetch the newly created product by id to confirm it persisted and read
      its canonical representation.
    operationId: getProduct
    parameters:
    - name: product_id
      in: path
      value: $steps.createProduct.outputs.productId
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      status: $response.body#/data/status
      sku: $response.body#/data/sku
  - stepId: listSkus
    description: >-
      List the SKUs Salla generated for the product so they can be mapped into
      downstream inventory systems.
    operationId: listProductSkus
    parameters:
    - name: product_id
      in: path
      value: $steps.createProduct.outputs.productId
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      skus: $response.body#/data
  outputs:
    productId: $steps.createProduct.outputs.productId
    productStatus: $steps.getProduct.outputs.status
    skus: $steps.listSkus.outputs.skus