arazzo: 1.0.1 info: title: Salla Shipping Zone Setup summary: Register a shipping company, create a delivery zone for it, and read the zone back. description: >- The onboarding flow a shipping app runs to publish its coverage on a Salla store. A shipping company is registered, a delivery zone with its covered countries and cost is created, and the new zone is read back to confirm its coverage persisted correctly. 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: shippingApi url: ../openapi/salla-shipping-fulfillment-api-openapi.yml type: openapi workflows: - workflowId: setup-shipping-zone summary: Register a shipping company and create a covered delivery zone. description: >- Creates a shipping company, creates a delivery zone for it, and reads the zone back to confirm its coverage. inputs: type: object required: - companyPayload - zonePayload properties: companyPayload: type: object description: The shipping company body (name, logo, settings) to register. zonePayload: type: object description: The shipping zone body (name, countries, cities, cost) to create. steps: - stepId: createCompany description: >- Register the shipping company that will own the new delivery zone. operationId: createShippingCompany requestBody: contentType: application/json payload: $inputs.companyPayload successCriteria: - condition: $statusCode == 201 - stepId: createZone description: >- Create a delivery zone with its covered countries, cities, and cost. operationId: createShippingZone requestBody: contentType: application/json payload: $inputs.zonePayload successCriteria: - condition: $statusCode == 201 outputs: zoneId: $response.body#/id - stepId: getZone description: >- Read the new zone back to confirm its coverage persisted correctly. operationId: getShippingZone parameters: - name: zone_id in: path value: $steps.createZone.outputs.zoneId successCriteria: - condition: $statusCode == 200 outputs: name: $response.body#/name countries: $response.body#/countries cost: $response.body#/cost outputs: zoneId: $steps.createZone.outputs.zoneId zoneCountries: $steps.getZone.outputs.countries