Skip to content

GraphQL API Reference

Auto-generated from the Strawberry schema. Do not edit manually.

Schema size: 4668 SDL lines

Queries

  me: UserType
  channelInfo: ChannelInfoType
  staffUsers(offset: Int! = 0, limit: Int! = 25, search: String = null, sortBy: String! = "email", sortDir: String! = "asc"): StaffUserListResult!
  roles: [RoleType!]!
  allPermissions: [PermissionType!]!
  oauthProviders(allowedFor: String! = "all"): [OAuthProviderInfo!]!
  oauthProviderConfigs: [OAuthProviderConfigType!]!
  myLinkedProviders: [LinkedProviderType!]!
  myTwoFactorStatus: TwoFactorStatusType!
  channels: [ChannelType!]!
  channel(id: ID!): ChannelType
  account(id: ID!): AccountType!
  accounts(search: String = null, status: Int = null, creditHoldStatus: String = null, customerGroupId: Int = null, taxExempt: Boolean = null, currency: String = null, riskLevel: String = null, tagIds: [Int!] = null, createdFrom: String = null, createdTo: String = null, updatedFrom: String = null, updatedTo: String = null, sortBy: String! = "name", sortDir: String! = "asc", limit: Int! = 25, offset: Int! = 0): AccountListResult!
  customerGroups: [CustomerGroupType!]!
  customerGroup(id: ID!): CustomerGroupType!
  customers(search: String = null, limit: Int! = 50, offset: Int! = 0): [CustomerType!]!
  accountAdminNotes(accountId: Int!, limit: Int! = 50, offset: Int! = 0, includeArchived: Boolean! = false): AccountNoteListResult!
  pendingAddresses(accountId: Int = null, limit: Int! = 50, offset: Int! = 0): PendingAddressListResult!
  locationContacts(locationId: Int!): [LocationContactType!]!
  accountGating(accountId: ID!): AccountGatingType!
  accountStatuses(activeOnly: Boolean! = false): [AccountStatusType!]!
  accountRoles(activeOnly: Boolean! = false): [AccountRoleType!]!
  product(id: ID = null, slug: String = null): ProductType
  products(status: String = null, categoryId: Int = null, brandId: Int = null, search: String = null, tagIds: [Int!] = null, respectCompliance: Boolean! = false, sortBy: String! = "name", sortDir: String! = "asc", limit: Int! = 25, offset: Int! = 0): ProductListResult!
  categories: [CategoryType!]!
  category(id: ID!): CategoryType
  brands(featuredOnly: Boolean! = false): [BrandType!]!
  brand(id: ID!): BrandType
  brandBySlug(slug: String!): BrandType
  attributes: [AttributeType!]!
  traitDefinitions: [TraitDefinitionType!]!
  collections(activeOnly: Boolean! = false): [CollectionType!]!
  quickLinks(productId: Int = null, linkType: String = null, limit: Int! = 100, offset: Int! = 0): [ProductQuickLinkType!]!
  collection(id: ID!): CollectionType
  resolvePrice(variantId: ID!, quantity: Int! = 1, accountId: ID = null, locationId: ID = null, customerGroupId: Int = null): ResolvedPriceType!
  priceList(id: ID!): PriceListType!
  priceLists(channelId: Int = null, enabledOnly: Boolean! = true): [PriceListType!]!
  volumeTiersForVariant(variantId: Int!, channelId: Int = null, accountId: Int = null): [VolumePricingTierType!]!
  exchangeRates(baseCurrency: String = null): [ExchangeRateType!]!
  paymentTerms(enabledOnly: Boolean! = false): [PaymentTermsType!]!
  myCart: CartType
  estimateCartTax(address: TaxEstimateAddressInput!): MoneyType
  cart(id: ID!): CartType
  adminCarts(channelId: Int = null, accountId: Int = null, customerId: Int = null, search: String = null, hasLines: Boolean = null, sortBy: String! = "updated_at", sortDir: String! = "desc", limit: Int! = 25, offset: Int! = 0): AdminCartListResult!
  adminCart(id: ID!): AdminCartType
  cartSnapshots(cartId: ID!, limit: Int! = 50): [CartSnapshotType!]!
  cartValidation(cartId: ID!): [CartValidationIssueType!]!
  cartAuditLog(cartId: ID!, limit: Int! = 50): [CartAuditEntryType!]!
  adminCartShippingRates(cartId: ID!, country: String! = "US", state: String! = "", city: String! = "", postalCode: String! = ""): [AdminShippingRateType!]!
  adminCartTotals(cartId: ID!, shippingCarrier: String = null, shippingMethodCode: String = null, addressCountry: String! = "US", addressState: String! = "", addressCity: String! = "", addressPostalCode: String! = "", acceptedFeeIds: [Int!] = null): CartTotalsType
  order(id: ID = null, orderNumber: String = null): OrderType
  accountCommerceSummary(accountId: Int!, currency: String! = "USD"): AccountCommerceSummaryType!
  orders(accountId: Int = null, status: String = null, fraudStatus: String = null, paymentStatus: String = null, paymentMethod: String = null, approvalStatus: String = null, search: String = null, channelId: Int = null, tagIds: [Int!] = null, dateFrom: String = null, dateTo: String = null, sortBy: String! = "created_at", sortDir: String! = "desc", limit: Int! = 25, offset: Int! = 0): OrderListResult!
  dashboardStats: DashboardStatsType!
  orderAnalytics(accountId: Int = null, status: String = null, fraudStatus: String = null, paymentStatus: String = null, paymentMethod: String = null, approvalStatus: String = null, channelId: Int = null, dateFrom: String = null, dateTo: String = null, search: String = null): OrderAnalyticsType!
  warehouses(search: String = null, activeOnly: Boolean! = false): [WarehouseType!]!
  stockLevels(warehouseId: Int = null, productId: Int = null, search: String = null, sortBy: String! = "sku", sortDir: String! = "asc", limit: Int! = 50, offset: Int! = 0): StockLevelListResult!
  stockLevelsForProduct(productId: Int!, warehouseId: Int = null): [ProductVariantStockType!]!
  stockAdjustmentLog(variantId: Int = null, warehouseId: Int = null, limit: Int! = 50, offset: Int! = 0): StockAdjustmentLogListResult!
  discountRules(enabledOnly: Boolean! = true): [DiscountRuleType!]!
  quotes(accountId: Int = null, status: String = null, limit: Int! = 25, offset: Int! = 0): QuoteListResult!
  quote(id: ID!): QuoteType
  settings(module: String = null): [SettingEntryType!]!
  myProfile: StaffProfileType!
  myPreferences: ResolvedPreferencesType!
  installedExtensions: [InstalledExtensionType!]!
  customFieldDefinitions(entityType: String = null): [CustomFieldDefinitionType!]!
  allExtensions: [CatalogExtensionType!]!
  channelExtensions(channelId: ID!): [ChannelExtensionType!]!
  checkApproval(accountId: Int!, employeeId: Int!, orderTotal: String!, locationId: Int = null): ApprovalCheckType!
  approvalRules(accountId: Int!): [ApprovalRuleType!]!
  approvalRule(ruleId: Int!): ApprovalRuleType
  orderApprovalDecisions(orderId: Int!): [OrderApprovalDecisionType!]!
  auditLog(entityType: String = null, entityId: Int = null, limit: Int! = 50): [AuditEntryType!]!
  complianceRules(enabledOnly: Boolean! = false, channelId: Int = null): [ComplianceRuleType!]!
  complianceRule(id: ID!): ComplianceRuleType
  productCompliance(productId: Int!): ProductComplianceType!
  complianceRulesCount: Int!
  pages(status: String = null): [PageType!]!
  page(slug: String!): PageType
  pageById(id: Int!): PageType
  navigations: [NavigationType!]!
  navigation(slug: String!): NavigationType
  mediaFiles(search: String = null, fileType: String = null, limit: Int! = 50, offset: Int! = 0): MediaFileListResult!
  pageByPreviewToken(token: String!): PageType
  activeTheme(channelId: Int = null): ThemeSettingsType
  themes(channelId: Int = null): [ThemeSettingsType!]!
  themeById(id: Int!): ThemeSettingsType
  shippingZones(channelId: Int = null): [ShippingZoneType!]!
  shippingProviders(channelId: Int = null): [ShippingProviderType!]!
  shippingMethods(providerId: Int = null, zoneId: Int = null): [ShippingMethodType!]!
  shippingBoxes: [ShippingBoxType!]!
  shippingRatesForCheckout(country: String! = "US", state: String! = "", city: String! = "", postalCode: String! = "", accessorials: [String!] = null, rateType: String = null): [ShippingRateType!]!
  shipmentsForOrder(orderId: Int!): [ShipmentType!]!
  giftCards: [GiftCardType!]!
  giftCardBalance(code: String!): GiftCardType
  invoices(accountId: Int = null): [InvoiceType!]!
  agingReport(accountId: Int = null): AgingReportType!
  notificationTemplates: [NotificationTemplateType!]!
  notificationLogs(limit: Int! = 50): [NotificationLogType!]!
  notificationPreferences(userId: Int!): [NotificationPreferenceType!]!
  paymentMethods(channelId: Int = null): [PaymentMethodType!]!
  activePaymentGateways(channelId: Int = null, billingState: String = null, billingCountry: String! = "US", orderTotal: String = null, shippingMethod: String = null): [PaymentMethodType!]!
  paymentMethod(id: ID!): PaymentMethodType
  paymentTransactions(orderId: Int!): [PaymentTransactionType!]!
  recurringOrders(accountId: Int = null): [RecurringOrderType!]!
  savedReports: [SavedReportType!]!
  revenueByDay(dateFrom: String = null, dateTo: String = null, channelId: Int = null): [DailyRevenuePoint!]!
  topProductsByRevenue(dateFrom: String = null, dateTo: String = null, limit: Int! = 10): [ProductSalesPoint!]!
  topCustomersBySpend(dateFrom: String = null, dateTo: String = null, limit: Int! = 10): [CustomerSpendPoint!]!
  orderStatusBreakdown(dateFrom: String = null, dateTo: String = null): [StatusCountPoint!]!
  returns(accountId: Int = null, status: String = null, limit: Int! = 50, offset: Int! = 0): ReturnsListType!
  returnById(id: Int!): ReturnType
  returnReasons(enabledOnly: Boolean! = true): [ReturnReasonType!]!
  returnEligibility(orderId: Int!, accountId: Int = null): EligibilityResultType!
  returnableLines(orderId: Int!): [ReturnableLineType!]!
  returnRotatedStockWarnings(returnId: Int!): [RotatedStockWarningType!]!
  returnFrequency(accountId: Int!, variantId: Int = null): ReturnFrequencyType!
  returnPdf(returnId: Int!): String
  rmaSettings: RmaSettingsType!
  salesReps: [SalesRepType!]!
  salesPipeline(repId: Int!): PipelineSummaryType!
  searchEngineConfig: SearchEngineConfigType!
  searchSynonyms: [SearchSynonymType!]!
  searchAnalytics(limit: Int! = 50): [SearchAnalyticsType!]!
  storefrontSearchConfig: StorefrontSearchConfigType!
  adminFederatedSearch(query: String!, limitPerEntity: Int! = 5): FederatedSearchResult!
  storeCreditBalance(accountId: Int = null, customerId: Int = null, locationId: Int = null): StoreCreditBalanceType!
  storeCreditSummary(accountId: Int = null, customerId: Int = null): StoreCreditSummaryType!
  myStoreCredit: StoreCreditBalanceType!
  tags: [TagType!]!
  tagsForEntity(entityType: String!, entityId: Int!): [TagType!]!
  tagsForEntityType(entityType: String!): [TagType!]!
  taxCategories: [TaxCategoryType!]!
  taxRates(countryId: Int = null, regionId: Int = null, taxType: String = null, enabledOnly: Boolean! = true): [TaxRateType!]!
  countries(enabledOnly: Boolean! = true): [CountryType!]!
  regions(countryId: Int = null, countryCode: String = null, enabledOnly: Boolean! = true): [RegionType!]!
  counties(regionId: Int = null, regionIsoCode: String = null, enabledOnly: Boolean! = true): [CountyType!]!
  cities(regionId: Int = null, countyId: Int = null, search: String = null, limit: Int! = 50, enabledOnly: Boolean! = true): [CityType!]!
  geoUnions: [GeoUnionType!]!
  geolocateIp(ip: String!): IpGeolocationResultType
  geolite2Status: GeoLite2StatusType!
  myIpGeolocation: IpGeolocationResultType
  geocodeAddress(address: String!, countryHint: String! = ""): [GeocodedAddressType!]!
  validateAddress(input: ValidateAddressInput!): ValidatedAddressType!
  geolocationProviders: [GeolocationProviderType!]!
  savedPaymentMethods(accountId: Int = null, locationId: Int = null, gateway: String = null): [SavedPaymentMethodType!]!
  savedPaymentMethod(id: ID!): SavedPaymentMethodType
  nmiSavedPaymentMethods(accountId: Int = null, locationId: Int = null, gateway: String = null): [NMISavedPaymentMethodType!]!
  nmiSavedPaymentMethod(id: ID!): NMISavedPaymentMethodType

  """Popup configuration for AgeChecker.Net (null when disabled)"""
  ageCheckerConfig: AgeCheckerPopupConfigType
  exciseiqTaxClasses(activeOnly: Boolean! = true): [ExciseIQTaxClassType!]!
  exciseiqTaxRegions(state: String = null, activeOnly: Boolean! = true): [ExciseIQTaxRegionType!]!
  exciseiqTaxRates(regionId: Int = null, classId: Int = null, activeOnly: Boolean! = true): [ExciseIQTaxRateType!]!
  exciseiqCounties(state: String = null, search: String = null, limit: Int! = 100): [ExciseIQCountyType!]!
  exciseiqSyncLogs(limit: Int! = 20): [ExciseIQSyncLogType!]!
  priority1Status: Priority1ConnectionResult!
  priority1AccessorialPricing(country: String! = "US", state: String! = "", city: String! = "", postalCode: String! = "", originPostalCode: String = null): AccessorialPricingResult!
  shipstationSyncStatus: ShipStationSyncStatusType!
  shippoSyncStatus: ShippoSyncStatusType!
  omnisendTrackingConfig(channelId: ID!): OmnisendTrackingConfigType!
  fraudDashboard: FraudDashboardStats!
  fraudReviewQueue(limit: Int! = 25, offset: Int! = 0): FraudReviewQueueResult!
  fraudRules(channelId: Int = null): [FraudRuleType!]!
  fraudBlocklist(channelId: Int = null, entryType: String = null): [FraudBlocklistEntryType!]!
  customerRiskEvents(customerId: Int = null, accountId: Int = null, limit: Int! = 50): [CustomerRiskEventType!]!
  checkoutAgreements(channelId: ID = null): [CheckoutAgreementType!]!
  allCheckoutAgreements: [CheckoutAgreementType!]!
  orderAgreementAcceptances(orderId: ID!): [OrderAgreementAcceptanceType!]!
  aiProviders: [AIProviderType!]!
  aiPromptTemplates: [AIPromptTemplateType!]!
  importExportHealth: String!
  orderDocuments(orderId: ID!, documentType: String = null): [OrderDocumentType!]!
  fees(channelId: Int = null, activeOnly: Boolean! = false): [FeeType!]!
  fee(id: ID!): FeeType
  cartFees(cartId: Int!): [CartFeeType!]!
  claimReasons(activeOnly: Boolean! = false): [ClaimReasonType!]!
  claim(id: ID!): ClaimType
  claims(orderId: Int = null, customerId: Int = null, status: String = null, search: String = null, sortBy: String! = "created_at", sortDir: String! = "desc", limit: Int! = 25, offset: Int! = 0): ClaimListResult!
  orderFees(orderId: Int!): [OrderFeeType!]!
  availableFees(cartId: Int!, channelId: Int!, shippingAddressId: Int = null): [AvailableFeeType!]!
  registrationForms(activeOnly: Boolean! = false, channelId: ID = null): [RegistrationFormType!]!
  registrationForm(id: ID = null, slug: String = null): RegistrationFormType
  registrationRules(activeOnly: Boolean! = false): [RegistrationRuleType!]!
  documentTypes(activeOnly: Boolean! = false): [DocumentTypeType!]!
  agreementTemplates(activeOnly: Boolean! = false, formId: ID = null): [AgreementTemplateType!]!
  invitationCodes(activeOnly: Boolean! = false): [InvitationCodeType!]!
  registrationSubmissions(status: String = null, formId: ID = null, limit: Int! = 50, offset: Int! = 0): SubmissionListResult!
  registrationSubmission(id: ID!): RegistrationSubmissionType
  evaluateRegistrationRules(country: String = null, state: String = null, county: String = null, city: String = null, postalCode: String = null, formId: ID = null): RulesEvaluationType!
  accountDocuments(accountId: ID!): [DocumentUploadType!]!
  documentStorageSettings: DocumentStorageSettingsType!
  myLocationDocuments(locationId: Int!): [DocumentUploadType!]!
  pendingDocumentRenewals(accountId: Int = null, limit: Int! = 50, offset: Int! = 0): [DocumentUploadType!]!
  expiringDocuments(daysAhead: Int! = 30): [DocumentUploadType!]!
  passwordPolicy: PasswordPolicyType!
  chatSettings: ChatSettingsType!
  chatOrderStatus(orderNumber: String!, email: String = null): OrderStatusType!
  banners(activeOnly: Boolean! = false): [BannerType!]!
  banner(id: ID!): BannerType
  bannersByPlacement(placementType: String!, entitySlug: String = null): [BannerType!]!
  sliders(activeOnly: Boolean! = false): [SliderType!]!
  slider(id: ID!): SliderType
  trackingAnalytics(entityType: String!, entityId: Int = null, dateFrom: DateTime = null, dateTo: DateTime = null): TrackingAnalyticsType!
  trackingEvents(entityType: String = null, entityId: Int = null, dateFrom: DateTime = null, dateTo: DateTime = null, limit: Int! = 100, offset: Int! = 0): [TrackingEventType!]!
  emailCampaigns(statusFilter: String = null): [EmailCampaignType!]!
  emailCampaign(id: ID!): EmailCampaignType
  recentlyViewedProducts(limit: Int! = 10): [ProductType!]!
  myRestockSubscriptions: [RestockSubscriptionType!]!
  health: String!
  apiVersion: String!
}

