Wix Marketing Collections

This article explains the fixed permissions and field structure for the Wix Marketing Coupons collection.

Note: This collection is a system collection, so you can't change its permissions in the CMS.

Tip: Before continuing, make sure you've read Working with Wix App Collections.

Coupons

This section explains the permissions and fields available in the Coupons collection.

To use the Coupons collection in code, refer to it as Marketing/Coupons.

Permissions

The Coupons collection has the following permissions:

  • read: ADMIN
  • create: None
  • update: None
  • remove: None

Fields

This section describes each field in this collection and its properties.

Note: This app collection contains read-only fields that cannot be managed from the collection. You can update the fields from the relevant app in your site’s dashboard.

The fields are listed in the same order as the collection's default order in the CMS.

_id

Description: The ID of the coupon. This is a system field and is hidden by default.

Type: Text

Can connect to data: Yes

Can use in dynamic page URL: Yes

Sortable: Yes

Filter Support: eq, ne, hasSome, contains, startsWith

Read-only: Yes

name

Description: Name of the coupon.

Type: Text

Can connect to data: Yes

Can use in dynamic page URL: No

Sortable: Yes

Filter Support: eq, ne, hasSome, contains, startsWith

Read-only: Yes

code

Description: Coupon code.

Type: Text

Can connect to data: Yes

Can use in dynamic page URL: No

Sortable: Yes

Filter Support: eq, ne, hasSome, contains, startsWith

Read-only: Yes

startTime

Description: Start date and time of the coupon.

Type: Date and Time

Can connect to data: Yes

Can use in dynamic page URL: No

Sortable: Yes

Filter Support: eq, ne, hasSome, lt, lte, gt, gte

Read-only: Yes

expirationTime

Description: End date and time of the coupon.

Type: Date and Time

Can connect to data: Yes

Can use in dynamic page URL: No

Sortable: Yes

Filter Support: eq, ne, hasSome, lt, lte, gt, gte

Read-only: Yes

usageLimit

Description: Maximum number of times a coupon can be used.

Type: Number

Can connect to data: Yes

Can use in dynamic page URL: No

Sortable: Yes

Filter Support: eq, ne, hasSome, lt, lte, gt, gte

Read-only: Yes

limitPerCustomer

Description: Maximum number of times the coupon can be used per customer.

Type: Number

Can connect to data: Yes

Can use in dynamic page URL: No

Sortable: Yes

Filter Support: eq, ne, hasSome, lt, lte, gt, gte

Read-only: Yes

appliesToSubscriptions

Description:

Type: Boolean

Can connect to data: Yes

Can use in dynamic page URL:

Sortable: No

Filter Support: Yes

Read-only: Yes

limitedToOneItem

Description: Indicates whether the coupon is limited to 1 discount per order. If true and a customer buys multiple items that the coupon applies to, only the lowest priced item is discounted.

Type: Boolean

Can connect to data:

Can use in dynamic page URL: No

Sortable: No

Filter Support: eq, ne

Read-only: Yes

Note: The limitedToOneItem field only applies to coupons with moneyOffAmount or percentOffRate type.

active

Description: Indicates whether the coupon is currently active.

Type: Boolean

Can connect to data: Yes

Can use in dynamic page URL: No

Sortable: No

Filter Support: eq, ne

Read-only: Yes

minimumSubtotal

Description: The coupon can be used when the order subtotal is over this amount.

Type: Number

Can connect to data: Yes

Can use in dynamic page URL: No

Sortable: Yes

Filter Support: eq, ne, hasSome, lt, lte, gt, gte

Read-only: Yes

scope

Description: Scope for the coupon as defined in a JSON object.

Type: JSON

Can connect to data: No

Can use in dynamic page URL: No

Sortable: No

Filter Support: No

Read-only: Yes

Copy

The following table lists the available options for the namespace and group.name fields:

NamespaceGroup
storesproduct
collection
bookingsservice
eventsevent
ticket

You can define the scope for a coupon as an entire namespace, a group within a namespace, or an item within a group. See the examples below.

Example: Scope for the coupon is defined as all products sold in your store.

Copy

Example: Scope for the coupon is defined as a specific product sold in your store.

Copy

Since the events namespace has both ticket and event groups, and you can't apply a single coupon to all tickets and events at the same time, you can't define the scope as just the namespace events. For events you need to define the scope as a group or a specific item in a group.

Example: Scope for the coupon is defined as all tickets for events.

Copy

Filtering with Scope

You can filter using one of 3 scope fields:

  • scope.namespace
  • scope.group.name
  • scope.group.entityId

Filtering Example: Query the Coupons collection for coupons within the Stores namespace.

Filtering Example: Query the Coupons collection for coupons applied to a specific product.

type

Description: The type of coupon (see note for available options).

Type: Text

Can connect to data: Yes

Can use in dynamic page URL: No

Sortable: No

Filter Support: eq, ne, hasSome

Read-only: Yes

Note: The type field has one of the following values:

  • BuyXGetY: Free products when making a purchase.
  • FixedPrice: Specific sale price.
  • FreeShipping: Free shipping.
  • MoneyOff: Fixed price discount.
  • PercentOff: Discount as a percentage.

buyXGetY

Description: A JSON object representing X and Y in the following scenario: if a visitor purchases X number of products, they receive Y number of products for free.

Type: JSON

Can connect to data: No

Can use in dynamic page URL: No

Sortable: No

Filter Support: No

Read-only: Yes

Copy

fixedPriceAmount

Description: A specific sale price.

Type: Number

Can connect to data: Yes

Can use in dynamic page URL: No

Sortable: No

Filter Support: No

Read-only: Yes

freeShipping

Description: Indicates whether shipping is free.

Type: Boolean

Can connect to data: Yes

Can use in dynamic page URL: No

Sortable: No

Filter Support: No

Read-only: Yes

moneyOffAmount

Description: A fixed amount subtracted from the original price.

Type: Number

Can connect to data: Yes

Can use in dynamic page URL: No

Sortable: No

Filter Support: No

Read-only: Yes

percentOffRate

Description: A percentage subtracted from the original price.

Type: Number

Can connect to data: Yes

Can use in dynamic page URL: No

Sortable: No

Filter Support: No

Read-only: Yes

_dateCreated

Description: The date the coupon was created.

Type: Date and Time

Can connect to data: Yes

Can use in dynamic page URL: No

Sortable: Yes

Filter Support: eq, ne, hasSome, lt, lte, gt, gte

Read-only: Yes

numberOfUsages

Description: The total number of times a coupon was used by all customers.

Type: Number

Can connect to data: Yes

Can use in dynamic page URL: No

Sortable: Yes

Filter Support: eq, ne, hasSome, lt, lte, gt, gte

Read-only: Yes

expired

Description: Indicates whether the expiration time passed and the coupon is expired.

Type: Boolean

Can connect to data: Yes

Can use in dynamic page URL: No

Sortable: No

Filter Support: eq, ne

Read-only: Yes

displayData

Description: Display information for the item the coupon is applicable for defined as a JSON object (e.g. a Stores product or a Bookings service).

Type: JSON

Can connect to data: No

Can use in dynamic page URL: No

Sortable: No

Filter Support: Yes

Read-only: Yes

Note: The displayData field is only relevant when the coupon is applied to a specific item. When the coupon is applied to all items in a group (for example, all products), displayData is empty. 

Copy

appId

Description: The ID of the 3rd-party app that created the coupon. Empty if created by the site owner.

Type: Text

Can connect to data: No

Can use in dynamic page URL: No

Sortable: Yes

Filter Support: Yes

Read-only: Yes

Did this help?