8 July 2025
OrdersSecurity and privacyMessages/SubscriptionsLimits
You can now enable automated repeat purchases with the new Recurring Orders feature. This allows customers to schedule reorders for individual items at intervals such as daily, weekly, or monthly, while Merchants can set custom prices for each interval. Recurring Orders can be paused, skipped, modified, and canceled at any time to adapt to changing customer needs.
In addition, Customers can combine one-time purchases and subscription items in a single checkout, creating a seamless and flexible shopping experience. This feature aims to reduce manual workload for Merchants while building customer loyalty through convenience and consistency.
This feature is in public beta.
For more information, see the Recurring Orders overview.
Changes:
- [API] Added the Recurring Orders API and Recurrence Policies API.
- [API] Added
view_recurring_orders:{projectKey}andmanage_recurring_orders:{projectKey}OAuth scopes. - [API] Added Recurring Orders Messages.
- [API] Added the following to the Order Messages: OrderCreatedFromRecurringOrder.
- [API] Added
priceRecurrencePolicyprice selection parameter. - [API] Added
recurrencePolicyfield to the Price and PriceDraft types. - [API] Added
recurrence-policyandrecurring-orderenums to the ReferenceTypeId type. - [API] Updated the following in the Carts API:
- Added
RecurringOrderenum to the CartOrigin type. - Added
recurrenceInfofield to the LineItem, LineItemDraft, CustomLineItem, and CustomLineItemDraft types. - Added
recurrenceInfofield to the Add LineItem and Add CustomLineItem update action. - Added the Set LineItemRecurrenceInfo and Set CustomLineItemRecurrenceInfo update actions.
- Added
- [API] Updated the following in the My Carts API:
- Added
recurrenceInfofield to the Add LineItem update action in My Carts API. - Added the Set LineItemRecurrenceInfo and Set CustomLineItemRecurrenceInfo update actions.
- Added
- [API] Added
recurrenceInfofield to the Add LineItem and Add CustomLineItem update actions in Orders Edits API. - [API] Added
recurringOrderfield to the Order type in Orders API. - [API] Added
recurrencePricesfield to the ProductVariant type in Products API. - [API] Added
recurrencePolicyfield to the StandalonePrice and StandalonePriceDraft types in Standalone Prices API. - [API] Added
RecurringOrderStateenum to the StateTypeEnum type in States API. - [GraphQL API] Added the
recurringOrder,recurringOrders,recurrencePolicy, andrecurrencePoliciesfields to theQuerytype. - [GraphQL API] Added the
createRecurringOrder,updateRecurringOrder,createRecurrencePolicy, andupdateRecurrencePolicyfields to theMutationtype. - [GraphQL API] Added the following types to the GraphQL schema:
Counter,CounterInputDraft,CustomLineItemRecurrenceInfo,CustomLineItemRecurrenceInfoDraft,CustomLineItemRecurrenceInfoInputDraft,DayOfMonthSchedule,DayOfMonthScheduleInput,IntervalUnit,LineItemRecurrenceInfo,LineItemRecurrenceInfoDraft,LineItemRecurrenceInfoInputDraft,OrderCreatedFromRecurringOrder,PriceSelectionMode,RecurrencePolicy,RecurrencePolicyDraft,RecurrencePolicyQueryResult,RecurrencePolicyRef,RecurrencePolicyReferenceIdentifier,RecurrencePolicySchedule,RecurrencePolicyScheduleInput,RecurrencePolicyUpdateAction,RecurringOrder,RecurringOrderActiveInput,RecurringOrderCanceledInput,RecurringOrderCreated,RecurringOrderCustomFieldAdded,RecurringOrderCustomFieldChanged,RecurringOrderCustomFieldRemoved,RecurringOrderCustomTypeRemoved,RecurringOrderCustomTypeSet,RecurringOrderDeleted,RecurringOrderDraft,RecurringOrderExpiredInput,RecurringOrderKeySet,RecurringOrderPausedInput,RecurringOrderQueryResult,RecurringOrderScheduleSet,RecurringOrderStartsAtSet,RecurringOrderState,RecurringOrderStateChanged,RecurringOrderStateDraft,RecurringOrderStateTransition,RecurringOrderUpdateAction,SetCustomLineItemRecurrenceInfo,SetLineItemRecurrenceInfo,SetRecurrencePolicyDescription,SetRecurrencePolicyKey,SetRecurrencePolicyName,SetRecurrencePolicySchedule,SetRecurringOrderCustomField,SetRecurringOrderCustomType,SetRecurringOrderKey,SetRecurringOrderOrderSkipConfiguration,SetRecurringOrderSchedule,SetRecurringOrderStartsAt,SetRecurringOrderState,SkipConfiguration,SkipConfigurationInputDraft,StandardSchedule,StandardScheduleInput,TransitionRecurringOrderState. - [GraphQL API] Added the
allRecurrencePricesfield to theProductVarianttype. - [GraphQL API] Added the
allRecurrencePricesfield to theProductSearchVarianttype. - [GraphQL API] Added the
returnAllPricesByRecurrencePolicyandrecurrencePolicyIdarguments to theProductVariant.pricefield. - [GraphQL API] Added the
returnAllPricesByRecurrencePolicyandrecurrencePolicyIdarguments to theProductSearchVariant.pricefield. - [GraphQL API] Changed the
AddCartCustomLineItem.priceModedefault value fromStandardto none. - [GraphQL API] Changed the
AddStagedOrderCustomLineItem.priceModedefault value fromStandardto none. - [GraphQL API] Added the
recurrencePolicyinput field to theProductPriceDataInputtype. - [GraphQL API] Added the
RecurringOrderenum value to theCartOriginenum. - [GraphQL API] Added the
recurrenceInfofield to theLineItemtype. - [GraphQL API] Added the
recurrenceInfoinput field to theLineItemDrafttype. - [GraphQL API] Added the
recurrenceInfofield to theLineItemDraftOutputtype. - [GraphQL API] Added the
recurrenceInfoinput field to theAddCartLineItemtype. - [GraphQL API] Added the
recurrenceInfoinput field to theMyLineItemDrafttype. - [GraphQL API] Added the
recurrenceInfoinput field to theAddMyCartLineItemtype. - [GraphQL API] Added the
recurrenceInfofield to theCustomLineItemtype. - [GraphQL API] Added the
recurrenceInfoinput field to theCustomLineItemDrafttype. - [GraphQL API] Added the
recurrenceInfofield to theCustomLineItemDraftOutputtype. - [GraphQL API] Added the
recurrenceInfoinput field to theAddCartCustomLineItemtype. - [GraphQL API] Added the
setLineItemRecurrenceInfoandsetCustomLineItemRecurrenceInfoinput fields to theCartUpdateActiontype. - [GraphQL API] Added the
setLineItemRecurrenceInfoandsetCustomLineItemRecurrenceInfoinput fields to theMyCartUpdateActiontype. - [GraphQL API] Added the
recurringOrderandrecurringOrderReffields to theOrdertype. - [GraphQL API] Added the
recurrenceInfoinput field to theAddStagedOrderLineItemtype. - [GraphQL API] Added the
recurrenceInfoinput field to theAddStagedOrderCustomLineItemtype. - [GraphQL API] Added the
RecurringOrderStateenum value to theStateTypeenum. - [GraphQL API] Added the
recurrencePolicyandrecurrencePolicyReffields to theProductPricetype. - [GraphQL API] Added the
recurrencePolicyandrecurrencePolicyReffields to theStandalonePricetype. - [GraphQL API] Added the
recurrencePolicyinput field to theCreateStandalonePricetype.
The following changes were introduced in terms of GraphQL SDL:
extend type LineItemDraftOutput {
"BETA: This feature can be subject to change and should be used carefully in production. https://docs.commercetools.com/api/contract#public-beta"
recurrenceInfo: LineItemRecurrenceInfoDraft
}
extend type ProductVariant {
"Returns all recurrence prices based on the price selection rules."
allRecurrencePrices(currency: Currency!, country: Country, customerGroupId: String, channelId: String, date: DateTime, recurrencePolicyId: String, returnAllPricesByRecurrencePolicy: Boolean): [ProductPrice!]
}
extend type CustomLineItemDraftOutput {
"BETA: This feature can be subject to change and should be used carefully in production. https://docs.commercetools.com/api/contract#public-beta"
recurrenceInfo: CustomLineItemRecurrenceInfoDraft
}
extend type ProductPrice {
"BETA: This feature can be subject to change and should be used carefully in production. https://docs.commercetools.com/api/contract#public-beta"
recurrencePolicy: RecurrencePolicy
"BETA: This feature can be subject to change and should be used carefully in production. https://docs.commercetools.com/api/contract#public-beta"
recurrencePolicyRef: Reference
}
extend type ProductSearchVariant {
"Returns all recurrence prices based on the price selection rules."
allRecurrencePrices(currency: Currency!, country: Country, customerGroupId: String, channelId: String, date: DateTime, recurrencePolicyId: String, returnAllPricesByRecurrencePolicy: Boolean): [ProductPriceSearch!]
}
extend type Query {
"""
Recurrence policies are managed and queried through the Recurrence Policy API
and associated to a Price
"""
recurrencePolicies(where: String, sort: [String!], limit: Int, offset: Int): RecurrencePolicyQueryResult!
"BETA: This feature can be subject to change and should be used carefully in production. https://docs.commercetools.com/api/contract#public-beta"
recurrencePolicy(
"Queries with specified ID"
id: String,
"Queries with specified key"
key: String): RecurrencePolicy
recurringOrder(
"Queries with specified ID"
id: String,
"Queries with specified key"
key: String): RecurringOrder
recurringOrders(where: String, sort: [String!], limit: Int, offset: Int): RecurringOrderQueryResult!
}
extend type CustomLineItem {
"BETA: This feature can be subject to change and should be used carefully in production. https://docs.commercetools.com/api/contract#public-beta"
recurrenceInfo: CustomLineItemRecurrenceInfo
}
extend type Mutation {
"BETA: This feature can be subject to change and should be used carefully in production. https://docs.commercetools.com/api/contract#public-beta"
createRecurrencePolicy(draft: RecurrencePolicyDraft!): RecurrencePolicy
"BETA: This feature can be subject to change and should be used carefully in production. https://docs.commercetools.com/api/contract#public-beta"
createRecurringOrder(draft: RecurringOrderDraft!): RecurringOrder
"BETA: This feature can be subject to change and should be used carefully in production. https://docs.commercetools.com/api/contract#public-beta"
updateRecurrencePolicy(version: Long!, actions: [RecurrencePolicyUpdateAction!]!,
"Queries with specified ID"
id: String,
"Queries with specified key"
key: String): RecurrencePolicy
"BETA: This feature can be subject to change and should be used carefully in production. https://docs.commercetools.com/api/contract#public-beta"
updateRecurringOrder(version: Long!, actions: [RecurringOrderUpdateAction!]!,
"Queries with specified ID"
id: String,
"Queries with specified key"
key: String): RecurringOrder
}
extend type Order {
"BETA: This feature can be subject to change and should be used carefully in production. https://docs.commercetools.com/api/contract#public-beta"
recurringOrder: RecurringOrder
"BETA: This feature can be subject to change and should be used carefully in production. https://docs.commercetools.com/api/contract#public-beta"
recurringOrderRef: Reference
}
extend type LineItem {
"BETA: This feature can be subject to change and should be used carefully in production. https://docs.commercetools.com/api/contract#public-beta"
recurrenceInfo: LineItemRecurrenceInfo
}
extend type StandalonePrice {
"BETA: This feature can be subject to change and should be used carefully in production. https://docs.commercetools.com/api/contract#public-beta"
recurrencePolicy: RecurrencePolicy
"BETA: This feature can be subject to change and should be used carefully in production. https://docs.commercetools.com/api/contract#public-beta"
recurrencePolicyRef: Reference
}
extend input AddMyCartLineItem {
"BETA: This feature can be subject to change and should be used carefully in production. https://docs.commercetools.com/api/contract#public-beta"
recurrenceInfo: LineItemRecurrenceInfoInputDraft
}
extend input AddStagedOrderLineItem {
"BETA: This feature can be subject to change and should be used carefully in production. https://docs.commercetools.com/api/contract#public-beta"
recurrenceInfo: LineItemRecurrenceInfoInputDraft
}
extend input MyLineItemDraft {
"BETA: This feature can be subject to change and should be used carefully in production. https://docs.commercetools.com/api/contract#public-beta"
recurrenceInfo: LineItemRecurrenceInfoInputDraft
}
extend input CreateStandalonePrice {
recurrencePolicy: ResourceIdentifierInput
}
extend input CartUpdateAction {
"BETA: This feature can be subject to change and should be used carefully in production. https://docs.commercetools.com/api/contract#public-beta"
setCustomLineItemRecurrenceInfo: SetCustomLineItemRecurrenceInfo
"BETA: This feature can be subject to change and should be used carefully in production. https://docs.commercetools.com/api/contract#public-beta"
setLineItemRecurrenceInfo: SetLineItemRecurrenceInfo
}
extend input LineItemDraft {
"BETA: This feature can be subject to change and should be used carefully in production. https://docs.commercetools.com/api/contract#public-beta"
recurrenceInfo: LineItemRecurrenceInfoInputDraft
}
extend input AddCartLineItem {
"BETA: This feature can be subject to change and should be used carefully in production. https://docs.commercetools.com/api/contract#public-beta"
recurrenceInfo: LineItemRecurrenceInfoInputDraft
}
extend input AddCartCustomLineItem {
"BETA: This feature can be subject to change and should be used carefully in production. https://docs.commercetools.com/api/contract#public-beta"
recurrenceInfo: CustomLineItemRecurrenceInfoInputDraft
}
extend input AddStagedOrderCustomLineItem {
"BETA: This feature can be subject to change and should be used carefully in production. https://docs.commercetools.com/api/contract#public-beta"
recurrenceInfo: CustomLineItemRecurrenceInfoInputDraft
}
extend input MyCartUpdateAction {
"BETA: This feature can be subject to change and should be used carefully in production. https://docs.commercetools.com/api/contract#public-beta"
setCustomLineItemRecurrenceInfo: SetCustomLineItemRecurrenceInfo
"BETA: This feature can be subject to change and should be used carefully in production. https://docs.commercetools.com/api/contract#public-beta"
setLineItemRecurrenceInfo: SetLineItemRecurrenceInfo
}
extend input CustomLineItemDraft {
"BETA: This feature can be subject to change and should be used carefully in production. https://docs.commercetools.com/api/contract#public-beta"
recurrenceInfo: CustomLineItemRecurrenceInfoInputDraft
}
extend enum CartOrigin {
"The cart was created by the merchant as a recurring order."
RecurringOrder
}
extend enum StateType {
RecurringOrderState
}
type Counter implements SkipConfiguration {
totalToSkip: Int!
skipped: Int!
lastSkippedAt: DateTime
type: String!
}
input CounterInputDraft {
totalToSkip: Int!
}
"BETA: This feature can be subject to change and should be used carefully in production. https://docs.commercetools.com/api/contract#public-beta"
type CustomLineItemRecurrenceInfo {
recurrencePolicy: RecurrencePolicy
recurrencePolicyRef: RecurrencePolicyRef!
expiresAt: DateTime
}
"BETA: This feature can be subject to change and should be used carefully in production. https://docs.commercetools.com/api/contract#public-beta"
type CustomLineItemRecurrenceInfoDraft {
recurrencePolicyRef: RecurrencePolicyReferenceIdentifier
expiresAt: DateTime
}
"BETA: This feature can be subject to change and should be used carefully in production. https://docs.commercetools.com/api/contract#public-beta"
input CustomLineItemRecurrenceInfoInputDraft {
recurrencePolicy: ResourceIdentifierInput!
expiresAt: DateTime
}
type DayOfMonthSchedule implements RecurrencePolicySchedule {
day: Int!
type: String!
}
input DayOfMonthScheduleInput {
day: Int!
}
enum IntervalUnit {
Days
Months
Weeks
}
"BETA: This feature can be subject to change and should be used carefully in production. https://docs.commercetools.com/api/contract#public-beta"
type LineItemRecurrenceInfo {
recurrencePolicy: RecurrencePolicy
recurrencePolicyRef: RecurrencePolicyRef!
expiresAt: DateTime
priceSelectionMode: PriceSelectionMode!
}
"BETA: This feature can be subject to change and should be used carefully in production. https://docs.commercetools.com/api/contract#public-beta"
type LineItemRecurrenceInfoDraft {
recurrencePolicyRef: RecurrencePolicyReferenceIdentifier
expiresAt: DateTime
priceSelectionMode: PriceSelectionMode!
}
"BETA: This feature can be subject to change and should be used carefully in production. https://docs.commercetools.com/api/contract#public-beta"
input LineItemRecurrenceInfoInputDraft {
recurrencePolicy: ResourceIdentifierInput!
expiresAt: DateTime
priceSelectionMode: PriceSelectionMode!
}
type OrderCreatedFromRecurringOrder implements MessagePayload & OrderMessagePayload {
order: Order
recurringOrderRef: Reference!
type: String!
}
"BETA: This feature can be subject to change and should be used carefully in production. https://docs.commercetools.com/api/contract#public-beta"
enum PriceSelectionMode {
"Every time a new order is created from this recurring order, we will update to the latest price available"
Dynamic
"The price will stay the same until the recurring order expires or is cancelled"
Fixed
}
"BETA: This feature can be subject to change and should be used carefully in production. https://docs.commercetools.com/api/contract#public-beta"
type RecurrencePolicy implements Versioned {
id: String!
version: Long!
key: String!
name(
"String is defined for different locales. This argument specifies the desired locale."
locale: Locale,
"List of languages the client is able to understand, and which locale variant is preferred."
acceptLanguage: [Locale!]): String
nameAllLocales: [LocalizedString!]
description(
"String is defined for different locales. This argument specifies the desired locale."
locale: Locale,
"List of languages the client is able to understand, and which locale variant is preferred."
acceptLanguage: [Locale!]): String
descriptionAllLocales: [LocalizedString!]
schedule: RecurrencePolicySchedule!
createdAt: DateTime!
lastModifiedAt: DateTime!
createdBy: Initiator
lastModifiedBy: Initiator
}
input RecurrencePolicyDraft {
key: String!
name: [LocalizedStringItemInputType!]
description: [LocalizedStringItemInputType!]
schedule: RecurrencePolicyScheduleInput!
}
type RecurrencePolicyQueryResult {
offset: Int!
count: Int!
total: Long!
exists: Boolean!
results: [RecurrencePolicy!]!
}
"BETA: This feature can be subject to change and should be used carefully in production. https://docs.commercetools.com/api/contract#public-beta"
type RecurrencePolicyRef {
typeId: String!
id: String!
}
type RecurrencePolicyReferenceIdentifier {
typeId: String!
id: String
key: String
}
interface RecurrencePolicySchedule {
type: String!
}
input RecurrencePolicyScheduleInput {
standard: StandardScheduleInput
dayOfMonth: DayOfMonthScheduleInput
}
input RecurrencePolicyUpdateAction {
setDescription: SetRecurrencePolicyDescription
setKey: SetRecurrencePolicyKey
setName: SetRecurrencePolicyName
setSchedule: SetRecurrencePolicySchedule
}
"BETA: This feature can be subject to change and should be used carefully in production. https://docs.commercetools.com/api/contract#public-beta"
type RecurringOrder implements Versioned {
key: String
recurringOrderState: RecurringOrderState!
cartRef: Reference!
cart: Cart
startsAt: DateTime!
resumesAt: DateTime
expiresAt: DateTime
lastOrderAt: DateTime
nextOrderAt: DateTime
skipConfiguration: SkipConfiguration
businessUnit: BusinessUnit
businessUnitRef: KeyReference
custom: CustomFieldsType
stateRef: Reference
state: State
originOrderRef: Reference
originOrder: Order
schedule: RecurrencePolicySchedule!
customerRef: Reference
customer: Customer
customerEmail: String
id: String!
version: Long!
createdAt: DateTime!
lastModifiedAt: DateTime!
createdBy: Initiator
lastModifiedBy: Initiator
}
input RecurringOrderActiveInput {
resumesAt: DateTime
}
input RecurringOrderCanceledInput {
reason: String
}
type RecurringOrderCreated implements MessagePayload {
recurringOrder: RecurringOrder!
type: String!
}
type RecurringOrderCustomFieldAdded implements MessagePayload {
name: String!
value: Json!
type: String!
}
type RecurringOrderCustomFieldChanged implements MessagePayload {
name: String!
value: Json!
previousValue: Json
type: String!
}
type RecurringOrderCustomFieldRemoved implements MessagePayload {
name: String!
type: String!
}
type RecurringOrderCustomTypeRemoved implements MessagePayload {
previousTypeId: String
type: String!
}
type RecurringOrderCustomTypeSet implements MessagePayload {
customFields: CustomFieldsType!
previousTypeId: String
type: String!
}
type RecurringOrderDeleted implements MessagePayload {
type: String!
}
"BETA: This feature can be subject to change and should be used carefully in production. https://docs.commercetools.com/api/contract#public-beta"
input RecurringOrderDraft {
key: String
custom: CustomFieldsDraft
cart: ResourceIdentifierInput!
cartVersion: Long!
startsAt: DateTime!
expiresAt: DateTime
state: ResourceIdentifierInput
recurringOrderState: RecurringOrderState
}
input RecurringOrderExpiredInput {
dummy: String
}
type RecurringOrderKeySet implements MessagePayload {
key: String
oldKey: String
type: String!
}
input RecurringOrderPausedInput {
dummy: String
}
type RecurringOrderQueryResult {
offset: Int!
count: Int!
total: Long!
exists: Boolean!
results: [RecurringOrder!]!
}
type RecurringOrderScheduleSet implements MessagePayload {
recurrencePolicySchedule: RecurrencePolicySchedule!
oldRecurrencePolicySchedule: RecurrencePolicySchedule!
type: String!
}
type RecurringOrderStartsAtSet implements MessagePayload {
startsAt: DateTime!
oldStartsAt: DateTime!
type: String!
}
"BETA: This feature can be subject to change and should be used carefully in production. https://docs.commercetools.com/api/contract#public-beta"
enum RecurringOrderState {
Active
Canceled
Expired
Failed
Paused
}
type RecurringOrderStateChanged implements MessagePayload {
recurringOrderState: RecurringOrderState!
oldRecurringOrderState: RecurringOrderState!
type: String!
}
input RecurringOrderStateDraft {
active: RecurringOrderActiveInput
paused: RecurringOrderPausedInput
canceled: RecurringOrderCanceledInput
expired: RecurringOrderExpiredInput
}
"BETA: This feature can be subject to change and should be used carefully in production. https://docs.commercetools.com/api/contract#public-beta"
type RecurringOrderStateTransition implements MessagePayload {
force: Boolean!
state: State
oldState: State
stateRef: Reference!
oldStateRef: Reference
type: String!
}
input RecurringOrderUpdateAction {
setKey: SetRecurringOrderKey
setOrderSkipConfiguration: SetRecurringOrderOrderSkipConfiguration
setCustomField: SetRecurringOrderCustomField
setCustomType: SetRecurringOrderCustomType
setRecurringOrderState: SetRecurringOrderState
setSchedule: SetRecurringOrderSchedule
setStartsAt: SetRecurringOrderStartsAt
transitionState: TransitionRecurringOrderState
}
"BETA: This feature can be subject to change and should be used carefully in production. https://docs.commercetools.com/api/contract#public-beta"
input SetCustomLineItemRecurrenceInfo {
customLineItemId: String!
customLineItemKey: String
"BETA: This feature can be subject to change and should be used carefully in production. https://docs.commercetools.com/api/contract#public-beta"
recurrenceInfo: CustomLineItemRecurrenceInfoInputDraft
}
"BETA: This feature can be subject to change and should be used carefully in production. https://docs.commercetools.com/api/contract#public-beta"
input SetLineItemRecurrenceInfo {
lineItemId: String!
"BETA: This feature can be subject to change and should be used carefully in production. https://docs.commercetools.com/api/contract#public-beta"
recurrenceInfo: LineItemRecurrenceInfoInputDraft
}
input SetRecurrencePolicyDescription {
description: [LocalizedStringItemInputType!]
}
input SetRecurrencePolicyKey {
key: String!
}
input SetRecurrencePolicyName {
name: [LocalizedStringItemInputType!]
}
input SetRecurrencePolicySchedule {
schedule: RecurrencePolicyScheduleInput!
}
input SetRecurringOrderCustomField {
name: String!
value: String
}
input SetRecurringOrderCustomType {
fields: [CustomFieldInput!]
type: ResourceIdentifierInput
typeKey: String
typeId: String
}
input SetRecurringOrderKey {
key: String
}
input SetRecurringOrderOrderSkipConfiguration {
skipConfigurationInputDraft: SkipConfigurationInputDraft
updatedExpiresAt: DateTime
}
input SetRecurringOrderSchedule {
recurrencePolicy: ResourceIdentifierInput!
}
input SetRecurringOrderStartsAt {
startsAt: DateTime!
}
input SetRecurringOrderState {
recurringOrderState: RecurringOrderStateDraft!
}
interface SkipConfiguration {
type: String!
}
input SkipConfigurationInputDraft {
Counter: CounterInputDraft
}
type StandardSchedule implements RecurrencePolicySchedule {
value: Int!
intervalUnit: IntervalUnit!
type: String!
}
input StandardScheduleInput {
value: Int!
intervalUnit: IntervalUnit!
}
input TransitionRecurringOrderState {
state: ResourceIdentifierInput!
force: Boolean = false
}