Offers
What is an Offer?
An Offer represents a merchant's specific listing of a product in Violet's catalog. It contains the merchant's pricing, availability, descriptions, media, and purchasable variations (SKUs). When browsing products from a merchant, you're viewing their Offers.
Data Model Hierarchy
Merchant
└── Offer (merchant's product listing)
└── SKU (specific purchasable variant)Merchant: The seller providing products
Offer: A merchant's listing with their pricing, descriptions, and media
SKU: Individual purchasable variants within the Offer (e.g., size/color combinations)
A single Merchant can have many Offers, and each Offer can contain multiple SKUs.
Key Offer Properties
id
integer
Violet's unique Offer identifier
external_id
string
The merchant's own product identifier
merchant_id
integer
The merchant selling this Offer
name
string
Product name
description
string
Plain text description
html_description
string
HTML-formatted description
min_price
integer
Lowest SKU price in minor units (cents)
max_price
integer
Highest SKU price in minor units
currency
string
ISO 4217 currency code
available
boolean
Whether any SKUs are in stock
visible
boolean
Whether the Offer is visible to customers
source
enum
Origin platform (e.g., SHOPIFY, AMAZON, OTHER)
seller
string
Seller name
vendor
string
Product vendor/brand
external_url
string
Link to the product on the merchant's site
Offer Status
Offers have two independent status dimensions that control their lifecycle:
Status
The operational state of the Offer:
AVAILABLE
Active and operational
DISABLED
Temporarily disabled by merchant or system
ARCHIVED
Removed from active catalog
FOR_DELETION
Marked for permanent deletion
Publishing Status
Controls visibility to apps and webhook delivery:
PUBLISHED
Visible to subscribed apps, triggers webhooks
NOT_PUBLISHED
Hidden from apps, no webhook notifications
An Offer must be both available=true AND publishing_status=PUBLISHED to appear in app catalogs.
Variants and SKUs
Offers support product variants through two related concepts:
Variants
Define the available options for a product:
SKUs
Represent specific purchasable combinations of variants, each with its own inventory and pricing:
Media and Albums
Offers include media organized into albums:
Albums: Collections of images and videos for the Offer
Primary Image: The main product image displayed in listings
SKU-level Media: Individual SKUs can have their own images
Pricing
Prices are stored in minor units (cents for USD)
min_priceandmax_pricerepresent the price range across all SKUsIndividual SKU prices are available on each SKU object
Currency conversion is available by passing your desired currency
Common Use Cases
Retrieving an Offer
Use GET /catalog/offers/{offer_id} to fetch complete Offer details including SKUs, variants, and media.
Listing Merchant Offers
Use GET /catalog/offers/merchants/{merchant_id} to retrieve paginated Offers from a specific merchant.
Searching Offers
Use POST /catalog/offers/search to search across Offers with filters for price, availability, category, and more.
Webhooks
When Offers change, webhooks notify subscribed apps:
OFFER_ADDED
Offer becomes published
OFFER_UPDATED
Published Offer is modified
OFFER_REMOVED
Offer is unpublished
OFFER_DELETED
Offer is permanently deleted
Webhooks only fire for Offers with publishing_status=PUBLISHED.
Relationship to Orders
When customers add items to a cart, they're adding specific SKUs from an Offer. The Offer provides the product context (name, description, media) while the SKU determines the exact variant, price, and inventory.
Changes to Offer availability or SKU inventory are automatically communicated to active carts and orders containing those items.
Available endpoints:
Last updated
Was this helpful?