Mutations

  login(input: LoginInput!): AuthResultType!
  refreshToken(refreshToken: String!): RefreshResultType!
  loginAsEmployee(employeeId: ID!): ImpersonationResultType!
  stopImpersonating: Boolean!
  createStaffUser(input: CreateStaffUserInput!): StaffUserResult!
  updateStaffUser(userId: ID!, input: UpdateStaffUserInput!): StaffUserResult!
  requestPasswordReset(email: String!, baseUrl: String!): PasswordResetResultType!
  resetPassword(token: String!, newPassword: String!): PasswordResetResultType!
  createRole(input: CreateRoleInput!): RoleResult!
  updateRole(roleId: ID!, input: UpdateRoleInput!): RoleResult!
  deleteRole(roleId: ID!): RoleResult!
  oauthAuthorize(provider: String!, redirectUri: String!): OAuthAuthorizeResult!
  oauthCallback(provider: String!, code: String!, redirectUri: String!, userType: String! = "customer"): OAuthCallbackResult!
  oauthUnlink(provider: String!): OAuthMutationResult!
  saveOauthProviderConfig(input: OAuthProviderConfigInput!): OAuthMutationResult!
  deleteOauthProviderConfig(provider: String!): OAuthMutationResult!
  setupTotp: TwoFactorSetupResult!
  activateTotp(code: String!): TwoFactorVerifyResult!
  disableTwoFactor: TwoFactorVerifyResult!
  regenerateBackupCodes: TwoFactorVerifyResult!
  sendEmailOtp(twofaToken: String!): TwoFactorVerifyResult!
  sendSmsOtp(twofaToken: String!, phone: String!): TwoFactorVerifyResult!
  verifyTwoFactorLogin(twofaToken: String!, code: String!, method: String!): AuthResultType!
  createChannel(input: CreateChannelInput!): ChannelType!
  updateChannel(input: UpdateChannelInput!): ChannelType!
  deleteChannel(id: ID!): Boolean!
  duplicateChannelSettings(sourceChannelId: ID!, targetChannelId: ID!, includePayments: Boolean! = true, includeShipping: Boolean! = true): ChannelType!
  createAccount(input: CreateAccountInput!): AccountType!
  setAccountStatus(accountId: ID!, status: Int!): AccountType!
  updateAccount(accountId: ID!, input: UpdateAccountInput!): AccountType!
  createLocation(input: CreateLocationInput!): LocationType!
  createEmployee(input: CreateEmployeeInput!): EmployeeType!
  register(input: RegisterInput!): AccountType!
  createAddress(input: CreateAddressInput!): AddressType!
  addAccountAdminNote(accountId: Int!, body: String!, attachments: JSON = null): AccountNoteType!
  updateAccountAdminNote(noteId: Int!, body: String = null, attachments: JSON = null): AccountNoteType!
  archiveAccountAdminNote(noteId: Int!): AccountNoteType!
  createCustomerGroup(input: CreateCustomerGroupInput!): CustomerGroupType
  updateCustomerGroup(id: ID!, input: UpdateCustomerGroupInput!): CustomerGroupType
  deleteCustomerGroup(id: ID!): Boolean!
  createAccountStatus(input: CreateAccountStatusInput!): AccountStatusType!
  updateAccountStatus(id: ID!, input: UpdateAccountStatusInput!): AccountStatusType!
  deleteAccountStatus(id: ID!): Boolean!
  createAccountRole(input: CreateAccountRoleInput!): AccountRoleType!
  updateAccountRole(id: ID!, input: UpdateAccountRoleInput!): AccountRoleType!
  deleteAccountRole(id: ID!): Boolean!
  approveAddress(addressId: Int!): AddressType!
  rejectAddress(addressId: Int!): AddressType!
  createMyAddress(input: CreateAddressInput!): AddressType!
  updateMyAddress(addressId: Int!, input: UpdateAddressInput!): AddressType!
  updateEmployeeContactRoles(employeeId: Int!, contactRoles: [String!]!): EmployeeType!
  updateLocationContactRoles(employeeId: Int!, locationId: Int!, contactRoles: [String!]!): EmployeeLocationAssignmentType!
  updateMyProfile(input: UpdateMyProfileInput!): EmployeeType!
  changeMyPassword(currentPassword: String!, newPassword: String!): Boolean!
  registerCustomer(input: CustomerRegisterInput!): CustomerType!
  createProduct(input: CreateProductInput!): ProductType!
  updateProduct(input: UpdateProductInput!): ProductType!
  deleteProduct(id: ID!): Boolean!
  createVariant(input: CreateVariantInput!): ProductVariantType!
  updateVariant(input: UpdateVariantInput!): ProductVariantType!
  deleteVariant(id: ID!): Boolean!
  generateVariants(input: GenerateVariantsInput!): [ProductVariantType!]!
  createAttribute(input: CreateAttributeInput!): AttributeType!
  updateAttribute(input: UpdateAttributeInput!): AttributeType!
  deleteAttribute(id: ID!): Boolean!
  createAttributeOption(input: CreateAttributeOptionInput!): AttributeOptionType!
  updateAttributeOption(input: UpdateAttributeOptionInput!): AttributeOptionType!
  deleteAttributeOption(id: ID!): Boolean!
  setProductAttributes(productId: ID!, attributeIds: [ID!]!): Boolean!
  createTraitDefinition(input: CreateTraitDefinitionInput!): TraitDefinitionType!
  updateTraitDefinition(input: UpdateTraitDefinitionInput!): TraitDefinitionType!
  deleteTraitDefinition(id: ID!): Boolean!
  addTraitValue(definitionId: ID!, value: String!): TraitValueType!
  deleteTraitValue(id: ID!): Boolean!
  setProductTraits(productId: ID!, assignments: [TraitAssignmentInput!]!): Boolean!
  addProductImage(input: AddProductImageInput!): ProductImageType!
  setPrimaryImage(imageId: ID!): Boolean!
  deleteProductImage(id: ID!): Boolean!
  reorderProductImages(imageIds: [ID!]!): Boolean!
  createCollection(input: CreateCollectionInput!): CollectionType!
  updateCollection(input: UpdateCollectionInput!): CollectionType!
  deleteCollection(id: ID!): Boolean!
  setCollectionProducts(input: SetCollectionProductsInput!): Boolean!
  createCategory(input: CreateCategoryInput!): CategoryType!
  updateCategory(input: UpdateCategoryInput!): CategoryType!
  deleteCategory(id: ID!, reassignParentId: Int = null): Boolean!
  createBrand(input: CreateBrandInput!): BrandType!
  updateBrand(input: UpdateBrandInput!): BrandType!
  deleteBrand(id: ID!): Boolean!
  upsertProductMeta(input: UpsertProductMetaInput!): ProductMetaType!
  deleteProductMeta(id: ID!): Boolean!
  createQuickLink(input: CreateQuickLinkInput!): ProductQuickLinkType!
  updateQuickLink(input: UpdateQuickLinkInput!): ProductQuickLinkType!
  deleteQuickLink(id: ID!): Boolean!
  reorderQuickLinks(productId: ID!, linkIds: [ID!]!): [ProductQuickLinkType!]!
  suggestRelatedProducts(productId: ID!): [ProductType!]!
  updateVariationGridSettings(input: UpdateVariationGridSettingsInput!): ProductType!
  createPriceList(input: CreatePriceListInput!): PriceListType!
  createVolumeTier(priceListEntryId: ID!, minQuantity: Int!, price: String!, maxQuantity: Int = null): VolumePricingTierType!
  updateVolumeTier(id: ID!, minQuantity: Int!, price: String!, maxQuantity: Int = null): VolumePricingTierType!
  deleteVolumeTier(id: ID!): Boolean!
  setAccountPrice(input: SetAccountPriceInput!): Boolean!
  setLocationPrice(input: SetLocationPriceInput!): Boolean!
  setExchangeRate(input: SetExchangeRateInput!): ExchangeRateType!
  convertPriceList(input: ConvertPriceListInput!): ConversionResultType!
  createPaymentTerms(input: CreatePaymentTermsInput!): PaymentTermsType!
  updatePaymentTerms(id: ID!, input: UpdatePaymentTermsInput!): PaymentTermsType!
  deletePaymentTerms(id: ID!): Boolean!
  addToCart(input: AddToCartInput!): CartType!
  bulkAddToCart(input: BulkAddToCartInput!): BulkAddToCartResult!
  updateCartLine(cartId: ID!, lineId: ID!, quantity: Int!): CartType!
  applyCoupon(code: String!): CartType!
  removeCoupon(code: String!): CartType!
  removeCartLine(lineId: ID!): CartType!
  adminCreateCart(channelId: Int!, accountId: Int = null, locationId: Int = null, employeeId: Int = null, customerId: Int = null, currency: String! = "USD"): AdminCartType!
  adminAddCartLine(cartId: ID!, variantId: ID!, quantity: Int!, managedPrice: String = null): AdminCartType!
  adminUpdateCartLine(cartId: ID!, lineId: ID!, quantity: Int!): AdminCartType!
  adminRemoveCartLine(cartId: ID!, lineId: ID!): AdminCartType!
  adminSetManagedPrice(cartId: ID!, lineId: ID!, price: String = null): AdminCartType!
  adminApplyCoupon(cartId: ID!, code: String!): AdminCartType!
  adminRemoveCoupon(cartId: ID!, code: String!): AdminCartType!
  adminSetCartAddresses(cartId: ID!, shippingAddressId: Int = null, billingAddressId: Int = null): AdminCartType!
  adminSetCartNotes(cartId: ID!, notes: String!): AdminCartType!
  adminSetLineNotes(cartId: ID!, lineId: ID!, notes: String!): AdminCartType!
  adminLockCart(cartId: ID!): AdminCartType!
  adminUnlockCart(cartId: ID!): AdminCartType!
  acquireCartLock(cartId: ID!): AdminCartType!
  releaseCartLock(cartId: ID!): AdminCartType!
  renewCartLock(cartId: ID!): AdminCartType!
  adminRestoreCartSnapshot(cartId: ID!, snapshotId: ID!): AdminCartType!
  adminCheckoutCart(input: AdminCheckoutInput!): OrderType!
  adminReleaseCart(cartId: ID!, targetEmployeeId: Int = null, targetLocationId: Int = null, targetAccountId: Int = null, targetCustomerId: Int = null): CartReleaseSummaryType!
  checkout(input: CheckoutInput!): OrderType!
  updateOrderStatus(orderId: ID!, status: String!): OrderType!
  modifyOrder(orderId: ID!, addLines: [JSON!] = null, removeLineIds: [Int!] = null, updateLines: [JSON!] = null): OrderType!
  adminCreateOrder(accountId: Int!, channelId: Int!, lineItems: [JSON!]!, locationId: Int = null, email: String = null, poNumber: String = null, currency: String! = "USD", billingAddress: AddressInput = null, shippingAddress: AddressInput = null, shippingMethod: String = null, shippingTotal: String = null, notes: String = null, savedPaymentMethodId: Int = null, paymentMethod: String = null, paymentData: JSON = null, captureMode: String = null): OrderType!
  reorderFromOrder(orderId: ID!, asAccountId: Int = null): CartType!
  updateSetting(key: String!, value: String!, settingType: String! = "string", module: String! = "general"): SettingEntryType!
  updateMyStaffProfile(input: UpdateStaffProfileInput!): StaffProfileResult!
  changeMyStaffPassword(currentPassword: String!, newPassword: String!): StaffProfileResult!
  toggleChannelExtension(input: ToggleChannelExtensionInput!): ChannelExtensionType!
  createApprovalRule(input: CreateApprovalRuleInput!): ApprovalRuleMutationResult!
  updateApprovalRule(ruleId: Int!, input: UpdateApprovalRuleInput!): ApprovalRuleMutationResult!
  deleteApprovalRule(ruleId: Int!): ApprovalRuleMutationResult!
  approveOrder(orderId: Int!): ApprovalResultType!
  rejectOrder(orderId: Int!, reason: String! = ""): ApprovalResultType!
  createComplianceRule(input: ComplianceRuleInput!): ComplianceRuleType!
  updateComplianceRule(id: ID!, input: ComplianceRuleUpdateInput!): ComplianceRuleType
  deleteComplianceRule(id: ID!): Boolean!
  rebuildComplianceCache: Int!
  createPage(title: String!, slug: String!, status: String! = "draft", template: String = null, seoTitle: String = null, seoDescription: String = null): PageType!
  updatePage(id: ID!, title: String = null, slug: String = null, status: String = null, template: String = null, seoTitle: String, seoDescription: String, sortOrder: Int = null): PageType!
  updatePageBlocks(pageId: Int!, blocks: JSON!): PageType!
  deletePage(id: ID!): Boolean!
  createPreviewToken(pageId: Int!): String!
  schedulePage(id: ID!, publishAt: String!): PageType!
  createNavigation(name: String!, slug: String!, channelId: ID = null): NavigationType!
  updateNavigation(id: ID!, name: String = null, slug: String = null): NavigationType!
  updateNavigationItems(id: ID!, items: JSON!): NavigationType!
  deleteNavigation(id: ID!): Boolean!
  updateThemeSettings(id: ID!, name: String = null, colorPrimary: String = null, colorPrimaryHover: String = null, colorSecondary: String = null, colorAccent: String = null, colorSurface: String = null, colorSurfaceAlt: String = null, colorText: String = null, colorTextMuted: String = null, colorSuccess: String = null, colorWarning: String = null, colorDanger: String = null, logoUrl: String, fontFamily: String = null, headerVariant: String = null, footerVariant: String = null, radius: String = null, customCssUrl: String): ThemeSettingsType!
  activateTheme(id: ID!): ThemeSettingsType!
  createTheme(name: String!, slug: String!, channelId: ID = null): ThemeSettingsType!
  deleteTheme(id: ID!): Boolean!
  createMediaFile(fileName: String!, fileUrl: String!, fileType: String!, fileSize: Int! = 0, altText: String = null): MediaFileType!
  deleteMediaFile(id: ID!): Boolean!
  createShippingZone(name: String!, countries: JSON = null, states: JSON = null, zipRanges: JSON = null, channelId: Int = null, enabled: Boolean! = true): ShippingZoneType!
  updateShippingZone(id: ID!, name: String = null, countries: JSON = null, states: JSON = null, zipRanges: JSON = null, enabled: Boolean = null, methodIds: [Int!]): ShippingZoneType
  deleteShippingZone(id: ID!): Boolean!
  setZoneMethods(zoneId: Int!, methodIds: [Int!]!): ShippingZoneType
  createShippingProvider(name: String!, carrierCode: String!, enabled: Boolean! = true, config: JSON = null, packingConfig: JSON = null, channelIds: [Int!] = null): ShippingProviderType!
  updateShippingProvider(id: ID!, name: String = null, carrierCode: String = null, enabled: Boolean = null, config: JSON = null, packingConfig: JSON = null, channelIds: [Int!]): ShippingProviderType
  deleteShippingProvider(id: ID!): Boolean!
  createShippingMethod(providerId: Int!, name: String!, code: String!, flatRate: String = null, freeShippingThreshold: String = null, rateAdjustmentAmount: String = null, rateAdjustmentPercent: String = null, minWeight: String = null, maxWeight: String = null, estimatedDaysMin: Int = null, estimatedDaysMax: Int = null, enabled: Boolean! = true): ShippingMethodType!
  updateShippingMethod(id: ID!, name: String = null, code: String = null, flatRate: String, freeShippingThreshold: String, rateAdjustmentAmount: String, rateAdjustmentPercent: String, minWeight: String, maxWeight: String, estimatedDaysMin: Int, estimatedDaysMax: Int, enabled: Boolean = null): ShippingMethodType
  deleteShippingMethod(id: ID!): Boolean!
  createShippingBox(name: String!, length: String!, width: String!, height: String!, maxWeight: String!, tareWeight: String! = "0", enabled: Boolean! = true, boxType: String! = "standard", materialCost: String = null, innerLength: String = null, innerWidth: String = null, innerHeight: String = null, providerIds: [Int!] = null, methodIds: [Int!] = null): ShippingBoxType!
  updateShippingBox(id: ID!, name: String = null, length: String = null, width: String = null, height: String = null, maxWeight: String = null, tareWeight: String = null, enabled: Boolean = null, boxType: String = null, materialCost: String, innerLength: String, innerWidth: String, innerHeight: String, providerIds: [Int!], methodIds: [Int!]): ShippingBoxType
  deleteShippingBox(id: ID!): Boolean!
  createShipment(orderId: Int!, carrier: String!, methodCode: String!, fulfillmentMode: String! = "by_order"): ShipmentType!
  shipShipment(shipmentId: Int!): ShipmentType!
  deliverShipment(shipmentId: Int!): ShipmentType!
  createGiftCard(amount: String!, recipientEmail: String = null, recipientName: String = null, message: String = null): GiftCardType!
  redeemGiftCard(code: String!, accountId: Int = null, customerId: Int = null, userId: Int = null, amount: String = null): GiftCardType!
  createInvoice(orderId: Int!, accountId: Int!, paymentTermsId: Int!, amount: String!, netDays: Int!): InvoiceType!
  registerNotificationTemplate(code: String!, name: String!, module: String!, subjectTemplate: String!, bodyTemplate: String!): NotificationTemplateType!
  updateNotificationTemplate(code: String!, subjectTemplate: String, bodyTemplate: String, enabled: Boolean): NotificationTemplateType!
  updateNotificationPreference(userId: Int!, category: String!, emailEnabled: Boolean, pushEnabled: Boolean, inAppEnabled: Boolean): NotificationPreferenceType!
  sendNotification(templateCode: String!, recipientEmail: String!, variables: JSON = null): NotificationLogType!
  subscribeToRestock(variantId: Int!, email: String = null): RestockSubscriptionType!
  subscribeRestock(variantId: ID!, email: String = null): RestockSubscriptionType!
  unsubscribeFromRestock(id: Int!): Boolean!
  createPaymentMethod(name: String!, code: String!, gateway: String!, enabled: Boolean! = true, config: JSON = null, channelId: Int = null): PaymentMethodType!
  updatePaymentMethod(id: ID!, name: String = null, enabled: Boolean = null, config: JSON = null, channelId: Int): PaymentMethodType
  deletePaymentMethod(id: ID!): Boolean!
  processPayment(orderId: Int!, paymentMethodCode: String!, amount: String!, currency: String! = "USD"): PaymentTransactionType!
  confirmPayment(orderId: Int!, method: String!, reference: String!, amount: String!, currency: String! = "USD"): PaymentTransactionType!
  toggleRecurringSkip(recurringId: Int!): RecurringOrderType!
  cancelRecurringOrder(recurringId: Int!): RecurringOrderType!
  pauseRecurringOrder(recurringId: Int!): RecurringOrderType!
  resumeRecurringOrder(recurringId: Int!): RecurringOrderType!
  createRecurringOrder(input: CreateRecurringOrderInput!): RecurringOrderType!
  updateRecurringOrder(recurringId: Int!, input: UpdateRecurringOrderInput!): RecurringOrderType!
  createSavedReport(name: String!, reportType: String!, config: JSON = null, isPublic: Boolean! = false): SavedReportType!
  runReport(reportId: Int!): JSON!
  exportReport(reportId: Int!, format: String! = "csv"): String!
  createScheduledReport(savedReportId: Int!, schedule: String!, recipients: [String!]!, format: String! = "csv"): ScheduledReportType!
  updateScheduledReport(id: Int!, schedule: String = null, enabled: Boolean = null): ScheduledReportType!
  createReturn(orderId: Int!, accountId: Int!, employeeId: Int!, refundMethod: String! = "store_credit", channelId: Int = null, customerId: Int = null): ReturnType!
  addReturnLine(returnId: Int!, orderLineId: Int!, variantId: Int!, quantity: Int!, reasonId: Int = null, notes: String = null): ReturnLineType!
  submitReturn(returnId: Int!): ReturnType!
  processReturn(returnId: Int!, lineDecisions: [LineDecisionInput!]!, reviewerId: Int!, staffNotes: String = null): ReturnType!
  transitionReturnStatus(returnId: Int!, toStatus: String!, userId: Int!): ReturnType!
  approveReturnLine(lineId: Int!, approved: Boolean!, reviewerId: Int!, qtyApproved: Int = null, explanation: String = null): ReturnLineType!
  addReturnNote(returnId: Int!, content: String!, userId: Int = null, userType: String! = "staff"): ReturnNoteType!
  updateRmaSettings(settings: RmaSettingsInput!): RmaSettingsType!
  updateAccountReturnPolicy(accountId: Int!, returnsBlocked: Boolean = null, returnWindowOverrideDays: Int): Boolean!
  createSalesRep(userId: Int!, name: String!, email: String!): SalesRepType!
  assignSalesRep(accountId: Int!, repId: Int!): Boolean!
  createSearchSynonym(word: String!, synonyms: [String!]!): SearchSynonymType!
  reindexProducts: Int!
  reindexAdminSearch: Int!
  trackSearchEvent(query: String!, resultsCount: Int! = 0, clickedResultId: Int = null): Boolean!
  issueStoreCredit(amount: String!, reason: String!, accountId: Int = null, customerId: Int = null, notes: String = null, locationId: Int = null): StoreCreditBalanceType!
  cancelStoreCredit(transactionId: Int!, reason: String!): StoreCreditBalanceType!
  createTag(input: CreateTagInput!): TagType!
  updateTag(id: ID!, input: UpdateTagInput!): TagType!
  deleteTag(id: ID!): Boolean!
  assignTag(input: AssignTagInput!): TagAssignmentType!
  unassignTag(tagId: Int!, entityType: String!, entityId: Int!): Boolean!
  createTaxCategory(name: String!, code: String!, description: String = null, isDefault: Boolean! = false): TaxCategoryType!
  createTaxRate(input: CreateTaxRateInput!): TaxRateType!
  updateTaxRate(input: UpdateTaxRateInput!): TaxRateType!
  deleteTaxRate(id: ID!): Boolean!
  toggleCountry(id: ID!, enabled: Boolean!): CountryType!
  toggleRegion(id: ID!, enabled: Boolean!): RegionType!
  createCountry(name: String!, isoAlpha2: String!, isoAlpha3: String!, isoNumeric: String!, currencyCode: String = null): CountryType!
  createRegion(countryId: Int!, name: String!, isoCode: String!, type: String! = "state"): RegionType!
  createCounty(regionId: Int!, name: String!, fipsCode: String = null, code: String = null): CountyType!
  createCity(regionId: Int!, name: String!, countyId: Int = null, ansiCode: String = null): CityType!
  createGeoUnion(name: String!, code: String!): GeoUnionType!
  addCountryToUnion(unionId: Int!, countryId: Int!): Boolean!
  removeCountryFromUnion(unionId: Int!, countryId: Int!): Boolean!
  configureChannelGeocoding(channelId: ID!, geocodingEnabled: Boolean = null, ipGeolocationProvider: String = null, addressGeocodingProvider: String = null, addressValidationProvider: String = null, addressValidationMode: String = null, addressValidationRules: JSON = null): Boolean!
  saveGeolite2Credentials(accountId: String!, licenseKey: String!): Boolean!
  importGeoipConf(content: String!): GeoLite2DownloadResultType!
  downloadGeolite2Database: GeoLite2DownloadResultType!
  addPaymentMethod(opaqueDataDescriptor: String!, opaqueDataValue: String!, cardholderName: String! = "", nickname: String! = "", billingAddress: BillingAddressInput = null, setDefault: Boolean! = false, currency: String! = "USD", locationId: Int = null): AddPaymentMethodResult!
  deleteMyPaymentMethod(id: ID!): Boolean!
  setDefaultPaymentMethod(id: ID!): Boolean!
  adminChargeSavedCard(savedPaymentMethodId: ID!, amount: String!, currency: String! = "USD", orderId: Int = null, description: String! = ""): TransactionResultType!
  adminCaptureTransaction(transactionId: String!, amount: String!): TransactionResultType!
  adminVoidTransaction(transactionId: String!): TransactionResultType!
  adminRefundTransaction(transactionId: String!, amount: String!, lastFour: String! = "0000"): TransactionResultType!
  adminReleaseFraudHold(orderId: Int!, transactionId: String!): TransactionResultType!
  adminTestGatewayConnection(paymentMethodId: ID = null): TransactionResultType!
  nmiAddPaymentMethod(paymentToken: String!, cardholderName: String! = "", nickname: String! = "", cardBrand: String! = "unknown", lastFour: String! = "0000", expMonth: Int! = 0, expYear: Int! = 0, billingAddress: NMIBillingAddressInput = null, setDefault: Boolean! = false, currency: String! = "USD", locationId: Int = null): NMIAddPaymentMethodResult!
  nmiDeletePaymentMethod(id: ID!): Boolean!
  nmiSetDefaultPaymentMethod(id: ID!): Boolean!
  nmiAdminChargeSavedCard(savedPaymentMethodId: ID!, amount: String!, currency: String! = "USD", orderId: Int = null, description: String! = ""): NMITransactionResultType!
  nmiAdminCaptureTransaction(transactionId: String!, amount: String!): NMITransactionResultType!
  nmiAdminVoidTransaction(transactionId: String!): NMITransactionResultType!
  nmiAdminRefundTransaction(transactionId: String!, amount: String!): NMITransactionResultType!
  nmiAdminTestGatewayConnection(paymentMethodId: ID = null): NMITransactionResultType!

  """Test AgeChecker.Net connection with provided credentials"""
  testAgeCheckerConnection(accountSecret: String!, apiKey: String!, apiBaseUrl: String! = "", sandbox: Boolean! = true): TestConnectionResultType!

  """Seamless age verification using customer data"""
  verifyAge(input: AgeVerifyInput!): AgeVerificationResultType!

  """Validate AgeChecker.Net popup verification token"""
  validateAgeToken(token: String!): AgeVerificationResultType!
  exciseiqTestConnection: ExciseIQTestResult!
  exciseiqTriggerSync: ExciseIQSyncResult!
  exciseiqCalculateTax(address: ExciseIQCalcAddressInput!, items: [ExciseIQCalcItemInput!]!): ExciseIQCalculationResult!
  testPriority1Connection(apiKey: String!, environment: String! = "dev"): Priority1ConnectionResult!
  discoverPriority1Carriers(apiKey: String = null, environment: String = null): Priority1DiscoveryResult!
  testShipstationConnection(apiKey: String!): ShipStationConnectionResult!
  syncOrderToShipstation(orderId: Int!): ShipStationSyncResult!
  triggerShipstationTrackingPoll: ShipStationTrackingPollResult!
  syncShipstationCarriers: ShipStationCarrierSyncResult!
  testShippoConnection(apiToken: String!): ShippoConnectionResult!
  syncOrderToShippo(orderId: Int!): ShippoSyncResult!
  triggerShippoTrackingPoll: ShippoTrackingPollResult!
  validateShippoAddress(addressLine1: String!, cityLocality: String!, stateProvince: String!, postalCode: String!, countryCode: String!, addressLine2: String! = ""): ShippoAddressValidationResult!
  approveFraudReview(orderId: Int!): FraudActionResult!
  declineFraudReview(orderId: Int!, reason: String = null): FraudActionResult!
  createFraudRule(ruleType: String!, name: String!, action: String! = "review", config: JSON = null, channelId: Int = null, priority: Int! = 0): FraudRuleType!
  updateFraudRule(ruleId: Int!, name: String = null, enabled: Boolean = null, action: String = null, config: JSON = null, priority: Int = null): FraudRuleType!
  deleteFraudRule(ruleId: Int!): Boolean!
  addToFraudBlocklist(entryType: String!, value: String!, action: String! = "block", reason: String = null, channelId: Int = null, expiresAt: String = null): FraudBlocklistEntryType!
  removeFromFraudBlocklist(entryId: Int!): Boolean!
  createCheckoutAgreement(input: CheckoutAgreementInput!): CheckoutAgreementType!
  updateCheckoutAgreement(id: ID!, input: CheckoutAgreementInput!): CheckoutAgreementType!
  deleteCheckoutAgreement(id: ID!): Boolean!
  generateAiContent(useCase: String!, context: JSON!, providerName: String = null, maxTokens: Int! = 1024, temperature: Float! = 0.7): AIGenerationResult!
  upsertAiPromptTemplate(useCase: String!, template: String!): AIPromptTemplateType!
  deleteAiPromptTemplate(useCase: String!): Boolean!
  testAiProviderConnection(providerName: String!, apiKey: String!, model: String = null): AIConnectionTestResult!
  startImport(entityType: String!, csvContent: String!): ImportResultType!
  startExport(entityType: String!, filters: JSON = null): ExportResultType!
  createOrderDocument(input: CreateOrderDocumentInput!): OrderDocumentType!
  captureOrderPayment(orderId: ID!, amount: String!): Boolean!
  refundOrderDifference(orderId: ID!, amount: String!, reason: String! = ""): Boolean!
  voidOrderDocument(id: ID!): OrderDocumentType!
  createFee(input: CreateFeeInput!): FeeType!
  updateFee(id: ID!, input: UpdateFeeInput!): FeeType!
  deleteFee(id: ID!): Boolean!
  toggleCartFee(cartId: Int!, feeId: Int!, optedIn: Boolean!): CartFeeType!
  addFeeToCart(cartId: Int!, feeId: Int!, channelId: Int!): CartFeeType!
  removeFeeFromCart(cartId: Int!, feeId: Int!): Boolean!
  createClaimReason(input: CreateClaimReasonInput!): ClaimReasonType!
  updateClaimReason(id: ID!, input: UpdateClaimReasonInput!): ClaimReasonType!
  deleteClaimReason(id: ID!): Boolean!
  fileClaim(input: FileClaimInput!): ClaimType!
  updateClaimStatus(claimId: ID!, status: String!, adminNotes: String = null): ClaimType!
  resolveClaim(claimId: ID!, resolutionType: String! = "store_credit_and_reorder", adminNotes: String = null): ClaimType!
  createWarehouse(input: CreateWarehouseInput!): WarehouseType!
  updateWarehouse(warehouseId: Int!, input: UpdateWarehouseInput!): WarehouseType!
  deactivateWarehouse(warehouseId: Int!): WarehouseType!
  adjustStock(variantId: Int!, warehouseId: Int!, newQuantity: Int!, reason: String! = "manual", notes: String = null): StockLevelType!
  bulkAdjustStock(input: BulkAdjustStockInput!): [StockLevelType!]!
  importInventory(items: [ImportInventoryItemInput!]!, notes: String = null): [StockLevelType!]!
  createRegistrationForm(input: CreateRegistrationFormInput!): RegistrationFormType!
  updateRegistrationForm(id: ID!, input: UpdateRegistrationFormInput!): RegistrationFormType!
  deleteRegistrationForm(id: ID!): Boolean!
  saveFormStructure(formId: ID!, steps: [FormStructureStepInput!]!): RegistrationFormType!
  createRegistrationRule(input: CreateRuleInput!): RegistrationRuleType!
  updateRegistrationRule(id: ID!, input: UpdateRuleInput!): RegistrationRuleType!
  deleteRegistrationRule(id: ID!): Boolean!
  createDocumentType(input: CreateDocumentTypeInput!): DocumentTypeType!
  updateDocumentType(id: ID!, input: UpdateDocumentTypeInput!): DocumentTypeType!
  deleteDocumentType(id: ID!): Boolean!
  createAgreementTemplate(input: CreateAgreementTemplateInput!): AgreementTemplateType!
  updateAgreementTemplate(id: ID!, input: UpdateAgreementTemplateInput!): AgreementTemplateType!
  deleteAgreementTemplate(id: ID!): Boolean!
  createInvitationCode(input: CreateInvitationCodeInput!): InvitationCodeType!
  updateInvitationCode(id: ID!, input: UpdateInvitationCodeInput!): InvitationCodeType!
  deleteInvitationCode(id: ID!): Boolean!
  reviewDocument(input: ReviewDocumentInput!): DocumentUploadType!
  submitRegistration(input: SubmitRegistrationInput!): RegistrationSubmissionType!
  reviewRegistration(input: ReviewSubmissionInput!): RegistrationSubmissionType!
  updateDocumentStorageSettings(primaryStorage: String! = "local", enableCopy: Boolean! = false, secondaryStorage: String! = "", copyBehavior: String! = "all"): DocumentStorageSettingsType!
  updatePasswordPolicy(minLength: Int! = 8, requireUppercase: Boolean! = false, requireLowercase: Boolean! = false, requireNumber: Boolean! = false, requireSpecial: Boolean! = false, maxLength: Int! = 128): PasswordPolicyType!
  uploadLicenseRenewal(locationId: Int!, documentTypeId: Int!, fileUrl: String!, fileName: String!, fileSize: Int = null, expirationDate: String = null): DocumentUploadType!
  approveLicenseRenewal(documentId: Int!, notes: String = null): DocumentUploadType!
  rejectLicenseRenewal(documentId: Int!, notes: String = null): DocumentUploadType!
  sendChatMessage(messages: [ChatMessageInput!]!, imageUrl: String = null, sessionId: String = null): ChatResponse!
  requestLiveAgent(sessionContext: String = null): LiveAgentResultType!
  createBanner(input: BannerInput!): BannerType!
  updateBanner(id: ID!, input: BannerInput!): BannerType
  deleteBanner(id: ID!): Boolean!
  createSlider(input: SliderInput!): SliderType!
  updateSlider(id: ID!, input: SliderInput!): SliderType
  deleteSlider(id: ID!): Boolean!
  addSlide(sliderId: ID!, input: SlideInput!): SlideType!
  updateSlide(id: ID!, input: SlideInput!): SlideType
  removeSlide(id: ID!): Boolean!
  reorderSlides(sliderId: ID!, slideIds: [ID!]!): Boolean!
  trackEvent(eventType: String!, entityType: String!, entityId: Int!, pageUrl: String = null, referrerUrl: String = null): Boolean!
  createEmailCampaign(input: EmailCampaignInput!): EmailCampaignType!
  updateEmailCampaign(id: ID!, input: EmailCampaignInput!): EmailCampaignType
  sendEmailCampaign(id: ID!): EmailCampaignType
  cancelEmailCampaign(id: ID!): EmailCampaignType
  deleteEmailCampaign(id: ID!): Boolean!
  revertQuoteRevision(quoteId: Int!, revisionId: Int!): QuoteType!
  recordProductView(productId: Int!): Boolean!
}

