Extensions
Zopping ships a large feature set as extensions — optional capabilities a retailer turns on per organization. An extension being off is the most common reason an endpoint, field, or behaviour appears "missing." Check what's enabled before assuming something isn't supported — or before building it yourself.
Browse every extension and what it unlocks in the Extensions catalog, and manage them via the Extensions API. This page explains the concept and how to check what's on.
Why this matters to you
- The API surface and behaviour vary by enabled extensions. For example,
store-scoped reads behave differently with
MultiStoreSupporton; products expose multiple variants only withMultiVariantSupport; custom metadata is only honoured withEntityMetaData. - Many things you might be tempted to build externally already exist as an extension (returns, disputes, bundles, customer credit, pricing tiers, loyalty). Check here first.
The two calls you need
1. What's enabled for this organization — the single most useful call. Branch your integration on this set, exactly as Zopping's own apps do:
curl "https://zopping.com/api/account-service/extension?organizationId=<org-id>&status=ENABLED" \
-H "Authorization: Bearer $ZOPPING_TOKEN"
2. The full catalog, including not-enabled — every extension with its per-org status, so you can see what could be turned on and prompt the retailer to enable it:
curl "https://zopping.com/api/account-service/extension?organizationId=<org-id>" \
-H "Authorization: Bearer $ZOPPING_TOKEN"
Each extension carries metadata worth reading: slug (the key you branch on),
description, pricing, isStoreConfigurable, prerequisites, and
incompatibleExtensions (ones that can't be enabled together). Narrow to one with
&slug=MultiStoreSupport, or fetch a single record at
/api/account-service/extension/{id}.
Extensions you'll likely care about
| Extension | What it unlocks |
|---|---|
MultiStoreSupport | Multiple stores; store-scoped price/stock/orders |
MultiVariantSupport | Products with multiple variants |
PricingTier | Quantity/segment pricing tiers |
EntityMetaData | Custom fields / metaData on entities |
ProductBundles | Product bundles |
ProductRestrictions | Age/region restrictions on products |
CustomerTags / CustomerGroups | Segmentation |
B2BManagement | B2B order flows |
DeliverySlots / DeliveryAreaSupport | Slots & serviceability |
OrderReturns / OrderDisputes | Returns & dispute flows |
OnlinePaymentSupport | Online payment capture |
CustomerCredit | Store credit / pay-later |
MultiLingualSupport | Localized catalog (Accept-Language) |
BulkOrderSupport / PreOrderSupport | Bulk and pre-orders |
…and more (multi-brand, marketing/campaigns, in-store processing, picking, etc.). The list above is the integration-relevant subset; query the endpoint for the authoritative set on a given org.
Working with extensions
- Read once at startup, cache, and branch behaviour.
- Degrade gracefully — if an extension your feature needs is off, surface a clear message asking the retailer to enable it rather than failing obscurely.
- Don't hard-code assumptions about multi-store or variants; check the flags.
Next: Custom fields & metaData · Core concepts.