For the complete documentation index, see llms.txt. This page is also available as Markdown.

Shoptet

Overview of Violet's Shoptet integration for channel developers

Shoptet is a Czech ecommerce platform popular in Central and Eastern Europe. Violet supports two tiers of Shoptet merchants — Standard and Premium — and the integration capabilities differ significantly between them.

Tier differences: Standard tier merchants have no API access. Their catalog is synced via a product feed and order submission is not available. Premium tier merchants connect via API and support the full Violet feature set including real-time webhooks, direct order submission, and live cart calculation. Channels must be prepared to handle both merchant types if they intend to support Shoptet broadly.

Standard Tier

Standard tier Shoptet merchants do not have access to the Shoptet REST API. Violet connects them using a store URL and a Google Product Feed URL.

What is supported:

  • Catalog sync via Google Product Feed (ingested at connection time and on a scheduled basis)

What is not supported:

  • Real-time webhook events (no API, no webhooks)

  • Direct order submission

  • Live cart calculation or shipping rate retrieval

  • Credential validation (no API to test against)

Connection inputs required:

Field
Description

Store URL

The merchant's Shoptet storefront URL

Feed URL

URL to the merchant's Google Product Feed XML

The feed is registered with Violet at onboarding and catalog ingestion begins immediately.


Premium Tier

Premium tier merchants have Shoptet REST API access and support the full integration. Two auth flows are available depending on how your app is configured.

Flow A — Marketplace OAuth Addon

Used when your Violet app is registered as a Shoptet marketplace addon. The merchant installs the addon from the Shoptet app store, which initiates an OAuth authorization flow. Violet exchanges the authorization code for a long-lived OAuth access token. Short-lived API Access Tokens (~30 minutes) are minted on demand from this long-lived token and cached internally — no manual token refresh is required.

App credentials required: Your Violet app must have Shoptet OAuth credentials registered with Violet before merchants can connect via this flow. Contact Violet support to configure these.

Flow B — Private API Token

Used when merchants connect outside the Shoptet marketplace. The merchant generates a Private API Token in their Shoptet admin panel and provides it during Violet Connect onboarding. Credentials are validated against the Shoptet eshop endpoint at connection time.

Field
Description

Store URL

The merchant's Shoptet storefront URL

Private API Token

Long-lived token generated in the Shoptet admin


Webhooks (Premium only)

Violet registers webhooks automatically for Premium tier merchants. The following events are subscribed:

Event
Trigger

product:create

Product created

product:update

Product updated

product:delete

Product deleted

order:create

Order placed

order:update

Order status changed

Shoptet webhook payloads are minimal (eshop ID, event type, timestamp). Violet fetches the full resource from the API on receipt.

Direct Order Submission (Premium only)

Orders are submitted directly to the Shoptet API. VAT rates are fetched per product variant at order time to ensure line items carry the correct tax percentage. Order cancellation resolves the merchant's configured cancellation status by name (matching keywords like storno or cancel).

Discount codes are not supported for order submission — Shoptet's API does not validate codes pre-order and there is no reliable post-creation correlation. Code discounts are rejected up front before payment is captured.

Cart Calculation (Premium only)

Shoptet has no cart estimation endpoint. Violet computes cart totals locally:

  • Subtotal: Sum of SKU prices × quantities (prices are stored gross/VAT-inclusive).

  • Tax: Estimated by fetching the VAT rate per product variant and extracting the embedded VAT from each gross line item. If a variant lookup fails, the tax total falls back to 0 while gross totals remain intact.

  • Shipping: Sourced from the merchant's configured fallback shipping methods in Violet, filtered by the customer's country. The live Shoptet shipping endpoint is not used because it does not return reliable per-cart pricing.

  • Discounts: Custom (fixed/percentage) discounts are supported. Discount codes are not supported at cart calculation time.

Products (Premium only)

  • Products are identified by GUID (not a numeric ID). Variants also have a GUID plus a code field used as the SKU identifier.

  • Prices are stored per-variant with an includingVat flag indicating whether the stored price is gross or net. Violet normalizes all prices to gross before storing in the catalog.

  • Promotional pricing (actionPrice) is supported — Violet uses the action price as the sale price when the current date falls within the validity window.

  • Images, variant parameters, and per-warehouse stock are returned only when explicitly requested via Shoptet's include parameter.

Notable Behavior

  • Standard vs Premium: Channels must expect two distinct merchant types. Standard tier merchants will have catalog data but cannot receive orders through Violet's standard checkout flow.

  • No discount codes: Shoptet does not support discount code validation at order creation time. Synced promo codes are marked as not supported for all Shoptet merchants.

  • VAT-inclusive pricing: Shoptet is primarily used by European merchants. All prices are treated as VAT-inclusive and tax is extracted from gross line totals rather than added on top.

  • Rate limiting: Shoptet enforces a leaky-bucket rate limit (50 connections per IP, 3 per token) with 5-second write locks.

Last updated

Was this helpful?