Skip to main content
Stigg now supports importing existing Zuora product catalogs directly into your Stigg environment. This allows you to adopt Stigg without restructuring your billing setup, while keeping Zuora as the authoritative source of truth for products, plans, and pricing. With the Zuora Catalog Import Script, you can mirror your Zuora catalog structure in Stigg, manage entitlements on top of it, and keep billing ownership firmly with your finance team.

What’s new

Many organizations treat Zuora as the rigid source of truth for their product catalog. Recreating this structure manually in a new system can be error-prone and often forces you to duplicate SKUs to support different billing frequencies. Stigg provides a scripted import tool that solves this by mirroring your Zuora hierarchy. It allows you to map multiple Zuora products and rate plans into a unified Stigg catalog without disrupting your downstream reporting or CPQ rules.

Zuora catalog import script

The Zuora catalog import script imports product catalog data from Zuora into Stigg by converting Zuora products, rate plans, and charges into Stigg products, plans, add-ons, and prices using the Stigg GraphQL API.

Key features

  • Imports Zuora products, plans, add-ons, and flat-rate prices into Stigg
  • Automatically detects add-ons based on naming (add-on / addon)
  • Supports create, update, and publish workflows
  • Dry-run mode to preview changes without modifying Stigg

How it works

The first Zuora product is mapped to the main product in Stigg. All plans and add-ons from additional Zuora products are assigned to that same product. Zuora rate plans are split into Stigg plans and add-ons, with add-ons detected automatically based on naming conventions. Only flat-rate pricing models are supported. All imported entities are created as drafts by default.

Requirements

To run the Zuora catalog import script, make sure the following prerequisites are installed on your system:
  • Node.js (required to run the import script)
  • Yarn or npm (used to install dependencies and execute the script)

Getting started

1. Clone the import Script Repository

Clone the public repository that contains the Zuora-to-Stigg import script:
git clone https://github.com/stiggio/import-scripts
cd import-catalog-from-zuora

2. Configure environment variables

  1. Use the provided .env.example file as a template:
    cp .env.example .env
    
  2. Update the following values in .env:
    X_API_KEY=your-stigg-server-api-key
    ENVIRONMENT_ID=your-stigg-environment-id
    ZUORA_PRODUCT_IDS=zuoraProductId1,zuoraProductId2
    
    • ZUORA_PRODUCT_IDS accepts a comma-separated list of Zuora product IDs to import.

3. Install dependencies

Install the required dependencies using Yarn or npm:
yarn install
or
npm install
Before making any changes, run the script in dry-run mode to preview the entities that will be created or updated:
yarn run zuora-import --dry-run
Dry-run mode:
  • Applies no changes to Stigg
  • Logs all planned actions to the console

5. Import the catalog

Run the default import to create new entities in Stigg:
yarn run zuora-import
This mode:
  • Creates new entities only
  • Does not update existing entities
  • Creates all entities in Draft status

Advanced usage

Update existing entities

To update existing products, plans, and prices:
yarn run zuora-import --update
  • Creates missing entities
  • Updates existing entities
  • Does not publish

Publish imported entities

To publish all unpublished entities:
yarn run zuora-import --publish
This command:
  • Creates missing entities
  • Publishes unpublished entities
  • Does not update already published entities

Update and publish in one run

yarn run zuora-import --update --publish
This command:
  • Creates new entities
  • Updates existing entities
  • Publishes unpublished entities

Dry-run with any mode

Dry-run can be combined with any flags:
yarn run zuora-import --update --dry-run
yarn run zuora-import --publish --dry-run
yarn run zuora-import --update --publish --dry-run

Final notes

After import, plans are either left in Draft or published depending on the flags you use. Imported plans are marked as Synced, ensuring Zuora remains the authoritative source of billing data. This setup lets you adopt Stigg incrementally, without disrupting your existing Zuora-based billing workflows.