Salla · Arazzo Workflow

Salla Catalog Taxonomy Setup

Version 1.0.0

Create a brand and category, then create a product assigned to both.

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

Provider

salla

Workflows

setup-catalog-taxonomy
Create a brand and category, then a product placed in that category.
Creates a brand, creates a category, and creates a product assigned to the new category and brand.
3 steps inputs: brandPayload, categoryPayload, productName, productPrice, productType outputs: brandId, categoryId, productId
1
createBrand
createBrand
Create the brand the new product will belong to.
2
createCategory
createCategory
Create the category the new product will be placed in.
3
createProduct
createProduct
Create the product, assigning it to the freshly created brand and category.

Source API Descriptions

Arazzo Workflow Specification

salla-catalog-taxonomy-setup-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: Salla Catalog Taxonomy Setup
  summary: Create a brand and category, then create a product assigned to both.
  description: >-
    A catalog scaffolding flow for a new Salla store. A brand is created, a
    category is created, and a product is then created and assigned to the new
    category so the taxonomy and the product land together in one pass. 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: setup-catalog-taxonomy
  summary: Create a brand and category, then a product placed in that category.
  description: >-
    Creates a brand, creates a category, and creates a product assigned to the
    new category and brand.
  inputs:
    type: object
    required:
    - brandPayload
    - categoryPayload
    - productName
    - productPrice
    - productType
    properties:
      brandPayload:
        type: object
        description: The brand body (name, logo, description) to create.
      categoryPayload:
        type: object
        description: The category body (name, parent, status) to create.
      productName:
        type: string
        description: Display name of the product to create.
      productPrice:
        type: number
        description: Base price of the product.
      productType:
        type: string
        description: Product type (e.g. product, service, digital).
  steps:
  - stepId: createBrand
    description: >-
      Create the brand the new product will belong to.
    operationId: createBrand
    requestBody:
      contentType: application/json
      payload: $inputs.brandPayload
    successCriteria:
    - condition: $statusCode == 201
    outputs:
      brandId: $response.body#/data/id
  - stepId: createCategory
    description: >-
      Create the category the new product will be placed in.
    operationId: createCategory
    requestBody:
      contentType: application/json
      payload: $inputs.categoryPayload
    successCriteria:
    - condition: $statusCode == 201
    outputs:
      categoryId: $response.body#/data/id
  - stepId: createProduct
    description: >-
      Create the product, assigning it to the freshly created brand and
      category.
    operationId: createProduct
    requestBody:
      contentType: application/json
      payload:
        name: $inputs.productName
        price: $inputs.productPrice
        product_type: $inputs.productType
        brand_id: $steps.createBrand.outputs.brandId
        categories:
        - $steps.createCategory.outputs.categoryId
    successCriteria:
    - condition: $statusCode == 201
    outputs:
      productId: $response.body#/data/id
  outputs:
    brandId: $steps.createBrand.outputs.brandId
    categoryId: $steps.createCategory.outputs.categoryId
    productId: $steps.createProduct.outputs.productId