Skip to main content

API improvements for order integrations

· 3 min read
Albert Tiñena
Chief Technology Officer (CTO)
David Sancho
Principal Engineer & Technical Architect

This release introduces improvements focused on order integrations, adding new metadata to better represent commercial bundles and order attribution sources.

Bundle metadata in orders​

Orders now include additional metadata to represent commercial bundles, enabling external systems to reconstruct how products were grouped when purchased.

Previously, the API returned all products as independent line_items, without any way to identify which items belonged to the same bundle.

This created limitations for integrations (such as ERPs) that need to:

  • Identify which products belong to the same pack
  • Reconstruct the original commercial bundle
  • Optionally represent the bundle as a single line

bundle_group_id in line items​

A new optional field bundle_group_id is now available in line_items.

  • Present only when the item belongs to a bundle
  • Same value for all items within the same bundle
  • Corresponds to the internal identifier of the bundle line

Example:

{
"line_items": [
{
"id": 253419,
"display_name": "Product A",
"bundle_group_id": 81741
},
{
"id": 253420,
"display_name": "Product B",
"bundle_group_id": 81741
}
]
}

bundles field at order level​

A new optional field bundles is available at the root of the order.

  • Contains one entry per bundle group
  • Provides a structured view of the commercial packs

Example:

{
"bundles": [
{
"bundle_group_id": 81741,
"bundle_id": 1243,
"display_name": "Bundle Name",
"quantity": 2,
"line_item_ids": [253419, 253420, 253421]
}
]
}

How it works​

  • line_items remains the source of truth for:

    • Quantities
    • Prices
    • Totals
  • bundles is metadata only:

    • Does not introduce new lines
    • Does not affect calculations
  • bundle_group_id links both structures

If bundles.quantity = N, it means:

  • The customer purchased N complete bundles
  • All corresponding units are already reflected in line_items
  • No additional multiplication or recalculation is required

Order source attribution​

Orders now include attribution data to indicate the origin of the customer journey.

source field​

A new optional field source is available in the order resource:

{
"source": ["organic"]
}

This field represents the list of attributed sources associated with the order, ordered chronologically.


Supported values​

The source field uses predefined values:

  • not_defined — Source is not available
  • organic — Unpaid search traffic
  • sem — Paid search campaigns
  • promotion — Merchant-created promotional campaigns
  • social — Supported social media sources
  • backoffice — Manually created orders
  • seestocks — Traffic from SeeStocks CSS
  • automarketing — Automated marketing flows (e.g. abandoned cart)

Availability​

All fields are available in:

  • GET /api/v1/orders/
  • GET /api/v1/orders/{id}/

Summary​

This release improves order-related integrations by:

  • Enabling reconstruction of commercial bundles through lightweight metadata
  • Providing clear attribution of order origin

These changes are designed to support real-world integration scenarios while preserving the existing data model.


What's next​

Upcoming improvements will continue to focus on:

  • Expanding API coverage to support broader ERP and integration use cases
  • Continuing to evolve the API as a robust integration platform
  • Customer endpoint.

👉 API Overview