Skip to content

product/created

Overview

PropertyValue
Webhook typeproduct/created
Kafka topicproduct.created
DirectionPlatform → Your endpoint

Description

Fired when a new product is created in the catalog. A product is the parent entity that groups one or more variants.

Trigger Conditions

  • A product is created via the HappyColis GraphQL API
  • A product is imported from a third-party application (e.g., Shopify)
  • model will be PRODUCT for standard products or BUNDLE for bundle products

Message Envelope

json
{
  "header": {
    "organizationId": "org_xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
    "messageId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
    "webhookId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
    "type": "product/created",
    "date": "2024-03-15T10:23:45.000Z"
  },
  "body": { ... }
}

The body field contains the full product object.

Body — Property Table

Product Object

FieldTypeNullableDescription
idstring (uuid)NoUnique product identifier
organizationIdstring (uuid)NoOrganization that owns this product
titlestringYesProduct display name
descriptionstringYesProduct description text
slugstringYesURL-friendly identifier (unique per organization)
statusenumYesProduct status: DRAFT, ACTIVE, ARCHIVED, DISABLED, HOLD
scopeenumNoVisibility scope: GLOBAL or LOCAL
modelenumNoProduct model: PRODUCT or BUNDLE
fragilebooleanNoWhether the product requires fragile handling (default false)
suspendedbooleanNoWhether the product is suspended from catalog (default false)
heatSensitivebooleanNoWhether the product requires cold-chain handling (default false)
parcelsintegerNoNumber of parcels required to ship this product (default 1)
pricefloatYesBase price (tax-exclusive)
vatRatefloatYesVAT rate as decimal (e.g., 0.20 for 20%)
currencystringYesISO 4217 currency code
supplierIdstring (uuid)YesSupplier identifier
vendorIdstring (uuid)YesVendor identifier
preparationProfileIdstring (uuid)YesPreparation profile for warehouse handling
createdAtstring (ISO 8601)NoCreation timestamp
updatedAtstring (ISO 8601)NoLast update timestamp

Full JSON Payload Sample

json
{
  "header": {
    "organizationId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    "messageId": "b2c3d4e5-f6a7-8901-bcde-f12345678901",
    "webhookId": "c3d4e5f6-a7b8-9012-cdef-123456789012",
    "type": "product/created",
    "date": "2024-03-15T10:23:45.000Z"
  },
  "body": {
    "id": "d4e5f6a7-b8c9-0123-defa-234567890123",
    "organizationId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    "title": "Classic White T-Shirt",
    "description": "100% cotton unisex t-shirt, available in multiple sizes.",
    "slug": "classic-white-t-shirt",
    "status": "ACTIVE",
    "scope": "GLOBAL",
    "model": "PRODUCT",
    "fragile": false,
    "suspended": false,
    "heatSensitive": false,
    "parcels": 1,
    "price": 25.00,
    "vatRate": 0.20,
    "currency": "EUR",
    "supplierId": null,
    "vendorId": "e5f6a7b8-c9d0-1234-efab-345678901234",
    "preparationProfileId": null,
    "createdAt": "2024-03-15T10:23:45.000Z",
    "updatedAt": "2024-03-15T10:23:45.000Z"
  }
}

Notes

  • The organizationId is read directly from data.organizationId.
  • The body does not include variants — variant data is delivered via separate variant/* events.
  • slug is unique per organization and used for catalog URL routing.

HappyColis API Documentation