Types

type AIConnectionTestResult {
  success: Boolean!
  message: String!
}
type AIGenerationResult {
  content: String!
  providerUsed: String!
}
type AIPromptTemplateType {
  id: ID!
  useCase: String!
  template: String!
  isBuiltin: Boolean!
}
type AIProviderType {
  name: String!
  displayName: String!
  installed: Boolean!
  healthy: Boolean!
}
type AccessorialPriceType {
  code: String!
  label: String!
  apiCode: String!
  delta: String!
}
type AccessorialPricingResult {
  success: Boolean!
  accessorials: [AccessorialPriceType!]!
  baseRate: String!
  error: String
}
type AccountCommerceSummaryType {
  orderCount: Int!
  revenueTotal: MoneyType!
  averageOrderValue: MoneyType
  lastOrderAt: String
  currency: String!
}
type AccountGatingType {
  canLogin: Boolean!
  canCheckout: Boolean!
  canSeeProducts: Boolean!
}
type AccountListResult {
  accounts: [AccountType!]!
  total: Int!
}
type AccountNoteAttachmentType {
  url: String!
  filename: String!
  contentType: String!
  size: Int!
}
type AccountNoteListResult {
  notes: [AccountNoteType!]!
  total: Int!
}
type AccountNoteType {
  id: ID!
  accountId: ID!
  authorUserId: Int!
  body: String!
  createdAt: String!
  updatedAt: String
  archivedAt: String
  attachments: [AccountNoteAttachmentType!]
}
type AccountRefType {
  id: ID!
  name: String!
  accountStatus: Int!
}
type AccountRoleType {
  id: ID!
  name: String!
  slug: String!
  description: String
  permissions: JSON
  isDefault: Boolean!
  position: Int!
  isActive: Boolean!
}
type AccountStatusType {
  id: ID!
  name: String!
  slug: String!
  description: String
  color: String!
  isDefault: Boolean!
  position: Int!
  isActive: Boolean!
  allowsLogin: Boolean!
  allowsCheckout: Boolean!
  allowsProductVisibility: Boolean!
}
type AccountType {
  id: ID!
  name: String!
  legalName: String
  taxId: String
  accountStatus: Int!
  creditHoldStatus: String!
  currency: String!
  taxExempt: Boolean!
  createdAt: String
  updatedAt: String
  customerGroupId: Int
  customerGroup: CustomerGroupType
  spendingLimit: String
  orderApprovalThreshold: String
  riskLevel: String
  riskScore: String
  riskNotes: String
  packageProtectionEligible: Boolean!
  locations: [LocationType!]!
  employees: [EmployeeType!]!
  tags: [TagType!]!
}
type AddPaymentMethodResult {
  success: Boolean!
  savedPaymentMethod: SavedPaymentMethodType
  error: String
}
type AddressType {
  id: ID!
  locationId: ID
  customerId: ID
  type: String!
  isDefault: Boolean!
  nickname: String
  firstName: String!
  lastName: String!
  company: String
  address1: String!
  address2: String
  city: String!
  state: String!
  postalCode: String!
  county: String
  country: String!
  phone: String
  email: String
  packageProtectionEligible: Boolean!
  approvalStatus: String!
}
type AdminCartLineType {
  id: ID!
  variantId: ID!
  sku: String!
  productName: String!
  variantName: String!
  quantity: Int!
  unitPrice: MoneyType!
  isFree: Boolean!
  managedPrice: MoneyType
  adminNotes: String
  addedAt: String
}
type AdminCartListResult {
  carts: [AdminCartType!]!
  total: Int!
}
type AdminCartType {
  id: ID!
  channelId: ID!
  currency: String!
  version: Int!
  appliedCoupons: [String!]!
  lines: [AdminCartLineType!]!
  customerId: Int
  accountId: Int
  accountName: String
  locationId: Int
  employeeId: Int
  managedBy: Int
  notes: String
  shippingAddressId: Int
  billingAddressId: Int
  createdAt: String
  updatedAt: String
  lineCount: Int!
  subtotal: MoneyType
  lockHeldBy: Int
  lockAcquiredAt: String
  lockExpiresAt: String
}
type AdminShippingRateType {
  carrier: String!
  methodCode: String!
  methodName: String!
  rate: String!
  currency: String!
  estimatedDaysMin: Int
  estimatedDaysMax: Int
}
type AgeCheckerPopupConfigType {
  accountSecret: String!
  sandbox: Boolean!
  minimumAge: Int!
  popupUrl: String!
  mode: String!
  trigger: String!
  checkoutPosition: String!
  hidePlaceOrder: Boolean!
  skipVerifiedCustomers: Boolean!
}
type AgeVerificationResultType {
  verified: Boolean!
  needsPhotoId: Boolean!
  verificationUid: String
  token: String
}
type AgingReportType {
  current: String!
  thirtyDays: String!
  sixtyDays: String!
  ninetyDays: String!
  over120Days: String!
}
type AgreementTemplateType {
  id: ID!
  name: String!
  slug: String!
  content: String!
  version: String!
  isActive: Boolean!
  requiresSignature: Boolean!
  formId: ID
  position: Int!
  createdAt: String
  updatedAt: String
}
type ApprovalCheckType {
  needsApproval: Boolean!
  autoApproved: Boolean!
  ruleId: Int
  approvalMode: String
  minApprovals: Int
  accountId: Int!
  employeeId: Int!
  orderTotal: String!
}
type ApprovalResultType {
  success: Boolean!
  orderId: Int!
  status: String!
}
type ApprovalRuleApproverType {
  id: Int!
  employeeId: Int
  employeeName: String
  role: String
}
type ApprovalRuleEmployeeType {
  id: Int!
  employeeId: Int!
  employeeName: String
}
type ApprovalRuleMutationResult {
  success: Boolean!
  rule: ApprovalRuleType
  error: String
}
type ApprovalRuleType {
  id: Int!
  accountId: Int!
  name: String!
  description: String
  scopeType: String!
  locationId: Int
  locationName: String
  minAmount: String
  maxAmount: String
  action: String!
  approvalMode: String!
  minApprovals: Int!
  priority: Int!
  isActive: Boolean!
  createdBy: Int
  createdAt: String
  updatedAt: String
  approvers: [ApprovalRuleApproverType!]!
  employees: [ApprovalRuleEmployeeType!]!
}
type AttributeOptionType {
  id: ID!
  attributeId: ID!
  label: String!
  slug: String!
  position: Int!
}
type AttributeType {
  id: ID!
  name: String!
  slug: String!
  options: [AttributeOptionType!]!
}
type AuditEntryType {
  id: ID!
  entityType: String!
  entityId: Int!
  action: String!
  userId: Int
  oldValue: JSON!
  newValue: JSON!
  source: String!
  ipAddress: String
  createdAt: String
}
type AuthResultType {
  accessToken: String!
  refreshToken: String!
  user: UserType!
  permissions: [String!]!
  employee: EmployeeRefType
  account: AccountRefType
  customer: CustomerRefType
  locations: [LocationRefType!]!
  requires2fa: Boolean!
  twofaToken: String
}
type AvailableFeeType {
  fee: FeeType!
  calculatedAmount: MoneyType!
  isOnCart: Boolean!
  optedIn: Boolean!
  ineligibleReason: String
}
type AvgOrderValueType {
  date: String!
  avgValue: String!
}
type BannerType {
  id: ID!
  name: String!
  imageUrl: String!
  mobileImageUrl: String
  altText: String
  destinationType: String!
  destinationValue: String!
  placementType: String!
  placementConfig: JSON
  isActive: Boolean!
  startDate: DateTime
  endDate: DateTime
  channelId: Int
  embedCode: String
  createdAt: DateTime!
  updatedAt: DateTime!
}
type BrandType {
  id: ID!
  name: String!
  slug: String!
  description: String
  logo: String
  bannerImage: String
  featured: Boolean!
}
type BreakdownType {
  label: String!
  count: Int!
}
type BulkAddToCartResult {
  cart: CartType!
  addedCount: Int!
  addedQuantity: Int!
  variantCartQuantities: JSON!
}
type CartAuditEntryType {
  id: ID!
  action: String!
  userId: Int
  newValue: JSON
  source: String!
  createdAt: String!
}
type CartFeeType {
  id: ID!
  feeId: Int!
  fee: FeeType!
  calculatedAmount: MoneyType!
  optedIn: Boolean!
}
type CartLineComplianceType {
  canPurchase: Boolean!
  showPrice: Boolean!
  hideQuantity: Boolean!
  hideAddToCartButton: Boolean!
  preventCheckout: Boolean!
  warnOnly: Boolean!
  messageCartInline: String
}
type CartLineDiffType {
  variantId: Int!
  sku: String!
  productName: String!
  oldQuantity: Int
  newQuantity: Int
  oldPrice: String
  newPrice: String
  changeType: String!
}
type CartLineType {
  id: ID!
  variantId: ID!
  sku: String!
  productName: String!
  variantName: String!
  quantity: Int!
  unitPrice: MoneyType!
  isFree: Boolean!
  managedPrice: MoneyType
  compliance: CartLineComplianceType
}
type CartReleaseSummaryType {
  targetCartId: ID!
  snapshotId: ID!
  itemsAdded: [CartLineDiffType!]!
  itemsRemoved: [CartLineDiffType!]!
  itemsChanged: [CartLineDiffType!]!
}
type CartSnapshotType {
  id: ID!
  triggeredBy: String!
  actorType: String!
  actorId: Int
  description: String!
  createdAt: String!
  lineCount: Int!
  couponCount: Int!
  version: Int!
}
type CartTotalsType {
  subtotal: MoneyType!
  discountTotal: MoneyType!
  shippingTotal: MoneyType!
  feeTotal: MoneyType!
  taxTotal: MoneyType!
  grandTotal: MoneyType!
  appliedCoupons: [String!]!
  shippingMethod: String
}

