30 May 2018
GraphQLPricing and Discounts
Mutations for the CartDiscount and ProductDiscount are now supported on the GraphQL endpoint.
- [GraphQL API] Following types were added in the GraphQL schema:
AbsoluteDiscountValueInput,CartDiscountDraft,CartDiscountTargetInput,CartDiscountUpdateAction,CartDiscountValueInput,ChangeCartDiscountCartPredicate,ChangeCartDiscountIsActive,ChangeCartDiscountName,ChangeCartDiscountRequiresDiscountCode,ChangeCartDiscountSortOrder,ChangeCartDiscountStackingMode,ChangeCartDiscountTarget,ChangeCartDiscountValue,CustomLineItemsTargetInput,ExternalDiscountValueInput,GiftLineItemValueInput,LineItemsTargetInput,MoneyInput,MultiBuyCustomLineItemsTargetInput,MultiBuyLineItemsTargetInput,ProductDiscountDraft,ProductDiscountValueInput,RelativeDiscountValueInput,SetCartDiscountCustomField,SetCartDiscountCustomType,SetCartDiscountDescription,SetCartDiscountValidFrom,SetCartDiscountValidUntil,ShippingTargetInput.
- [GraphQL API] Type
ProductDiscountwas changed:ProductDiscounttype description is changed
- [GraphQL API] Type
Mutationwas changed:- Field
updateProductDiscountwas added toMutationtype - Field
updateCartDiscountwas added toMutationtype - Field
deleteProductDiscountwas added toMutationtype - Field
createProductDiscountwas added toMutationtype - Field
createCartDiscountwas added toMutationtype - Field
deleteCartDiscountwas added toMutationtype
- Field
Following changes were introduced in the GraphQL schema (in GraphQL Schema Definition Language):
extend type Mutation {
createCartDiscount(draft: CartDiscountDraft!): CartDiscount
createProductDiscount(draft: ProductDiscountDraft!): ProductDiscount
deleteCartDiscount(id: String!, version: Long!): CartDiscount
deleteProductDiscount(id: String!, version: Long!): ProductDiscount
updateCartDiscount(id: String!, version: Long!, actions: [CartDiscountUpdateAction!]!): CartDiscount
updateProductDiscount(id: String!, version: Long!, actions: [CartDiscountUpdateAction!]!): ProductDiscount
}
input AbsoluteDiscountValueInput {
money: [MoneyInput!]!
}
input CartDiscountDraft {
value: CartDiscountValueInput!
cartPredicate: String!
target: CartDiscountTargetInput
sortOrder: String!
name: [LocalizedStringInput!]!
description: [LocalizedStringInput!]
validFrom: DateTime
validUntil: DateTime
stackingMode: StackingMode = Stacking
requiresDiscountCode: Boolean = false
isActive: Boolean = true
custom: CustomFieldsDraft
}
input CartDiscountTargetInput {
lineItems: LineItemsTargetInput
customLineItems: CustomLineItemsTargetInput
shipping: ShippingTargetInput
multiBuyLineItems: MultiBuyLineItemsTargetInput
multiBuyCustomLineItems: MultiBuyCustomLineItemsTargetInput
}
input CartDiscountUpdateAction {
changeValue: ChangeCartDiscountValue
changeCartPredicate: ChangeCartDiscountCartPredicate
changeTarget: ChangeCartDiscountTarget
setValidFrom: SetCartDiscountValidFrom
setValidUntil: SetCartDiscountValidUntil
changeIsActive: ChangeCartDiscountIsActive
changeStackingMode: ChangeCartDiscountStackingMode
changeRequiresDiscountCode: ChangeCartDiscountRequiresDiscountCode
changeName: ChangeCartDiscountName
setDescription: SetCartDiscountDescription
changeSortOrder: ChangeCartDiscountSortOrder
setCustomType: SetCartDiscountCustomType
setCustomField: SetCartDiscountCustomField
}
input CartDiscountValueInput {
relative: RelativeDiscountValueInput
absolute: AbsoluteDiscountValueInput
giftLineItem: GiftLineItemValueInput
}
input ChangeCartDiscountCartPredicate {
cartPredicate: String!
}
input ChangeCartDiscountIsActive {
isActive: Boolean!
}
input ChangeCartDiscountName {
name: [LocalizedStringInput!]!
}
input ChangeCartDiscountRequiresDiscountCode {
requiresDiscountCode: Boolean!
}
input ChangeCartDiscountSortOrder {
sortOrder: String!
}
input ChangeCartDiscountStackingMode {
stackingMode: StackingMode!
}
input ChangeCartDiscountTarget {
target: CartDiscountTargetInput!
}
input ChangeCartDiscountValue {
value: CartDiscountValueInput!
}
input CustomLineItemsTargetInput {
predicate: String!
}
input ExternalDiscountValueInput {
dummy: String
}
input GiftLineItemValueInput {
product: ResourceIdentifierInput!
variantId: Int!
distributionChannel: ResourceIdentifierInput
supplyChannel: ResourceIdentifierInput
}
input LineItemsTargetInput {
predicate: String!
}
input MoneyInput {
currencyCode: Currency!
centAmount: Long!
}
input MultiBuyCustomLineItemsTargetInput {
predicate: String!
triggerQuantity: Long!
discountedQuantity: Long!
maxOccurrence: Int
selectionMode: SelectionMode
}
input MultiBuyLineItemsTargetInput {
predicate: String!
triggerQuantity: Long!
discountedQuantity: Long!
maxOccurrence: Int
selectionMode: SelectionMode
}
input ProductDiscountDraft {
value: ProductDiscountValueInput!
predicate: String!
sortOrder: String!
name: [LocalizedStringInput!]!
description: [LocalizedStringInput!]
validFrom: DateTime
validUntil: DateTime
isActive: Boolean = true
}
input ProductDiscountValueInput {
relative: RelativeDiscountValueInput
absolute: AbsoluteDiscountValueInput
external: ExternalDiscountValueInput
}
input RelativeDiscountValueInput {
permyriad: Int!
}
input SetCartDiscountCustomField {
name: String!
value: String
}
input SetCartDiscountCustomType {
typeId: String
typeKey: String
type: ResourceIdentifierInput
fields: [CustomFieldInput!]
}
input SetCartDiscountDescription {
description: [LocalizedStringInput!]
}
input SetCartDiscountValidFrom {
validFrom: DateTime
}
input SetCartDiscountValidUntil {
validUntil: DateTime
}
input ShippingTargetInput {
dummy: String
}