Skip to content

variant/model_changed

Overview

PropertyValue
Webhook typevariant/model_changed
Kafka topicvariant.model-changed
DirectionPlatform → Your endpoint

Description

Fired when the model type of a variant changes — for example, from a standard PRODUCT to a BUNDLE.

Trigger Conditions

  • A variant's model type is changed via the API
  • A product variant is converted to or from a bundle configuration

Model Values

ModelDescription
PRODUCTStandard single-item variant
BUNDLEBundle — a composite of multiple items shipped together

Message Envelope

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

The body field contains the full variant with the updated model field.

Body — Property Table

Variant Object

FieldTypeNullableDescription
idstring (uuid)NoUnique variant identifier
organizationIdstring (uuid)NoOrganization that owns this variant
productIdstring (uuid)NoParent product identifier
titlestringYesVariant display name
referencestringNoInternal reference code
skustringNoStock keeping unit
modelenumNoUpdated model: PRODUCT or BUNDLE
statusenumYesDRAFT, ACTIVE, ARCHIVED, DISABLED, HOLD
sourceTypeenumNoCMS or APP
virtualProductbooleanNoVirtual product flag
pricefloatYesVariant price
vatRatefloatYesVAT rate
currencystringYesISO 4217 currency code
weightfloatYesWeight
weightUnitenumYesUnit for weight
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": "variant/model_changed",
    "date": "2024-03-15T10:23:45.000Z"
  },
  "body": {
    "id": "d4e5f6a7-b8c9-0123-defa-234567890123",
    "organizationId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    "productId": "e5f6a7b8-c9d0-1234-efab-345678901234",
    "title": "Summer Bundle Pack",
    "description": "T-shirt + shorts combo",
    "reference": "REF-SUMMER-BUNDLE",
    "sku": "SUMMER-BUNDLE-M",
    "barcode": null,
    "model": "BUNDLE",
    "status": "ACTIVE",
    "sourceType": "CMS",
    "sourceId": null,
    "position": 1,
    "virtualProduct": false,
    "price": 45.00,
    "vatRate": 0.20,
    "currency": "EUR",
    "height": null,
    "width": null,
    "length": null,
    "distanceUnit": null,
    "weight": 0.50,
    "weightUnit": "KG",
    "publishedAt": "2024-03-10T08:00:00.000Z",
    "createdAt": "2024-03-15T09:00:00.000Z",
    "updatedAt": "2024-03-15T10:23:45.000Z"
  }
}

Notes

  • The organizationId is read directly from data.organizationId.
  • Changing a variant's model from PRODUCT to BUNDLE may require configuring bundle component links separately.

HappyColis API Documentation