Skip to main content

Voucher Object

Vouchers allow giving discounts to particular customers on categories, collections or specific products. They can be used during checkout by providing valid voucher codes.

type Voucher implements Node, ObjectWithMetadata {
id: ID!
privateMetadata: [MetadataItem!]!
privateMetafield(
key: String!
): String
privateMetafields(
keys: [String!]
): Metadata
metadata: [MetadataItem!]!
metafield(
key: String!
): String
metafields(
keys: [String!]
): Metadata
name: String
codes(
before: String
after: String
first: Int
last: Int
): VoucherCodeCountableConnection
code: String
usageLimit: Int
used: Int!
startDate: DateTime!
endDate: DateTime
applyOncePerOrder: Boolean!
applyOncePerCustomer: Boolean!
singleUse: Boolean!
onlyForStaff: Boolean!
minCheckoutItemsQuantity: Int
categories(
before: String
after: String
first: Int
last: Int
): CategoryCountableConnection
collections(
before: String
after: String
first: Int
last: Int
): CollectionCountableConnection
products(
before: String
after: String
first: Int
last: Int
): ProductCountableConnection
variants(
before: String
after: String
first: Int
last: Int
): ProductVariantCountableConnection
countries: [CountryDisplay!]
translation(
languageCode: LanguageCodeEnum!
): VoucherTranslation
discountValueType: DiscountValueTypeEnum!
discountValue: Float
currency: String
minSpent: Money
type: VoucherTypeEnum!
channelListings: [VoucherChannelListing!]
}

Fields​

id ● ID!​

The ID of the voucher.

privateMetadata ● [MetadataItem!]!​

List of private metadata items. Requires staff permissions to access.

privateMetafield ● String​

A single key from private metadata. Requires staff permissions to access.

Tip: Use GraphQL aliases to fetch multiple keys.

key ● String!​

privateMetafields ● Metadata​

Private metadata. Requires staff permissions to access. Use keys to control which fields you want to include. The default is to include everything.

keys ● [String!]​

metadata ● [MetadataItem!]!​

List of public metadata items. Can be accessed without permissions.

metafield ● String​

A single key from public metadata.

Tip: Use GraphQL aliases to fetch multiple keys.

key ● String!​

metafields ● Metadata​

Public metadata. Use keys to control which fields you want to include. The default is to include everything.

keys ● [String!]​

name ● String​

The name of the voucher.

codes ● VoucherCodeCountableConnection​

List of codes available for this voucher.

Added in Saleor 3.18
before ● String​

Return the elements in the list that come before the specified cursor.

after ● String​

Return the elements in the list that come after the specified cursor.

first ● Int​

Retrieve the first n elements from the list. Note that the system only allows fetching a maximum of 100 objects in a single query.

last ● Int​

Retrieve the last n elements from the list. Note that the system only allows fetching a maximum of 100 objects in a single query.

code ● String​

The code of the voucher.

usageLimit ● Int​

The number of times a voucher can be used.

used ● Int!​

Usage count of the voucher.

startDate ● DateTime!​

The start date and time of voucher.

endDate ● DateTime​

The end date and time of voucher.

applyOncePerOrder ● Boolean!​

Determine if the voucher should be applied once per order. If set to True, the voucher is applied to a single cheapest eligible product in checkout.

applyOncePerCustomer ● Boolean!​

Determine if the voucher usage should be limited to one use per customer.

singleUse ● Boolean!​

Determine if the voucher codes can be used once or multiple times.

Added in Saleor 3.18
This API is currently in Feature Preview and can be subject to changes at later point.

onlyForStaff ● Boolean!​

Determine if the voucher is available only for staff members.

minCheckoutItemsQuantity ● Int​

Determine minimum quantity of items for checkout.

categories ● CategoryCountableConnection​

List of categories this voucher applies to.

before ● String​

Return the elements in the list that come before the specified cursor.

after ● String​

Return the elements in the list that come after the specified cursor.

first ● Int​

Retrieve the first n elements from the list. Note that the system only allows fetching a maximum of 100 objects in a single query.

last ● Int​

Retrieve the last n elements from the list. Note that the system only allows fetching a maximum of 100 objects in a single query.

collections ● CollectionCountableConnection​

List of collections this voucher applies to.

Requires the MANAGE_DISCOUNTSpermission.
before ● String​

Return the elements in the list that come before the specified cursor.

after ● String​

Return the elements in the list that come after the specified cursor.

first ● Int​

Retrieve the first n elements from the list. Note that the system only allows fetching a maximum of 100 objects in a single query.

last ● Int​

Retrieve the last n elements from the list. Note that the system only allows fetching a maximum of 100 objects in a single query.

products ● ProductCountableConnection​

List of products this voucher applies to.

Requires the MANAGE_DISCOUNTSpermission.
before ● String​

Return the elements in the list that come before the specified cursor.

after ● String​

Return the elements in the list that come after the specified cursor.

first ● Int​

Retrieve the first n elements from the list. Note that the system only allows fetching a maximum of 100 objects in a single query.

last ● Int​

Retrieve the last n elements from the list. Note that the system only allows fetching a maximum of 100 objects in a single query.

variants ● ProductVariantCountableConnection​

List of product variants this voucher applies to.

Requires the MANAGE_DISCOUNTSpermission.
before ● String​

Return the elements in the list that come before the specified cursor.

after ● String​

Return the elements in the list that come after the specified cursor.

first ● Int​

Retrieve the first n elements from the list. Note that the system only allows fetching a maximum of 100 objects in a single query.

last ● Int​

Retrieve the last n elements from the list. Note that the system only allows fetching a maximum of 100 objects in a single query.

countries ● [CountryDisplay!]​

List of countries available for the shipping voucher.

translation ● VoucherTranslation​

Returns translated voucher fields for the given language code.

languageCode ● LanguageCodeEnum!​

A language code to return the translation for voucher.

discountValueType ● DiscountValueTypeEnum!​

Determines a type of discount for voucher - value or percentage

discountValue ● Float​

Voucher value.

currency ● String​

Currency code for voucher.

minSpent ● Money​

Minimum order value to apply voucher.

type ● VoucherTypeEnum!​

Determines a type of voucher.

channelListings ● [VoucherChannelListing!]​

List of availability in channels for the voucher.

Requires the MANAGE_DISCOUNTSpermission.

Interfaces​

Node​

An object with an ID

ObjectWithMetadata​

Returned By​

voucher query

Member Of​

Checkout object ● Order object ● VoucherAddCatalogues object ● VoucherChannelListingUpdate object ● VoucherCountableEdge object ● VoucherCreate object ● VoucherCreated object ● VoucherDelete object ● VoucherDeleted object ● VoucherMetadataUpdated object ● VoucherRemoveCatalogues object ● VoucherTranslatableContent object ● VoucherTranslate object ● VoucherUpdate object ● VoucherUpdated object