Skip to main content

Prerequisites

Before you begin, make sure you have:
  • An Avelero account (sign up at app.avelero.com)
  • At least one product you want to create a passport for
  • Product information: name, materials, manufacturer details

Step 1: Create your brand

When you first sign in, you’ll be prompted to create a brand.
1

Enter brand details

Provide your brand name and select the country where your brand operates.
// Brand creation uses this schema
{
  name: "Acme Fashion",
  country_code: "US",
  email: "[email protected]" // optional
}
2

Customize brand settings

Navigate to SettingsBrand to add:
  • Brand logo
  • Contact email
  • Brand slug (used in URLs)
The brand slug must be unique across Avelero and uses lowercase letters, numbers, and dashes only.

Step 2: Set up your catalog

Before creating products, set up your brand’s catalog data.

Add manufacturers

1

Navigate to Settings → Manufacturers

Click Add manufacturer to create a new manufacturer record.
2

Enter manufacturer details

{
  name: "Ethical Textiles Co.",
  legal_name: "Ethical Textiles Corporation",
  country_code: "BD",
  city: "Dhaka",
  email: "[email protected]",
  website: "https://ethicaltextiles.com"
}

Add materials

1

Navigate to Settings → Materials

Add the materials you use in your products.
2

Create material entries

{
  name: "Organic Cotton",
  recyclable: true,
  country_of_origin: "IN"
}

Add supply chain operators

Navigate to SettingsOperators and add facilities involved in your supply chain:
  • Fabric mills
  • Dyeing facilities
  • Cut and sew factories
  • Finishing facilities

Step 3: Create your first product

1

Navigate to Passports

From the main navigation, click Passports to view your product catalog.
2

Click 'Create product'

This opens the product creation form with multiple sections:
  • Basic info: Name, description, category, season
  • Organization: Manufacturer selection
  • Materials: Composition percentages
  • Journey: Supply chain steps
  • Environment: Carbon and water impact
3

Fill in basic information

{
  name: "Classic Organic Tee",
  description: "A timeless t-shirt made from 100% organic cotton",
  category_id: "...", // Select from taxonomy
  manufacturer_id: "...", // Select from your manufacturers
  product_handle: "classic-organic-tee" // Auto-generated if not provided
}
The product_handle is a URL-friendly identifier unique to your brand. It will be used in your DPP URLs.
4

Add materials

Click Add material and select from your brand materials:
materials: [
  {
    brand_material_id: "...",
    percentage: 100
  }
]
5

Define supply chain journey

Add the production steps in order:
journey_steps: [
  {
    sort_index: 0,
    step_type: "Fabric Production",
    operator_ids: ["..."]
  },
  {
    sort_index: 1,
    step_type: "Dyeing",
    operator_ids: ["..."]
  },
  {
    sort_index: 2,
    step_type: "Cut & Sew",
    operator_ids: ["..."]
  }
]
6

Add environmental data (optional)

If you have impact data:
environment: {
  carbon_kg_co2e: 2.5,
  water_liters: 2700
}
7

Save the product

Click Save to create your product. It will be saved with status unpublished.

Step 4: Add product variants

Products can have multiple variants (e.g., different colors or sizes).
1

Navigate to Variants section

Within your product form, scroll to the Variants section.
2

Define variant attributes

First, set up attributes in SettingsAttributes:
  • Create attribute: “Color” with values: Black, White, Navy
  • Create attribute: “Size” with values: S, M, L, XL
3

Create variants

Click Add variant and select attribute values:
{
  attribute_value_ids: [
    "color-black-id",
    "size-medium-id"
  ],
  sku: "TOT-BLK-M",
  barcode: "1234567890123"
}
Each variant can have its own SKU and barcode.
You can also generate variants automatically using the matrix mode, which creates all combinations of selected attributes.

Step 5: Publish your first DPP

Once your product is ready, publish it to generate Digital Product Passports.
1

Set product status to published

In the product form sidebar, change Status from unpublished to published.
Only products with status published will be visible to the public via their passport URLs.
2

Publish the product

Click Publish in the product detail view. This triggers the publishing process:
// Publishing creates:
// 1. A product_passport record with a unique UPID for each variant
// 2. A product_passport_version with immutable JSON-LD snapshot
// 3. QR codes linking to passport.avelero.com/{upid}
3

Publishing happens for all variants

The publish action:
  • Creates a passport for each variant (if it doesn’t exist)
  • Generates a 16-character UPID for new passports
  • Creates an immutable version snapshot with:
    • Current product data
    • Material composition
    • Supply chain information
    • Environmental impact
    • Manufacturer details
  • Increments the version number for updates
Passports are immutable once published. If you update the product later and republish, a new version is created while previous versions remain accessible in the version history.

Step 6: View your DPP

After publishing, you can view the public passport.
1

Get the passport URL

Each variant now has a UPID. The public URL format is:
https://passport.avelero.com/{upid}
Example: https://passport.avelero.com/771Gh4J11gLj345m
2

View the passport

Open the URL in your browser to see the public-facing DPP with:
  • Product name and image
  • Variant attributes (color, size, etc.)
  • Material composition with percentages
  • Supply chain journey map
  • Environmental impact metrics
  • Manufacturer and operator details
  • Certifications (if added)
3

Download QR codes

From the product detail page, download QR codes for each variant to print on:
  • Product tags
  • Packaging
  • Care labels

Understanding the data model

// Product (working layer - editable)
Product {
  id: string
  name: string
  product_handle: string // URL-friendly identifier
  status: 'published' | 'unpublished' | 'scheduled'
  manufacturer_id: string
}

// Product Variant (working layer - editable)
ProductVariant {
  id: string
  product_id: string
  upid: string | null // Generated on first publish
  sku: string
  barcode: string
  attribute_value_ids: string[] // Links to brand attributes
}

// Product Passport (publishing layer - permanent)
ProductPassport {
  id: string
  upid: string // Permanent 16-char identifier
  working_variant_id: string | null
  current_version_id: string
  status: 'active' | 'orphaned'
  first_published_at: string
}

// Passport Version (immutable snapshot)
ProductPassportVersion {
  id: string
  passport_id: string
  version_number: number
  content_json: object // Complete JSON-LD snapshot
  published_at: string
  content_hash: string // For deduplication
}

Next steps

Customize passport theme

Brand your passports with custom colors, fonts, and logos

Bulk import products

Import hundreds of products from CSV or Excel

Connect Shopify

Automatically sync products from your Shopify store

API integration

Build custom workflows with the Avelero API

Build docs developers (and LLMs) love