Repository URL to install this package:
|
Version:
2.0.11 ▾
|
scalar JSON
type Label {
label: String
}
type Value {
value: String
}
type LabelValue {
label: String
value: String
}
type LabelValueType {
label: String
value: String
type: String
}
type TypeValue {
type: String
value: String
}
type Name {
name: String
}
# used in loyalty -.-
type NameValue {
name: String
value: String
}
type ImageName {
image: String
name: String
}
type PricedNormal {
type: String
label: String
value: String
}
type PricedWithRange {
type: String
label: String
value: String
ismin: String
ismax: String
}
# @note
union Price = PricedNormal | PricedWithRange
type Pricing {
currencycode: String
prices: [PricedWithRange]
buymoresavemore: [MinMaxQuantity]
}
type MinMaxQuantity {
minquantity: String
maxquantity: String
}
# @note
interface IBuyInfo {
pricing: Pricing
inventorystatus: String
instock: String
preorder: String
preorderdate: String
deliverydate: String
availablequantity: String
availability: [Availability]
promomessages: [Label]
}
type Availability {
instore: String
}
type ServerResponse {
responseCode: String
responseMessage: String
type: String
cookies: [String]
}
type ContactUsNotReal {
description: String
# number: Int
telephone: String
workinghour: LabelValue
}
type Cart {
contactus: ContactUsNotReal
giftproducts: [CartProduct]
saveforlater: [CartProduct]
promocodes: [CartProduct]
products: [CartProduct]
status: String
shippingmethodtype: String
shippingmethods: [ShippingMethod]
buyinfo: CartBuyInfo
cartinfo: CartInfo
iteminfo: CartItemInfo
math: Math
paymentcardinfo: CartPaymentCardInfo
state: CartState
properties: CartStateProperties
# @todo remove
userinfo: [CartUserInfo]
type: String
cookies: [String]
}
# type Cart {
# children: CartProducts
# properties: CartProperties
# type: String
# cookies: [String]
# }
type CartProducts {
products: [CartProduct]
}
type CartBundleProduct {
products: [CartProduct]
}
# Should Just Be Sku but it differs slightly
type CartProduct {
itemId: String
identifier: String
image: String
name: String
type: String
properties: CartProductProperties
productOptions: [TypeValue]
productId: String
skuId: String
title: String
children: CartBundleProduct
}
type CartProductState {
errormessage: String
}
type CartSkuColor {
name: String
}
type CartSkuSize {
name: String
}
type CartSkuInfo {
color: ImageName
size1: Name
style: Name
}
type CartProductSkuInfo {
color: CartSkuColor
size1: CartSkuSize
}
type CartProductProperties {
buyinfo: CartBuyInfo
cartinfo: CartInfo
iteminfo: CartProductItemInfo
skuinfo: SkuInfo
creditcardinfo: [CreditCardInfo]
paymentcardinfo: PaymentCardInfo
state: CartProductState
math: Math
type: String
}
type CartProductItemInfo {
additionalinfo: [LabelValue]
category: String
categoryids: [Value]
description: [Value]
shortdescription: [LabelValue]
flags: [LabelValue]
specifications: [LabelValue]
isgiftcard: String
itemid: String
prices: [LabelValueType]
sku: String
}
type Math {
cost: String
currency: String
discountcost: String
discount: String
estTotalShippingDiscount: String
estTotalShippingPrice: String
estTotalShippingTax: String
estTotalTax: String
estunittax: String
esttax: String
estfulfilcost: String
estfulfilsale: String
estfulfiltax: String
fulfiltax: String
fulfilcost: String
fulfilsale: String
giftdiscount: String
giftcost: String
giftsale: String
estUnitTax: String
grandTotal: String
grandTotalAfterPayment: String
grandTotalTax: String
maxBagCount: String
quantity: String
sale: String
tax: String
totalBagCount: String
totalBagCountWithErrors: String
totalCost: String
totalDiscount: String
totalGiftWrapCost: String
totalGiftWrapDiscount: String
totalGiftWrapPrice: String
totalGiftWrapTax: String
totalSale: String
unittax: String
unitCost: String
unitSale: String
}
# YOU HAD ONE WAY TO NAME THINGS
type CartStateProperties {
state: CartState
}
type CartProperties {
buyinfo: CartBuyInfo
cartinfo: CartInfo
iteminfo: CartItemInfo
math: Math
# paymentcardinfo: CartPaymentCardInfo
state: CartState
userinfo: CartUserInfo
}
type CartBuyInfo implements IBuyInfo {
pricing: Pricing
inventorystatus: String
instock: String
preorder: String
preorderdate: String
deliverydate: String
availablequantity: String
availability: [Availability]
promomessages: [Label]
}
type CartOrderPricing {
currencycode: String
prices: [Price]
buymoresavemore: [MinMaxQuantity]
}
type CartInfo {
quantity: String
discounttotal: String
discountonlytotal: String
giftitem: String
iseligible: String
pretaxtotal: String
shippingcharge: String
shippingtax: String
subtotal: String
total: String
totaltax: String
discount: [LabelValue]
shippingmethods: [ShippingMethod]
valueaddedtaxes: [LabelValue]
valuesapplied: [CartInfoValues]
}
type ShippingMethod {
estdate: String
esttime: String
notes: String
name: String
selected: String
code: String
date: String
identifier: String
notification: String
prices: [LabelValue]
time: String
type: String
}
type ShippingMethods {
shippingmethods: [ShippingMethod]
type: String
}
type CartInfoValues {
shiptotal: String
}
type CartItemInfo {
giftoption: GiftOption
}
type CartPaymentCardInfo {
adjustedamount: String
amount: String
type: String
}
type GiftOption {
giftwraptax: String
giftwrapcost: String
}
type CartState {
additionalinfo: [LabelValue]
status: String
count: String
}
type CartUserInfo {
guid: String
userid: String
addressinfo: [AddressInfo]
}
type AddressInfo {
addresstype: String
city: String
country: String
county: String
state: String
zipcode: String
firstname: String
lastname: String
addressline1: String
addressline2: String
phonenumber: String
email: String
}
type PromoProperties {
state: CartState
}
type PromoResponse {
type: String
properties: PromoProperties
}
type ChildrenProducts {
products: [CartProduct]
}
type AddToBagResponse {
type: String
properties: PromoProperties
children: ChildrenProducts
}
type UpdateBagResponse {
type: String
properties: CartProperties
children: ChildrenProducts
}
type DeleteFromBagProperties {
state: CartState
}
type DeleteFromBagResponse {
type: String
properties: DeleteFromBagProperties
}
input CategoryIdParam {
categoryId: String
}
input CustomParams {
mainProduct: String
mandatoryProduct: String
optionalProduct: String
quantity: Int
}
input subProducts {
skuId: String!
itemid: String!
customParams: CustomParams
}
input AddToBagInput {
skuId: String!
itemid: String!
title: String
quantity: Int
itemType: String
customParams: CategoryIdParam
subProducts: [subProducts]
}
input UpdateBagInput {
quantity: Int
id: String
}
input DeleteFromBagInput {
id: String!
}
type EstimateShippingMath {
estTotalShippingPrice: String
}
input EstimateInfoInput {
postalCode: String
state: String
country: String
city: String
}
type EstimateShippingProperties {
math: EstimateShippingMath
}
type EstimateShippingResponse {
type: String
properties: EstimateShippingProperties
}
type ShippingState {
status: String
}
# @todo @michael extends CartInfo?
type CheckoutCartInfo {
totaltax: String
total: String
quantity: String
subtotal: String
estsubtotal: String
discounttotal: String
discount: [LabelValue]
giftwrap: String
shippingmethods: [ShippingMethods]
}
type ShippingProperties {
cartinfo: CheckoutCartInfo
state: ShippingState
}
type SetShippingResponse {
responseCode: String
properties: ShippingProperties
}
# @todo this is unused bloat? we have LabelValue type?
type AdditionalInfo {
label: String
value: String
}
type ShippingMethodState {
status: String
}
type ShippingMethodProperties {
state: ShippingMethodState
cartinfo: CheckoutCartInfo
}
type ShippingMethodResponse {
type: String
properties: ShippingMethodProperties
}
type PaymentProductsResponse {
identifier: String
name: String
creditcardinfo: CreditCardInfo
paymentcardinfo: PaymentCardInfo
type: String
}
type RecalculateBuyInfo {
pricing: Pricing
}
type PaymentCardInfo {
amount: String
type: String
}
type Card {
isvalidated: String
expirationyear: String
cardid: String
cardbrand: String
cardtype: String
cardnumber: String
expirationmonth: String
}
type CreditCardData {
cards: [Card]
}
type RecalculateProperties {
buyinfo: RecalculateBuyInfo
iteminfo: CartItemInfo
cartinfo: CartInfo
state: CartState
userinfo: CartUserInfo
creditcardinfo: CreditCardData
paymentcardinfo: PaymentCardInfo
math: Math
}
type AddPaymentInfo {
products: [PaymentProductsResponse]
}
type AddPaymentState {
status: String
}
type AddPaymentProperties {
state: AddPaymentState
}
type AddPaymentResponse {
type: String
children: RecalculateProducts
properties: AddPaymentProperties
identifier: String
}
type DeletePaymentProperties {
state: DeletePaymentState
}
type DeletePaymentResponse {
type: String
properties: DeletePaymentProperties
}
type GuestProfileState {
status: String
}
type GuestProfileProperties {
state: GuestProfileState
}
type GuestProfileResponse {
type: String
}
type SubmitOrderOrderinfo {
orderid: String
}
type SubmitOrderProperties {
orderinfo: SubmitOrderOrderinfo
}
type SubmitOrderResponse {
type: String
responseMessage: String
properties: SubmitOrderProperties
}
type RecalculateProduct {
identifier: String
image: String
name: String
type: String
properties: RecalculateProperties
}
type RecalculateProducts {
products: [RecalculateProduct]
}
type RecalculateOrderResponse {
type: String
responseMessage: String
properties: RecalculateProperties
children: RecalculateProducts
}
input PaymentCustomParams {
addCardDetailToProfile: [String]
setAsDefaultCardInProfile: [String]
useDefaultCard: [String]
}
input ShippingCustomParams {
addAddressToProfile: [String] = ["false"]
useDefaultAddress: [String] = ["false"]
setAsDefaultAddressInProfile: [String] = ["false"]
overrideAddressValidation: [String] = ["true"]
}
input CreditCardInput {
number: String!
type: String! # convert to Enum
cvv: String!
expirationMonth: String!
expirationYear: String!
name: String!
id: String
}
input PaymentAddress {
addressLine1: String!
addressLine2: String
postalCode: String!
city: String!
state: String!
country: String!
phone: String!
email: String!
lastName: String!
firstName: String!
deliveryInstruction: String = ""
customParams: ShippingCustomParams
}
input Payment {
type: String = "creditcard"
amount: String!
creditCard: [CreditCardInput!]
address: [PaymentAddress!]
customParams: PaymentCustomParams
}
input PaymentDetail {
itemType: String = "payment"
title: String = "creditcard"
payment: Payment!
}
input DeletePaymentId {
id: String!
}
input DeletePaymentDetails {
# from jai
item: DeletePaymentId
# merged from michael
items: [DeletePaymentId]
}
input PaymentDetails {
items: [PaymentDetail!] = []
paymentMethods: [Payment] = []
shippingAddresses: [PaymentAddress] = []
}
input GuestProfileAddressDetails {
firstName: String!
lastName: String!
phone: String!
email: String!
type: String = "email"
postalCode: String!
}
type Category {
_identifier: ID!
identifier: String
image: String
video: String
name: String
type: String
description: String
# children
categories: [Category]
categoryids: [LabelValue]
sortingoptions: [LabelValue]
}
# CategoryListOfLists
type CategoryList {
# children: CategoryChildren
categories: [Category]
type: String
}
# CategoryLandingPage
# type CategoryLandingPage {
# categoryBlocks: [CategoryBlock]
# }
type CategoryBlock {
name: String!
backgroundImage: String
heroImage: String
previewImage: String
}
type BrandLandingPage {
banner: String
backgroundImageUrl: String
learnMore: String
sliderLeft: String
sliderRight: String
sliderLeftMobile: String
sliderRightMobile: String
promoBanner1: String
promoBanner2: String
# presumably these are site-specific
hempTankJade: String
hempTankStone: String
hempTankMidnight: String
}
type ListIds {
id: String
}
type FavoritesItemInfo {
itemid: String
flags: [LabelValue]
list: [ListIds]
sku: String
}
type FavoritesState {
starttime: String
}
type UserInfoData {
userid: String
username: String
type: String
}
type FavoritesUserInfo {
userinfo: [UserInfoData]
}
# fragment CartQuantity on CartInfo {
# quantity: String
# }
type FavoriteCartInfo {
quantity: String
}
type FavoriteProductProperties {
buyinfo: SkuBuyInfo
cartinfo: FavoriteCartInfo
iteminfo: FavoritesItemInfo
reviewrating: ReviewRating
state: FavoritesState
userinfo: FavoritesUserInfo
}
type FavoriteProduct {
identifier: ID!
image: String
name: String
properties: FavoriteProductProperties
}
type FavoritesList {
lists: [FavoriteProduct]
}
type FavoritesPropertiesItemInfo {
flags: [LabelValue]
}
type FavoritesCount {
count: String
}
type FavoritesProperties {
iteminfo: FavoritesPropertiesItemInfo
state: FavoritesCount
}
type Favorites {
children: FavoritesList
properties: FavoritesProperties
type: String
responseMessage: String
responseCode: String
}
type ListItemInfo {
additionalinfo: [LabelValue]
}
type ListProperties {
iteminfo: ListItemInfo
}
type List {
identifier: ID!
properties: ListProperties
}
type ListResponseChildren {
lists: [List]
}
type ListResponseItemInfo {
flags: [LabelValue]
}
type ListResponseState {
count: String
}
type ListResponseProperties {
iteminfo: ListResponseItemInfo
state: ListResponseState
}
type ListResponse {
children: ListResponseChildren
properties: ListResponseProperties
type: String
responseMessage: String
responseCode: String
}
type OrderProductCartInfo {
totaltax: String
total: String
discountonlytotal: String
valueaddedtaxes: [LabelValue]
shippingmethods: [ShippingMethod]
surcharges: [TypeValue]
orderitemid: String
discounttotal: String
}
type OrderProductItemInfo {
categoryids: [LabelValue]
cartinfo: CartInfo
flags: [LabelValue]
isgiftwrap: String
description: [Value]
specifications: [LabelValue]
psvid: String
isgiftcard: String
additionalinfo: [LabelValue]
}
type OrderProductState {
timings: [LabelValue]
locale: String
additionalinfo: [LabelValue]
status: String
}
type OrderInfo {
orderid: String
}
type PackageUserInfo {
userid: String
}
type OrderProductProperties {
buyinfo: CartBuyInfo
cartinfo: OrderProductCartInfo
iteminfo: OrderProductItemInfo
state: OrderProductState
math: Math
orderinfo: OrderInfo
userinfo: PackageUserInfo
}
type CategoryIdProperties {
label: String
value: String
}
type ShippingAddress {
address1: String
address2: String
zipcode: String
city: String
state: String
country: String
phonenumber: String
email: String
lastname: String
firstname: String
}
type OrderProduct {
identifier: String
name: String
image: String
skuid: String
price: String
properties: OrderProductProperties
quantity: String
skuinfo: SkuInfo
category: [LabelValue]
shippingmethod: String
shippingaddress: [ShippingAddress]
}
type PhoneDetail {
phonenumber: String
}
# @todo this is duplication we should reuse card types same as in state tree models...
type CardAddressInfo {
country: String
firstname: String
phonedetails: [PhoneDetail]
city: String
county: String
middlename: String
lastname: String
addressid: String
zipcode: String
addressline3: String
addressline2: String
addressline1: String
state: String
email: String
}
type CardInfo {
identifier: String
amount: String
addressinfo: CardAddressInfo
credits: String
type: String
additionalinfo: [LabelValue]
points: String
}
type CreditCardInfo {
cards: [CardInfo]
}
type CardDetail {
cardBrand: String
cardExpirationMonth: String
cardExpirationYear: String
cardNumber: String
cardType: String
}
type PaymentCardDetail {
carddetails: CardDetail
name: LabelValue
}
type OrderPaymentCardDetail {
amount: String
additionalinfo: [LabelValue]
}
type OrderPaymentProperties {
creditcardinfo: [CreditCardInfo]
paymentcardinfo: OrderPaymentCardDetail
}
type OrderPayment {
properties: OrderPaymentProperties
}
type OrderListState {
statuscode: String
offset: String
count: String
status: String
}
type OrderMath {
subTotal: String
giftSale: String
tax: String
shippingCharge: String
shippingTax: String
discount: String
total: String
grandTotal: String
couponTotal: String
}
type ShippingDetail {
price: String
shippingaddress: [ShippingAddress]
hasShipped: Boolean
}
type OrderPackage {
math: OrderMath
orderCreatedTime: String
orderId: String
orderTotalAmount: String
orderTotalItems: String
products: [OrderProduct]
shipping: [ShippingDetail]
properties: OrderProductProperties
status: String
}
type OrderDetail {
packages: [OrderPackage]
paymentcardinfo: [PaymentCardDetail]
payments: [OrderPayment]
state: OrderListState
}
type OrderAgainState {
status: String
}
type OrderAgainResponse {
state: OrderAgainState
}
type OrderList {
orders: [OrderDetail]
state: OrderListState
}
# @alias orderLookupList
type GuestOrderList {
orders: [OrderDetail]
state: OrderListState
}
type OrderState {
statuscode: String
status: String
}
type OrderProperties {
state: OrderState
}
type CancelOrder {
type: String
properties: OrderProperties
}
type ReturnOrder {
type: String
properties: OrderProperties
}
type Sku {
identifier: ID!
image: String
type: String!
name: String
properties: SkuProperties
additional: [LabelValue]
specifications: [Specifications]
children: SkuChildren
}
type SkuProperties {
buyinfo: SkuBuyInfo
iteminfo: SkuItemInfo
state: SkuState
skuinfo: SkuInfo
}
type SkuBuyInfo implements IBuyInfo {
pricing: Pricing
inventorystatus: String
instock: String
preorder: String
preorderdate: String
deliverydate: String
availablequantity: String
availability: [Availability]
promomessages: [Label]
}
type SkuItemInfo {
flags: [LabelValue]
additionalimages: [LabelValue]
additionalinfo: [LabelValue]
specifications: [LabelValue]
}
type SkuState {
starttime: String
}
type SkuInfo {
color: ImageName
size1: Name
style: Name
}
type SkuChildren {
offers: [SkuOffers]
}
type SkuOffers {
name: String
properties: SkuOfferProperties
}
type SkuOfferProperties {
iteminfo: OfferItemInfo
}
type OfferItemInfo {
description: [LabelValue]
}
type ProductChildren {
skus: [Sku]
products: [Product]
relatedproducts: [Product]
recommentedproducts: [Product]
}
type Specifications {
label: String
value: String
}
type Product {
identifier: ID!
image: String
type: String
name: String
children: ProductChildren
properties: ProductProperties
additional: [LabelValue]
specifications: [LabelValue]
}
type ProductProperties {
buyinfo: ProductBuyInfo
iteminfo: ProductItemInfo
reviewrating: ReviewRating
skuprops: SkuProps
state: State
}
type ProductBuyInfo implements IBuyInfo {
pricing: Pricing
inventorystatus: String
instock: String
preorder: String
preorderdate: String
deliverydate: String
availablequantity: String
availability: [Availability]
promomessages: [Label]
}
type ProductItemInfo {
categoryids: [LabelValue]
flags: [LabelValue]
videos: [LabelValue]
additionalimages: [LabelValue]
description: [LabelValue]
ismasterproduct: Boolean
iscollection: Boolean
isgroupproduct: Boolean
brand: String
}
type ReviewRating {
reviewcount: String
recommendedcount: String
reviews: [CountValue]
rating: String
ratingrange: String
}
type CountValue {
count: String
value: String
}
type SkuProps {
color: [ImageName]
size1: [Name]
style: [Name]
}
type State {
starttime: String
additionalinfo: [LabelValue]
}
type CreditCardAddressInfo {
addressid: String
}
type CreditCardDetails {
cardid: String!
identifier: String!
addressinfo: [CreditCardAddressInfo]
cardnumber: String
cardtype: String
expirationmonth: String
expirationyear: String
isdefault: String
isvalidated: String
lastfourdigits: String
nameoncard: String
type: String
}
type UserCreditCardInfo {
cards: [CreditCardDetails]
}
type PhoneDetails {
phonenumber: String
}
type UserAddressInfo {
addressid: ID!
addresstype: String
isdefaultaddress: String
firstname: String
lastname: String
email: String
addressline1: String
addressline2: String
city: String
state: String
county: String
country: String
zipcode: String
additionaldetails: [LabelValue]
phonedetails: [PhoneDetails]
}
type UserIdentityList {
id: ID!
partner: String
name: String
type: String
userid: String
tags: [LabelValue]
}
type UserProfileInfo {
userid: ID
email: String
username: String
firstname: String
lastname: String
userphoto: String
phonenumber: String
gender: String
dob: String
city: String
state: String
country: String
usertimezone: String
preferences: [LabelValue]
additionalinfo: [LabelValue]
list: [UserIdentityList]
addressinfo: [UserAddressInfo]
}
type UserSegmentSecurity {
usersegment: [String]
securityanswer: String
securityquestion: String
}
# union UserProfile = UserProfileInfo | UserSegmentSecurity
type UserState {
starttime: String
status: String
}
type UserResponseProperties {
creditcardinfo: UserCreditCardInfo
state: UserState!
userinfo: [UserProfileInfo]
}
type UserResponse {
type: String
properties: UserResponseProperties
responseMessage: String
responseCode: String
cookies: [String]
}
type RegistrationState {
statuscode: String
starttime: String
status: String
}
type UserInfoProperties {
userid: String
# adding username prop to Response
username: String
}
type RegistrationProperties {
state: RegistrationState
userinfo: UserInfoProperties
}
type RegistrationResponse {
responseCode: String
responseMessage: String
type: String
properties: RegistrationProperties
cookies: [String]
}
type TwitterAuthTokenResponse {
type: String
responseMessage: String
}
type UserIdParams {
userid: String
}
type LogOutState {
status: String
}
type ResetPasswordState {
status: String
}
type ResetPasswordProperties {
state: ResetPasswordState
userinfo: UserIdParams
}
type ResetPasswordResponse {
type: String
properties: ResetPasswordProperties
}
type LogOutProperties {
state: LogOutState
userinfo: UserIdParams
}
type LogOut {
responseCode: String
responseMessage: String
properties: LogOutProperties
type: String
}
input UpdateSecurityCustomParams {
locale: String
}
input SecurityVerificationDetails {
challengeQuestion: String
challengeAnswer: String
}
input SecurityQuestionParams {
type: String
verificationDetails: SecurityVerificationDetails
}
input UpdateSecurityVerificationDetails {
userName: String!
}
input UpdateSecurityParams {
verificationDetails: UpdateSecurityVerificationDetails
addresses: [SecurityQuestionParams]
}
type StateProperties {
statuscode: String!
starttime: String!
status: String!
}
type SecurityQuestionUserInfoProperties {
country: String
userphoto: String
firstname: String
preferences: [LabelValue]
gender: String
city: String
phonenumber: String
userid: ID
additionalinfo: [LabelValue]
lastname: String
dob: String
state: String
usertimezone: String
email: String
username: String
securityanswer: String
securityquestion: String
}
type GetSecurityQuestionProperties {
state: StateProperties
userinfo: [SecurityQuestionUserInfoProperties]
}
type GetSecurityQuestionResponse {
type: String
properties: GetSecurityQuestionProperties
}
type SecurityQuestionsState {
status: String
}
type UserIdProperty {
userid: String!
}
type SecurityQuestionsProperties {
state: SecurityQuestionsState
userinfo: UserIdProperty
}
type ResetBySecurityQuestionsResponse {
type: String
properties: SecurityQuestionsProperties
}
type UpdatePasswordProperties {
state: StateProperties
userinfo: UserIdProperty
}
type UpdatePasswordResponse {
type: String
properties: UpdatePasswordProperties
}
type AddCardResponse {
type: String
properties: AddPaymentProperties
}
type DeletePaymentState {
status: String
}
type DeleteCardResponse {
type: String
properties: DeletePaymentProperties
}
type ChangeDefaultState {
status: String
}
type ChangeDefaultPaymentProperties {
state: ChangeDefaultState
}
type ChangeDefaultCardResponse {
type: String
properties: ChangeDefaultPaymentProperties
}
input VerificationDetails {
# oddly enough, actually the email
userName: String!
# user's password
password: String!
# new property
username: String
}
input RegisterUserAddressesCustomParam {
type: [String]
}
input RegisterUserAddresses {
type: String
value: String
customParams: RegisterUserAddressesCustomParam
}
input RegisterUserCustomParams {
resetMethod: [String]
status: [String]
contactPreferences: [String]
additionalPreferences: [String]
promotions: [String]
preferences: [String]
}
input RegisterUserParams {
verificationDetails: VerificationDetails
email: String
phone: String
dob: String
gender: String
firstName: String
lastName: String
nickName: String
city: String
state: String
country: String
postalCode: String
addresses: [RegisterUserAddresses]
customParams: RegisterUserCustomParams
}
# input RegisterCustomParams {
# messageCampaignId: String
# validationMethod: String
# sendWelcomeEmail: String
# cv: String
# cid: String
# promocode: String
# promocampaign: String
# skipValidations: String
# skipPassword: String
# locale: String
# channel: String
# }
input RegisterUserInput {
userName: String!
password: String!
telephone: String!
firstName: String!
lastName: String
}
# input UserProfileParams {
# enablePaymentRetrival: Boolean
# }
# {
# customParams: {
# enablePaymentRetrival: ['true']
# }
# }
input UserProfileParams {
# enablePaymentRetrival: Boolean
enablePaymentRetrival: [String]
}
# input UserLoginParams {
# type: String
# value: String
# partnerId: String
# authToken: String
# messageCampaignId: String
# promocode: String
# promocampaign: String
# locale: String
# channel: String
# }
input UserLoginInput {
userName: String
password: String
authToken: String
provider: String
# userinfo: VerificationDetails
# customparams: UserLoginParams
}
input AddAddressInput {
address: AddressParams
customParams: AddressInputParams
}
input AddressInputParams {
locale: String
messageCampaignId: String
}
input AddressCustomParams {
validated: [String]
override: [String]
default: [String]
}
input UpdateSecurityInput {
userName: String
challengeQuestion: String
challengeAnswer: String
}
input ResetBySecurityQuestions {
emailId: String
challengeQuestion1: String
challengeAnswer1: String
# new password
password: String
}
input UpdatePasswordParams {
oldPassword: String
newPassword: String
}
input UpdateProfileInput {
firstName: String
lastName: String
userId: String
}
input AddressesParams {
type: String
firstName: String
lastName: String
phone: String
addressLine1: String
addressLine2: String
city: String
country: String
state: String
postalCode: String
customParams: AddressCustomParams
}
input AddressParams {
addresses: [AddressesParams]
}
input removeAddressParams {
addresses: [AddressToDelete]
}
input AddressToDelete {
type: String
id: String
}
input RemoveAddressInput {
address: removeAddressParams
}
input UpdateShippingInput {
address: UpdateShippingParams
customParams: AddressInputParams
}
input UpdateShippingParams {
addresses: [UpdateAddressesParams]
}
# @todo use extends
input UpdateAddressesParams {
id: String
type: String
firstName: String
lastName: String
phone: String
addressLine1: String
addressLine2: String
city: String
country: String
state: String
postalCode: String
customParams: AddressCustomParams
}
type ShippingAddressResponse {
responseCode: String
responseMessage: String
type: String
properties: AddressStateProperties
}
type AddressStateProperties {
state: RegistrationState
}
input ResetByEmailInput {
email: String
messageCampaignId: String
}
input Custom {
locale: String
channel: String
linkBAddrToCard: String
messageCampaignId: String
userId: String
}
input PaymentData {
cardid: String
cardnumber: String
cardtype: String
expirationmonth: String
expirationyear: String
identifier: String
isdefault: String
isvalidated: String
lastfourdigits: String
nameoncard: String
type: String
}
input PaymentParams {
customparams: Custom
payment: PaymentData
}
input AddCardInput {
cardType: String
cardNumber: String
expirationmonth: String
expirationyear: String
expiryDate: String
firstName: String
lastName: String
makeDefaultCard: String
securityCode: String
}
input DeleteCardInput {
creditId: String
email: String
}
input ChangeDefaultCardInput {
creditCardNumber: String
}
input ValidateByEmailInput {
password: String
resetParam: String
messageCampaignId: String
}
type GetCardsResponse {
type: String
status: String
cards: [CreditCardDetails]
}
type GetAddressesResponse {
type: String
status: String
addressinfo: [UserAddressInfo]
}
type ProductList {
identifier: ID
image: String
name: String
products: [Product]
link: String
categoryIds: [LabelValue]
productCount: Int
searchterm: String
# @todo deprecate productSort/productFilter as these have there own queries
productSort: SortingType
productFilter: FacetType
additional: [LabelValue]
}
type Refine {
productSort: SortingType
productFilter: FacetType
}
type SortingType {
options: [LabelValue]
sortedBy: String
}
type Facets {
name: String
values: [FacetValue]!
}
type FacetValue {
identifier: String
# navtype: String
name: String
count: Int
}
type FacetType {
facets: [Facets]!
selectedFilters: [LabelValue]!
}
# params
input FacetsInput {
key: String
value: [String]
}
type TabMetaState {
sorting: SortingType
productCount: Int
}
type TabMetaProperties {
state: TabMetaState
}
type FeatureTabMeta {
title: String
image: String
viewAll: String
url: String
qa: String
}
type FeatureTabValues {
additional: [LabelValue]
specifications: [LabelValue]
identifier: String
image: String
type: String
name: String
properties: ProductProperties
url: String
children: ProductChildren
}
type FeatureTab {
title: String
image: String
viewAll: String
url: String
qa: String
meta: FeatureTabMeta
values: [FeatureTabValues]
}
type TabbedFeaturedProductList {
tabs: [FeatureTab]
}
input EndpointInput {
categoryId: String!
categoryName: String!
categoryAttribute: String!
}
input TabbedFeaturedProductListInput {
endpoints: [EndpointInput]
}
type Points {
adjustedPoints: String
balancedPoints: String
date: String
earnedPoints: String
redeemedPoints: String
startPoints: String
transactionDate: String
}
type BuyInfoLoyalty {
loyaltypoints: String
points: [NameValue]
}
type LoyaltyBuyInfo {
loyalty: BuyInfoLoyalty
}
type LoyaltyItemInfo {
additionalinfo: [LabelValue]
flags: [LabelValue]
itemid: String
}
type LoyaltyState {
additionalinfo: [LabelValue]
count: String
expirytime: String
starttime: String
status: String
}
type LoyaltyCartInfo {
total: String
}
# this should be transformed top level...
type LoyaltyStoreInfo {
identifier: String
}
type TransactionDetails {
transactiondetails: [NameValue]
}
# we should not need this, it's extra data and we already have user?
type LoyaltyUserInfo {
additionalinfo: [LabelValue]
preferences: [LabelValue]
startdate: String
userid: String
}
type LoyaltyProperties {
buyinfo: LoyaltyBuyInfo
cartInfo: LoyaltyCartInfo
iteminfo: LoyaltyItemInfo
state: LoyaltyState
storeinfo: [LoyaltyStoreInfo]
transactioninfo: [TransactionDetails]
userinfo: [LoyaltyUserInfo]
}
type LoyaltyPackage {
# should be ID! ?
identifier: String
properties: LoyaltyProperties
}
type TransactionList {
type: String
count: Int
transactionList: [Points]
earnedloyaltypoints: [Points]
loyaltypackages: [LoyaltyPackage]
}
type LoyaltyPoints {
type: String
status: String
count: String
points: [LabelValue]
currentpoints: LabelValue
earnedpoints: LabelValue
testpoints: String
}
type Loyalty {
transaction: TransactionList
loyaltyPoints: LoyaltyPoints
}
type StoreTime {
opentime: String
closetime: String
day: String
openforbussiness: String
}
type StoreList {
identifier: ID
country: String
distance: Float
city: String
address1: String
latitude: Float
additionalinfo: [LabelValue]
zipcode: String
altidentifier: String
phone: String
name: String
state: String
distanceunit: String
email: String
longitude: Float
workinghours: [StoreTime]
}
type StoreLocator {
type: String
offset: String
limit: String
storeinfo: [StoreList]
}
type Suggestion {
parent: String!
child: String!
}
type SuggestionResponse {
type: String
suggestions: [Suggestion]
}
type Studio {
identifier: ID!
}
type HomePageTitleText {
title: String
subtitle: String
text: String
}
type HomePageBackground {
mainBG: String
bottomBG: String
}
type HomePageVideo {
index: Int
thumbnailImage: String
autoplay: Boolean
loop: Boolean
controls: Boolean
logo: String
title: String
slogan: String
shareTitle: String
videoLength: Float
}
type HomePage {
titleText: HomePageTitleText
background: HomePageBackground
videos: [HomePageVideo]
}
type TokenResponse {
responseCode: Int
responseMessage: String
key: String
serviceTokens: ServiceTokens
}
type ServiceTokens {
pim: String
}
type ServiceToken {
responseCode: Int
responseMessage: String
serviceTokens: ServiceTokens
}
type ChildrenInfo {
count: String
}
type Reviews {
identifier: String
reviewcreated: String
negativereviewcount: String
rating: String
reviewupdated: String
label: String
positivereviewcount: String
userid: String
ratingrange: String
isfeatured: String
reviewcount: String
isratingsonly: String
location: String
value: String
username: String
}
type ProductReviewRating {
reviewcount: String
reviews: [Reviews]
}
type PrdocutReviewState {
errormessage: String
offset: String
limit: String
locale: String
status: String
}
type ReviewProperties {
childreninfo: ChildrenInfo
reviewrating: ProductReviewRating
state: PrdocutReviewState
}
type ReviewResponse {
type: String
properties: ReviewProperties
}
type Ratings {
label: String
value: String
}
type RatingResponse {
identifier: String
recommendedcount: String
ratings: [Ratings]
rating: String
count: String
ratingrange: String
}
type ResetPasswordBySMSArgs {
email: String
}
type OrderLookupListArgs {
lastname: String!
orderNumber: String!
zipcode: String!
}
type OrderListArgs {
orderid: String!
customerid: String!
limit: Int
offset: Int
fromdate: String
todate: String
status: String
}
type ProductListArgs {
categoryId: String!
limit: Int
offset: Int
sort: String
selectedFacets: [FacetsInput]
user: String
}
type ProductFilterArgs {
categoryId: String!
limit: Int
offset: Int
selectedFacets: [FacetsInput]
}
type ProductSortArgs {
categoryId: String!
limit: Int
offset: Int
sort: String
}
type ProductRefineArgs {
categoryId: String!
limit: Int
offset: Int
sort: String
selectedFacets: [FacetsInput]
}
type SearchRefineArgs {
search: String!
limit: Int
offset: Int
sort: String
selectedFacets: [FacetsInput]
}
type SearchArgs {
search: String!
limit: Int
offset: Int
sort: String
selectedFacets: [FacetsInput]
}
type OrderAgainArgs {
orderid: String!
lastname: String!
zipcode: String!
}
type ReturnOrderArgs {
IS_INVALID: Boolean!
}
type Query {
profile(enablePaymentRetrival: String): UserResponse
categoryList(user: String): CategoryList
categoryLandingPage(categoryId: String!): CategoryBlock
brandLandingPage: BrandLandingPage
tabbedFeaturedProductList(
input: TabbedFeaturedProductListInput
): TabbedFeaturedProductList
homePage: HomePage
orderLookupList(
lastname: String!
orderNumber: String!
zipcode: String!
): GuestOrderList
orderList(
orderid: String!
customerid: String!
limit: Int
offset: Int
fromdate: String
todate: String
status: String
): OrderList
orderDetail(orderid: String): OrderDetail
productDetail(productId: String!): Product
productList(
categoryId: String!
limit: Int = 100
offset: Int = 0
sort: String
selectedFacets: [FacetsInput]
user: String
): ProductList
productFilter(
categoryId: String!
limit: Int = 100
offset: Int = 0
selectedFacets: [FacetsInput]
): FacetType
productSort(
categoryId: String!
limit: Int = 100
offset: Int = 0
sort: String
): SortingType
productRefine(
categoryId: String!
limit: Int = 100
offset: Int = 0
sort: String
selectedFacets: [FacetsInput]
): Refine
searchRefine(
search: String!
limit: Int
offset: Int
sort: String
selectedFacets: [FacetsInput]
): Refine
search(
search: String!
limit: Int
offset: Int
sort: String
selectedFacets: [FacetsInput]
): ProductList
getLists: ListResponse
favorites(favoriteId: String!): Favorites
logOut: LogOut
listItems(listId: String!): Favorites
cart: Cart
loyalty: Loyalty
suggestion(searchTerm: String!): SuggestionResponse
storeLocator(latitude: Float!, longitude: Float!): StoreLocator
getKeyToken(alias: String!, requestor: String!): TokenResponse
getServiceToken: ServiceToken
productReview(productId: String!): ReviewResponse
productRating: RatingResponse
getUserPayments: GetCardsResponse!
getUserAddresses: GetAddressesResponse!
}
type Mutation {
# temporarily using JSON until types get finalized
addToBag(input: JSON!): JSON
updateBag(input: JSON!): JSON
deleteFromBag(input: JSON!): JSON
updateShippingMethods(shippingMethod: String!): ShippingMethodResponse!
setShipping(shippingAddress: PaymentAddress!): SetShippingResponse!
registerGuest: RegistrationResponse
registerUser(input: RegisterUserInput!): RegistrationResponse
login(input: UserLoginInput!): RegistrationResponse
socialLogin(input: UserLoginInput!): RegistrationResponse
updateSecurity(input: UpdateSecurityInput!): RegistrationResponse
createList: ServerResponse!
createSaveForLater: ServerResponse!
addItem(skuid: String!, identifier: String!): ServerResponse!
deleteItem(skuid: String!): ServerResponse!
cancelOrder(orderId: String!): CancelOrder!
returnOrder(orderId: String!): ReturnOrder!
addPromo(promoCode: String!): JSON!
orderAgain(
orderid: String!
lastname: String!
zipcode: String!
): OrderAgainResponse!
deletePromo(identifier: String!): JSON!
addPaymentMethod(paymentdetails: PaymentDetails!): AddPaymentResponse!
deletePaymentMethod(
paymentdetails: DeletePaymentDetails!
): DeletePaymentResponse!
setGuestDetails(input: GuestProfileAddressDetails!): GuestProfileResponse!
submitOrder(email: String!): SubmitOrderResponse!
recalculateOrder(paymentdetails: PaymentDetails!): RecalculateOrderResponse!
resetByEmail(input: ResetByEmailInput!): ResetPasswordResponse!
validateByEmail(input: ValidateByEmailInput!): ResetPasswordResponse!
getSecurityQuestions(emailId: String!): GetSecurityQuestionResponse!
resetPasswordBySecurityQuestions(
input: ResetBySecurityQuestions!
): ResetBySecurityQuestionsResponse!
updateProfile(input: UpdateProfileInput!): RegistrationResponse!
updatePassword(input: UpdatePasswordParams!): UpdatePasswordResponse!
addAddressToProfile(input: AddAddressInput!): ShippingAddressResponse
removeAddressFromProfile(
input: RemoveAddressInput!
): ShippingAddressResponse
updateShippingAddress(input: UpdateShippingInput!): ShippingAddressResponse
defaultShippingAddress(input: UpdateShippingInput!): ShippingAddressResponse
resetBySms(email: String!): ResetPasswordResponse!
twitterAuthToken: TwitterAuthTokenResponse!
addCard(serialized: AddCardInput!, email: String!): AddCardResponse!
deleteCard(params: DeleteCardInput!): DeleteCardResponse!
changeDefaultCard(
defaultPaymentParams: String!
messageCampaignId: String!
): ChangeDefaultCardResponse!
estimateShipping(estimateinfo: JSON!): JSON!
}
schema {
query: Query
mutation: Mutation
}