Inputs

input AddProductImageInput {
  productId: ID!
  url: String!
  variantId: ID = null
  altText: String = null
  position: Int! = 0
  isPrimary: Boolean! = false
}
input AddToCartInput {
  variantId: ID!
  quantity: Int!
}
input AddressInput {
  line1: String!
  line2: String = null
  city: String! = ""
  state: String! = ""
  postalCode: String! = ""
  country: String! = "US"
}
input AdjustStockInput {
  variantId: Int!
  warehouseId: Int!
  newQuantity: Int!
}
input AdminCheckoutInput {
  cartId: ID!
  shippingAddressLine1: String = null
  shippingAddressLine2: String = null
  shippingAddressCity: String = null
  shippingAddressState: String = null
  shippingAddressPostalCode: String = null
  shippingAddressCountry: String! = "US"
  billingAddressLine1: String = null
  billingAddressLine2: String = null
  billingAddressCity: String = null
  billingAddressState: String = null
  billingAddressPostalCode: String = null
  billingAddressCountry: String! = "US"
  shippingCarrier: String = null
  shippingMethodCode: String = null
  paymentMethod: String = null
  savedPaymentMethodId: Int = null
  poNumber: String = null
  email: String = null
  notes: String = null
  acceptedFeeIds: [Int!] = null
  markAsPaid: Boolean! = false
}
input AgeVerifyInput {
  firstName: String!
  lastName: String!
  dob: String!
  address1: String!
  city: String!
  state: String!
  postalCode: String!
  country: String! = "US"
  email: String = null
  phone: String = null
}
input ApprovalRuleApproverInput {
  employeeId: Int = null
  role: String = null
}
input AssignTagInput {
  tagId: Int!
  entityType: String!
  entityId: Int!
}
input BannerInput {
  name: String!
  imageUrl: String!
  destinationType: String!
  destinationValue: String!
  placementType: String! = "manual"
  mobileImageUrl: String = null
  altText: String = null
  placementConfig: JSON = null
  isActive: Boolean! = true
  startDate: DateTime = null
  endDate: DateTime = null
  channelId: Int = null
}
input BillingAddressInput {
  firstName: String! = ""
  lastName: String! = ""
  address: String! = ""
  city: String! = ""
  state: String! = ""
  zip: String! = ""
  country: String! = "US"
}
input BulkAddToCartInput {
  items: [BulkAddToCartItemInput!]!
}
input BulkAddToCartItemInput {
  variantId: ID!
  quantity: Int!
}
input BulkAdjustStockInput {
  items: [AdjustStockInput!]!
  reason: String! = "manual"
  notes: String = null
}
input ChatMessageInput {
  role: String!
  content: String!
  imageUrl: String = null
}
input CheckoutAgreementInput {
  name: String!
  text: String!
  linkUrl: String = null
  linkLabel: String = null
  isRequired: Boolean! = true
  isActive: Boolean! = true
  position: Int! = 0
  channelId: Int = null
}
input CheckoutInput {
  poNumber: String = null
  acceptPolicy: Boolean! = false
  acceptedAgreementIds: [Int!] = null
  email: String = null
  shippingAddress: AddressInput = null
  billingAddress: AddressInput = null
  shippingCarrier: String = null
  shippingMethodCode: String = null
  shippingAccessorials: [String!] = null
  paymentMethod: String = null
  paymentData: JSON = null
  couponCodes: [String!] = null
  acceptedFeeIds: [Int!] = null
  savedPaymentMethodId: Int = null
  opaqueDataDescriptor: String = null
  opaqueDataValue: String = null
  paymentToken: String = null
  cavv: String = null
  xid: String = null
  eci: String = null
  directoryServerId: String = null
  threeDsVersion: String = null
  cardholderAuth: String = null
  saveCard: Boolean! = false
  storeCreditAmount: String = null
  ageVerificationUid: String = null
  deviceFingerprint: String = null
  sessionId: String = null
  browserLanguage: String = null
}
input ClaimItemInput {
  orderLineId: Int!
  quantityClaimed: Int! = 1
  reasonDetail: String = null
  quantityMissing: Int = null
}
input ComplianceRuleInput {
  name: String!
  slug: String!
  conditions: JSON!
  description: String = null
  priority: Int! = 0
  enabled: Boolean! = true
  channelId: Int = null
  validFrom: String = null
  validTo: String = null
  warnOnly: Boolean! = false
  preventAddToCart: Boolean! = false
  hidePrices: Boolean! = false
  hideQuantity: Boolean! = false
  hideAddToCartButton: Boolean! = false
  preventCheckout: Boolean! = false
  excludeFromSearch: Boolean! = false
  hideFromStorefront: Boolean! = false
  messageProductPage: String = null
  messageCartHeader: String = null
  messageCartInline: String = null
  messageCheckout: String = null
  messageAboveShipping: String = null
}
input ComplianceRuleUpdateInput {
  name: String = null
  slug: String = null
  conditions: JSON = null
  description: String = null
  priority: Int = null
  enabled: Boolean = null
  channelId: Int = null
  validFrom: String = null
  validTo: String = null
  warnOnly: Boolean = null
  preventAddToCart: Boolean = null
  hidePrices: Boolean = null
  hideQuantity: Boolean = null
  hideAddToCartButton: Boolean = null
  preventCheckout: Boolean = null
  excludeFromSearch: Boolean = null
  hideFromStorefront: Boolean = null
  messageProductPage: String = null
  messageCartHeader: String = null
  messageCartInline: String = null
  messageCheckout: String = null
  messageAboveShipping: String = null
}
input ConvertPriceListInput {
  priceListId: ID!
  targetCurrency: String!
  baseCurrency: String! = "USD"
}
input CreateAccountInput {
  name: String!
  legalName: String = null
  taxId: String = null
  customerGroupId: Int = null
}
input CreateAccountRoleInput {
  name: String!
  slug: String = null
  description: String = null
  permissions: JSON = null
  isDefault: Boolean! = false
  position: Int! = 0
}
input CreateAccountStatusInput {
  name: String!
  slug: String = null
  description: String = null
  color: String = null
  isDefault: Boolean! = false
  position: Int! = 0
  allowsLogin: Boolean! = true
  allowsCheckout: Boolean! = true
  allowsProductVisibility: Boolean! = true
}
input CreateAddressInput {
  locationId: ID = null
  customerId: ID = null
  type: String! = "shipping"
  firstName: String! = ""
  lastName: String! = ""
  address1: String! = ""
  city: String! = ""
  state: String! = ""
  postalCode: String! = ""
  country: String! = "US"
  company: String = null
  address2: String = null
  county: String = null
  phone: String = null
  email: String = null
  nickname: String = null
  isDefault: Boolean! = false
  packageProtectionEligible: Boolean! = true
}
input CreateAgreementTemplateInput {
  name: String!
  slug: String!
  content: String!
  version: String! = "1.0"
  isActive: Boolean! = true
  requiresSignature: Boolean! = true
  formId: ID = null
  position: Int! = 0
}
input CreateApprovalRuleInput {
  accountId: Int!
  name: String!
  description: String = null
  scopeType: String! = "all_employees"
  locationId: Int = null
  employeeIds: [Int!] = null
  minAmount: String = null
  maxAmount: String = null
  action: String! = "require_approval"
  approvalMode: String! = "any"
  minApprovals: Int! = 1
  approvers: [ApprovalRuleApproverInput!] = null
  priority: Int! = 0
  isActive: Boolean! = true
}
input CreateAttributeInput {
  name: String!
  slug: String!
}
input CreateAttributeOptionInput {
  attributeId: ID!
  label: String!
  slug: String!
  position: Int! = 0
}
input CreateBrandInput {
  name: String!
  slug: String!
  description: String = null
  logo: String = null
  bannerImage: String = null
  featured: Boolean! = false
}
input CreateCategoryInput {
  name: String!
  slug: String!
  description: String = null
  parentId: Int = null
  position: Int! = 0
  bannerImage: String = null
  thumbnail: String = null
}