# Propeller GraphQL API schema (SDL) # Endpoint: https://api.helice.cloud/v2/graphql # Generated from live introspection at build time. """Input data for adding order statuses to an existing order status set""" input AddOrderStatusesToOrderStatusSetInput { """ List of order status IDs to add to the status set. Contains the identifiers of order statuses that should be associated with this status set. Each ID must represent a valid order status in the system. """ orderStatusIds: [Int!]! } type Address { """Address primary identifier""" id: Int! """First name the address applies to""" firstName: String """Middle name the address applies to""" middleName: String """Last name the address applies to""" lastName: String """Address gender""" gender: Gender """Company the address applies to""" company: String """Address street""" street: String! """Address street number""" number: String """Address street number extension""" numberExtension: String """Address postal code""" postalCode: String! """Address city""" city: String! """Address region""" region: String """Address country""" country: String! """Fixed phone number that applies to this address [min: 6, max: 30]""" phone: String """Mobile phone number that applies to this address [min: 6, max: 30]""" mobile: String """Email that applies to this address [valid email format needed]""" email: String """Fax number that applies to this address [min: 6, max: 30]""" fax: String """Address code""" code: String """Address delivery notes""" notes: String """Indicates whether the address is default for its type""" isDefault: YesNo! """Address type [one of 'home', 'delivery', 'invoice']""" type: AddressType! """ ICP address field defines whether tax should be applied to an order if the address is selected as a delivery address. Used when shipping b2b order abroad """ icp: YesNo """Address company domain url""" url: String """Indicates whether the address is active""" active: YesNo """Address friendly descriptive name""" name: String } input AddressBulkItemInput { """First name the address applies to""" firstName: String """Middle name the address applies to""" middleName: String """Last name the address applies to""" lastName: String """Gender the address applies to""" gender: Gender """Company the address applies to""" company: String """Street address""" street: String! """Street number""" number: String """Street number extension""" numberExtension: String """Address postal code""" postalCode: String! """Address city""" city: String! """Address region""" region: String """Address country""" country: String! """Address fixed phone number [min: 6, max: 30]""" phone: String """Address mobile number [min: 6, max: 30]""" mobile: String """Address email [valid email format required]""" email: String """Address code""" code: String """Address delivery notes""" notes: String """Company website URL""" url: String """Indicates whether the address is default for its type""" isDefault: YesNo """Indicates whether the address is active""" active: YesNo """ ICP address field defines whether tax should be applied to an order if the address is selected as a delivery address. Used when shipping b2b order abroad """ icp: YesNo """Address type [one of 'home', 'delivery' or 'invoice']""" type: AddressType! """Address primary identifier""" id: Int } """Address types [one of 'delivery','invoice' or 'home']""" enum AddressType { """Delivery address""" delivery """Invoice address""" invoice """Home address""" home } """ Input for associating surcharges with a product. Links one or more surcharges to a product, enabling additional fees to be applied during pricing calculations and order processing. """ input AddSurchargesToProductInput { """ List of unique surcharge identifiers to associate with or remove from the product. Must contain valid UUID format identifiers, cannot be empty, and cannot contain duplicates. Each identifier must reference an existing surcharge in the system. """ surchargeIds: [String!]! """ Unique identifier of the product to associate surcharges with or remove surcharges from. Must be a positive integer representing a valid product in the system. """ productId: Int! } type AdminUser { """ Unique identifier for the administrative user. Used for internal system references and relationships. """ id: ID! """ Primary email address for the administrative user account. Must be unique across all users and serves as the primary authentication identifier. """ email: String! """ Gender identity of the administrative user. Used for personalization and demographic reporting where applicable. Supports standard gender classifications with unknown as default for privacy. """ gender: Gender """ First name of the administrative user. Used for personalization and identification in administrative interfaces. Maximum length of 30 characters. """ firstName: String """ Middle name or initial of the administrative user. Optional field for complete name representation in formal communications. Maximum length of 20 characters. """ middleName: String """ Last name (surname) of the administrative user. Used for formal identification and sorting in administrative listings. Maximum length of 50 characters. """ lastName: String """ Preferred language for user interface and communications. Two-letter ISO 639-1 language code that determines the language for system notifications and interface elements. Maximum length of 2 characters. """ language: String """ Contact phone number for the administrative user. Primary phone number for urgent communications and two-factor authentication. Maximum length of 30 characters. """ phone: String """ Job title or role description of the administrative user. Professional title that helps identify the user's responsibilities and authority level within the organization. Maximum length of 30 characters. """ job: String """ Timestamp when the administrative user account was created. Used for audit trails and account lifecycle tracking. """ createdAt: DateTime! """ Identifier of the user who created this administrative account. Used for audit trails and accountability tracking. """ createdBy: Int! """ Timestamp when the administrative user account was last modified. Automatically updated whenever profile information changes. """ lastModifiedAt: DateTime! """ Identifier of the user who last modified this administrative account. Used for audit trails and change tracking. """ lastModifiedBy: Int! """ Retrieve organizational associations for the administrative user with pagination support. Returns all organizations the user has access to or is associated with. For admin users, returns all unique tenants in the system. For regular users, returns only their assigned tenants. Possible errors: - No specific errors - this field resolver handles all cases gracefully """ tenants( """ Pagination parameters for retrieving user's organizational associations. If not provided, default pagination settings will be applied. """ input: AdminUserTenantsSearchInput ): TenantResponse! """Retrieve all tickets assigned to the administrative user.""" ticketsAssigned: [Ticket!]! } """ Available fields for sorting administrative user search results. Enables ordering by temporal attributes for chronological analysis and audit purposes. """ enum AdminUserSortField { """ Sort by the date and time when the administrative user account was created. Useful for identifying newest or oldest user accounts. """ CREATED_AT """ Sort by the date and time when the administrative user account was last modified. Useful for identifying recently updated user profiles. """ LAST_MODIFIED_AT } """ Sorting configuration for administrative user search results. Defines both the field to sort by and the sort direction for organizing user listings. """ input AdminUserSortInput { """ Field to sort administrative users by. Supports sorting by various user attributes including personal information, timestamps, and system identifiers. Must be one of the available AdminUserSortField enum values. """ field: AdminUserSortField! """ Sort direction for the specified field. Ascending order sorts from lowest to highest values, while descending order sorts from highest to lowest values. Must be either ASC or DESC. """ order: SortOrder! } """ Search and pagination parameters for retrieving administrative users. Supports filtering by dates, pagination controls, and custom sorting options for comprehensive user management. """ input AdminUsersSearchInput { """ Page number for pagination. Must be a positive integer starting from 1. Used to navigate through multiple pages of administrative user results. Minimum value is 1. """ page: Int! = 1 """ Number of results per page. Controls how many administrative users are returned in a single request. Used for pagination and performance optimization. Must be a positive integer with reasonable limits for performance. """ offset: Int! = 12 """ Filter administrative users by their account creation date. Supports date range queries with before, after, and exact date matching for audit and reporting purposes. """ createdAt: DateSearchInput """ Filter administrative users by their last modification date. Supports date range queries to find recently updated user profiles for change tracking and audit purposes. """ lastModifiedAt: DateSearchInput """ Sorting criteria for administrative user results. Supports multiple sort fields with ascending or descending order. Applied in the order specified to create complex sorting behavior. """ sortInputs: [AdminUserSortInput!] } """ Organizational entity representing a multi-tenant configuration with administrative settings and user associations. Contains all necessary information for tenant management and access control. """ type AdminUserTenant { """ Unique identifier for the organizational entity. Used for internal system references and relationships across the multi-tenant architecture. """ id: ID! """ Unique identifier used throughout the system for this organization. This identifier is used in URLs, API calls, and internal references. Maximum length of 32 characters. """ tenant: String! """ [DEPRECATED] Human-readable display name for the organization. This name appears in administrative interfaces and user-facing elements. Maximum length of 64 characters. """ name: String! @deprecated(reason: "Use federated field to get name") """ Indicates whether this organization is set as the system default. The default organization is used for system-wide operations and as a fallback when no specific organization is specified. """ default: Boolean! """ Timestamp when the organizational entity was created. Used for audit trails and lifecycle tracking of organizational configurations. """ createdAt: DateTime! """ Identifier of the user who created this organizational entity. Used for audit trails and accountability tracking in organizational management. """ createdBy: Int! """ Timestamp when the organizational entity was last modified. Automatically updated whenever configuration or settings change. """ lastModifiedAt: DateTime! """ Identifier of the user who last modified this organizational entity. Used for audit trails and change tracking in organizational management. """ lastModifiedBy: Int! """ Administrative user associated with this organizational entity. Represents the primary administrator responsible for organizational management and configuration. """ user: AdminUser """ Resolves detailed tenant information for the admin user's associated tenant. Provides access to tenant configuration and settings in federated queries. """ tenantInfo: Tenant! } """ Search and pagination parameters for retrieving organizational associations for administrative users. Controls result pagination and filtering options. """ input AdminUserTenantsSearchInput { """ Page number for pagination. Must be a positive integer starting from 1. Used to navigate through multiple pages of organizational association results. """ page: Int! = 1 """ Number of results per page. Controls how many organizational associations are returned in a single request. Used for pagination and performance optimization. """ offset: Int! = 12 } """ Conversational agent configuration for proxying requests to external webhooks. Defines the structure, behavior, and webhook integration for an agent that handles user interactions through chat or button triggers, supporting both single-turn and multi-turn conversation patterns. """ type Agent { """Unique identifier for the agent.""" id: ID! """Localized display names for the agent.""" names: [LocalizedString!]! """Localized descriptions for the agent.""" descriptions: [LocalizedString!] """Localized welcome messages displayed when the agent is activated.""" welcomeMessages: [LocalizedString!] """Localized button labels for the agent.""" buttonLabels: [LocalizedString!] """Whether the agent is currently active and available for interactions.""" active: Boolean! """Classification types for the agent in SCREAMING_SNAKE_CASE format.""" types: [String!]! """Trigger mechanism that activates the agent interaction.""" trigger: AgentTrigger! """Interaction mode defining the conversational pattern.""" interactionMode: AgentInteractionMode! """URL of the external webhook that processes agent requests.""" webhookUrl: String! """Timeout in milliseconds for webhook requests.""" webhookTimeoutMs: Int! """Timestamp when the agent was created.""" createdAt: DateTime! """Timestamp when the agent was last modified.""" lastModifiedAt: DateTime! """Admin user ID who created the agent.""" createdByAdminUserId: Int """Admin user ID who last modified the agent.""" lastModifiedByAdminUserId: Int } """Represents a conversation exchange with an agent.""" type AgentConversation { """Unique identifier for the conversation.""" id: ID! """Messages exchanged within the conversation.""" messages: [AgentMessage!]! } """Input data for starting a conversation with an agent.""" input AgentConversationCreateInput { """Initial message to send to the agent.""" message: AgentConversationCreateMessageInput! } """Input message for starting a conversation with an agent.""" input AgentConversationCreateMessageInput { """Unique identifier of the agent handling the conversation.""" agentId: ID! """ Message to send to the agent via webhook in a field named requestMessage. Mandatory if TRIGGER=CHAT. """ requestMessage: String """ Metadata to send to the agent via webhook in a field named requestMetadata """ requestMetadata: JSON """Type of interaction. Must match one of the agent's configured types.""" type: String! } """ Input data for creating a new agent. Provides complete configuration for a new agent including localized content, webhook integration, authentication, and behavioral settings. """ input AgentCreateInput { """ Localized display names for the agent. Validation: Array must not be empty, must contain unique language entries. """ names: [LocalizedStringInput!]! """ Localized descriptions for the agent. Validation: Array must not be empty, must contain unique language entries. """ descriptions: [LocalizedStringInput!] """ Localized welcome messages displayed when the agent is activated. Validation: Array must not be empty, must contain unique language entries. """ welcomeMessages: [LocalizedStringInput!] """ Localized button labels for the agent. Validation: Array must not be empty, must contain unique language entries. """ buttonLabels: [LocalizedStringInput!] """Whether the agent should be active upon creation.""" active: Boolean! """ Classification types for the agent. Validation: Must be in SCREAMING_SNAKE_CASE format (e.g., ORDER_SUPPORT, PRODUCT_INFO). """ types: [String!]! """Trigger mechanism that activates the agent interaction.""" trigger: AgentTrigger! """Interaction mode defining the conversational pattern.""" interactionMode: AgentInteractionMode! """ URL of the external webhook that processes agent requests. Maximum length of 2048 characters. """ webhookUrl: String! """Timeout in milliseconds for webhook requests.""" webhookTimeoutMs: Int! = 30000 """ The salt used to generate HMAC-SHA256 signature for webhook authentication. When configured, the webhook will include an 'X-Propeller-Signature' header with format 'sha256='. To verify the signature: 1) JSON stringify the payload 2) Generate HMAC-SHA256 using this salt and the stringified payload 3) Compare with the received signature using crypto.timingSafeEqual() to prevent timing attacks Example (Node.js): const expectedSig = crypto.createHmac('sha256', salt).update(JSON.stringify(payload), 'utf8').digest('hex'); const receivedSig = signature.replace('sha256=', ''); return crypto.timingSafeEqual(Buffer.from(expectedSig, 'hex'), Buffer.from(receivedSig, 'hex')); """ webhookSignatureSalt: String """ Username for HTTP Basic Authentication. Used together with basicAuthPassword to provide authentication credentials for webhook requests. Both username and password must be provided or both omitted. """ webhookBasicAuthUsername: String """ Password for HTTP Basic Authentication. Used together with basicAuthUsername to provide authentication credentials for webhook requests. Both username and password must be provided or both omitted. """ webhookBasicAuthPassword: String } """ Interaction mode defining the conversational pattern of the agent. Determines whether the agent handles single request-response exchanges or maintains ongoing multi-turn conversations with context. """ enum AgentInteractionMode { """ Agent handles single request-response exchanges. Each interaction is independent with no conversation history, suitable for stateless operations like data lookups, one-time actions, and simple queries. """ SINGLE_TURN """ Agent maintains ongoing conversations with context. Supports multi-message dialogues with conversation history, enabling complex workflows, follow-up questions, and contextual interactions. """ MULTI_TURN } """Represents a message exchange within an agent conversation.""" type AgentMessage { """ ID. Webhook response must contain a non blank field called conversationId. """ conversationId: ID! """ Response message from the agent. Webhook response must contain a non blank field called responseMessage. """ responseMessage: String! """ Metadata associated with the response message. Webhook response can contain a field called responseMetadata. """ responseMetadata: JSON } """ Input data for sending a message to an agent. Continues a multi-turn conversation by sending additional request payloads to the agent webhook with the conversation context. """ input AgentMessageCreateInput { """Unique identifier of the agent handling the conversation.""" agentId: ID! """ Message to send to the agent via webhook in a field named requestMessage. """ requestMessage: String! """ Metadata to send to the agent via webhook in a field named requestMetadata """ requestMetadata: JSON """Type of interaction. Must match one of the agent's configured types.""" type: String! """ Conversation ID. Sent in webhook request in a field named conversationId. """ conversationId: ID! } """ Paginated response containing agent search results. Extends the base paginated response with agent-specific data, providing comprehensive search results with pagination metadata for efficient agent browsing and management. """ type AgentResponse { """List of items of type Agent""" items: [Agent!]! """Total number of items found""" itemsFound: Int! """The amount of items to show per page""" offset: Int! """The current page""" page: Int! """Total amount of pages""" pages: Int! """Start position of the current page""" start: Int! """End position of the current page""" end: Int! } """ Search criteria for filtering agents. Provides comprehensive filtering options for agent searches including status, type, trigger, interaction mode, date ranges, and pagination. """ input AgentSearchInput { """Page number for paginated results.""" page: Int! = 1 """Number of items to return per page.""" offset: Int! = 12 """ Filter by specific agent identifiers. Validation: Must be valid UUIDs. """ ids: [String!] """Filter by active status.""" active: Boolean """Filter by classification types.""" types: [String!] """Filter by trigger mechanisms.""" triggers: [AgentTrigger!] """Filter by interaction modes.""" interactionModes: [AgentInteractionMode!] """Filter by admin user IDs who created the agents.""" createdByAdminUserIds: [Int!] """Filter by admin user IDs who last modified the agents.""" lastModifiedByAdminUserIds: [Int!] """Filter by creation date range.""" createdAt: DateSearchInput """Filter by last modification date range.""" lastModifiedAt: DateSearchInput """Sorting criteria for result organization.""" sortInputs: [AgentSortInput!] } """ Available fields for sorting agent search results. Determines the ordering criteria for agent listings and search operations, enabling organized presentation of agent data. """ enum AgentSortField { """Sort by the unique identifier of the agent.""" ID """Sort by the active status of the agent.""" ACTIVE """Sort by the trigger mechanism of the agent.""" TRIGGER """Sort by the interaction mode of the agent.""" INTERACTION_MODE """Sort by the timestamp when the agent was originally created.""" CREATED_AT """Sort by the timestamp when the agent was last modified.""" LAST_MODIFIED_AT """Sort by the admin user who created the agent.""" CREATED_BY_ADMIN_USER_ID """Sort by the admin user who last modified the agent.""" LAST_MODIFIED_BY_ADMIN_USER_ID } """ Sorting configuration for agent search results. Defines both the field to sort by and the direction of sorting, enabling organized presentation of agent data. """ input AgentSortInput { """Agent field to use for sorting.""" field: AgentSortField! """Direction of sorting operation (ASC or DESC).""" order: SortOrder! } """ Trigger mechanism that activates the agent interaction. Determines how users initiate communication with the agent, enabling different entry points for agent-powered workflows. """ enum AgentTrigger { """ Agent is triggered through a chat interface. Users interact with the agent through a conversational chat interface, enabling real-time messaging and dialogue-based workflows. """ CHAT """ Agent is triggered through a button click. Users activate the agent through a UI button, enabling single-action workflows and quick-trigger operations. """ BUTTON } """ Input data for updating an existing agent. All fields are optional, allowing selective modification of agent configuration, webhook settings, and behavioral properties. """ input AgentUpdateInput { """ Localized display names for the agent. Validation: Array must not be empty, must contain unique language entries. """ names: [LocalizedStringInput!] """ Localized descriptions for the agent. Validation: Array must not be empty, must contain unique language entries. """ descriptions: [LocalizedStringInput!] """ Localized welcome messages displayed when the agent is activated. Validation: Array must not be empty, must contain unique language entries. """ welcomeMessages: [LocalizedStringInput!] """ Localized button labels for the agent. Validation: Array must not be empty, must contain unique language entries. """ buttonLabels: [LocalizedStringInput!] """Whether the agent should be active upon creation.""" active: Boolean """ Classification types for the agent. Validation: Must be in SCREAMING_SNAKE_CASE format (e.g., ORDER_SUPPORT, PRODUCT_INFO). """ types: [String!] """Trigger mechanism that activates the agent interaction.""" trigger: AgentTrigger """Interaction mode defining the conversational pattern.""" interactionMode: AgentInteractionMode """ URL of the external webhook that processes agent requests. Maximum length of 2048 characters. """ webhookUrl: String """Timeout in milliseconds for webhook requests.""" webhookTimeoutMs: Int = 30000 """ The salt used to generate HMAC-SHA256 signature for webhook authentication. When configured, the webhook will include an 'X-Propeller-Signature' header with format 'sha256='. To verify the signature: 1) JSON stringify the payload 2) Generate HMAC-SHA256 using this salt and the stringified payload 3) Compare with the received signature using crypto.timingSafeEqual() to prevent timing attacks Example (Node.js): const expectedSig = crypto.createHmac('sha256', salt).update(JSON.stringify(payload), 'utf8').digest('hex'); const receivedSig = signature.replace('sha256=', ''); return crypto.timingSafeEqual(Buffer.from(expectedSig, 'hex'), Buffer.from(receivedSig, 'hex')); """ webhookSignatureSalt: String """ Username for HTTP Basic Authentication. Used together with basicAuthPassword to provide authentication credentials for webhook requests. Both username and password must be provided or both omitted. """ webhookBasicAuthUsername: String """ Password for HTTP Basic Authentication. Used together with basicAuthUsername to provide authentication credentials for webhook requests. Both username and password must be provided or both omitted. """ webhookBasicAuthPassword: String } """Controls whether quotes can be invalidated within the tenant.""" enum ALLOW_QUOTE_INVALIDATION { """Quotes can be invalidated""" YES """Quotes cannot be invalidated.""" NO } """ Base interface for all attribute types across different entity classes. Attributes provide extensible metadata and properties for various entities in the system. Each attribute is associated with a specific entity type and contains typed values based on its attribute description schema. """ interface Attribute { """ Unique identifier for this attribute instance. Auto-generated UUID that serves as the primary key for this specific attribute. Used to reference and manage individual attribute instances. """ id: String! """ The actual value data stored in this attribute. Contains the attribute value in the appropriate format based on the attribute description's type definition. The value structure varies depending on the attribute type (text, enum, color, etc.). """ value: AttributeValue! """ Timestamp when this attribute was originally created. Records the exact date and time when this attribute instance was first created in the system. Used for audit trails and data lifecycle management. """ createdAt: DateTime! """ Timestamp when this attribute was last modified. Records the most recent date and time when any changes were made to this attribute's value or configuration. Updated automatically on each modification. """ lastModifiedAt: DateTime! """ Identifier of the user who created this attribute. References the user account that originally created this attribute instance. May be 0 for system-generated attributes or when user information is not available. """ createdBy: Int """ Identifier of the user who last modified this attribute. References the user account that made the most recent changes to this attribute. May be 0 for system modifications or when user information is not available. """ lastModifiedBy: Int """ Retrieve the attribute description that defines this attribute's schema and behavior. Returns the complete attribute description containing metadata, type definitions, display configuration, and localization settings. This description serves as the template that defines how this attribute should behave and be presented. Essential for understanding attribute constraints, available operations, and presentation requirements. Used by client applications for form generation, validation, and display formatting. """ attributeDescription: AttributeDescription } """ Advanced search filters for attribute descriptions with comprehensive filtering capabilities. Provides detailed filtering options based on attribute description metadata including IDs, names, types, groups, and visibility settings. Enables precise attribute discovery through multiple criteria combinations for efficient attribute management and discovery operations. Perfect for building attribute management interfaces where users need to find specific attribute descriptions based on various characteristics and properties. """ input AttributeAttributeDescriptionSearchInput { """ Specific attribute description identifiers to filter by. Array of UUID strings representing exact attribute descriptions to include in results. Use this when you need to retrieve specific attribute descriptions by their unique identifiers. Array must contain unique values and be non-empty when provided. """ ids: [String!] """ Specific attribute description names to filter by. Array of attribute description names in SCREAMING_SNAKE_CASE format. Use this when you need to retrieve attribute descriptions by their human-readable names. Array must contain unique values and be non-empty when provided. """ names: [String!] """ Attribute description data types to filter by. Array of AttributeType enum values to filter attribute descriptions by their data type. Use this to find all attribute descriptions that handle specific data types like text, enum, integer, decimal, datetime, or color. Array must contain unique values and be non-empty when provided. """ types: [AttributeType!] """ Logical grouping identifiers to filter by. Filter attribute descriptions by their group assignments. Groups help organize related attributes together for better management and display. """ groups: [String!] """ Filter by searchable capability. When true, returns only attribute descriptions that are enabled for search and filtering operations. When false, returns only non-searchable descriptions. """ isSearchable: Boolean """ Filter by public visibility. When true, returns only attribute descriptions that are displayed in public interfaces. When false, returns only non-public descriptions. """ isPublic: Boolean """ Filter by hidden status. When true, returns only attribute descriptions that are hidden from user interfaces. When false, returns only visible descriptions. """ isHidden: Boolean """ Filter by system-level access. When true, returns only attribute descriptions that require system-level permissions. When false, returns only non-system descriptions. """ isSystem: Boolean """ Free-text search term to filter by. Performs a full-text search across attribute description fields. Use this to find attribute descriptions that match a specific keyword or phrase. """ term: String """ Fields to search in when using the term filter. Specifies which fields should be included in the full-text search when a term is provided. Defaults to searching in all fields. Array must contain unique values and be non-empty when provided. """ termFields: [AttributeAttributeDescriptionTermField!] """ Languages to search in when using the term filter. Specifies which languages should be included in the full-text search when a term is provided. All languages are included by default. Array must contain unique values and be non-empty when provided. """ termLanguages: [String!] } """ Available fields for searching attribute descriptions with full-text search """ enum AttributeAttributeDescriptionTermField { """Search by attribute description name for easy browsing and discovery""" NAME """ Search by attribute description text for finding specific attribute descriptions """ DESCRIPTION } """ Input for bulk attribute operations with flexible attribute description referencing. Supports bulk attribute creation, updates, and deletion with the ability to reference attribute descriptions by either ID or name. When no value is provided, the existing attribute is deleted and the default value from the attribute description applies. Perfect for bulk operations where you need to process multiple attributes efficiently while maintaining data consistency and validation against attribute description rules. """ input AttributeBulkCreateInput { """ Unique identifier of the attribute description. Reference to an existing attribute description by its UUID. Use this when you know the exact ID of the attribute description template to use. """ attributeDescriptionId: String """ Name of the attribute description. Reference to an existing attribute description by its name. Must be in SCREAMING_SNAKE_CASE format. Use this when you prefer to reference by name instead of ID. """ attributeDescriptionName: String """ The value of the attribute for bulk operations. When provided, creates or updates the attribute with this value. When omitted, the attribute will be deleted and the default value from the attribute description will apply. """ value: AttributeValueInput } type AttributeBulkResponse { """ID of the created or updated attribute description""" id: String """Name of the created or updated attribute description""" name: String! """Success or error message""" message: String """Name of the attribute description the attribute is created for""" key: String! """The value for this attribute""" value: AttributeValue """Action performed on the attribute description""" action: AttributeBulkResponse! """Whether the action was successful or not""" success: Boolean! """The productId of the attribute value""" productId: Int """The categoryId of the attribute value""" categoryId: Int """The clusterId of the attribute value""" clusterId: Int """The companyId of the attribute value""" companyId: Int """The contactId of the attribute value""" contactId: Int """The customerId of the attribute value""" customerId: Int } """ Color-based attribute value storing hexadecimal color codes for visual attributes. Stores color information as validated hexadecimal color codes. Perfect for product colors, theme colors, design attributes, or any visual property that requires precise color specification. """ type AttributeColorValue implements AttributeValue { """ Unique identifier for this attribute value instance. Auto-generated UUID that serves as the primary key for this specific attribute value. Used to reference and manage individual attribute value instances across the system. """ id: String! """ Type identifier for color-based attribute values. Always set to color for this value type. Used for type discrimination and validation in polymorphic attribute value handling. """ type: AttributeType! """ Hexadecimal color code representing the color value. Stores color information as a validated hex string in the format #RRGGBB or #RGB. Perfect for product colors, theme settings, or any visual attribute requiring precise color specification. """ colorValue: String } """ Input for creating new attributes with values and entity associations. Provides comprehensive attribute creation capabilities, entity association, and value constraints. The input ensures that exactly one entity ID is specified and that the value structure matches the referenced attribute description's requirements. Supports all attribute types (text, enum, integer, decimal, datetime, color) and all entity classes (product, category, cluster, company, contact, customer). The creation process establishes proper entity relationships. """ input AttributeCreateInput { """ Unique identifier of the attribute description that defines this attribute. References the attribute description that contains the metadata, type, and configuration for this attribute. Must be a valid UUID format. """ attributeDescriptionId: String! """ The actual value data for this attribute. Contains the attribute value in the appropriate format based on the attribute description's type. The value structure must match the type specified in the referenced attribute description. """ value: AttributeValueInput! """ Unique identifier of the customer this attribute belongs to. Specify this field when creating a customer-specific attribute. Must be a positive integer representing a valid customer ID. Only one entity ID should be provided per attribute creation. """ customerId: Int """ Unique identifier of the contact this attribute belongs to. Specify this field when creating a contact-specific attribute. Must be a positive integer representing a valid contact ID. Only one entity ID should be provided per attribute creation. """ contactId: Int """ Unique identifier of the company this attribute belongs to. Specify this field when creating a company-specific attribute. Must be a positive integer representing a valid company ID. Only one entity ID should be provided per attribute creation. """ companyId: Int """ Unique identifier of the product this attribute belongs to. Specify this field when creating a product-specific attribute. Must be a positive integer representing a valid product ID. Only one entity ID should be provided per attribute creation. """ productId: Int """ Unique identifier of the cluster this attribute belongs to. Specify this field when creating a cluster-specific attribute. Must be a positive integer representing a valid cluster ID. Only one entity ID should be provided per attribute creation. """ clusterId: Int """ Unique identifier of the category this attribute belongs to. Specify this field when creating a category-specific attribute. Must be a positive integer representing a valid category ID. Only one entity ID should be provided per attribute creation. """ categoryId: Int } """ Input for importing attributes from CSV file with configurable field mappings. Supports bulk attribute creation and updates through CSV file processing. Includes validation for file format and field mapping configuration to ensure data integrity during import operations. """ input AttributeCsvInput { """ CSV file containing attribute data for bulk import. Must be a valid CSV file with proper formatting. The file should contain attribute data that matches the configured field mappings for successful processing. """ file: Upload! """ Configuration for mapping CSV columns to attribute fields. Defines how CSV columns should be mapped to attribute properties. Array must contain unique mappings and each mapping must be properly validated. When not provided, default field mappings will be used. """ mappings: [AttributeCsvMapping!] } """ Mapping configuration for CSV import operations linking CSV columns to attribute fields. Defines how CSV file columns should be mapped to attribute properties during import operations. Each mapping connects a CSV header name to a specific attribute field, enabling flexible CSV formats and data transformation during import. Essential for CSV import operations to ensure proper data mapping and validation during bulk attribute processing. """ input AttributeCsvMapping { """ Name of the column header in the CSV file. Must match exactly with the column header in the uploaded CSV file. Case-sensitive string that identifies which CSV column contains the data for the mapped attribute field. """ csvHeader: String! """ Target attribute field that the CSV column should map to. Specifies which attribute property should receive the data from the corresponding CSV column. Must be a valid AttributeFieldName enum value that defines the available attribute fields for mapping. """ fieldName: AttributeFieldName! } """ Date and time-based attribute value for temporal data with timezone support. Stores date and time information in ISO 8601 format with timezone awareness. Perfect for timestamps, expiration dates, event scheduling, deadlines, or any time-sensitive attribute data requiring precise temporal representation. """ type AttributeDateTimeValue implements AttributeValue { """ Unique identifier for this attribute value instance. Auto-generated UUID that serves as the primary key for this specific attribute value. Used to reference and manage individual attribute value instances across the system. """ id: String! """ Type identifier for date and time-based attribute values. Always set to datetime for this value type. Used for type discrimination and validation in polymorphic attribute value handling. """ type: AttributeType! """ Date and time value in ISO 8601 format with timezone information. Stores temporal data with precise date and time information. Perfect for timestamps, expiration dates, event scheduling, or any time-sensitive attribute. """ dateTimeValue: DateTime } type AttributeDecimalRangeFilter implements IAttributeDecimalRangeFilter { """ Minimum decimal value found for this attribute in current results. The lowest decimal value present in the search results for this attribute, used as the lower bound for precise range filtering controls. """ min: Float """ Maximum decimal value found for this attribute in current results. The highest decimal value present in the search results for this attribute, used as the upper bound for precise range filtering controls. """ max: Float } """ Decimal-based attribute value for floating-point numeric data with precision support. Stores floating-point decimal values for measurements, prices, weights, percentages, or any numeric data requiring fractional precision. Supports a wide range of decimal values with appropriate precision handling. """ type AttributeDecimalValue implements AttributeValue { """ Unique identifier for this attribute value instance. Auto-generated UUID that serves as the primary key for this specific attribute value. Used to reference and manage individual attribute value instances across the system. """ id: String! """ Type identifier for decimal-based attribute values. Always set to decimal for this value type. Used for type discrimination and validation in polymorphic attribute value handling. """ type: AttributeType! """ Decimal value with floating-point precision for fractional numeric data. Stores numbers with decimal precision, perfect for measurements, prices, weights, percentages, ratios, or any numeric value requiring fractional components. """ decimalValue: Float! } """ Attribute description schema defining the structure and metadata for attributes. Serves as a template that defines how attributes should be structured and displayed. Contains type information, the entity type, localization settings, and default values that govern attribute behavior across the system. An attribute description is the definition/blueprint of an attribute, specifying what entity it applies to (product, company, etc.), what data type it is (text, int, etc.), localized descriptions, and default values. The actual attributes are just the specific values assigned to objects using this description as their template. You must first define the attribute description, then use it to assign values to specific objects. """ type AttributeDescription { """ Unique identifier for this attribute description. This UUID serves as the primary key and is automatically generated when the attribute description is created. Used to reference this description when creating attribute values and establishing relationships. """ id: String! """ Human-readable identifier name for this attribute description. Must be in SCREAMING_SNAKE_CASE format with maximum length of 64 characters. Must be unique within the attribute class. Used as a stable reference for the attribute description across different environments. """ name: String! """ Entity type that this attribute description applies to. One of: [product, category, cluster, customer, contact, company] Specifies which type of resource can have attribute value based on this description. Each class has its own namespace for attribute names. """ attributeClass: AttributeDescriptionClass! """ The type of the attribute. One of: [TEXT, ENUM, COLOR, DATETIME, INT, DECIMAL] Determines how attribute values are stored depending on what this attribute is used for. """ type: AttributeType! """ Reference to a valueset that provides predefined options when the attribute type is ENUM. Required for ENUM-type attributes to define the available selection options. The referenced valueset should already exist and contain valueset items that define the valid choices users can select when assigning attribute values to objects. """ valuesetId: Int """ Logical grouping identifier for related attributes. Used to organize attributes into categories for better management and user interface organization. Attributes in the same group are typically displayed together. """ group: String """ Enable this attribute for search and filtering operations. When true, attributes based on this description can be used in search filters and faceted navigation. Useful for attributes that help users find and filter products or other resources. """ isSearchable: Boolean! """ Make this attribute visible to end users. When true, attributes based on this description are displayed in public interfaces like product specifications. When false, they are only visible to administrative users. """ isPublic: Boolean! """ Restrict access to system administrators only. When true, only users with system-level permissions can view and modify attributes based on this description. Used for internal system attributes. """ isSystem: Boolean! """ Hide this attribute from all user interfaces. When true, attributes based on this description are completely hidden from user interfaces and are only used for internal processing and background operations. """ isHidden: Boolean! """ Date and time this attribute description was created. Timestamp of when the attribute description was first created in the system. Used for auditing and tracking the creation history of attribute descriptions. """ createdAt: DateTime! """ Date and time this attribute description was last modified. Timestamp of when the attribute description was last updated in the system. Used for auditing and tracking the modification history of attribute descriptions. """ lastModifiedAt: DateTime! """ ID of the user that created this attribute description. References the user ID of the user who created the attribute description. Used for auditing and tracking the creation history of attribute descriptions. """ createdBy: Int """ ID of the user that last modified this attribute description. References the user ID of the user who last modified the attribute description. Used for auditing and tracking the modification history of attribute descriptions. """ lastModifiedBy: Int """ Default value configuration for attributes based on this description. Specifies the initial value that will be assigned to new attributes created from this description. The value type must match the attribute type specified above. @deprecated Will become nullable in a future major version. Until then, descriptions without a configured default value return a placeholder AttributeValue with id "0" (an AttributeIntValue with intValue 0) instead of null, to keep the field non-null for backwards compatibility. """ defaultValue: AttributeValue! @deprecated(reason: "Will become nullable in a future major version. Until then, descriptions without a configured default value return a placeholder AttributeValue with id \"0\" (an AttributeIntValue with intValue 0) instead of null.") """ Localized human-readable descriptions explaining what this attribute represents. Provides user-friendly explanations in multiple languages for display in user interfaces and documentation. Each entry contains a language code and the corresponding description text. """ descriptions( """ Optional ISO language code (uppercase, e.g. "EN", "DE", "NL"). When provided, only entries matching this language are returned. When omitted, all languages are returned. """ language: String ): [LocalizedString!]! """ Localized units of measurement for the attribute value. Specifies the units in which the attribute value is measured (e.g., "cm", "kg", "pieces") in multiple languages. Only applicable for numeric attribute types. """ units( """ Optional ISO language code (uppercase, e.g. "EN", "DE", "NL"). When provided, only entries matching this language are returned. When omitted, all languages are returned. """ language: String ): [LocalizedString!] } """ Entity types that the attribute or the attribute description belongs to """ enum AttributeDescriptionClass { """ Product-specific attributes for specifications, features, variants, and customizable product properties that extend the base product schema """ PRODUCT """ Category-level attributes for classification metadata, display properties, and category-specific configuration that applies to the category """ CATEGORY """ Product cluster attributes for grouped product characteristics, shared properties, and cluster-wide configuration that spans multiple related products """ CLUSTER """ Customer-specific attributes for personalization, preferences, behavioral data, and customer relationship management that enhances customer profiles """ CUSTOMER """ Contact person attributes for extended contact information, relationship data, communication preferences, and professional details """ CONTACT """ Company-level attributes for business metadata, organizational properties, compliance data, and enterprise-specific configuration """ COMPANY } """ Input for creating new attribute descriptions with comprehensive configuration options. Provides complete attribute description creation capabilities including type definition, localization, visibility settings, and default values. The input ensures proper attribute schema definition with all necessary metadata for attribute management and usage. Supports all attribute types, entity class assignment, and comprehensive configuration options for search, visibility, and access control. The creation process validates all inputs and establishes proper attribute description templates for future attribute creation. """ input AttributeDescriptionCreateInput { """ Unique identifier name for the attribute description. Must be in SCREAMING_SNAKE_CASE format using only uppercase letters, numbers, and underscores. Maximum length is 64 characters. This name serves as a human-readable identifier and must be unique within the attribute class. """ name: String! """ Localized human-readable descriptions of the attribute. Provide user-friendly descriptions in multiple languages to explain what this attribute represents. Array must not be empty and contain at least the default language. These descriptions are used in user interfaces and documentation. """ descriptions: [LocalizedStringInput!]! """ Localized unit of measurement for the attribute value. Specify the units in which the attribute value is measured (e.g., "cm", "kg", "pieces"). Only applicable for numeric attribute types. """ units: [LocalizedStringInput!] """ The type of the attribute. One of: [TEXT, ENUM, COLOR, DATETIME, INT, DECIMAL] Determines how attribute values are stored depending on what this attribute is used for. """ type: AttributeType! """ Entity type that this attribute description applies to. Specifies which type of resource can have attributes based on this description. Each class has its own namespace for attribute names, ensuring name uniqueness within each entity type. """ attributeClass: AttributeDescriptionClass! """ Reference to a valueset for ENUM type attributes with predefined options. Required when type is ENUM. Links to a predefined set of allowed values that defines the valid options for enum attributes. The valueset contains the selectable options that users can choose from. Must reference an existing valueset that contains appropriate options for the intended use case. """ valuesetId: Int """ Logical grouping identifier for related attributes. Used to organize attributes into categories for better management and user interface organization. Attributes in the same group are typically displayed together. """ group: String """ Enable this attribute for search and filtering operations. When true, attributes based on this description can be used in search filters and faceted navigation. Useful for attributes that help users find and filter products or other resources. """ isSearchable: Boolean = true """ Make this attribute visible to end users. When true, attributes based on this description are displayed in public interfaces like product specifications. When false, they are only visible to administrative users. """ isPublic: Boolean = true """ Restrict access to system administrators only. When true, only users with system-level permissions can view and modify attributes based on this description. Used for internal system attributes. """ isSystem: Boolean = false """ Hide this attribute from all user interfaces. When true, attributes based on this description are completely hidden from user interfaces and are only used for internal processing and background operations. """ isHidden: Boolean = false """ Default value configuration for attributes based on this description. Specifies the initial value that will be assigned to new attributes created from this description. The value type must match the attribute type specified above. """ defaultValue: AttributeValueInput } """ Input for importing attribute descriptions from CSV file with configurable field mappings. Supports bulk attribute description creation and updates through CSV file processing. The file should contain attribute description schema data that matches the configured field mappings for successful processing. """ input AttributeDescriptionCsvInput { """ Input for importing attribute descriptions from CSV file with configurable field mappings. Supports bulk attribute description creation and updates through CSV file processing. The file should contain attribute description schema data that matches the configured field mappings for successful processing. """ file: Upload! """ Configuration for mapping CSV columns to attribute description fields. Defines how CSV columns should be mapped to attribute description properties. Array must contain unique mappings and each mapping must be properly validated. When not provided, default field mappings will be used. """ mappings: [AttributeDescriptionCsvMapping!] } """ Mapping configuration for CSV import operations linking CSV columns to attribute description fields. Defines how CSV file columns should be mapped to attribute description properties during import operations. Each mapping connects a CSV header name to a specific attribute description field, enabling flexible CSV formats and data transformation during bulk attribute description processing. """ input AttributeDescriptionCsvMapping { """ Name of the column header in the CSV file. Must match exactly with the column header in the uploaded CSV file. Case-sensitive string that identifies which CSV column contains the data for the mapped attribute description field. """ csvHeader: String! """ Target attribute description field that the CSV column should map to. Specifies which attribute description property should receive the data from the corresponding CSV column. Must be a valid AttributeDescriptionFieldName enum value that defines the available attribute description fields for mapping. """ fieldName: AttributeDescriptionFieldName! } enum AttributeDescriptionFieldName { """[Required][String] Descriptive identifier (Screaming Snake Case)""" NAME """[Required][Object] Attribute descriptions per language""" DESCRIPTION """[Optional][String] Attribute unit per language""" UNIT """[Required][String] The language of the attribute""" LANGUAGE """ [Required][String] Attribute type. One of: [text, enum, color, datetime, integer, decimal] """ TYPE """ [Required][Enum] Attribute class. One of: [product, category, cluster, customer, contact, company], must be one of the following: [product, category, cluster, customer, contact, company] """ ATTRIBUTE_CLASS """ [Optional][String] The ID of the connected valueset to use when type is ENUM """ VALUESET_ID """[Optional][String] The attribute group""" GROUP """ [Optional][Boolean] Flags whether this attribute should be used when generating catalog page filters """ IS_SEARCHABLE """ [Optional][Boolean] Flags whether this attribute should be used when generating product specifications """ IS_PUBLIC """ [Optional][Boolean] Flags whether this attribute is only available to system users """ IS_SYSTEM """ [Optional][Boolean] Flags whether this attribute is hidden and should only be used for background operations """ IS_HIDDEN """ [Optional][String] Attribute value descriptions per language, required for TEXT type attributes """ TEXT_VALUES """ [Optional][String] Attribute value descriptions per language, required for TEXT type attributes """ TEXT_VALUES_LANGUAGE """ [Optional][String] Attribute enum values, required for ENUM type attributes """ ENUM_VALUES """ [Optional][Integer] Attribute integer value, required for INTEGER type attributes """ INT_VALUE """ [Optional][Decimal] Attribute decimal value, required for DECIMAL type attributes """ DECIMAL_VALUE """ [Optional][DateTime] Attribute datetime value, required for DATETIME type attributes in ISO 8601 format 'YYYY-MM-DDThh:mm:ss.sssZ' (e.g., 2024-10-31T09:55:00.000Z) """ DATE_TIME_VALUE """ [Optional][String] Attribute color value, required for COLOR type attributes """ COLOR_VALUE } """ Paginated response containing attribute description search results. Provides a structured response for attribute description queries including the matching descriptions, pagination metadata, and total count information. Used for attribute description search and listing operations with comprehensive pagination support. """ type AttributeDescriptionResponse { """List of items of type AttributeDescription""" items: [AttributeDescription!]! """Total number of items found""" itemsFound: Int! """The amount of items to show per page""" offset: Int! """The current page""" page: Int! """Total amount of pages""" pages: Int! """Start position of the current page""" start: Int! """End position of the current page""" end: Int! } """ Search criteria for filtering attribute descriptions with comprehensive options. Provides flexible filtering capabilities for attribute descriptions including ID-based lookups, name matching, class filtering, and type-based searches. Supports pagination and sorting for large result sets. """ input AttributeDescriptionSearchInput { """ Specific attribute description IDs to retrieve. Filter results to only include attribute descriptions with the specified UUIDs. Array must not be empty when provided and must contain unique values. """ ids: [String!] """ Specific attribute description names to retrieve. Filter results to only include attribute descriptions with the specified names. Names must be in SCREAMING_SNAKE_CASE format. Array must not be empty when provided and must contain unique values. """ names: [String!] """ Specific attribute description classes to retrieve. Filter results to only include attribute descriptions with the specified entity classes. Each class maintains its own attribute namespace. Array must not be empty when provided and must contain unique values. """ classes: [AttributeDescriptionClass!] """ Specific attribute description data types to retrieve. Filter results to only include attribute descriptions with the specified data types. Array must not be empty when provided and must contain unique values. """ types: [AttributeType!] """ Specific attribute description groups to retrieve. Filter results to only include attribute descriptions that belong to the specified groups. Groups are used for organizing related attributes. Array must not be empty when provided and must contain unique values. """ groups: [String!] """ Filter by searchable status. When true, returns only attribute descriptions that are enabled for search and filtering operations. When false, returns only non-searchable attribute descriptions. """ isSearchable: Boolean """ Filter by public visibility status. When true, returns only attribute descriptions that are configured to be displayed in product specifications and are visible to end users. When false, returns only attribute descriptions that are not included in public product specifications. """ isPublic: Boolean """ Filter by hidden status for background operations. When true, returns only attribute descriptions that are hidden from user interfaces and used exclusively for background system operations. When false, returns only visible attribute descriptions. """ isHidden: Boolean """ Filter by system access restriction. When true, returns only attribute descriptions that are restricted to administrative users and not accessible to regular users. When false, returns only attribute descriptions available to all user types. """ isSystem: Boolean """ Free-text search term to filter by. Performs a full-text search across attribute description fields. Use this to find attribute descriptions that match a specific keyword or phrase. """ term: String """ Fields to search in when using the term filter. Specifies which fields should be included in the full-text search when a term is provided. Defaults to searching in all fields. Array must contain unique values and be non-empty when provided. """ termFields: [AttributeAttributeDescriptionTermField!] """ Languages to search in when using the term filter. Specifies which languages should be included in the full-text search when a term is provided. All languages are included by default. Array must contain unique values and be non-empty when provided. """ termLanguages: [String!] """ Number of results to return per page. Specifies the maximum number of attribute descriptions to include in each page of results. Used in combination with page number to control pagination and result set size. Defaults to 12 if not specified. """ offset: Int = 12 """ Current page number for paginated results. Specifies which page of results to retrieve when dealing with large datasets. Page numbers start from 1. Used together with offset to control pagination behavior. Defaults to 1 if not specified. """ page: Int = 1 """ Sorting criteria for ordering search results. Defines how the returned attribute descriptions should be ordered. Multiple sort criteria can be applied in sequence. Array must not be empty when provided and must contain unique sorting configurations. """ sortInputs: [AttributeDescriptionSortInput!] } """ Available fields for sorting attribute description search results with flexible ordering options """ enum AttributeDescriptionSortField { """ Sort by attribute description name alphabetically for easy browsing and discovery """ NAME """ Sort by creation timestamp to see newest or oldest attribute descriptions first """ CREATED_AT """ Sort by last modification timestamp to identify recently updated attribute descriptions """ LAST_MODIFIED_AT } input AttributeDescriptionSortInput { """The field to sort by""" field: AttributeDescriptionSortField! """Order option to sort by. [Default to `ASC`]""" order: SortOrder = ASC } """ Input for updating an existing attribute description's configuration. Allows modification of attribute description properties including localized content, visibility settings, and default values. Only provided fields will be updated, others remain unchanged. """ input AttributeDescriptionUpdateInput { """ Updated localized descriptions explaining what this attribute represents. Provide user-friendly descriptions in multiple languages for display in user interfaces and documentation. Array must not be empty when provided and must contain unique language entries. """ descriptions: [LocalizedStringInput!] """ Updated localized units of measurement for the attribute value. Specify the units in which the attribute value is measured (e.g., "cm", "kg", "pieces") in multiple languages. Only applicable for numeric attribute types. """ units: [LocalizedStringInput!] """ Updated logical grouping identifier for related attributes. Used to organize attributes into categories for better management and user interface organization. Maximum length is 64 characters. Attributes in the same group are typically displayed together. """ group: String """ Updated setting for enabling this attribute in search and filtering operations. When true, attributes based on this description can be used in search filters and faceted navigation. Useful for attributes that help users find and filter products or other resources. """ isSearchable: Boolean """ Updated setting for making this attribute visible to end users. When true, attributes based on this description are displayed in public interfaces like product specifications. When false, they are only visible to administrative users. """ isPublic: Boolean """ Updated setting for restricting access to system administrators only. When true, only users with system-level permissions can view and modify attributes based on this description. Used for internal system attributes. """ isSystem: Boolean """ Updated setting for hiding this attribute from all user interfaces. When true, attributes based on this description are completely hidden from user interfaces and are only used for internal processing and background operations. """ isHidden: Boolean """ Updated default value configuration for attributes based on this description. Specifies the initial value that will be assigned to new attributes created from this description. The value type must match the attribute type specified in the description. """ defaultValue: AttributeValueInput } """ Enumeration-based attribute value for predefined option selection from valuesets. Stores one or more selected values from a predefined list of options defined in the associated valueset. Perfect for categories, sizes, colors, statuses, or any controlled vocabulary where users select from predefined choices. """ type AttributeEnumValue implements AttributeValue { """ Unique identifier for this attribute value instance. Auto-generated UUID that serves as the primary key for this specific attribute value. Used to reference and manage individual attribute value instances across the system. """ id: String! """ Type identifier for enumeration-based attribute values. Always set to enum for this value type. Used for type discrimination and validation in polymorphic attribute value handling. """ type: AttributeType! """ Selected values from the predefined valueset options. Contains one or more values selected from the attribute description's associated valueset. Each value must be a valid option from the predefined list, ensuring data consistency and controlled vocabularies. Supports both single and multiple selection scenarios depending on the attribute description's configuration. """ enumValues: [String!]! } """ Available field names for CSV import mapping and attribute data processing with comprehensive field definitions """ enum AttributeFieldName { """ [Required][String] The ID of the AttributeDescription, required if attributeDescriptionName is not provided """ ATTRIBUTE_DESCRIPTION_ID """ [Required][String] The Name of the AttributeDescription, required if attributeDescriptionId is not provided """ ATTRIBUTE_DESCRIPTION_NAME """ [Optional][String] Attribute value descriptions per language, required for TEXT type attributes """ TEXT_VALUES """ [Optional][String] Attribute value descriptions per language, required for TEXT type attributes """ TEXT_VALUES_LANGUAGE """ [Optional][Array] Attribute enum values, required for ENUM type attributes """ ENUM_VALUES """ [Optional][Integer] ttribute integer value, required for INTEGER type attributes """ INT_VALUE """ [Optional][Decimal] Attribute decimal value, required for DECIMAL type attributes """ DECIMAL_VALUE """ [Optional][DateTime] Attribute datetime value, required for DATETIME type attributes in ISO 8601 format 'YYYY-MM-DDThh:mm:ss.sssZ' (e.g., 2024-10-31T09:55:00.000Z) """ DATE_TIME_VALUE """ [Optional][String] Attribute color value, required for COLOR type attributes """ COLOR_VALUE """ [Optional][Enum] The class the Attribute or AttributeDescription belongs to, must be one of the following: [products, clusters, categories, customers, contacts, companies] """ ATTRIBUTE_CLASS """ [Optional][String] The lookupKey to find the resource by, i.e. id or sourceId """ LOOKUP_KEY """ [Optional][String] The lookupValue to find the resource by, i.e. the id or the sourceId """ LOOKUP_VALUE """ [Optional][String] The source of the lookupValue when the lookupKey is a sourceId """ SOURCE } type AttributeFilter implements IAttributeFilter { """Attribute filter id""" id: String! attributeDescription: AttributeDescription """ Data type of the attribute values. Specifies the format for attribute values, determining how the attribute should be processed, displayed, and filtered in search interfaces. """ type: AttributeType! """ Available text-based filter values for this attribute. Collection of distinct text values found in the current search results for this attribute, along with their occurrence counts. Used for building checkbox or list-based filters in search interfaces. """ textFilters: [AttributeTextFilter!] """ Numeric range boundaries for integer-type attributes. Minimum and maximum integer values found in the current search results for this attribute, used for building range slider or numeric input filters. """ integerRangeFilter: AttributeIntegerRangeFilter """ Numeric range boundaries for decimal-type attributes. Minimum and maximum decimal values found in the current search results for this attribute, used for building precise range filters for measurements and prices. """ decimalRangeFilter: AttributeDecimalRangeFilter } type AttributeIntegerRangeFilter implements IAttributeIntegerRangeFilter { """ Minimum integer value found for this attribute in current results. The lowest integer value present in the search results for this attribute, used as the lower bound for range filtering controls. """ min: Int """ Maximum integer value found for this attribute in current results. The highest integer value present in the search results for this attribute, used as the upper bound for range filtering controls. """ max: Int } """ Integer-based attribute value for whole number data with range validation. Stores 32-bit integer values for quantities, counts, ratings, identifiers, or any numeric data that doesn't require decimal precision. Supports the full range of 32-bit signed integers. """ type AttributeIntValue implements AttributeValue { """ Unique identifier for this attribute value instance. Auto-generated UUID that serves as the primary key for this specific attribute value. Used to reference and manage individual attribute value instances across the system. """ id: String! """ Type identifier for integer-based attribute values. Always set to int for this value type. Used for type discrimination and validation in polymorphic attribute value handling. """ type: AttributeType! """ Integer value within the 32-bit signed integer range. Stores whole numbers without decimal places, perfect for quantities, counts, ratings, sequence numbers, or numeric identifiers. """ intValue: Int! } """ Paginated response containing attribute search results. Provides a structured response for attribute queries including the matching attributes, pagination metadata, and total count information. Used for attribute search and listing operations with comprehensive pagination support. """ type AttributeResponse { """List of items of type Attribute""" items: [Attribute!]! """Total number of items found""" itemsFound: Int! """The amount of items to show per page""" offset: Int! """The current page""" page: Int! """Total amount of pages""" pages: Int! """Start position of the current page""" start: Int! """End position of the current page""" end: Int! } """ Comprehensive attribute result combining attribute descriptions, values, and entity associations. Represents the complete attribute information for an entity, including the attribute description schema, the actual attribute instance (if assigned), and the effective value (either from the assigned attribute or the default value from the description). This entity provides a unified view of attribute data that combines: - The attribute description defining the schema and rules - The specific attribute instance linking the value to the entity (nullable if not explicitly assigned) - The effective attribute value (either assigned value or default from description) Perfect for displaying complete attribute information in user interfaces, generating specifications, or providing comprehensive attribute data for business logic operations. """ type AttributeResult { """ The specific attribute instance linking the value to the entity. Contains the actual attribute record that associates the value with the specific entity (product, category, etc.). This field is null when the entity doesn't have an explicitly assigned attribute value, in which case the default value from the attribute description is used. When present, this attribute contains metadata such as creation timestamps, modification history, and value. """ attribute: Attribute """ The attribute description defining the schema and behavior for this attribute. Contains the complete attribute description including type definition, display configuration, localization settings, and default values. This description serves as the template that defines how the attribute should behave and be presented. Essential for understanding attribute constraints, available operations, and presentation requirements. """ attributeDescription: AttributeDescription! """ The effective attribute value for this entity. Contains the actual value data, either from the explicitly assigned attribute instance or the default value from the attribute description when no specific value has been assigned to the entity. The value structure varies based on the attribute type (text, enum, color, etc.) and includes all necessary data for display and business logic operations. """ value: AttributeValue! } """ Paginated response containing comprehensive attribute result data. Provides a structured response for attribute result queries including the matching attribute results with complete attribute information, pagination metadata, and total count information. Used for attribute result search and listing operations with comprehensive pagination support. Each result combines attribute descriptions, values, and entity associations to provide complete attribute information for display and business logic operations. """ type AttributeResultResponse { """List of items of type AttributeResult""" items: [AttributeResult!]! """Total number of items found""" itemsFound: Int! """The amount of items to show per page""" offset: Int! """The current page""" page: Int! """Total amount of pages""" pages: Int! """Start position of the current page""" start: Int! """End position of the current page""" end: Int! } input AttributeResultSearchInput { """ Product identifiers to search attributes for. Specify a list of product IDs to retrieve attributes associated with those products. Array must contain unique values. Only one resource type can be specified per search request. """ productIds: [Int!] """ Category identifiers to search attributes for. Specify a list of category IDs to retrieve attributes associated with those categories. Array must contain unique values. Only one resource type can be specified per search request. """ categoryIds: [Int!] """ Company identifiers to search attributes for. Specify a list of company IDs to retrieve attributes associated with those companies. Array must contain unique values. Only one resource type can be specified per search request. """ companyIds: [Int!] """ Contact identifiers to search attributes for. Specify a list of contact IDs to retrieve attributes associated with those contacts. Array must contain unique values. Only one resource type can be specified per search request. """ contactIds: [Int!] """ Customer identifiers to search attributes for. Specify a list of customer IDs to retrieve attributes associated with those customers. Array must contain unique values. Only one resource type can be specified per search request. """ customerIds: [Int!] """ Cluster identifiers to search attributes for. Specify a list of cluster IDs to retrieve attributes associated with those clusters. Array must contain unique values. Only one resource type can be specified per search request. """ clusterIds: [Int!] """ Number of items per page for pagination. Controls the page size for paginated results. Must be a positive integer with a minimum value of 1. """ offset: Int = 12 """ Page number for pagination. Specifies which page of results to retrieve. Page numbering starts at 1 and must be a positive integer. """ page: Int = 1 """ Additional filters based on attribute description properties. Allows filtering attributes by their description metadata such as name, type, group, and visibility settings. Useful for finding attributes with specific characteristics. """ attributeDescription: AttributeAttributeDescriptionSearchInput """Include default values""" includeDefaultValues: Boolean = true } """ Comprehensive search input for discovering attributes with flexible filtering and pagination. Provides powerful search capabilities across attribute data with support for entity-specific filtering, attribute description properties, and pagination controls. Enables efficient attribute discovery and management through multiple search criteria combinations. Supports filtering by entity types (products, categories, clusters, companies, contacts, customers), attribute description metadata, and pagination settings. Only one entity type can be specified per search to maintain query performance and clarity. Perfect for building attribute management interfaces, generating reports, or discovering attributes across different entity types with precise filtering capabilities. """ input AttributeSearchInput { """ Product identifiers to search attributes for. Specify a list of product IDs to retrieve attributes associated with those products. Array must contain unique values. Only one resource type can be specified per search request. """ productIds: [Int!] """ Category identifiers to search attributes for. Specify a list of category IDs to retrieve attributes associated with those categories. Array must contain unique values. Only one resource type can be specified per search request. """ categoryIds: [Int!] """ Company identifiers to search attributes for. Specify a list of company IDs to retrieve attributes associated with those companies. Array must contain unique values. Only one resource type can be specified per search request. """ companyIds: [Int!] """ Contact identifiers to search attributes for. Specify a list of contact IDs to retrieve attributes associated with those contacts. Array must contain unique values. Only one resource type can be specified per search request. """ contactIds: [Int!] """ Customer identifiers to search attributes for. Specify a list of customer IDs to retrieve attributes associated with those customers. Array must contain unique values. Only one resource type can be specified per search request. """ customerIds: [Int!] """ Cluster identifiers to search attributes for. Specify a list of cluster IDs to retrieve attributes associated with those clusters. Array must contain unique values. Only one resource type can be specified per search request. """ clusterIds: [Int!] """ Number of items per page for pagination. Controls the page size for paginated results. Must be a positive integer with a minimum value of 1. """ offset: Int = 12 """ Page number for pagination. Specifies which page of results to retrieve. Page numbering starts at 1 and must be a positive integer. """ page: Int = 1 """ Additional filters based on attribute description properties. Allows filtering attributes by their description metadata such as name, type, group, and visibility settings. Useful for finding attributes with specific characteristics. """ attributeDescription: AttributeAttributeDescriptionSearchInput } type AttributeTextFilter implements IAttributeTextFilter { """ Attribute value text for filtering. The actual text value of the attribute that customers can select to filter products. This is the display value shown in filter interfaces. """ value: String! """ Number of products matching this value with current filters applied. Count of products that have this attribute value and also match all currently applied search filters and criteria. Used for showing relevant filter options. """ count: Int! """ Total number of products with this value across all results. Count of products that have this attribute value without any filters applied, representing the complete availability of this value in the catalog. """ countTotal: Int """ Number of products with this value excluding other attribute filters. Count of products that have this attribute value with all other attribute filters removed but keeping search terms and category filters. Used for showing filter impact. """ countActive: Int """ Selection status of this attribute value in current search. Indicates whether this attribute value is currently selected as an active filter in the customer's search criteria. """ isSelected: Boolean! } """ Text-based attribute value with multi-language support for localized content. Stores textual attribute data with support for multiple languages and multiple values per language. Perfect for descriptions, names, specifications, or any textual content that needs internationalization support. """ type AttributeTextValue implements AttributeValue { """ Unique identifier for this attribute value instance. Auto-generated UUID that serves as the primary key for this specific attribute value. Used to reference and manage individual attribute value instances across the system. """ id: String! """ Type identifier for text-based attribute values. Always set to text for this value type. Used for type discrimination and validation in polymorphic attribute value handling. """ type: AttributeType! """ Localized text values organized by language with support for multiple values per language. Each entry contains a language code and an array of text values for that language. Supports rich textual content, descriptions, and any text data that requires localization. """ textValues( """ Optional ISO language code (uppercase, e.g. "EN", "DE", "NL"). When provided, only entries matching this language are returned. When omitted, all languages are returned. """ language: String ): [LocalizedStringArray!]! } """Available attribute types""" enum AttributeType { TEXT ENUM COLOR DATETIME INT DECIMAL } """ Input for updating an existing attribute's value. Allows modification of the attribute's value while preserving its type and configuration. The new value must conform to the attribute description's type. """ input AttributeUpdateInput { """ The new value data for this attribute. Contains the updated attribute value in the appropriate format based on the attribute description's type. The value structure must match the type specified in the attribute's description. """ value: AttributeValueInput! } """ Base interface for all attribute value types with polymorphic type resolution. Provides the foundation for typed attribute values across different data types including text, enumeration, color, decimal, datetime, and integer values. Each concrete implementation handles specific data type requirements, validation, and formatting. The interface enables polymorphic handling of attribute values while maintaining type safety and proper validation for each specific attribute type. Used throughout the system for storing and retrieving typed attribute data. """ interface AttributeValue { """ Unique identifier for this attribute value instance. Auto-generated UUID that serves as the primary key for this specific attribute value. Used to reference and manage individual attribute value instances across the system. """ id: String! } """ Input for defining typed attribute values with comprehensive data type support. Provides a flexible structure for specifying attribute values based on the attribute description's type definition. Only the field corresponding to the attribute's type should be populated, while others should remain null or undefined. Supports all attribute types including: - TEXT: Localized text values with multi-language support - ENUM: Predefined option selection from valuesets - INT: Integer numeric values with range validation - DECIMAL: Decimal numeric values with precision control - DATETIME: Date and time values with ISO format - COLOR: Hexadecimal color codes with validation """ input AttributeValueInput { """ Localized text values for TEXT type attributes with multi-language support. Provide text content in multiple languages with support for multiple values per language. Use this field when the attribute type is TEXT. Supports rich text content, descriptions, and any textual data that needs localization. The language codes should follow standard ISO language codes. """ textValues: [LocalizedStringArrayInput!] """ Selected values from predefined options for ENUM type attributes. Specify one or more values from the attribute description's associated valueset. Use this field when the attribute type is ENUM. Perfect for categories, sizes, colors, or any predefined list of options. The values must exactly match the options defined in the attribute description's valueset. """ enumValues: [String!] """ Integer value for INT type attributes. Use this field when the attribute type is INT. Stores whole numbers without decimal places, perfect for quantities, counts, ratings, sequence numbers, or numeric identifiers. """ intValue: Int """ Decimal value for DECIMAL type attributes. Use this field when the attribute type is DECIMAL. Stores numbers with decimal precision, perfect for measurements, prices, weights, percentages, ratios, or any numeric value requiring fractional components. """ decimalValue: Float """ Date and time value for DATETIME type attributes with ISO 8601 format. Use this field when the attribute type is DATETIME. Perfect for timestamps, expiration dates, event scheduling, or any time-sensitive attribute data. The format ensures consistent date handling across different systems. """ dateTimeValue: String """ Hexadecimal color value for COLOR type attributes. Used when the attribute type is COLOR. Must be a valid hexadecimal color code including the # prefix. Perfect for product colors, theme colors, brand colors, or any visual styling attributes. """ colorValue: String } """Automatic image format optimization based on browser capabilities""" enum Auto { """ Automatically convert image to WebP format when the browser supports it, providing better compression than JPEG or PNG while maintaining quality """ WEBP """ Automatically convert image to AVIF format when the browser supports it, offering superior compression compared to WebP and other formats """ AVIF } type Base64File { """The base64 representation of the file.""" base64: String! """The contentType of the base64 content.""" contentType: String! """ Indication of the fileName to use when converting the base64 to a file. """ fileName: String! } """ File attachment data encoded in Base64 format. Represents a file attachment that can be included in email messages, containing the file content, metadata, and naming information for proper file handling and delivery. """ input Base64FileInput { """ Base64-encoded file content data. The complete file content encoded in Base64 format, enabling binary file transmission through text-based protocols and GraphQL operations. """ base64: String! """ MIME content type of the encoded file. Specifies the file format and type (e.g., 'application/pdf', 'image/jpeg', 'text/plain') for proper file handling, rendering, and client-side processing. """ contentType: String! """ Desired filename for the attachment. The name that will be used when the file is saved or downloaded, including the file extension for proper file type recognition and user experience. """ fileName: String! } union BaseProduct = Product | Cluster type BaseProductCategoryRelationship { """Globally unique identifier for the product or cluster.""" uuid: ID! """Base product UUID""" baseProductUuid: String! """Category UUID""" categoryUuid: String! """ Numeric category identifier retained for compatibility with legacy integrations. """ categoryId: Int! """Whether this is the default category for the base product""" isDefault: Boolean! """Sort order within the category""" sortOrder: Int! """Timestamp marking when the record was created, in UTC ISO 8601 format.""" createdAt: DateTime! """ Timestamp marking the last modification of the record, in UTC ISO 8601 format. """ lastModifiedAt: DateTime! """ Reference to the underlying record in the shared product/cluster model. """ baseProduct: IBaseProduct! """Primary category associated with the product.""" category(hidden: YesNo): Category! } type BaseProductClusterRelationship { """Globally unique identifier for the product or cluster.""" uuid: ID! """Product UUID""" productUuid: String! """Cluster UUID""" clusterUuid: String! """Whether this is the default product for the cluster""" isDefault: Boolean! """Sort order within the cluster""" sortOrder: Int! """Timestamp marking when the record was created, in UTC ISO 8601 format.""" createdAt: DateTime! """ Timestamp marking the last modification of the record, in UTC ISO 8601 format. """ lastModifiedAt: DateTime! """The product in this relationship""" product: Product! """The cluster in this relationship""" cluster: Cluster! } input BaseProductSearchInput { """Search term for SKU and localized content""" term: String """Filter by product types""" types: [ProductClass!] """Filter by category ID""" categoryId: Int """Filter by category UUID""" categoryUuid: String """ Include items from descendant categories (requires categoryId or categoryUuid) """ getDescendants: Boolean = false """Filter by specific product IDs""" productIds: [Int!] """Filter by specific cluster IDs""" clusterIds: [Int!] """Filter by cluster configuration ID""" clusterConfigId: Int """Filter by product statuses (PRODUCT type only)""" statuses: [ProductStatus!] """Filter by manufacturers (PRODUCT type only)""" manufacturers: [String!] """Filter by suppliers (PRODUCT type only)""" suppliers: [String!] """Language for localized content""" language: String """Sort field""" sortBy: BaseProductSortField """Sort order""" sortOrder: SortOrder """Page number""" page: Int = 1 """Items per page""" offset: Int = 12 """Source system name (required when sourceIds provided)""" source: String """Source IDs from the specified source system""" sourceIds: [String!] """Order list IDs to apply for filtering""" orderlistIds: [Int!] """Whether to apply orderlist filtering""" applyOrderlists: Boolean = true """Is product hidden?""" hidden: Boolean """Filter by creation date from (ISO string)""" dateCreatedFrom: String """Filter by creation date to (ISO string)""" dateCreatedTo: String """Filter by modification date from (ISO string)""" dateModifiedFrom: String """Filter by modification date to (ISO string)""" dateModifiedTo: String """Filter by specific SKUs""" skus: [String!] """Filter by specific slugs (requires language parameter)""" slugs: [String!] """Filter by specific product/cluster IDs""" ids: [Int!] """Filter by specific product/cluster UUIDs""" uuids: [String!] """ Browse catalog as a specific User. Permissions, orderlists, favorite will be merged with the logged in user. """ userId: Int """ Browse catalog as a specific Company. Permissions, orderlists, favorite will be merged with the logged in user. """ companyId: Int } """ Available fields for ordering results when searching across products and clusters. Use together with a sort order argument to control the direction of the ordering. """ enum BaseProductSortField { """Orders results alphabetically by stock keeping unit.""" SKU """ Orders results by record type, grouping products and clusters together. """ TYPE """Orders results by the date the record was created in the catalogue.""" CREATED_AT """ Orders results by the date the record was last modified in the catalogue. """ LAST_MODIFIED_AT } """Paginated response containing base products""" type BaseProductsResponse { """Array of base products for current page""" items: [BaseProduct!]! """Total number of items found""" itemsFound: Int! """Number of items to skip""" offset: Int """Current page number (1-based)""" page: Int """Total number of pages""" pages: Int """Starting index for current page""" start: Int! """Ending index for current page""" end: Int! } type BatchMetricsFailedJob { jobId: String name: String tenant: String productIdsCount: Int clusterIdsCount: Int categoryIdsCount: Int batchSize: Int type: String id: String failedReason: String stacktrace: [String!] attemptsMade: Int timestamp: String processedOn: String finishedOn: String redisKey: String } type BatchMetricsFailedJobsByQueue { queue: String! jobs: [BatchMetricsFailedJob!]! } type BatchMetricsFailedJobsResponse { tenant: String queues: [BatchMetricsFailedJobsByQueue!]! } type BatchMetricsHourlyBucket { hour: String! batchCount: Int! totalDocuments: Int! } type BatchMetricsQueueStatusResponse { intake: BatchMetricsQueueSummary! processor: BatchMetricsQueueSummary! retry: BatchMetricsQueueSummary! categoryFanout: BatchMetricsQueueSummary! } type BatchMetricsQueueSummary { total: Int! active: Int! waiting: Int! delayed: Int! failed: Int! } type BatchMetricsTenantHourlyResponse { tenantId: String! hours: [BatchMetricsHourlyBucket!]! totalHours: Int! } type BatchMetricsTenantResponse { tenantId: String! batchCount: Int! totalDocuments: Int! lastBatchTime: String lastBatchSize: Int! averageBatchSize: Float! pendingIds: Int! pendingBatches: BatchMetricsQueueSummary! categoryFanout: BatchMetricsQueueSummary! } """ Volume-based cost pricing tier for quantity-dependent cost calculations. Represents cost prices that apply to specific quantity ranges, enabling volume purchasing advantages and margin calculations based on purchase quantities. Used for inventory management and pricing optimization. """ type BulkCostPrice implements IDiscount { """ Unique identifier for the bulk cost price record. Auto-generated UUID that serves as the primary key for bulk cost price management operations, linking to price records and quantity-based cost calculations. """ id: String! """ Timestamp when the bulk cost price record was initially created. Automatically set when the bulk cost price is first saved to the system. Used for audit trails and cost price management. """ createdAt: DateTime! """ Timestamp when the bulk cost price record was last updated. Automatically updated whenever any field in the bulk cost price record is modified. Essential for tracking cost price changes and synchronization. """ lastModifiedAt: DateTime! """ Cost price value applied to the specified quantity range. The actual cost per unit when purchasing within the defined quantity tier. Used for margin calculations and pricing decisions based on volume purchasing power. """ value: Float! """ Minimum quantity required to qualify for this cost price tier. Defines the lower bound of the quantity range where this cost price applies. Creates tiered cost structures that reflect volume purchasing advantages. Minimum value is 1. """ quantityFrom: Int! """ Date when this bulk cost price becomes active and available for cost calculations. If not specified, the bulk cost price is immediately effective. Used for scheduling cost price changes and managing time-based pricing strategies. """ validFrom: DateTime """ Date when this bulk cost price expires and is no longer available for cost calculations. If not specified, the bulk cost price remains active indefinitely. Used for temporary cost pricing and promotional cost structures. """ validTo: DateTime """ Price record identifier for bulk cost price association. Links the bulk cost price to a specific product price, enabling quantity-based cost calculations and margin analysis for volume purchases. """ priceId: String! } input BulkCostPriceCreateInput { """Price record identifier for bulk cost price association""" priceId: String! """Cost price value for the specified quantity range""" value: Float! """Minimum quantity threshold for this cost price tier""" quantityFrom: Int! = 1 """Effective start date for the bulk cost price""" validFrom: String """Effective end date for the bulk cost price""" validTo: String } input BulkCostPriceCsvInput { """CSV file""" file: Upload! """List of BulkCostPrice mappings""" mappings: [BulkCostPriceCsvMapping!] } input BulkCostPriceCsvMapping { """The name of the column in the CSV file""" csvHeader: String! """The name of the field in Propeller eCommerce Platform""" fieldName: BulkCostPriceFieldName! } """ Field names for bulk cost price data import and validation operations. Defines the available field identifiers for bulk cost price creation and update operations, enabling structured data import and field-level validation for volume cost pricing configurations. """ enum BulkCostPriceFieldName { """[Required][String] Price id""" PRICE_ID """ [Required][Number][5 Decimal Places] Bulk discount amount or percentage. The discount value applied to bulk purchases, calculated either as a percentage reduction from the standard price or as a fixed discounted price per unit, depending on the configured discount type. """ VALUE """ [Required][Integer] Minimum quantity threshold for bulk pricing eligibility. The minimum number of units that must be purchased to qualify for the bulk price discount. Creates tiered pricing structure based on order volume. """ QUANTITY_FROM """ [Optional][DateTime] Bulk pricing effective start date. The date when the bulk pricing becomes active and available for customer orders. Must be a valid ISO 8601 date string format. (e.g., 2024-10-31T09:55:00.000Z) """ VALID_FROM """ [Optional][DateTime] Bulk pricing expiration date. The date when the bulk pricing offer expires and is no longer available. Must be a valid ISO 8601 date string format. (e.g., 2024-10-31T09:55:00.000Z) """ VALID_TO } type BulkCostPriceResponse { """List of items of type BulkCostPrice""" items: [BulkCostPrice!]! """Total number of items found""" itemsFound: Int! """The amount of items to show per page""" offset: Int! """The current page""" page: Int! """Total amount of pages""" pages: Int! """Start position of the current page""" start: Int! """End position of the current page""" end: Int! } input BulkCostPriceSearchInput { """Pagination page number. [Default to `1`]""" page: Int = 1 """Pagination offset number. [Default to `12`]""" offset: Int = 12 """Search by date created""" createdAt: DateSearchInput """Search by date changed""" lastModifiedAt: DateSearchInput """Search by bulk price ids""" ids: [String!] """Search by price ids""" priceIds: [String!] """Search by quantity from""" quantityFrom: NumberSearchInput """Search by values""" value: DecimalSearchInput """Search by valid from""" validFrom: DateSearchInput """Search by valid to""" validTo: DateSearchInput """Inputs to sort by""" sortInputs: [BulkCostPriceSortInput!] } input BulkCostPriceSortInput { """Field to sort by""" field: BulkPriceSortField! """Order option to sort by. [Default to `ASC`]""" order: SortOrder! } input BulkCostPriceUpdateInput { """Cost price value for the specified quantity range""" value: Float """Effective start date for the bulk cost price""" validFrom: String """Effective end date for the bulk cost price""" validTo: String """ Minimum quantity threshold for bulk pricing eligibility. The minimum number of units that must be purchased to qualify for the bulk price discount. Creates tiered pricing structure based on order volume. """ quantityFrom: Int! } type BulkDeleteResponse { """List of deleted item ids""" deletedIds: [String!] """List of failed item ids""" failedIds: [String!] } type BulkPrice implements IDiscount { """ Unique identifier for the bulk price record. Primary key used for bulk price management and volume pricing operations. """ id: String! """ Timestamp when the bulk price record was initially created. Used for audit trails and volume pricing history tracking. """ createdAt: DateTime! """ Timestamp when the bulk price record was last updated. Essential for tracking volume pricing changes and synchronization. """ lastModifiedAt: DateTime! """ Price value for this quantity tier. Unit price that applies when the minimum quantity threshold is met for volume discount calculations. """ value: Float! """ Minimum quantity threshold for this bulk price tier to apply. Minimum order quantity required for this bulk price to be activated in volume discount calculations. """ quantityFrom: Int! """ Bulk pricing effective start date. The date when the bulk pricing becomes active and available for customer orders. Must be a valid ISO 8601 date string format. """ validFrom: DateTime """ Bulk pricing expiration date. The date when the bulk pricing offer expires and is no longer available. Must be a valid ISO 8601 date string format. """ validTo: DateTime """ Reference to the associated price record. Foreign key linking this bulk price to its base price for volume pricing calculations. """ priceId: String! } """ Bulk price creation data for establishing quantity-based pricing tiers and volume discounts. Contains essential information to create bulk price records including price associations, quantity thresholds, price values, and effective date ranges. Used for implementing volume pricing strategies and quantity discounts. """ input BulkPriceCreateInput { """ Unique identifier of the associated price record. Must reference an existing price in the system. Bulk prices are linked to base prices to enable quantity-based pricing tiers and volume discount calculations. """ priceId: String! """ Price value for this quantity tier. Decimal value representing the unit price with up to 5 decimal places precision. Applied when the minimum quantity threshold is met for volume discount calculations. """ value: Float! """ Minimum quantity threshold for this bulk price tier to apply. Positive integer representing the minimum order quantity required for this bulk price to be activated. Used for implementing volume discounts and quantity-based pricing strategies. """ quantityFrom: Int! = 1 """ Start date for bulk price validity period. ISO 8601 date-time string indicating when this bulk price becomes effective. If not specified, the bulk price is effective immediately. """ validFrom: String """ End date for bulk price validity period. ISO 8601 date-time string indicating when this bulk price expires. If not specified, the bulk price remains effective indefinitely. """ validTo: String } input BulkPriceCsvInput { """CSV file""" file: Upload! """List of BulkPrice mappings""" mappings: [BulkPriceCsvMapping!] } input BulkPriceCsvMapping { """The name of the column in the CSV file""" csvHeader: String! """The name of the field in Propeller eCommerce Platform""" fieldName: BulkPriceFieldName! } enum BulkPriceFieldName { """[Required][String] Price id""" PRICE_ID """ [Required][Number][5 Decimal Places] Bulk discount amount or percentage. The discount value applied to bulk purchases, calculated either as a percentage reduction from the standard price or as a fixed discounted price per unit, depending on the configured discount type. """ VALUE """ [Required][Integer] Minimum quantity threshold for bulk pricing eligibility. The minimum number of units that must be purchased to qualify for the bulk price discount. Creates tiered pricing structure based on order volume. """ QUANTITY_FROM """ [Optional][DateTime] Bulk pricing effective start date. The date when the bulk pricing becomes active and available for customer orders. Must be a valid ISO 8601 date string format. (e.g., 2024-10-31T09:55:00.000Z) """ VALID_FROM """ [Optional][DateTime] Bulk pricing expiration date. The date when the bulk pricing offer expires and is no longer available. Must be a valid ISO 8601 date string format. (e.g., 2024-10-31T09:55:00.000Z) """ VALID_TO } type BulkPriceResponse { """List of items of type BulkPrice""" items: [BulkPrice!]! """Total number of items found""" itemsFound: Int! """The amount of items to show per page""" offset: Int! """The current page""" page: Int! """Total amount of pages""" pages: Int! """Start position of the current page""" start: Int! """End position of the current page""" end: Int! } input BulkPriceSearchInput { """Pagination page number. [Default to `1`]""" page: Int = 1 """Pagination offset number. [Default to `12`]""" offset: Int = 12 """Search by date created""" createdAt: DateSearchInput """Search by date changed""" lastModifiedAt: DateSearchInput """Search by bulk price ids""" ids: [String!] """Search by price ids""" priceIds: [String!] """Search by quantity from""" quantityFrom: NumberSearchInput """Search by values""" value: DecimalSearchInput """Search by valid from""" validFrom: DateSearchInput """Search by valid to""" validTo: DateSearchInput """Inputs to sort by""" sortInputs: [BulkPriceSortInput!] } """Available fields for sorting bulk price search results""" enum BulkPriceSortField { """Sort by bulk price record ID""" ID """Sort by minimum quantity threshold numerically""" QUANTITY_FROM """Sort by bulk price value numerically""" VALUE """Sort by bulk price start date""" VALID_FROM """Sort by bulk price end date""" VALID_TO """Sort by the date when the bulk price was last modified""" LAST_MODIFIED_AT """Sort by the date when the bulk price was created""" CREATED_AT } input BulkPriceSortInput { """Field to sort by""" field: BulkPriceSortField! """Order option to sort by. [Default to `ASC`]""" order: SortOrder! } """ Bulk price update data for modifying existing volume pricing configurations. Contains optional fields for updating bulk price records. Only provided fields will be updated, others remain unchanged. Used for maintaining volume pricing strategies and quantity discount structures. """ input BulkPriceUpdateInput { """ Price value for this quantity tier. Decimal value representing the unit price with up to 5 decimal places precision. Applied when the minimum quantity threshold is met for volume discount calculations. """ value: Float """ Start date for bulk price validity period. ISO 8601 date-time string indicating when this bulk price becomes effective. If not specified, the bulk price is effective immediately. """ validFrom: String """ End date for bulk price validity period. ISO 8601 date-time string indicating when this bulk price expires. If not specified, the bulk price remains effective indefinitely. """ validTo: String """ Updated minimum quantity threshold for this bulk price tier to apply. Positive integer representing the minimum order quantity required for this bulk price to be activated. Used for implementing volume discounts and quantity-based pricing strategies. """ quantityFrom: Int } type BulkResponseData { """Number of created items""" created: Int! """Number of updated items""" updated: Int! """Total number of created and updated items""" total: Int! } """ Product bundle entity representing a collection of products sold together. Contains bundle configuration, pricing information, and associated product items with comprehensive metadata for bundle management and sales operations. """ type Bundle { """ Unique identifier for the bundle. Used to reference the bundle across all operations and maintain data consistency. """ id: String! """ Display name for the bundle. Used in customer-facing interfaces and administrative tools for bundle identification. Maximum length is 64 characters. """ name: String """ Detailed description of the bundle contents and value proposition. Provides customers with comprehensive information about what the bundle includes and its benefits. Maximum length is 255 characters. """ description: String """ Discount percentage applied to bundle pricing. Represents the percentage reduction from individual item prices when purchased as a bundle. Must be between 0 and 100. """ discount: Float """ Determines how bundle discounts are applied to items. ALL: Discount applies to all items in the bundle EP: Discount applies only to extra products, excluding the primary item """ condition: BundleCondition """ Calculated pricing information for the bundle. Includes net and gross prices with original pricing for comparison, computed based on tax zone and current discount rules. """ price: BundlePrice """ Collection of products included in this bundle. Each item represents a product with its configuration and role within the bundle. Items define which products are part of the bundle and their relationships. """ items: [BundleItem!] """ Timestamp when the bundle was initially created. Used for audit trails and chronological sorting of bundle records. """ createdAt: DateTime """ Identifier of the user who created this bundle. Used for audit purposes and tracking bundle ownership. """ createdBy: Int """ Timestamp of the most recent bundle modification. Updated automatically whenever bundle properties or items are changed. """ lastModifiedAt: DateTime """ Identifier of the user who last modified this bundle. Used for audit purposes and change tracking. """ lastModifiedBy: Int } """ Input for adding items to an existing bundle. Contains the products to be added along with their configurations and tax zone for pricing calculations. """ input BundleAddItemsInput { """ Collection of products to add to the existing bundle. Each item represents a product with its configuration and role. Products must be unique and only one can be designated as the leader item. Validation ensures unique product IDs and single leader designation. """ items: [BundleItemInput!]! """ Geographic tax zone for pricing calculations. Determines which tax rates and rules apply to bundle pricing for accurate cost calculations. Must be exactly 2 characters representing a country code. Validation enforces the two-letter format. """ taxZone: String = "NL" } """ Determines how bundle discounts are applied to items within the bundle. Controls which products receive the discount when the bundle is purchased. """ enum BundleCondition { """ Discount applies to all items in the bundle. Every product in the bundle receives the configured discount percentage. """ ALL """ Discount applies only to extra products, excluding the primary item. The leader item maintains its original price while additional items receive the bundle discount. """ EP } input BundleCreateInput { """ Display name for the bundle. Used in customer-facing interfaces and administrative tools for bundle identification. Maximum length is 64 characters. """ name: String! """ Detailed description of the bundle contents and value proposition. Provides customers with comprehensive information about what the bundle includes and its benefits. Maximum length is 255 characters. """ description: String """ Discount percentage applied to bundle pricing. Represents the percentage reduction from individual item prices when purchased as a bundle. Must be between 0 and 100. Validation ensures the value is within the acceptable range. """ discount: Float """ Determines how bundle discounts are applied to items. ALL: Discount applies to all items in the bundle EP: Discount applies only to extra products, excluding the primary item """ condition: BundleCondition """ Base price for the bundle before discounts. Used as a reference point for discount calculations and pricing comparisons. Must be a positive number. """ price: Float """ Geographic tax zone for pricing calculations. Determines which tax rates and rules apply to bundle pricing for accurate cost calculations. Must be exactly 2 characters. """ taxZone: String = "NL" """ Collection of products to include in this bundle. Each item represents a product with its configuration and role within the bundle. Products must be unique and only one can be designated as the leader item. Validation ensures unique product IDs and single leader designation. """ addBundleItems: [BundleItemInput!] } """ Individual product item within a bundle configuration. Represents a specific product included in a bundle with its role, pricing, and metadata. Contains information about the product's position and importance within the bundle structure. """ type BundleItem { """ Product identifier within the bundle. References the specific product included in this bundle configuration. """ productId: Int! """ Calculated pricing information for this specific item within the bundle. Includes item-level pricing with bundle discounts applied based on the bundle's pricing rules. """ price: BundlePrice """ Designates whether this product serves as the primary item in the bundle. Leader items typically drive bundle pricing and discount calculations. Only one item per bundle can be designated as the leader. """ isLeader: YesNo """ Timestamp when this bundle item was added. Tracks when the product was included in the bundle configuration. """ createdAt: DateTime """ Identifier of the user who added this item to the bundle. Used for audit purposes and tracking item additions. """ createdBy: Int """ Timestamp of the most recent modification to this bundle item. Updated when item properties or configurations are changed. """ lastModifiedAt: DateTime """ Identifier of the user who last modified this bundle item. Used for audit purposes and change tracking. """ lastModifiedBy: Int product(hidden: Boolean): Product! } """ Input for defining a product item within a bundle. Specifies the product to include and its role within the bundle configuration. """ input BundleItemInput { """ Product identifier to include in the bundle. References the specific product that will be part of this bundle configuration. Must be a positive integer. Validation ensures proper integer format. """ productId: Int! """ Designates whether this product serves as the primary item in the bundle. Leader items typically drive bundle pricing and discount calculations. Only one item per bundle can be designated as the leader. Validation ensures proper enum value. """ isLeader: YesNo = N } """ Comprehensive pricing information for bundles and bundle items. Contains calculated prices including discounts, taxes, and original pricing for comparison. Provides both net and gross pricing with before-and-after discount values. """ type BundlePrice { """ Final net price after applying bundle discounts and tax calculations. Represents the actual price customers pay excluding taxes. """ net: Float """ Final gross price after applying bundle discounts and including taxes. Represents the total price customers pay including all applicable taxes. """ gross: Float """ Original net price before any bundle discounts are applied. Used to calculate savings and display discount value to customers. """ originalNet: Float """ Original gross price before any bundle discounts are applied. Includes taxes and represents the full retail price without bundle savings. """ originalGross: Float } """ Search criteria for filtering and retrieving bundles. Provides comprehensive filtering options including bundle IDs, product associations, pagination, and sorting capabilities. """ input BundleSearchInput { """ Specific bundle identifiers to filter search results. When provided, only bundles with these exact IDs will be included in the search results. Each ID must be a valid UUID format. Validation ensures proper UUID format for each entry. """ ids: [String!] = [] """ Product identifiers to search for within bundles. Returns bundles that contain any of the specified products, useful for finding cross-selling opportunities and product associations. Each ID must be a positive integer. Validation ensures unique values and proper integer format. """ productIds: [Int!] = [] """ Geographic tax zone for pricing calculations. Determines which tax rates and rules apply to bundle pricing in the search results. Must be exactly 2 characters representing a country code. """ taxZone: String = "NL" """ Page number for pagination, starting from 1. Used to navigate through multiple pages of results when the total number of bundles exceeds the offset limit. Must be at least 1. Validation ensures positive integer values. """ page: Int! = 1 """ Number of bundles to return per page. Controls the size of each page in the paginated response to manage data volume and performance. Must be between 1 and 100. Validation ensures values within the acceptable range. """ offset: Int! = 12 """ Sorting criteria for search results. Specify multiple sort fields with their respective order to control how results are organized and presented. Each sort input must be unique. Validation ensures proper structure and uniqueness of sort criteria. """ sortInputs: [BundleSortInput!] = [] } """ Available fields for sorting bundle results. Determines which bundle property will be used as the primary sort criteria in queries. """ enum BundleSortField { """ Sort by unique bundle identifier. Useful for consistent ordering and debugging purposes. """ ID """ Sort by bundle display name. Provides alphabetical ordering for user-friendly bundle listings. """ NAME """ Sort by bundle creation timestamp. Allows chronological ordering to show newest or oldest bundles first. """ CREATED_AT """ Sort by last modification timestamp. Useful for identifying recently updated bundles and tracking changes. """ LAST_MODIFIED_AT } """ Sorting configuration for bundle search results. Defines both the field to sort by and the direction of sorting to control result ordering. """ input BundleSortInput { """ Field to use for sorting bundle results. Determines which bundle property will be used as the primary sort criteria. Validation ensures only valid sort fields are accepted. """ field: BundleSortField! """ Sort direction for the specified field. ASC: Ascending order (A-Z, 0-9, oldest-newest) DESC: Descending order (Z-A, 9-0, newest-oldest) Validation ensures only valid sort orders are accepted. """ order: SortOrder } """ Paginated response containing bundle search results. Provides a structured response with bundle data, pagination metadata, and navigation information for efficient data retrieval and display. """ type BundlesResponse { """List of items of type Bundle""" items: [Bundle!]! """Total number of items found""" itemsFound: Int! """The amount of items to show per page""" offset: Int! """The current page""" page: Int! """Total amount of pages""" pages: Int! """Start position of the current page""" start: Int! """End position of the current page""" end: Int! } """ Input for updating an existing bundle. Contains partial bundle data where only provided fields will be updated. Inherits all validation rules from bundle creation but makes all fields optional. """ input BundleUpdateInput { """ Display name for the bundle. Used in customer-facing interfaces and administrative tools for bundle identification. Maximum length is 64 characters. """ name: String """ Detailed description of the bundle contents and value proposition. Provides customers with comprehensive information about what the bundle includes and its benefits. Maximum length is 255 characters. """ description: String """ Discount percentage applied to bundle pricing. Represents the percentage reduction from individual item prices when purchased as a bundle. Must be between 0 and 100. Validation ensures the value is within the acceptable range. """ discount: Float """ Determines how bundle discounts are applied to items. ALL: Discount applies to all items in the bundle EP: Discount applies only to extra products, excluding the primary item """ condition: BundleCondition """ Base price for the bundle before discounts. Used as a reference point for discount calculations and pricing comparisons. Must be a positive number. """ price: Float """ Geographic tax zone for pricing calculations. Determines which tax rates and rules apply to bundle pricing for accurate cost calculations. Must be exactly 2 characters. """ taxZone: String = "NL" } """ Operating hours configuration for a specific day of the week. Defines when the warehouse is operational including opening/closing times and lunch break periods. Used for scheduling operations and customer communication about availability. """ type BusinessHours { """ Day of the week identifier. Numeric representation where 0=Sunday, 1=Monday, 2=Tuesday, 3=Wednesday, 4=Thursday, 5=Friday, 6=Saturday. Used to define operating schedules for each day. """ dayOfWeek: Float! """ Warehouse opening time for this day. Time when the warehouse begins operations in 24-hour format (HH:MM). If null, the warehouse is closed for the entire day. """ openingTime: String """ Warehouse closing time for this day. Time when the warehouse ends operations in 24-hour format (HH:MM). If null, the warehouse is closed for the entire day. """ closingTime: String """ Start time of lunch break period. Time when lunch break begins in 24-hour format (HH:MM). During this period, warehouse operations may be limited or suspended. """ lunchBeakStartTime: String """ End time of lunch break period. Time when lunch break ends in 24-hour format (HH:MM). Operations resume to full capacity after this time. """ lunchBeakEndTime: String } """ Operating hours configuration for a specific day of the week. Defines when the warehouse is operational including opening/closing times and lunch break periods. Used for scheduling operations and customer communication about availability. """ input BusinessHoursInput { """ Day of the week (0=Sunday, 1=Monday, ..., 6=Saturday). Numeric representation of the day of the week for which these operating hours apply. """ dayOfWeek: Float! """ Warehouse opening time in 24-hour format (HH:MM). Time when the warehouse begins operations for the day. Must be in HH:MM format (e.g., "08:00"). """ openingTime: String """ Warehouse closing time in 24-hour format (HH:MM). Time when the warehouse ends operations for the day. Must be in HH:MM format (e.g., "20:00"). """ closingTime: String """ Lunch break start time in 24-hour format (HH:MM). Time when the lunch break begins, during which operations may be limited. Must be in HH:MM format (e.g., "12:00"). """ lunchBeakStartTime: String """ Lunch break end time in 24-hour format (HH:MM). Time when the lunch break ends and full operations resume. Must be in HH:MM format (e.g., "12:30"). """ lunchBeakEndTime: String } """ Complete business rule workflow represented as a directed graph structure. Each business rule consists of interconnected nodes (input, decision tables, output) connected by edges that define the execution flow. Decision tables contain multiple rows where each row represents a specific rule condition and corresponding action. The graph structure enables complex business logic modeling with branching, parallel processing, and conditional execution paths. """ type BusinessRule { """Unique identifier for the business rule within the system""" id: ID! """ [DEPRECATED] Store or shop identifier that owns this business rule, used for multi-tenant rule management """ shopId: Int! @deprecated(reason: "Shop is deprecated and will be removed in a future version") """ Classification of the business rule determining its domain context and application scope """ type: BusinessRuleType! """ Human-readable name of the business rule in multiple languages for international support """ name: [LocalizedString!]! """ Directed connections between nodes that define the execution flow and data path through the rule graph """ edges: [BusinessRuleEdge!]! """ Processing nodes in the rule graph including input receivers, decision tables, and output generators """ nodes: [IBusinessRuleNode!]! """Timestamp when the business rule was initially created in the system""" createdAt: DateTime! """ Timestamp of the most recent modification to the business rule configuration or logic """ updatedAt: DateTime! """ Generate the JSON Decision Model (JDM) representation of this business rule for execution engines. Returns the standardized JDM format containing all rule logic, conditions, and actions required for runtime execution in compatible rule engines. """ jdm: JSONObject! } """ Action field definition for complex field types supporting nested operations and data transformations """ type BusinessRuleActionField { """ Localized name of the action field for user interface display and documentation """ name: [LocalizedString!]! """ JSONPath expression defining the location of this action field within the parent complex structure """ path: String! } """ Array-based expression for collection operations, filtering, and element validation. Provides logical operators for evaluating conditions across array elements including universal quantification (all), existential quantification (some), negation (none), and membership testing (contains). Supports both simple value matching and complex nested expressions for comprehensive array processing. """ type BusinessRuleArrayExpression implements IBusinessRuleExpression { """Unique identifier for this expression within the business rule system""" id: ID! """ Data type classification of the expression determining available operators and validation rules """ type: BusinessRuleExpressionTypes! """ Logical operator defining how the condition should be applied to array elements """ operator: BusinessRuleArrayExpressionOperators! """ String value to match against array elements (used with 'contains' operator for simple value matching) """ string: String """ Numeric value to match against array elements (used with 'contains' operator for simple value matching) """ number: Float """ Path to the field, can be used to add additional expressions and calulations on the field. Use $ to target the field's value. When omitted the field's value is used. The expression will be used on the left hand side of the operator. Can also be used to target a specific property in a complex expression's sub-expression Check https://gorules.io/docs/rules-engine/expression-language/array for options. """ path: String } """ Input for creating array-based expressions with collection operations and element validation """ input BusinessRuleArrayExpressionInput { """ Logical operator defining how the condition should be applied to array elements """ operator: BusinessRuleArrayExpressionOperators! """ String value to match against array elements (used with 'contains' operator for simple value matching) """ string: String """ Numeric value to match against array elements (used with 'contains' operator for simple value matching) """ number: Float """ Path to the field, can be used to add additional expressions and calulations on the field. Use $ to target the field's value. When omitted the field's value is used. The expression will be used on the left hand side of the operator. Can also be used to target a specific property in a complex expression's sub-expression Check https://gorules.io/docs/rules-engine/expression-language/string for options. """ path: String } """ Logical operators for array-based business rule expressions and collection validation """ enum BusinessRuleArrayExpressionOperators { """Check if all elements in the array meet the specified condition""" all """Check if no elements in the array meet the specified condition""" none """ Check if at least one element in the array meets the specified condition """ some """Check if the array contains a specific value or element""" contains } """ Advanced expression combining multiple sub-expressions with aggregation functions. Enables complex data processing by filtering collections based on multiple criteria and then applying aggregation operations. Supports mathematical operations (sum), counting operations (count), and data collection (collect) on filtered datasets. """ type BusinessRuleComplexExpression implements IBusinessRuleExpression { """Unique identifier for this expression within the business rule system""" id: ID! """ Data type classification of the expression determining available operators and validation rules """ type: BusinessRuleExpressionTypes! """ Optional numeric comparison operator for evaluating the aggregated result against a threshold value """ operator: BusinessRuleNumberExpressionOperators """ Aggregation function to apply to the filtered data collection. - 'sum': Calculate the sum of numeric values from a specific field in filtered elements - 'count': Count the number of elements that match the filtering criteria - 'collect': Gather and return all matching elements as a collection """ action: BusinessRuleComplexExpressionAction! """ JSONPath to the specific field for sum operations (e.g., '$.price' to sum price values from filtered elements) """ field: String """ JSONPath expression defining the target data collection for filtering and aggregation. Defaults to '$' (root field) when omitted. Must be specified when used as a sub-expression within larger expressions. Examples: '$.orders', '$.items[*]', '$.customer.purchases' """ path: String """ Numeric threshold value for comparison when using the operator (e.g., count > 5, sum >= 100) """ number: Float! expressions: [BusinessRuleSubExpressionGroup!] } """ Aggregation functions available for complex expressions operating on filtered data collections """ enum BusinessRuleComplexExpressionAction { """Calculate the sum of numeric values from filtered array elements""" sum """Count the number of elements that match the filtering criteria""" count """Gather and return all matching elements as a collection""" collect } """ Input for creating advanced expressions that combine multiple sub-expressions with aggregation functions """ input BusinessRuleComplexExpressionInput { """ Mathematical comparison operator for evaluating the aggregated result against the threshold value """ operator: BusinessRuleNumberExpressionOperators! """ Numeric threshold value for comparison when using the operator (e.g., count > 5, sum >= 100) """ number: Float! """ Path to the field, can be used to add additional expressions and calulations on the field. Use $ to target the field's value. When omitted the field's value is used. The expression will be used on the left hand side of the operator. Can also be used to target a specific property in a complex expression's sub-expression Check https://gorules.io/docs/rules-engine/expression-language/string for options. """ path: String """ Aggregation function to apply to the filtered data collection. - 'sum': Calculate the sum of numeric values from a specific field in filtered elements - 'count': Count the number of elements that match the filtering criteria - 'collect': Gather and return all matching elements as a collection """ action: BusinessRuleComplexExpressionAction! """ JSONPath to the specific field for sum operations (e.g., '$.price' to sum price values from filtered elements) """ field: String """ Collection of expression groups containing the filtering criteria to select elements from the data collection """ expressions: [BusinessRuleExpressionGroupInput!] } """ Input data for creating a new business rule with basic configuration and metadata """ input BusinessRuleCreateInput { """ Localized names for the business rule supporting multiple languages for international use """ name: [LocalizedStringInput!]! """ Classification of the business rule determining its domain context and application scope """ type: BusinessRuleType! } """ Date and time expression for temporal comparisons and date-specific operations. Provides comprehensive temporal comparison capabilities including absolute date comparisons, relative date calculations, and time-based conditions. Supports both date-only and datetime operations with flexible offset calculations from current time. """ type BusinessRuleDateExpression implements IBusinessRuleExpression { """Unique identifier for this expression within the business rule system""" id: ID! """ Data type classification of the expression determining available operators and validation rules """ type: BusinessRuleExpressionTypes! """ Numeric offset value for relative date calculations. Used with operators that calculate relative dates: - Days from today (positive for future, negative for past) - Minutes from now for precise time calculations - Day of week (1-7, Monday=1), day of month (1-31), month of year (1-12) """ number: Int """ Absolute date value for direct date comparisons (used with 'before' and 'after' operators) """ date: DateTime """ Time value in 24-hour format (HH:MM:SS) for time-based operators like 'onTime', 'beforeTime', 'afterTime' """ string: String """ Temporal comparison operator defining how the date/time value should be evaluated against the target field """ operator: BusinessRuleDateExpressionOperators! """ Path to the field, can be used to add additional expressions and calulations on the field. Use $ to target the field's value. When omitted the field's value is used. The expression will be used on the left hand side of the operator. Can also be used to target a specific property in a complex expression's sub-expression Check https://gorules.io/docs/rules-engine/expression-language/date-and-time for options. """ path: String } """ Input for creating date and time expressions with temporal comparisons and date-specific operations """ input BusinessRuleDateExpressionInput { """ Numeric offset value for relative date calculations. Used with operators that calculate relative dates: - Days from today (positive for future, negative for past) - Minutes from now for precise time calculations - Day of week (1-7, Monday=1), day of month (1-31), month of year (1-12) """ number: Int """ Absolute date value for direct date comparisons (used with 'before' and 'after' operators) """ date: DateTime """ Time value in 24-hour format (HH:MM:SS) for time-based operators like 'onTime', 'beforeTime', 'afterTime' """ string: String """ Temporal comparison operator defining how the date/time value should be evaluated against the target field """ operator: BusinessRuleDateExpressionOperators! """ Path to the field, can be used to add additional expressions and calulations on the field. Use $ to target the field's value. When omitted the field's value is used. The expression will be used on the left hand side of the operator. Can also be used to target a specific property in a complex expression's sub-expression Check https://gorules.io/docs/rules-engine/expression-language/date-and-time for options. """ path: String } """ Temporal comparison operators for date and time-based business rule expressions """ enum BusinessRuleDateExpressionOperators { """Check if date is before specified date value""" before """Check if date is after specified date value""" after """Check if date is before a specified number of days from today""" beforeDaysFromToday """Check if date is after a specified number of days from today""" afterDaysFromToday """Check if date matches exactly a specified number of days from today""" onDaysFromToday """ Check if datetime is before a specified number of minutes from current time """ beforeMinutesFromNow """ Check if datetime is after a specified number of minutes from current time """ afterMinutesFromNow """ Check if datetime matches exactly a specified number of minutes from current time """ onMinutesFromNow """Check if date falls on a specific day of the week (1-7, Monday=1)""" onDayOfWeek """Check if date falls on a specific day of the month (1-31)""" onDayOfMonth """Check if date falls within a specific month of the year (1-12)""" onMonthOfYear """Check if time component matches specified time value""" onTime """Check if time component is before specified time value""" beforeTime """Check if time component is after specified time value""" afterTime } """ Decision table node containing the core business logic organized in tabular format. Each decision table consists of multiple rows where each row represents a specific business rule with conditions and actions. The hit policy determines the execution strategy when multiple rules match the input criteria. Tables support complex expressions, conditional logic, and multi-criteria decision making for comprehensive business rule automation. """ type BusinessRuleDecisionTable implements IBusinessRuleNode { """ Node type identifier, always 'decisionTableNode' for decision processing nodes """ type: BusinessRuleNodeType! """ Unique identifier for this decision table node within the business rule graph """ id: ID! """ Descriptive name of the decision table indicating its business purpose and scope """ name: String! """ Detailed explanation of the decision table's logic, conditions, and expected outcomes """ description: String! """ Complete table structure containing rows, columns, and execution policy for the business rule logic """ content: BusinessRuleDecisionTableContent! } input BusinessRuleDecisionTableAddColumnInput { """The name for the input or output column""" name: String! """ The field of the input or output column. In case of an input column this is the full path the root of the input payload of the rule. In case of an output column it's the fieldname you want to output after the rule has been executed. Output fields can be organized by using the dot notation. For example: - input: "input.name" - output: "output.name.firstname" - output: "output.name.lastname" """ field: String! """The ID of the BusinessRule to search for""" ruleId: ID! type: BusinessRuleDecisionTableColumnType! """The ID of the DecisionTable inside BusinessRule to add the column to""" tableId: ID! } """ Individual data cell within a decision table row containing conditions or actions. Cells can contain different types of values depending on their purpose: - Expressions for complex conditional logic and calculations - String values for text-based results and identifiers - Numeric values for mathematical operations and quantities - Localized strings for multi-language support and internationalization """ type BusinessRuleDecisionTableCell { """ Identifier of the column this cell belongs to, linking it to the table's column definition """ columnId: ID! """ Complex expression group containing conditional logic, comparisons, and calculations for rule evaluation """ expression: BusinessRuleExpressionGroup """ Text value for output cells supporting both literal strings and expression syntax. Literal strings must be wrapped in quotes (e.g., "Hello World"). Expression syntax allows dynamic content generation and variable substitution. """ value: String """ Multi-language text values for internationalized output generation. Enables rules to produce localized content based on user preferences or regional requirements. Each entry contains a language code and corresponding translated text. """ localizedValue: [LocalizedString!] """ Numeric value for mathematical calculations, quantities, and numerical output generation """ number: Float } """ Defines whether a decision table column processes input conditions or generates output results """ enum BusinessRuleDecisionTableColumnType { """ Column containing conditions and criteria that are evaluated against incoming data """ input """ Column defining the results and actions to be executed when conditions are met """ output } """ Core content structure of a decision table containing the business logic rules and column definitions """ type BusinessRuleDecisionTableContent { """ Execution strategy determining how multiple matching rules are handled. 'first' - Execute only the first matching rule and stop processing 'collect' - Execute all matching rules and aggregate their results """ hitPolicy: BusinessRuleHitPolicyOption! """ Collection of rule rows, each containing conditions and corresponding actions for business logic execution """ rows: [BusinessRuleDecisionTableRow!]! """ Input column definitions specifying the data fields and conditions to be evaluated """ inputs: [BusinessRuleDecisionTableInputOutput!]! """ Output column definitions specifying the result fields and actions to be executed """ outputs: [BusinessRuleDecisionTableInputOutput!]! } input BusinessRuleDecisionTableDeleteColumnInput { """The ID of the column to delete""" columnId: ID! """The ID of the BusinessRule to search for""" ruleId: ID! """The type of the column to delete, either 'input' or 'output'""" type: BusinessRuleDecisionTableColumnType! """ The ID of the DecisionTable inside BusinessRule that contains the column """ tableId: ID! } input BusinessRuleDecisionTableDeleteRowInput { """The ID of the row to delete""" rowId: ID! """The ID of the BusinessRule that contains the row""" ruleId: ID! """The ID of the DecisionTable inside BusinessRule that contains the row""" tableId: ID! } """ Column definition for decision table inputs and outputs specifying data structure and field mapping. Input columns define the data fields that will be evaluated against rule conditions. Output columns define the result fields that will be populated when rules are executed. Supports hierarchical field organization using dot notation for complex data structures. """ type BusinessRuleDecisionTableInputOutput { """Unique identifier for this column definition within the decision table""" id: ID! """ Human-readable name of the column for identification and documentation purposes """ name: String! """ Data field path specification for input evaluation or output generation. Input columns: Full path from the root of the input payload (e.g., "order.customer.email") Output columns: Target field name for result population, supports nested structure with dot notation Examples: - Input: "order.items[0].price" - Access first item's price - Output: "result.discount.amount" - Set discount amount in nested result structure - Output: "customer.loyaltyPoints" - Update customer loyalty points """ field: String! """ Column data type classification, currently supports "expression" for dynamic content evaluation """ type: String! } input BusinessRuleDecisionTableMoveRowInput { """The ID of the row to move""" rowId: ID! """The ID of the row to move to""" targetRowId: ID! """ The direction of the move action relative to the target row, either 'above' or 'below' """ direction: BusinessRuleDecisionTableRowReorderDirection! """The ID of the BusinessRule that contains the table""" ruleId: ID! """ The ID of the DecisionTable inside BusinessRule that contains the rows to move """ tableId: ID! } """ Individual rule within a decision table containing conditions and corresponding actions. Each row represents a complete business rule with input conditions that must be met and output actions that will be executed. Rows are evaluated in sequence according to the table's hit policy, enabling complex decision logic and conditional processing. """ type BusinessRuleDecisionTableRow { """Unique identifier for this rule row within the decision table""" id: ID! """ Input condition cells containing expressions and criteria that must be satisfied for this rule to execute """ inputs: [BusinessRuleDecisionTableCell!]! """ Output action cells containing the results and actions to be executed when this rule's conditions are met """ outputs: [BusinessRuleDecisionTableCell!]! } """ Specifies the direction for reordering decision table rows relative to a target position """ enum BusinessRuleDecisionTableRowReorderDirection { """Move the source row to a position below the target row""" below """Move the source row to a position above the target row""" above } """ Input for searching and retrieving a specific decision table from a business rule """ input BusinessRuleDecisionTableSearchInput { """Unique identifier of the business rule containing the decision table""" ruleId: ID! """Unique identifier of the decision table within the business rule""" tableId: ID! } input BusinessRuleDecisionTableSetCellInput { """The ID of the BusinessRule that contains the table cell""" ruleId: ID! """ The ID of the DecisionTable inside BusinessRule that contains the table cell """ tableId: ID! """The ID of the row the table cell""" rowId: ID! """The ID of the column that contains the table cell""" columnId: ID! """The expressions value for this cell""" expression: BusinessRuleExpressionGroupInput """ The string value of the cell, used in output cells. Can contain a string or an expression. Strings need to be wrapped in "" """ value: String """ The localized string value of the cell, used in output cells. Used when you want a rule to generate a translated string in the output """ localizedValue: [LocalizedStringInput!] """The numeric value for this cell, used in output cells""" number: Float } input BusinessRuleDecisionTableUpdateInput { """The ID of the BusinessRule that contains the table to update""" ruleId: ID! """The ID of the DecisionTable inside BusinessRule to update""" tableId: ID! """The name of the table""" name: String """ The table's hitPolicy. Possible values: first, collect. 'first' means that the first matching row is used. 'collect' means that all matching rows are used. """ hitPolicy: BusinessRuleHitPolicyOption! } """ Directed connection between business rule nodes that defines data flow and execution sequence. Edges establish the pathway for data transformation as it moves through the business rule graph, ensuring proper sequencing of operations and maintaining data integrity throughout the processing pipeline. Most commonly, graphs contain an input node connected to a decision table node, which then connects to an output node. """ type BusinessRuleEdge { """ Unique identifier for this edge connection within the business rule graph """ id: ID! """Identifier of the source node where data originates and flows from""" sourceId: ID! """Identifier of the target node where data flows to and gets processed""" targetId: ID! """ Connection type classifier, currently supports 'edge' for standard data flow connections """ type: String! } """ Logical grouping of multiple expressions combined with AND/OR operators. Enables complex conditional logic by combining multiple individual expressions with logical operators. Supports nested grouping for sophisticated business rule conditions and hierarchical decision making. """ type BusinessRuleExpressionGroup { """ Unique identifier for this expression group within the business rule system """ id: ID! """ Collection of individual expressions that will be combined using the group's logical operator """ expressions: [IBusinessRuleExpression!]! """ Logical operator combining all expressions in this group (AND requires all true, OR requires at least one true) """ operator: BusinessRuleExpressionGroupOperators } """ Input for creating logical groups of expressions combined with AND/OR operators """ input BusinessRuleExpressionGroupInput { """ Collection of individual expressions to be combined using the specified logical operator """ expressions: [BusinessRuleExpressionUnionInput!]! """ Logical operator for combining expressions (AND requires all true, OR requires at least one true) """ operator: BusinessRuleExpressionGroupOperators = and } """ Logical operators for combining multiple expressions within a business rule group """ enum BusinessRuleExpressionGroupOperators { """Logical OR - true if any expression in the group evaluates to true""" or """ Logical AND - true only if all expressions in the group evaluate to true """ and } """ Data types supported for business rule expressions and field definitions """ enum BusinessRuleExpressionTypes { """ Text-based expressions for string matching, pattern recognition, and text operations """ string """ Numeric expressions for mathematical comparisons, calculations, and range validations """ number """Boolean expressions for true/false logic and binary decision making""" boolean """ Array expressions for collection operations, filtering, and element validation """ array """ Advanced expressions combining multiple sub-expressions with aggregation functions """ complex """ Date-based expressions for temporal comparisons and date-specific operations """ date """ Date and time expressions for precise temporal operations including time components """ datetime } """ Expression union type that is used to list expressions inside an expression group. Each instance can contain one field """ input BusinessRuleExpressionUnionInput { complex: BusinessRuleComplexExpressionInput string: BusinessRuleStringExpressionInput number: BusinessRuleNumberExpressionInput array: BusinessRuleArrayExpressionInput date: BusinessRuleDateExpressionInput } """ Field definition template for business rule input and output mapping. Defines the structure, data type, and validation rules for fields that can be used in business rule expressions. Supports hierarchical field organization with nested sub-fields and complex data structures for comprehensive rule modeling. """ type BusinessRuleFieldDefinition { """Unique identifier for this field definition within the system""" id: ID! """ Human-readable name of the field in multiple languages for international support """ name: [LocalizedString!]! """ JSONPath expression defining the location of this field within the data structure (e.g., 'order.customer.email') """ path: String! """ Data type of the field determining available operations and validation rules """ type: BusinessRuleExpressionTypes! """ Available action fields for complex types that support nested operations and transformations """ fields: [BusinessRuleActionField!] """ Nested field definitions for complex types enabling hierarchical data structure modeling """ expressions: [BusinessRuleFieldDefinition!] } """ Collection of related field definitions organized by domain context for business rule mapping. Groups field definitions by logical domains (e.g., order, customer, product) to provide organized access to available fields. Supports hierarchical organization with root groups and nested structures for complex data modeling. """ type BusinessRuleFieldDefinitionGroup { """Unique identifier for this field definition group within the system""" id: ID! """ Domain name of the field definition group (e.g., 'order', 'customer', 'product') """ name: String! """ Indicates whether this group represents a top-level domain or a nested sub-group """ isRoot: Boolean! """ Collection of field definitions available within this domain group for business rule construction """ definitions: [BusinessRuleFieldDefinition!]! } """ Execution strategy for decision table rules when multiple conditions may match """ enum BusinessRuleHitPolicyOption { """ Execute only the first matching rule and stop processing subsequent rules """ first """ Execute all matching rules and collect their results for comprehensive output """ collect } """ Input node that serves as the entry point for data into the business rule execution flow """ type BusinessRuleInput implements IBusinessRuleNode { """Node type identifier, always 'inputNode' for input processing nodes""" type: BusinessRuleNodeType! """Unique identifier for this input node within the business rule graph""" id: ID! """ Descriptive name of the input node indicating the type of data it processes """ name: String! """ Detailed explanation of the input node's data requirements and validation rules """ description: String! } """ Defines the functional role of nodes within a business rule workflow graph """ enum BusinessRuleNodeType { """ Entry point node that receives and processes input data for the business rule execution """ inputNode """ Terminal node that defines the final output structure and values after rule processing """ outputNode """ Processing node containing decision logic with conditions and actions organized in tabular format """ decisionTableNode """ Computational node that executes custom functions or complex calculations within the rule flow """ functionNode } """ Numeric expression for mathematical comparisons, calculations, and range validations. Provides comprehensive numeric comparison capabilities including equality, inequality, and range operations. Supports integer and decimal values for precise mathematical business rule conditions and calculations. """ type BusinessRuleNumberExpression implements IBusinessRuleExpression { """Unique identifier for this expression within the business rule system""" id: ID! """ Data type classification of the expression determining available operators and validation rules """ type: BusinessRuleExpressionTypes! """ Mathematical comparison operator defining how the numeric value should be evaluated against the target field """ operator: BusinessRuleNumberExpressionOperators! """ Numeric value to compare against the target field using the specified operator """ number: Float! """ Path to the field, can be used to add additional expressions and calculations on the field. Use $ to target the field's value. When omitted the field's value is used. The expression will be used on the left hand side of the operator. Can also be used to target a specific property in a complex expression's sub-expression Check https://gorules.io/docs/rules-engine/expression-language/number for options. """ path: String } """ Input for creating numeric expressions with mathematical comparisons and range validations """ input BusinessRuleNumberExpressionInput { """ Mathematical comparison operator defining how the numeric value should be evaluated against the target field """ operator: BusinessRuleNumberExpressionOperators! """ Numeric value to compare against the target field using the specified operator """ number: Float! """ Path to the field, can be used to add additional expressions and calulations on the field. Use $ to target the field's value. When omitted the field's value is used. The expression will be used on the left hand side of the operator. Can also be used to target a specific property in a complex expression's sub-expression Check https://gorules.io/docs/rules-engine/expression-language/string for options. """ path: String } """ Mathematical comparison operators for numeric business rule expressions """ enum BusinessRuleNumberExpressionOperators { """Exact numeric equality comparison""" equals """Numeric inequality comparison""" notEquals """Less than comparison for numeric values""" lowerThan """Greater than comparison for numeric values""" greaterThan """Less than or equal to comparison for numeric values""" lowerThanOrEqualTo """Greater than or equal to comparison for numeric values""" greaterThanOrEqualTo } """ Output node that formats and returns the final results after business rule processing """ type BusinessRuleOutput implements IBusinessRuleNode { """Node type identifier, always 'outputNode' for result generation nodes""" type: BusinessRuleNodeType! """Unique identifier for this output node within the business rule graph""" id: ID! """ Descriptive name of the output node indicating the type of results it generates """ name: String! """ Detailed explanation of the output node's result structure and formatting rules """ description: String! } """ Paginated response container for business rule search queries with metadata. Provides structured access to business rule collections with pagination support, including total count information and navigation metadata for efficient data browsing and API consumption. """ type BusinessRuleResponse { """List of items of type BusinessRule""" items: [BusinessRule!]! """Total number of items found""" itemsFound: Int! """The amount of items to show per page""" offset: Int! """The current page""" page: Int! """Total amount of pages""" pages: Int! """Start position of the current page""" start: Int! """End position of the current page""" end: Int! } """ Search criteria and pagination settings for filtering business rule collections """ input BusinessRuleSearchInput { """ Filter by specific business rule types to narrow search results by domain context """ type: [BusinessRuleType!] """Page number for pagination (minimum: 1, default: 1)""" page: Int = 1 """ Number of items per page for pagination (minimum: 1, maximum: 100, default: 12) """ offset: Int = 12 """ Filter by creation date range to find rules created within specific time periods """ createdAt: DateSearchInput """Filter by last modification date range to find recently updated rules""" lastModifiedAt: DateSearchInput } """ String-based expression for text matching, pattern recognition, and string operations. Provides comprehensive string comparison capabilities including exact matching, pattern matching, and array membership testing. Supports case-sensitive operations and various string manipulation functions for flexible text-based business rule conditions. """ type BusinessRuleStringExpression implements IBusinessRuleExpression { """Unique identifier for this expression within the business rule system""" id: ID! """ Data type classification of the expression determining available operators and validation rules """ type: BusinessRuleExpressionTypes! """ String comparison operator defining how the string value should be evaluated against the target field """ operator: BusinessRuleStringExpressionOperators! """ Text value to compare against the target field using the specified operator """ string: String! """ Path to the field, can be used to add additional expressions and calulations on the field. Use $ to target the field's value. When omitted the field's value is used. The expression will be used on the left hand side of the operator. Can also be used to target a specific property in a complex expression's sub-expression Check https://gorules.io/docs/rules-engine/expression-language/string for options. """ path: String } """ Input for creating string-based expressions with text matching and pattern recognition capabilities """ input BusinessRuleStringExpressionInput { """ String comparison operator defining how the string value should be evaluated against the target field """ operator: BusinessRuleStringExpressionOperators! """ Text value to compare against the target field using the specified operator """ string: String! """ Path to the field, can be used to add additional expressions and calulations on the field. Use $ to target the field's value. When omitted the field's value is used. The expression will be used on the left hand side of the operator. Can also be used to target a specific property in a complex expression's sub-expression Check https://gorules.io/docs/rules-engine/expression-language/string for options. """ path: String } """ Comparison and matching operators for string-based business rule expressions """ enum BusinessRuleStringExpressionOperators { """Exact string match comparison (case-sensitive)""" equals """String inequality comparison (case-sensitive)""" notEquals """Check if string begins with specified prefix""" startsWith """Check if string ends with specified suffix""" endsWith """Check if string contains specified substring""" contains """Check if string value exists within a specified array of strings""" existsInArray } """ Nested expression group for complex filtering within parent expressions. Provides hierarchical expression organization for advanced business rule logic. Used within complex expressions to define sophisticated filtering criteria with multiple levels of conditional logic. """ type BusinessRuleSubExpressionGroup { """ Unique identifier for this sub-expression group within the parent expression context """ id: ID! """ JSONPath to the field that this sub-expression group will evaluate against (e.g., '$.items[*].category') """ field: String! """ Collection of nested expressions that will be combined using the group's logical operator """ expressions: [IBusinessRuleExpression!]! """ Logical operator combining all nested expressions (AND requires all true, OR requires at least one true) """ operator: BusinessRuleExpressionGroupOperators } """ Classification of business rule contexts that determine the domain and application scope for automated decision-making """ enum BusinessRuleType { """ Business rules for determining available payment methods based on order value, customer profile, and regional restrictions. """ orderPaymentMethods """ Business rules for selecting appropriate shipping carriers based on destination, package requirements, and service levels. """ orderCarriers """ Business rules for applying promotional incentives, discounts, and special offers based on order and customer conditions. """ orderIncentives """ Business rules for calculating shipping costs based on order and customer conditions. """ orderShippingCosts """ Business rules for calculating transaction costs based on order and customer conditions. """ orderTransactionCosts } """ Input data for updating an existing business rule's basic configuration and metadata """ input BusinessRuleUpdateInput { """Updated localized names for the business rule in multiple languages""" name: [LocalizedStringInput!]! } """ HTTP cache control settings for media files. Controls how browsers and CDNs cache the media content. Default settings provide optimal performance with public caching for 7 days. """ input CacheControlInput { """ Cache visibility and storage policy. Determines whether the content can be cached by public proxies or only private caches. Defaults to 'public' for optimal CDN performance. """ type: CacheControlType """ Maximum cache duration in seconds. Specifies how long browsers and CDNs should cache the media file before checking for updates. Defaults to 604800 seconds (7 days). """ maxAge: Int } """Cache Control Type [no-store, public or none]""" enum CacheControlType { """Adds 'no-store' to the Cache Control header""" NO_STORE """Adds 'public' to the Cache Control header""" PUBLIC } type CancelReindexResponse { cancelled: Boolean! removedJobs: Int! } """ Change the size of the image canvas. Sets the size of the image canvas, without changing the size of the image itself, which has the effect of adding space around the image. This parameter takes multiple values. The first two represent the desired width and height, either as measurements of pixels, separated with a comma, or as a ratio, separated with a colon. The remaining parameters allow the placement of the image within the canvas to be adjusted. On each dimension, placement can be made either with a position coordinate (x or y, which are relative to the top left of the newly-enlarged canvas) or as a percentage offset from the center of the image using offset-x and offset-y. These can be mixed and matched, but only one method can be used for each dimension (i.e., x can be combined with offset-y but x cannot be combined with offset-x). The remaining parameters determine the position of the cropped region. Offset positioning acts to distribute the remaining space according to the specified offset proportions. For example, offset-y10 would place the image so that 10% of the leftover space is above the image and 90% below it. Notes - x and y can be set as a value in pixels (e.g., 40 is 40 pixels) or as a percentage suffixed with p (e.g., 50p is 50%). - When x and y are percentages, they are calculated as percentages of the image size, not the canvas size. - offset-x and offset-y are always interpreted as percentages of the canvas size (e.g., 25 is 25%). - If no x, y, offset-x, or offset-y parameters are supplied, the image is positioned in the center of the canvas. - The background color of the canvas will default to transparency for image output formats that support transparency and white for formats that don't. This behavior can be changed by adding the bg-color parameter. - When using canvas and pad at the same time, pad will be ignored. - Any fractional pixel measurements will be rounded to the nearest whole pixel. """ input CanvasInput { """Width as Pixels or Percentage""" width: Int """Height as Pixels or Percentage""" height: Int """WidthRatio as Number""" widthRatio: Int """HeightRatio as Number""" heightRatio: Int """X as Pixels or Percentage""" x: Int """Y as Pixels or Percentage""" y: Int """X Offset as Percentage""" offsetX: Int """Y Offset as Percentage""" offsetY: Int } """ Shipping carrier configuration for logistics and delivery operations. Represents a shipping company or service provider including service details, coverage areas, pricing information, and integration settings. Used for shipping calculations, order fulfillment, and logistics management. """ type Carrier { """ Unique identifier for the shipping carrier. Primary key used to reference this carrier throughout the system and for shipping operations. """ id: Int! """ Shipping carrier company name. Official name of the shipping company or service provider used for display in shipping options and logistics management. Constraints: - Must be unique within the organization - Cannot exceed 64 characters """ name: String! """ Type of shipping service offered by the carrier. Defines the delivery method and service characteristics provided by this carrier (e.g., pickup, delivery, express). """ type: CarrierType! """ Localized carrier descriptions for different languages. Collection of carrier service descriptions in various languages for international shipping options and multilingual storefronts. Constraints: - Each description must have a unique 2-character language code - Language codes must be uppercase (e.g., EN, DE, FR) - Text values can contain up to 255 characters """ descriptions: [LocalizedString!] """ Base shipping cost for this carrier (deprecated). Fixed shipping cost associated with this carrier. This field is deprecated in favor of Propeller's business rule builder for more flexible and complex pricing logic. Constraints: - Decimal precision: 10 digits total, 5 decimal places - Must be a positive value """ shippingCost: Float! @deprecated(reason: "Deprecated in favour of Propeller's business rule builder, where logic can be set up for carriers and more complex use cases") """ Package tracking URL template for shipment monitoring. URL template used to generate tracking links for packages shipped with this carrier. May include placeholders for tracking numbers and other shipment details. Constraints: - Must be a valid HTTPS URL - Cannot exceed 255 characters - May include query parameters and placeholders """ trackAndTraceURL: String """ Carrier logo URL for branding in shipping options. URL pointing to the carrier's logo image used for branding in shipping options and customer-facing interfaces. Constraints: - Must be a valid URL - Cannot exceed 255 characters - Recommended: Maximum file size of 200kB - Recommended: Dimensions of 200x200px """ logo: String """ Date and time when the carrier was created. Timestamp indicating when this carrier was first added to the system. Used for auditing, filtering, and tracking carrier lifecycle. Always in UTC format. """ createdAt: DateTime! """ Date and time when the carrier was last modified. Timestamp indicating when this carrier was most recently updated in the system. Used for auditing, filtering, and tracking carrier changes. Always in UTC format. """ lastModifiedAt: DateTime! """ Unique identifier of the user who created this carrier. References the user account that originally created this carrier record. Used for auditing and tracking carrier ownership. May be null for system-created carriers. """ createdBy: Int """ Unique identifier of the user who last modified this carrier. References the user account that most recently updated this carrier record. Used for auditing and tracking carrier changes. May be null for system-updated carriers. """ lastModifiedBy: Int """ Retrieve all tracking records for a specific carrier. Returns comprehensive tracking information for packages handled by the specified shipping carrier. """ trackAndTraces: [TrackAndTrace!]! """ Detailed warehouse information for carrier locations. Complete warehouse objects for all locations where this carrier provides services. Includes address, operational hours, and facility details for each warehouse. """ warehouses: [Warehouse!] } """ Input data for creating a new shipping carrier. Contains all required and optional information needed to establish a new carrier including service details, coverage areas, pricing, and integration settings. """ input CarrierCreateInput { """ Unique name identifying the shipping carrier within your organization. Official name of the shipping company or service provider used for display in shipping options and logistics management. Validation requirements: - Must be unique within the organization - Cannot exceed 64 characters - Cannot be empty or contain only whitespace """ name: String! """ Type of shipping service offered by this carrier. Defines the delivery method and service characteristics provided by this carrier. Determines how customers receive their orders and affects shipping calculations. """ type: CarrierType! """ Localized descriptions of the carrier service for different languages and markets. Collection of carrier service descriptions in various languages for international shipping options and multilingual storefronts. Validation requirements: - Each description must have a unique 2-character language code (e.g., EN, DE, FR) - Language codes must be uppercase - Text values can contain up to 255 characters - Array must contain unique language codes only """ descriptions: [LocalizedStringInput!]! """ URL template for package tracking and shipment monitoring. URL template used to generate tracking links for packages shipped with this carrier. May include placeholders for tracking numbers and other shipment details. Validation requirements: - Must be a valid HTTPS URL - Cannot exceed 255 characters - Must include protocol and host - Query parameters are allowed """ trackAndTraceURL: String """ Public URL to the carrier's logo image for branding in shipping interfaces. URL pointing to the carrier's logo image used for branding in shipping options and customer-facing interfaces. Validation requirements: - Must be a valid URL - Cannot exceed 255 characters - Recommended: Maximum file size of 200kB - Recommended: Dimensions of 200x200px """ logo: String """ Identifiers of warehouses where this carrier provides shipping services. Array of warehouse IDs that this carrier can service for shipping operations. Used to determine shipping availability and calculate shipping options based on fulfillment location. Validation requirements: - All warehouse IDs must be positive integers - Array must contain unique values only - Warehouse IDs will be validated against the warehouse service """ warehouseIds: [Int!] } """Available fields for sorting carrier search results""" enum CarrierSortField { """Sort by carrier unique identifier""" ID """Sort by carrier name alphabetically""" NAME """Sort by last modification date""" LAST_MODIFIED_AT """Sort by creation date""" CREATED_AT } """ Sorting criteria for carrier result ordering. Specifies a field and direction for sorting carrier search results. Used to control the order in which carriers are returned from search operations. """ input CarrierSortInput { """ Field to sort carriers by. Specifies which carrier property to use for sorting results. Available fields include ID, name, creation date, and last modification date. """ field: CarrierSortField! """ Sort direction for the specified field. Determines whether results are sorted in ascending or descending order. Ascending order sorts from lowest to highest values, while descending sorts from highest to lowest. """ order: SortOrder! = asc } """ Paginated response containing carrier search results. Provides a structured response for carrier search operations including the matching carriers, pagination metadata, and result statistics. Used to deliver carrier data with comprehensive pagination support. """ type CarriersResponse { """List of items of type Carrier""" items: [Carrier!]! """Total number of items found""" itemsFound: Int! """The amount of items to show per page""" offset: Int! """The current page""" page: Int! """Total amount of pages""" pages: Int! """Start position of the current page""" start: Int! """End position of the current page""" end: Int! } """ Search criteria for filtering and paginating carriers. Provides comprehensive filtering options for carrier searches including pagination, date ranges, service types, warehouse coverage, and sorting capabilities. All filters are optional and can be combined for precise results. """ input CarriersSearchInput { """ Page number for pagination results. Specifies which page of results to retrieve. Used in combination with offset to control result pagination. Validation requirements: - Must be a positive integer starting from 1 """ page: Int = 1 """ Number of items per page. Specifies how many carriers to return per page. Used in combination with page to control result pagination. Validation requirements: - Must be a positive integer between 1 and 100 """ offset: Int = 12 """ Filter carriers by creation date range. Allows filtering carriers based on when they were created in the system. Validation requirements: - Supports both greater than and less than date comparisons - Dates must be in ISO 8601 format (e.g., 2024-01-15T10:30:00.000Z) """ createdAt: DateSearchInput """ Filter by specific carrier names. Allows filtering carriers by their exact names. Supports multiple names for batch filtering. Validation requirements: - Names are case-sensitive and must match exactly - Each name cannot exceed 64 characters """ names: [String!] """ Filter by carrier service types. Allows filtering carriers by their service delivery methods. Supports multiple types for comprehensive filtering. Validation requirements: - Each type must be unique in the array - Only valid CarrierType enum values are accepted """ types: [CarrierType!] """ Filter by specific carrier identifiers. Allows filtering carriers by their unique IDs. Supports multiple IDs for batch retrieval. Validation requirements: - Each ID must be a positive integer - Array must contain unique values only """ ids: [Int!] """ Filter carriers by warehouse service coverage. Allows filtering carriers that provide services to specific warehouses. Supports multiple warehouse IDs for comprehensive coverage filtering. Validation requirements: - Each ID must be a positive integer - Array must contain unique values only """ warehouseIds: [Int!] """ Filter carriers by last modification date range. Allows filtering carriers based on when they were last updated in the system. Validation requirements: - Supports both greater than and less than date comparisons - Dates must be in ISO 8601 format (e.g., 2024-01-15T10:30:00.000Z) """ lastModifiedAt: DateSearchInput """ Sorting criteria for result ordering. Allows specifying multiple sorting fields with custom ordering directions. Results are sorted in the order specified, with each sort input containing a field and direction. Validation requirements: - Each sort input must be unique - Field must be a valid CarrierSortField enum value - Order must be either ASC or DESC """ sortInputs: [CarrierSortInput!] } """Classification of shipping service delivery methods""" enum CarrierType { """ Customer pickup service where orders are collected from designated pickup points or carrier locations """ PICKUP """ Home or business delivery service where orders are delivered directly to the customer's specified address """ DELIVERY } """ Input data for updating an existing shipping carrier. Contains optional fields for modifying carrier information including service details, coverage areas, pricing, and integration settings. Only provided fields will be updated, others remain unchanged. """ input CarrierUpdateInput { """ Unique name identifying the shipping carrier within your organization. Official name of the shipping company or service provider used for display in shipping options and logistics management. Validation requirements: - Must be unique within the organization - Cannot exceed 64 characters - Cannot be empty or contain only whitespace """ name: String """ Type of shipping service offered by this carrier. Defines the delivery method and service characteristics provided by this carrier. Determines how customers receive their orders and affects shipping calculations. """ type: CarrierType """ Localized descriptions of the carrier service for different languages and markets. Collection of carrier service descriptions in various languages for international shipping options and multilingual storefronts. Validation requirements: - Each description must have a unique 2-character language code (e.g., EN, DE, FR) - Language codes must be uppercase - Text values can contain up to 255 characters - Array must contain unique language codes only """ descriptions: [LocalizedStringInput!] """ Base shipping cost for this carrier (deprecated). Fixed shipping cost associated with this carrier. This field is deprecated in favor of business rule builder for more flexible and complex pricing logic. Validation requirements: - Must be a positive decimal value - Supports up to 5 decimal places """ shippingCost: Float """ URL template for package tracking and shipment monitoring. URL template used to generate tracking links for packages shipped with this carrier. May include placeholders for tracking numbers and other shipment details. Validation requirements: - Must be a valid HTTPS URL - Cannot exceed 255 characters - Must include protocol and host - Query parameters are allowed """ trackAndTraceURL: String """ Public URL to the carrier's logo image for branding in shipping interfaces. URL pointing to the carrier's logo image used for branding in shipping options and customer-facing interfaces. Validation requirements: - Must be a valid URL - Cannot exceed 255 characters - Recommended: Maximum file size of 200kB - Recommended: Dimensions of 200x200px """ logo: String """ Identifiers of warehouses where this carrier provides shipping services. Array of warehouse IDs that this carrier can service for shipping operations. Used to determine shipping availability and calculate shipping options based on fulfillment location. Validation requirements: - All warehouse IDs must be positive integers - Array must contain unique values only - Warehouse IDs will be validated against the warehouse service """ warehouseIds: [Int!] } """ Shopping cart entity for managing customer purchases. Represents a shopping session containing products, customer information, addresses, payment preferences, and all data needed for order processing. Carts can be associated with different customer types and support various business models. """ type Cart implements ICart { """ Unique identifier for the shopping cart. This UUID serves as the primary key and is used to reference the cart across all operations and API calls. """ cartId: String! """ Sales channel identifier where the cart was created. References the specific channel (webshop, mobile app, marketplace) that initiated this cart session, used for channel-specific pricing and business rules. """ channelId: Int """ [DEPRECATED] Shop identifier that owns this cart. References the specific shop configuration including branding, pricing rules, payment methods, and shipping options that apply to this cart. """ shopId: Int! @deprecated(reason: "Shop is deprecated and will be removed in the future. Use channelId instead") """ Legacy user identifier (deprecated). Previously used for user association. Use contactId with companyId for B2B customers or customerId for B2C customers instead. """ userId: Int @deprecated(reason: "This field will be removed in a future release, use contact+companyId or customerId instead") """ Contact identifier for B2B cart association. Used in combination with companyId to identify the specific contact within a company who owns this cart. Enables contact-specific pricing and permissions. """ contactId: Int """ Customer identifier for B2C cart association. Links the cart to an individual customer account for personalized pricing, order history, and customer-specific features. Used for direct consumer sales. """ customerId: Int """ Company identifier for B2B cart association. Used in combination with contactId to establish the company context for this cart. Enables company-specific pricing, terms, and business rules. """ companyId: Int """ Customer notes and special instructions for the cart. Free-form text where customers can add delivery instructions, special requests, or other notes that should be considered during order processing. """ notes: String """ Customer reference number or identifier. Allows customers to associate their own reference numbers, project codes, or purchase order numbers with the cart for their internal tracking. """ reference: String """ Custom metadata field for cart extensions. Open field for storing additional cart information that can be used in custom implementations, integrations, or frontend customizations. """ extra3: String """ Additional custom metadata field for cart extensions. Second open field for storing supplementary cart information for custom business logic, integrations, or specialized cart features. """ extra4: String """ Order processing status after cart conversion. Indicates the status of the order created from this cart. 'UNFINISHED' means the cart is awaiting payment completion from the payment service provider. """ orderStatus: String """ Applied promotional action code. Contains the action code (discount, promotion, or special offer) that has been successfully applied to this cart. Only populated when a valid action code is active. """ actionCode: String """ Applied voucher codes and their details. Collection of voucher codes that have been successfully applied to this cart, including their discount values and validity information. """ vouchers: [CartVoucher!] """Payment data for this cart.""" paymentData: CartPaymentData """Postage data for this cart.""" postageData: CartPostageData """Totals for this cart.""" total: CartTotal """Cart's main items""" items: [CartMainItem!] """Bonus items that are added to this cart through incentives.""" bonusItems: [CartBaseItem!] """Items that are added to the Cart, but can't be ordered.""" unOrderableItems: [CartUnOrderableItem!] """Address the invoice for the order should be sent to.""" invoiceAddress: CartAddress! """Address the order should be sent to.""" deliveryAddress: CartAddress! """Amount of tax that applies to this cart per tax code""" taxLevels: [CartTaxLevel!] """List of selectable paymethods for this cart and applied user.""" payMethods: [CartPaymethod!] """List of selectable carriers for this cart.""" carriers: [CartCarrier!] """Date this cart has been created.""" createdAt: DateTime """Date this cart has been last updated.""" lastModifiedAt: DateTime """User which created the cart.""" createdBy: Int """User which last updated the cart.""" lastModifiedBy: Int """All incentives that apply to this cart.""" appliedIncentives: [CartIncentive!] """Total amount of value-points that apply to this cart""" valuePoints: Int """All shipping methods available for this cart.""" shippingMethods: [CartShippingMethod!] """ Language of the order that will be created from this cart. Order confirmation email will be sent in that language. """ language: String """Indicates whether authorization is required to finalize the cart""" purchaseAuthorizationRequired: Boolean! """Indicates cart status""" status: CartStatus """Cart User""" user: IBaseUser @deprecated(reason: "Deprecated in favor of `contact` or `customer`") """Tender Contact""" contact: Contact """Tender Customer""" customer: Customer """Tender Company""" company: Company } """ Input for accepting a cart purchase authorization request. Used by authorization managers to approve carts that require purchase authorization before they can be processed into orders. """ input CartAcceptPurchaseAuthorizationRequestInput { """ Identifier of the contact accepting the authorization request. Must be a valid contact ID representing an authorization manager within the same company as the cart. If not provided, the current user's contact will be used. """ contactId: Int } """ Input for applying promotional action codes to a shopping cart. Contains the action code that triggers discounts, promotions, or special offers when applied to the cart. """ input CartActionCodeInput { """ Promotional action code to activate. Must be a valid, non-empty action code. HTML tags will be automatically removed for security. The code will be validated against available promotions and discounts. """ actionCode: String! } """ Input for adding a product bundle to a shopping cart. Contains the information needed to add a pre-configured bundle of products to the cart as a single unit with bundle-specific pricing and configuration. """ input CartAddBundleInput { """ Number of units to add to the cart. Must be a positive integer. Defaults to 1 if not specified. """ quantity: Int = 1 """ Additional notes or special instructions for this item. Maximum length of 255 characters. HTML tags will be automatically removed for security. """ notes: String """ Preferred delivery date for this specific item. Must be provided in ISO 8601 date format (YYYY-MM-DD). Used for items that require specific delivery scheduling. """ requestDate: String """ Unique identifier of the bundle to add to the cart. Must reference a valid bundle configuration that defines the products, quantities, and pricing rules for the bundle. """ bundleId: String! } """ Input for adding a product item to a shopping cart. Contains all necessary information to add a product to the cart including quantity, pricing overrides, and configuration options for complex products like clusters. """ input CartAddItemInput { """ Number of units to add to the cart. Must be a positive integer. Defaults to 1 if not specified. """ quantity: Int = 1 """ Additional notes or special instructions for this item. Maximum length of 255 characters. HTML tags will be automatically removed for security. """ notes: String """ Preferred delivery date for this specific item. Must be provided in ISO 8601 date format (YYYY-MM-DD). Used for items that require specific delivery scheduling. """ requestDate: String """ Unique identifier of the product to add to the cart. Must reference a valid product that is available for purchase and matches the cart's shop and channel configuration. """ productId: Int! """ Cluster identifier for configurable product groups. When adding items that are part of a product cluster (configurable products with multiple components), this identifies the cluster configuration. All child items must belong to this cluster. """ clusterId: Int """ Override price per unit for external pricing systems. When specified, overrides the calculated price with a custom value. Should only be used when integrating with external pricing systems. Maximum 5 decimal places allowed. """ price: Float """ Child items for configurable product clusters. Used when adding complex products that consist of multiple components. Each child item represents a component of the main product and must be part of the specified cluster configuration. """ childItems: [CartChildItemInput!] } """ Address information for cart delivery and billing. Contains complete address details including personal information, location data, and contact details used for order processing and delivery. """ type CartAddress { """ Company or organization name. Used for business addresses where the delivery or billing should be addressed to a specific company. """ company: String """ Gender of the address contact person. Used for proper addressing in communications and delivery instructions. """ gender: Gender """ First name of the address contact person. Required for personal identification and delivery confirmation. """ firstName: String! """ Middle name or initial of the address contact person. Optional additional name information for complete identification. """ middleName: String """ Last name or surname of the address contact person. Required for personal identification and delivery confirmation. """ lastName: String! """ Street name for the address. Primary location identifier for delivery and billing purposes. """ street: String! """ House or building number. Specific location identifier within the street for precise delivery. """ number: String """ Additional address information such as apartment, suite, or unit number. Used for multi-unit buildings or complex delivery locations. """ numberExtension: String """ Postal or ZIP code for the address. Required for mail delivery and location verification. """ postalCode: String! """ City or municipality name. Required geographic identifier for delivery routing and address validation. """ city: String! """ State, province, or regional identifier. Additional geographic information for address precision and delivery routing. """ region: String """ Country name or code. Required for international shipping and address validation. """ country: String! """ Additional address code or reference. Used for internal address identification or special delivery instructions. """ code: String """ Email address for delivery notifications and communication. Used for order updates, delivery confirmations, and customer communication. """ email: String """ Mobile phone number for delivery coordination. Primary contact number for delivery notifications and coordination. """ mobile: String """ Landline phone number for additional contact options. Alternative contact method for delivery coordination and customer service. """ phone: String """ Indicates if this is an Intra-Community Supply (ICS) address. Used for VAT exemption on cross-border B2B transactions within the EU. """ icp: YesNo """ Additional notes or special delivery instructions. Free-form text for specific delivery requirements, access codes, or special handling instructions. """ notes: String } """Address types used in shopping cart operations""" enum CartAddressType { """Billing address where the invoice should be sent""" INVOICE """Shipping address where the order should be delivered""" DELIVERY } """ Base cart item with pricing and configuration details. Represents an item in the shopping cart with complete pricing breakdown, discounts, and delivery information. Serves as the foundation for different types of cart items. """ type CartBaseItem implements ICartBaseItem { """ Unique identifier for this cart item. Used for item-specific operations like updates, deletions, and tracking. Generated when the item is added to the cart. """ itemId: String! """ Identifier of the parent item in hierarchical structures. Used when this item is a child component of a configurable product or bundle. Links to the main item's UUID. """ parentItemUUID: String """ Customer notes or special instructions for this item. Free-form text for item-specific requirements, customizations, or delivery instructions. """ notes: String """ Unit price excluding VAT before discounts. Base price per unit of measure for this item, calculated before any item-specific discounts are applied. """ price: Float! """ Unit price including VAT before discounts. Base price per unit of measure for this item with tax included, calculated before any item-specific discounts are applied. """ priceNet: Float! """ Source of the item's price calculation. Indicates whether the price was calculated using platform rules (PLATFORM) or provided by external systems (EXTERNAL). """ priceMode: PriceMode """ Final unit price excluding VAT after discounts. Total price per unit including all item-specific discounts and promotions, calculated before tax. """ totalPrice: Float! """ Final unit price including VAT after discounts. Total price per unit including all item-specific discounts, promotions, and tax. """ totalPriceNet: Float! """ Combined unit price excluding VAT for item and components. Sum of the main item price and all child item prices per unit, calculated before discounts and tax. """ sum: Float! """ Combined unit price including VAT for item and components. Sum of the main item price and all child item prices per unit with tax, calculated before discounts. """ sumNet: Float! """ Final combined unit price excluding VAT after discounts. Total sum of main item and child item prices per unit, including all discounts but excluding tax. """ totalSum: Float! """ Final combined unit price including VAT after discounts. Total sum of main item and child item prices per unit, including all discounts and tax. """ totalSumNet: Float! """ Number of units of this item in the cart. Quantity ordered by the customer, used for calculating total prices and inventory requirements. """ quantity: Int! """ Bundle identifier when this item is part of a product bundle. Links the item to a specific bundle configuration for bundled product offerings. """ bundleId: String """ Cluster identifier for configurable product groups. Used when this item belongs to a cluster of related or configurable products. """ clusterId: Int """ Product identifier for the underlying product. Links the cart item to the specific product in the catalog system. """ productId: Int """ Tax classification code for this item. Determines the tax rate and handling applied to this item based on product type and regulations. """ taxCode: Taxcode! """ Expected delivery date for this item. Calculated or estimated date when this specific item will be delivered to the customer. """ deliveryDate: DateTime """ Latest acceptable delivery date for this item. Deadline by which this item must be delivered to meet customer requirements or service agreements. """ deliveryDeadline: DateTime """ Total discount amount applied to this item. Sum of all discounts and reductions applied to this cart item, calculated in the cart's currency. """ discount: Float! """ Percentage discount applied to this item. Combined percentage reduction from all applicable promotions and discounts for this item. """ discountPercentage: Float! """ Additional charges applied to this item. List of extra fees, surcharges, or special handling costs associated with this cart item. """ surcharges: [CartItemSurcharge!] """ Promotional incentive applied to this item. Details of any special promotion, discount, or bonus offer that affects this cart item. """ incentive: CartItemIncentive """ Customer's requested delivery date for this item. Date specified by the customer for when they would prefer to receive this item. """ requestDate: DateTime product(hidden: Boolean): Product! } """ Shipping carrier information for cart delivery options. Represents available shipping providers with their pricing and delivery estimates for the current cart configuration. """ type CartCarrier { """ Unique identifier for the shipping carrier. Used to select this carrier for cart delivery and track carrier-specific configurations. """ id: Int! """ Display name of the shipping carrier. Human-readable carrier name shown to customers during carrier selection. """ name: String! """ URL or path to the carrier's logo image. Visual identifier for the carrier, used in user interfaces for carrier selection. """ logo: String """ Estimated shipping cost for this carrier. Indicative pricing for delivery through this carrier. Final costs may vary based on business rules, promotions, and actual shipping calculations. """ price: Float! """ Expected delivery deadline for this carrier. Estimated date when the order would be delivered if this carrier is selected. Based on current processing times and carrier schedules. """ deliveryDeadline: DateTime } """ Input for child items in bulk cart operations. Represents component items that belong to a main item in configurable products or bundles. Contains the same fields as the main item input except for child items and cluster ID. """ input CartChildItemBulkInput { """ Unique identifier of an existing cart item to update or remove. Must be a valid UUID. Cannot be used together with productId or clusterId. Used for modifying items already in the cart. """ itemId: String """ Product identifier for adding new items to the cart. Must be a valid product ID from the catalog. Cannot be used with itemId. Used for adding new products to the cart. """ productId: Int """ Override price per unit for this cart item. When specified, replaces the calculated price with this custom value. Primarily used for external pricing systems. Must be a positive number with maximum 5 decimal places. """ price: Float """ Number of units to add, update, or maintain in the cart. Defaults to 1 if not specified. When updating existing items, setting to null will reset quantity to 1. Setting to 0 will remove the item from the cart. """ quantity: Int """ Additional notes or special instructions for this item. Maximum length of 255 characters. HTML tags will be automatically removed for security. """ notes: String """ Preferred delivery date for this specific item. Must be provided in ISO 8601 date format (YYYY-MM-DD). Used for items that require specific delivery scheduling. """ requestDate: String } """ Input for adding child items within a product cluster. Represents a component item that is part of a configurable product cluster. Contains the same fields as the main item input but excludes cluster-level properties. """ input CartChildItemInput { """ Number of units to add to the cart. Must be a positive integer. Defaults to 1 if not specified. """ quantity: Int = 1 """ Additional notes or special instructions for this item. Maximum length of 255 characters. HTML tags will be automatically removed for security. """ notes: String """ Preferred delivery date for this specific item. Must be provided in ISO 8601 date format (YYYY-MM-DD). Used for items that require specific delivery scheduling. """ requestDate: String """ Unique identifier of the product to add to the cart. Must reference a valid product that is available for purchase and matches the cart's shop and channel configuration. """ productId: Int! """ Override price per unit for external pricing systems. When specified, overrides the calculated price with a custom value. Should only be used when integrating with external pricing systems. Maximum 5 decimal places allowed. """ price: Float } """ Input for removing items from a shopping cart. Contains the identifier needed to locate and remove a specific item from the cart. """ input CartDeleteItemInput { """ Unique identifier of the cart item to remove. Must be a valid UUID format. This ID is provided when items are added to the cart and can be found in cart item responses. """ itemId: String! } """ Promotional incentive applied to the shopping cart. Represents an active promotion, discount, or special offer that affects cart pricing or adds bonus items. """ type CartIncentive { """ Display name of the incentive promotion. Human-readable name describing the promotional offer or discount applied to the cart. """ name: String! """ Type of incentive action being applied. Describes the specific promotional action such as 'discount', 'bonus_item', 'free_shipping', etc. """ action: String! """ Cart items affected by this incentive. List of specific items in the cart that are subject to this promotional offer or discount. """ affectedItems: [CartBaseItem!] """ Configuration parameters for the incentive. Detailed settings that define how the incentive is calculated and applied, including discount amounts, quantities, and conditions. """ params: CartIncentiveParams! } """ Configuration parameters for cart incentive calculations. Contains the specific values and settings that define how a promotional incentive is calculated and applied to the cart. """ type CartIncentiveParams { """ Minimum quantity required to trigger the incentive. Number of items that must be present in the cart for this incentive to become active. """ quantity: Int """ Fixed price override for incentive items. Special price that replaces the regular item price when this incentive is applied. """ price: Float """ Specific product identifier for targeted incentives. Product ID that this incentive applies to, used for product-specific promotions. """ productId: Int """ Discount amount or percentage value. The value of the discount applied, interpreted based on the discount type (fixed amount or percentage). """ discount: Float """ Method of discount calculation. Specifies whether the discount value represents a fixed amount (FLAT_FEE) or percentage (PERCENTAGE). """ discountType: DiscountType """ Loyalty points awarded by this incentive. Number of value points credited to the customer's account when this incentive is applied. """ valuePoints: Int """ Whether the incentive can be applied multiple times. Indicates if the incentive benefits can be repeated for multiple qualifying items or quantities. """ repeat: YesNo """ Promotional action code that triggered this incentive. The specific promotion code or coupon that activated this incentive offer. """ actionCode: String } """ Input for bulk cart item operations. Supports adding, updating, or removing cart items in batch operations. Can target existing items by ID or create new items by product/cluster ID. """ input CartItemBulkInput { """ Unique identifier of an existing cart item to update or remove. Must be a valid UUID. Cannot be used together with productId or clusterId. Used for modifying items already in the cart. """ itemId: String """ Product identifier for adding new items to the cart. Must be a valid product ID from the catalog. Cannot be used with itemId. Used for adding new products to the cart. """ productId: Int """ Cluster identifier for configurable product groups. Used when adding items that belong to a product cluster. All child items must be part of the same cluster configuration. Cannot be used with itemId. """ clusterId: Int """ Override price per unit for this cart item. When specified, replaces the calculated price with this custom value. Primarily used for external pricing systems. Must be a positive number with maximum 5 decimal places. """ price: Float """ Number of units to add, update, or maintain in the cart. Defaults to 1 if not specified. When updating existing items, setting to null will reset quantity to 1. Setting to 0 will remove the item from the cart. """ quantity: Int """ Additional notes or special instructions for this item. Maximum length of 255 characters. HTML tags will be automatically removed for security. """ notes: String """ Preferred delivery date for this specific item. Must be provided in ISO 8601 date format (YYYY-MM-DD). Used for items that require specific delivery scheduling. """ requestDate: String """ Child items to include with this main item. Used for configurable products, bundles, or items with components. Each child item must be part of the same cluster configuration as the parent item. """ childItems: [CartChildItemBulkInput!] } """ Promotional incentive applied to a specific cart item. Represents a discount, bonus, or special offer that affects the pricing or availability of an individual cart item. """ type CartItemIncentive { """ Display name of the item-level incentive. Human-readable name describing the promotional offer applied to this specific cart item. """ name: String """ Number of item units affected by the incentive. Quantity of this cart item that qualifies for or is impacted by the promotional offer. """ quantity: Int! """ Special price or discount value for the incentive. Monetary amount representing the incentive benefit, such as a discounted price or discount amount. """ price: Float! """ Type code for the item incentive. Classification code that identifies the specific type of promotional offer applied to this cart item. """ code: OrderItemIncentiveCode! } """ Input for bulk operations on cart items. Allows adding, updating, or removing multiple cart items in a single operation for improved performance and consistency. """ input CartItemsBulkUpsertInput { """ Unique identifier of the target shopping cart. Must be a valid UUID format representing an existing cart. """ cartId: String! """ Collection of cart items to process. Each item in the array will be added, updated, or removed based on the operation specified. All items are processed as a single transaction. """ items: [CartItemBulkInput!]! } """ Additional charge or fee applied to a cart item. Represents extra costs such as handling fees, special processing charges, or service fees that are added to specific cart items. """ type CartItemSurcharge { """ Localized display names for the surcharge. Collection of surcharge names in different languages for proper display to customers in their preferred language. """ names: [LocalizedString!]! """ Localized descriptions explaining the surcharge. Detailed explanations of what the surcharge covers, provided in multiple languages for customer clarity. """ descriptions: [LocalizedString!]! """ Category or type of the surcharge. Classification of the surcharge such as 'handling', 'processing', 'expedite', or 'special_service'. """ type: String! """ Monetary value of the surcharge. Amount of the additional charge applied to the cart item, calculated in the cart's currency. """ value: Float! """ Tax classification code for the surcharge. Determines the tax rate and handling applied to this surcharge based on its type and applicable regulations. """ taxCode: Taxcode! """ Tax rate percentage applied to the surcharge. Percentage rate used to calculate tax on this additional charge. """ taxPercentage: Int """ Quantity multiplier for the surcharge. Number of units this surcharge applies to, used when the surcharge is quantity-based. """ quantity: Int """ Unit price of the surcharge excluding VAT. Cost per unit of the surcharge before tax application, used for detailed pricing breakdown. """ price: Float """ Total surcharge amount excluding VAT. Complete cost of the surcharge (unit price × quantity) before tax application. """ totalPrice: Float """ Unit price of the surcharge including VAT. Cost per unit of the surcharge with tax included, used for customer-facing pricing. """ priceNet: Float """ Total surcharge amount including VAT. Complete cost of the surcharge (unit price × quantity) with tax included, representing the final customer cost. """ totalPriceNet: Float } """ Cart item entity for federation with external cart services. Represents an item in a shopping cart with potential bundle associations. Used for GraphQL federation to provide bundle information within cart contexts. """ type CartMainItem implements ICartBaseItem { """ Unique identifier for this cart item. Used for item-specific operations like updates, deletions, and tracking. Generated when the item is added to the cart. """ itemId: String! """ Product identifier for the underlying product. Links the cart item to the specific product in the catalog system. """ productId: Int """ Bundle identifier when this item is part of a product bundle. Links the item to a specific bundle configuration for bundled product offerings. """ bundleId: String """ Complete bundle information if this cart item is part of a bundle. Provides access to bundle details, pricing, and configuration for cart processing. """ bundle( """ Tax zone for pricing calculations. Geographic tax zone code used to calculate accurate bundle pricing including applicable taxes. Must be exactly 2 characters representing a country code. Defaults to 'NL' if not specified. """ taxZone: String = "NL" ): Bundle """ Identifier of the parent item in hierarchical structures. Used when this item is a child component of a configurable product or bundle. Links to the main item's UUID. """ parentItemUUID: String """ Customer notes or special instructions for this item. Free-form text for item-specific requirements, customizations, or delivery instructions. """ notes: String """ Unit price excluding VAT before discounts. Base price per unit of measure for this item, calculated before any item-specific discounts are applied. """ price: Float! """ Unit price including VAT before discounts. Base price per unit of measure for this item with tax included, calculated before any item-specific discounts are applied. """ priceNet: Float! """ Source of the item's price calculation. Indicates whether the price was calculated using platform rules (PLATFORM) or provided by external systems (EXTERNAL). """ priceMode: PriceMode """ Final unit price excluding VAT after discounts. Total price per unit including all item-specific discounts and promotions, calculated before tax. """ totalPrice: Float! """ Final unit price including VAT after discounts. Total price per unit including all item-specific discounts, promotions, and tax. """ totalPriceNet: Float! """ Combined unit price excluding VAT for item and components. Sum of the main item price and all child item prices per unit, calculated before discounts and tax. """ sum: Float! """ Combined unit price including VAT for item and components. Sum of the main item price and all child item prices per unit with tax, calculated before discounts. """ sumNet: Float! """ Final combined unit price excluding VAT after discounts. Total sum of main item and child item prices per unit, including all discounts but excluding tax. """ totalSum: Float! """ Final combined unit price including VAT after discounts. Total sum of main item and child item prices per unit, including all discounts and tax. """ totalSumNet: Float! """ Number of units of this item in the cart. Quantity ordered by the customer, used for calculating total prices and inventory requirements. """ quantity: Int! """ Cluster identifier for configurable product groups. Used when this item belongs to a cluster of related or configurable products. """ clusterId: Int """ Tax classification code for this item. Determines the tax rate and handling applied to this item based on product type and regulations. """ taxCode: Taxcode! """ Expected delivery date for this item. Calculated or estimated date when this specific item will be delivered to the customer. """ deliveryDate: DateTime """ Latest acceptable delivery date for this item. Deadline by which this item must be delivered to meet customer requirements or service agreements. """ deliveryDeadline: DateTime """ Total discount amount applied to this item. Sum of all discounts and reductions applied to this cart item, calculated in the cart's currency. """ discount: Float! """ Percentage discount applied to this item. Combined percentage reduction from all applicable promotions and discounts for this item. """ discountPercentage: Float! """ Additional charges applied to this item. List of extra fees, surcharges, or special handling costs associated with this cart item. """ surcharges: [CartItemSurcharge!] """ Promotional incentive applied to this item. Details of any special promotion, discount, or bonus offer that affects this cart item. """ incentive: CartItemIncentive """ Customer's requested delivery date for this item. Date specified by the customer for when they would prefer to receive this item. """ requestDate: DateTime """ Child items that belong to this main item. Collection of component items, accessories, or parts that are included with or configured for this main item. Used for complex products, bundles, and configurable items. """ childItems: [CartBaseItem!] product(hidden: Boolean): Product } """ Payment information and configuration for the shopping cart. Contains details about the selected payment method, associated costs, tax information, and current payment status. """ type CartPaymentData { """ Selected payment method identifier. Code or name of the payment method chosen for this cart (e.g., 'credit_card', 'bank_transfer', 'paypal'). """ method: String! """ Payment processing cost excluding VAT. Additional fee charged for using this payment method, calculated before tax application. """ price: Float """ Payment processing cost including VAT. Total payment method fee including all applicable taxes and charges. """ priceNet: Float """ Pricing calculation mode for the payment method. Determines how payment costs are calculated - using platform defaults or external pricing. """ priceMode: PriceMode """ Tax amount applied to the payment method fee. Calculated tax on the payment processing cost based on applicable tax rates. """ tax: Float! """ Tax rate percentage applied to payment fees. Percentage rate used to calculate tax on payment method costs. """ taxPercentage: Int """ Current status of the payment transaction. Indicates the payment state such as 'pending', 'authorized', 'captured', 'failed', or 'refunded'. """ status: String """ Timestamp when the payment status was last updated. Records when the payment status changed, used for tracking payment processing timeline. """ statusDate: DateTime } """ Payment configuration updates for the shopping cart. Contains payment method selection, status updates, and external pricing overrides for cart payment processing. """ input CartPaymentDataInput { """ Payment method identifier to use for this cart. Maximum length of 50 characters. Specifies the payment method code such as 'credit_card', 'bank_transfer', or 'paypal'. """ method: String """ Current payment transaction status. Updates the payment status such as 'pending', 'authorized', 'captured', 'failed', or 'refunded'. """ status: String """ External payment processing cost excluding VAT. When specified, overrides platform-calculated payment fees with this external value. Must be 0 or greater with maximum 5 decimal places. Setting this value changes the payment price mode to 'EXTERNAL'. """ price: Float } """ Available payment method option for the shopping cart. Represents a payment method that can be selected for cart checkout, including associated costs and configuration details. """ type CartPaymethod { """ Unique identifier for the payment method. Used to select this payment method for cart checkout and track method-specific configurations. """ id: Int! """ Unique identifier code for the payment method. Internal system code used to identify and process this payment method (e.g., 'CC', 'BANK', 'PAYPAL'). """ code: String! """ Display name of the payment method. Human-readable name shown to customers during payment method selection (e.g., 'Credit Card', 'Bank Transfer'). """ name: String! """ External system identifier for the payment method. Code used by external payment processors or integrations to identify this payment method. """ externalCode: String """ Payment method type or category. Classification of the payment method for processing and display purposes. """ type: String """ Tax code applied to payment method fees. Determines the tax rate and handling for any fees associated with this payment method. """ taxCode: Taxcode """ Cost associated with using this payment method. Additional fee charged to the customer for selecting this payment method, excluding VAT. """ price: Float! """URL to the payment method's logo.""" logo: String } """ Shipping and delivery configuration for the shopping cart. Contains information about shipping methods, costs, delivery preferences, and pickup options for the cart. """ type CartPostageData { """ Selected shipping carrier identifier. Code or name of the carrier responsible for delivering this order (e.g., 'DHL', 'UPS', 'FedEx'). """ carrier: String """ Retrieve the shipping carrier associated with this cart postage data. Returns the carrier information including service details, coverage areas, and integration settings used. Used to display carrier-specific tracking information and branding. """ carrierData: Carrier """ Selected shipping method for the cart. Identifies the chosen delivery method such as 'DELIVERY', 'PICKUP', or specific carrier services. """ method: String! """ Tax rate percentage applied to shipping costs. Percentage rate used to calculate tax on shipping and handling fees. """ taxPercentage: Int """ Preferred delivery date requested by the customer. Target date when the customer would like to receive their order. Used for delivery scheduling and planning. """ requestDate: DateTime """ Shipping cost excluding VAT. Base shipping fee calculated based on the selected method, carrier rates, and applicable business rules. """ price: Float """ Shipping cost including VAT. Total shipping fee including all applicable taxes and surcharges. """ priceNet: Float """ Source of the shipping price calculation. Indicates whether shipping costs were calculated using platform rules (PLATFORM) or provided by external systems (EXTERNAL). """ priceMode: PriceMode """ Whether partial deliveries are allowed for this order. Indicates if the order can be split into multiple shipments when items have different availability or delivery dates. """ partialDeliveryAllowed: YesNo """ Identifier for the pickup location. Used when the shipping method involves customer pickup from a designated location such as a store or pickup point. """ pickUpLocationId: Int """ Complete warehouse information for the pickup location. Detailed warehouse object including address, business hours, and contact information for the customer pickup location. """ warehouse: Warehouse } """ Shipping and delivery configuration updates for the shopping cart. Contains shipping method selection, delivery preferences, carrier selection, and external pricing overrides for cart shipping. """ input CartPostageDataInput { """ Shipping method identifier for this cart. Maximum length of 30 characters. Specifies the delivery method code such as 'standard', 'express', or 'pickup'. """ method: String """ Customer's preferred delivery date. Must be today or a future date. Used for delivery scheduling and planning. Time component is ignored, only the date is considered. """ requestDate: DateTime """ Whether partial deliveries are allowed for this cart. Indicates if the order can be split into multiple shipments when items have different availability or delivery dates. """ partialDeliveryAllowed: YesNo """ External shipping cost excluding VAT. When specified, overrides platform-calculated shipping fees with this external value. Must be 0 or greater with maximum 5 decimal places. Setting this value changes the shipping price mode to 'EXTERNAL'. """ price: Float """ Shipping carrier identifier for this cart. Maximum length of 45 characters. Specifies the carrier code such as 'DHL', 'UPS', or 'FedEx'. """ carrier: String """ Pickup location identifier for customer pickup. Used when the shipping method involves customer pickup from a designated location such as a store or pickup point. """ pickUpLocationId: Int } """ Input for converting a shopping cart into a finalized order. Contains configuration options for the order creation process including status and localization preferences. """ input CartProcessInput { """ Initial status to assign to the newly created order. Must be a valid order status code for the current system. Maximum length of 60 characters. HTML tags will be automatically removed for security. """ orderStatus: String! """ Language code for order processing and communications. Must be a valid 2-character ISO language code (e.g., 'en', 'nl', 'de'). Order confirmation emails and documents will be generated in this language. """ language: String } """ Response from cart processing operation. Contains the results of converting a shopping cart into a finalized order, including the generated order ID and updated cart information. """ type CartProcessResponse { """ Unique identifier of the created order. System-generated ID for the order that was created from the processed cart. Used for order tracking and management. """ cartOrderId: Int! """ Updated cart information after processing. Cart object reflecting its final state after being converted to an order, including any status changes or final calculations. """ cart: Cart! order: Order! } """ Paginated response containing cart search results. Provides a collection of shopping carts matching the search criteria, along with pagination information for navigating through large result sets. """ type CartResponse { """List of items of type Cart""" items: [Cart!]! """Total number of items found""" itemsFound: Int! """The amount of items to show per page""" offset: Int! """The current page""" page: Int! """Total amount of pages""" pages: Int! """Start position of the current page""" start: Int! """End position of the current page""" end: Int! } """ Search criteria for filtering shopping carts. Provides flexible filtering options for cart searches including customer associations, cart status, creation dates, and pagination. Results are filtered based on user permissions and organizational access. """ input CartSearchInput { """ Filter by specific cart identifiers. Returns only carts whose IDs match the provided list. Useful for retrieving specific carts or bulk operations. """ ids: [String!] """ Filter by contact identifiers for B2B carts. Returns carts associated with any of the specified contact IDs. Used for finding carts belonging to specific business contacts. """ contactIds: [Int!] """ Filter by customer identifiers for B2C carts. Returns carts associated with any of the specified customer IDs. Used for finding carts belonging to individual customers. """ customerIds: [Int!] """ Filter by company identifiers for B2B carts. Returns carts associated with any of the specified company IDs. Used for finding all carts within specific companies. """ companyIds: [Int!] """ Filter by cart processing statuses. Returns carts matching any of the specified status values. Common statuses include 'active', 'abandoned', 'converted', 'expired'. """ statuses: [CartStatus!] """ Page number for pagination. Specifies which page of results to return. Must be 1 or greater. """ page: Int = 1 """ Number of items per page. Controls how many carts are returned in each page. Must be 1 or greater. """ offset: Int = 12 """Search by date created""" createdAt: DateSearchInput """Search by date changed""" lastModifiedAt: DateSearchInput """Inputs to sort by""" sortInputs: [CartSortInput!] } """ Input for associating a cart with a specific business contact. Used in B2B scenarios to assign cart ownership to a contact person within a company, enabling proper pricing, permissions, and order processing. """ input CartSetContactInput { """ Unique identifier of the contact to associate with the cart. Must be a valid contact ID representing a person authorized to manage carts within their company. """ contactId: Int! """ Company identifier for the contact's organization. If not provided, the contact's default parent company will be used. Must be a valid company ID that the contact is authorized to represent. """ companyId: Int } """ Input for associating a cart with an individual customer. Used in B2C scenarios to assign cart ownership to a specific customer account, enabling personalized pricing, order history, and customer-specific features. """ input CartSetCustomerInput { """ Unique identifier of the customer to associate with the cart. Must be a valid customer ID representing an individual customer account in the system. """ customerId: Int! } """ Input for associating a cart with a user, contact, or customer. Supports multiple user association patterns including legacy user IDs, B2B contacts with companies, and B2C customers. Only one association type should be specified per request. """ input CartSetUserInput { """ Business contact identifier for B2B cart association. Must be used in combination with companyId to establish the business relationship. Cannot be used with userId or customerId. """ contactId: Int """ Individual customer identifier for B2C cart association. Used for direct customer relationships. Cannot be used with userId, contactId, or companyId. """ customerId: Int """ Company identifier for B2B cart association. Must be used in combination with contactId to establish the business relationship. Cannot be used with customerId. """ companyId: Int } """ Available shipping method option for the cart. Represents a delivery method that can be selected for cart fulfillment, with its display information and system identifier. """ type CartShippingMethod { """ Display name of the shipping method. Human-readable name shown to customers during shipping method selection (e.g., 'Standard Delivery', 'Express Shipping'). """ name: String! """ Unique identifier code for the shipping method. Internal system code used to identify and process this shipping method (e.g., 'STD', 'EXP', 'PICKUP'). """ code: String! } """Available fields for sorting cart search results""" enum CartSortField { """Sort by cart ID alphabetically""" ID """Sort by the date when the cart was last modified""" LAST_MODIFIED_AT """Sort by the date when the cart was created""" CREATED_AT } """ Sorting configuration for cart search results. Defines how the returned cart list should be ordered based on available fields and sort directions. """ input CartSortInput { """ Cart field to use for sorting. Determines which cart property will be used as the primary sort key for ordering results. """ field: CartSortField! """ Sort direction for the results. Specifies whether results should be ordered in ascending (ASC) or descending (DESC) order based on the selected field. """ order: SortOrder! } """ Input for initializing a new shopping cart session. Contains optional configuration for cart creation including customer association, language preferences, and business context. Supports both B2B (contact/company) and B2C (customer) scenarios with proper validation to ensure only one customer type is specified. """ input CartStartInput { """ Business contact identifier for B2B cart sessions. Associates the cart with a specific business contact person. Must be used in combination with companyId to establish the complete B2B relationship context. """ contactId: Int """ Individual customer identifier for B2C cart sessions. Associates the cart with an individual customer account for personalized pricing, order history, and customer-specific features. Cannot be used with contactId or companyId. """ customerId: Int """ Company identifier for B2B cart sessions. Associates the cart with a specific company for B2B pricing, terms, and business rules. Must be used in combination with contactId to identify both the company and the contact person within that company. """ companyId: Int """ Cart language preference for localization. Two-character ISO 639-1 language code (e.g., 'en', 'nl', 'de') that determines the language for cart content, pricing display, and communication. Affects product names, descriptions, and checkout flow. """ language: String } """Cart statuses""" enum CartStatus { """ Default cart status. OPEN carts are editable by their owner and can be processed to an order if no purchase authorization is required """ OPEN """ Carts that require authorization by an authorization manager within the same company. Can only be edited by authorization managers after accepting purchase request, not by the owner (contact that created the Cart) """ PENDING_PURCHASE_AUTHORIZATION } """ Tax calculation breakdown by tax rate level. Represents the tax amounts applied to the cart at a specific tax percentage, including any applicable discounts. """ type CartTaxLevel { """ Tax rate percentage for this tax level. The percentage rate applied to calculate tax amounts for items and services subject to this tax level. """ taxPercentage: Int! """ Total tax amount for this tax level. Sum of all tax charges applied to cart items and services that fall under this specific tax rate. """ price: Float! """ Total discount amount applied at this tax level. Sum of all tax-related discounts and reductions that apply to items subject to this tax rate. """ discount: Float } """ Complete pricing breakdown and totals for the shopping cart. Contains all calculated amounts including subtotals, taxes, discounts, and final totals for the entire cart. """ type CartTotal { """ Subtotal of all cart items excluding VAT. Sum of all item prices before tax, shipping, payment fees, and discounts are applied. """ subTotal: Float! """ Subtotal of all cart items including VAT. Sum of all item prices with tax included, before shipping, payment fees, and discounts are applied. """ subTotalNet: Float! """ Total discount percentage applied to the cart. Combined percentage discount from all active promotions, incentives, and special offers. """ discountPercentage: Float! """ Final total amount including VAT. Complete cart total including all items, taxes, shipping, payment fees, and discounts applied. """ totalNet: Float! """ Final total amount excluding VAT. Complete cart total before tax application, including shipping, payment fees, and discounts. """ totalGross: Float! """ Total discount amount including VAT. Sum of all discount reductions applied to the cart, calculated with tax included. """ discountNet: Float! """ Total discount amount excluding VAT. Sum of all discount reductions applied to the cart, calculated before tax application. """ discount: Float! } """ Cart item that cannot be processed into an order. Represents items added to the cart that are not available for purchase due to stock issues, restrictions, or other business rules. These items are displayed for reference but excluded from order processing. """ type CartUnOrderableItem { """ Unique identifier for this unorderable cart item. Used for item-specific operations like updates, deletions, and tracking. Generated when the item is added to the cart. """ itemId: String! """ Identifier of the parent item in hierarchical structures. Used when this unorderable item is a child component of a configurable product or bundle. Links to the main item's UUID. """ parentItemUUID: String """ Source of the item's price calculation. Indicates whether the price was calculated using platform rules (PLATFORM) or provided by external systems (EXTERNAL). """ priceMode: PriceMode """ Number of units that were attempted to be added. Quantity that the customer tried to add to the cart before the item was determined to be unorderable. """ quantity: Int """ Reference price for the unorderable item. Price information for display purposes, typically used when the price mode is set to EXTERNAL or for comparison. """ price: Float """ Customer notes or special instructions for this item. Free-form text for item-specific requirements or comments, preserved even though the item cannot be ordered. """ notes: String """ Product identifier for the unorderable item. Links to the specific product in the catalog system that could not be added to the order. """ productId: Int! """ Cluster identifier for configurable product groups. Used when this unorderable item belongs to a cluster of related or configurable products. """ clusterId: Int """ Bundle identifier when this item is part of a product bundle. Links the unorderable item to a specific bundle configuration that could not be completed. """ bundleId: String """ Customer's requested delivery date for this item. Date specified by the customer for when they would have preferred to receive this item. """ requestDate: DateTime } """ Input for updating cart address information. Contains complete address details for updating either billing or delivery addresses associated with a shopping cart. """ input CartUpdateAddressInput { """ Type of address being updated. Specifies whether this update applies to the billing address (INVOICE) or delivery address (DELIVERY). """ type: CartAddressType! """ Company or organization name. Maximum length of 100 characters. Used for business addresses where delivery or billing should be addressed to a specific company. """ company: String = "" """ Gender of the address contact person. Used for proper addressing in communications and delivery instructions. """ gender: Gender """ First name of the address contact person. Maximum length of 30 characters. Required for personal identification and delivery confirmation. """ firstName: String! """ Middle name or initial of the address contact person. Maximum length of 20 characters. Optional additional name information for complete identification. """ middleName: String = "" """ Last name or surname of the address contact person. Maximum length of 50 characters. Required for personal identification and delivery confirmation. """ lastName: String! """ Street name for the address. Maximum length of 150 characters. Primary location identifier for delivery and billing purposes. """ street: String! """ House or building number. Maximum length of 10 characters. Specific location identifier within the street for precise delivery. """ number: String """ Additional address information such as apartment or unit number. Maximum length of 15 characters. Used for multi-unit buildings or complex delivery locations. """ numberExtension: String = "" """ Postal or ZIP code for the address. Maximum length of 10 characters. Required for mail delivery and location verification. """ postalCode: String! """ City or municipality name. Maximum length of 100 characters. Required geographic identifier for delivery routing and address validation. """ city: String! """ State, province, or regional identifier. Maximum length of 2 characters. Additional geographic information for address precision and delivery routing. """ region: String = "" """ Country code for the address. Must be a valid 2-character ISO country code. Required for international shipping and address validation. """ country: String = "NL" """ Additional address code or reference. Maximum length of 64 characters. Used for internal address identification or special delivery instructions. """ code: String = "" """ Email address for delivery notifications and communication. Must be a valid email format. Used for order updates, delivery confirmations, and customer communication. """ email: String """ Mobile phone number for delivery coordination. Maximum length of 30 characters. Primary contact number for delivery notifications and coordination. """ mobile: String """ Landline phone number for additional contact options. Maximum length of 30 characters. Alternative contact method for delivery coordination and customer service. """ phone: String """ Indicates if this is an Intra-Community Supply (ICS) address. Used for VAT exemption on cross-border B2B transactions within the EU. """ icp: YesNo = N """ Additional notes or special delivery instructions. Maximum length of 255 characters. Free-form text for specific delivery requirements, access codes, or special handling instructions. """ notes: String = "" } """ Input for updating cart configuration and metadata. Allows modification of cart settings including payment and shipping preferences, notes, language, and custom reference fields. """ input CartUpdateInput { """ Payment configuration updates for the cart. Contains payment method selection, status updates, and external pricing overrides. """ paymentData: CartPaymentDataInput """ Shipping and delivery configuration updates for the cart. Contains shipping method selection, delivery preferences, and external pricing overrides. """ postageData: CartPostageDataInput """ General notes or comments for the cart. Maximum length of 255 characters. Free-form text for cart-level notes, special instructions, or internal comments. """ notes: String """ Language preference for the cart. Two-character ISO 639-1 language code (e.g., 'en', 'nl', 'de') that determines the language for cart content and communications. """ language: String """ External reference identifier for the cart. Custom reference code or identifier that can be used to link the cart to external systems or customer references. """ reference: String """ Additional custom information field for the cart. Free-form text field that can store custom data or metadata that will be preserved through cart processing and order creation. """ extra3: String """ Additional custom information field for the cart. Free-form text field that can store custom data or metadata that will be preserved through cart processing and order creation. """ extra4: String } """ Input for updating existing cart items. Extends the base cart item input with additional fields for price overrides. Used when modifying items already present in the shopping cart. """ input CartUpdateItemInput { """ Number of units to add to the cart. Must be a positive integer. Defaults to 1 if not specified. """ quantity: Int = 1 """ Additional notes or special instructions for this item. Maximum length of 255 characters. HTML tags will be automatically removed for security. """ notes: String """ Preferred delivery date for this specific item. Must be provided in ISO 8601 date format (YYYY-MM-DD). Used for items that require specific delivery scheduling. """ requestDate: String """ Override price per unit for this cart item. When specified, replaces the calculated price with this custom value. Primarily used for external pricing systems or manual price adjustments. Must be a positive number with maximum 5 decimal places. """ price: Float } """ Voucher or gift certificate applied to the shopping cart. Represents a redeemable voucher code with its current status, value, and usage restrictions. """ type CartVoucher { """ Unique voucher code identifier. The code that customers enter to redeem this voucher for discounts or credit. """ code: String! """ Display name of the voucher promotion. Human-readable name describing the voucher or the promotion rule that generated it. """ name: String! """ Detailed description of the voucher benefits. Explanation of what the voucher provides, including terms and conditions. """ description: String! """ Identifier of the promotion rule that created this voucher. Links the voucher back to the specific promotional campaign or rule configuration. """ ruleId: Int! """ Whether the voucher has been fully used. Indicates if the voucher has been completely redeemed and cannot be used again. """ redeemed: YesNo! """ Whether this voucher can be used with other vouchers. Indicates if multiple vouchers can be applied to the same cart simultaneously. """ combinable: YesNo! """ Whether the voucher supports partial redemption. Indicates if the voucher value can be used across multiple orders when it represents a monetary amount. """ partialRedemption: YesNo! """ Total monetary value available on the voucher. Original amount or credit value that can be redeemed using this voucher. """ available: Float! """ Remaining monetary value after partial use. Amount still available for redemption when the voucher supports partial redemption. """ remaining: Float! } """ Category entity representing product classification and organization. External entity from the catalog service that provides category identification and hierarchy information. Used as a reference for category-specific attributes and organizational relationships within the attribute system. """ type Category { """ Deprecated: numeric identifier of the category. Use `categoryId` instead. """ id: Int! @deprecated(reason: "Use categoryId instead") """ Numeric category identifier retained for compatibility with legacy integrations. """ categoryId: Int! """Lists attributes for this category based on the search input.""" attributes(input: AttributeResultSearchInput): AttributeResultResponse """Globally unique identifier for the category.""" uuid: ID! """The ID of the root category this category belongs to""" rootCategoryId: Int! """ Globally unique identifier of the parent category. Omitted for root categories. """ parentUuid: ID """Sort order within the parent category""" sortOrder: Int """ Materialised path of identifiers representing the position of the category within the hierarchy. """ path: String! @deprecated(reason: "This field will be removed in a future version. Use categoryPath field resolver for breadcrumb navigation instead.") """ Hides the category from public catalog and navigation surfaces when set. """ hidden: YesNo! """ Localized names shown to end users in catalog and navigation surfaces. The catalogue's default language must be present. """ names( """Two-letter ISO 639-1 language code that filters the localized names.""" language: String ): [LocalizedString!]! """Deprecated: use `names` instead.""" name( """Two-letter ISO 639-1 language code that filters the localized names.""" language: String ): [LocalizedString!]! @deprecated(reason: "Use `names` instead of `name`.") """Localized long-form descriptions shown on category landing surfaces.""" descriptions( """ Two-letter ISO 639-1 language code that filters the localized descriptions. """ language: String ): [LocalizedString!]! """Deprecated: use `descriptions` instead.""" description( """ Two-letter ISO 639-1 language code that filters the localized descriptions. """ language: String ): [LocalizedString!]! @deprecated(reason: "Use `descriptions` instead of `description`.") """Localized short descriptions surfaced in listings and tiles.""" shortDescriptions( """ Two-letter ISO 639-1 language code that filters the localized short descriptions. """ language: String ): [LocalizedString!]! """Deprecated: use `shortDescriptions` instead.""" shortDescription( """ Two-letter ISO 639-1 language code that filters the localized short descriptions. """ language: String ): [LocalizedString!]! @deprecated(reason: "Use `shortDescriptions` instead of `shortDescription`.") """ URL-friendly identifiers, one per language, used in human-readable links. """ slugs( """Two-letter ISO 639-1 language code that filters the localized slugs.""" language: String ): [LocalizedString!]! """Deprecated: use `slugs` instead.""" slug( """Two-letter ISO 639-1 language code that filters the localized slugs.""" language: String ): [LocalizedString!]! @deprecated(reason: "Use `slugs` instead of `slug`.") """Localized titles surfaced in search engine result pages.""" metadataTitles( """ Two-letter ISO 639-1 language code that filters the localized metadata titles. """ language: String ): [LocalizedString!]! """Localized descriptive snippets surfaced in search engine result pages.""" metadataDescriptions( """ Two-letter ISO 639-1 language code that filters the localized metadata descriptions. """ language: String ): [LocalizedString!]! """ Localized keyword lists used by search engines, supplied as comma-separated values. """ metadataKeywords( """ Two-letter ISO 639-1 language code that filters the localized metadata keywords. """ language: String ): [LocalizedString!]! """ Localized canonical URLs that search engines should treat as the authoritative location. """ metadataCanonicalUrls( """ Two-letter ISO 639-1 language code that filters the localized canonical URLs. """ language: String ): [LocalizedString!]! """ Pairs of external system names and the identifiers each system assigned to the record. """ sources: [Source!]! """Timestamp marking when the record was created, in UTC ISO 8601 format.""" createdAt: DateTime! """ Timestamp marking the last modification of the record, in UTC ISO 8601 format. """ lastModifiedAt: DateTime! """ Parent category of the current category, or null when the current category is a root category. """ parent( """ Restricts the parent to a category matching the supplied visibility flag. """ hidden: YesNo ): Category """Direct child categories of the current category.""" categories( """ Restricts the children to categories matching the supplied visibility flag. """ hidden: YesNo """Field by which the child categories are ordered.""" sortField: CategorySortableFields = categoryOrder """Direction in which the child categories are ordered.""" sortOrder: SortOrder = ASC ): [Category!]! """ Ancestor chain of the category, from the root down to the category itself. """ categoryPath( """ Restricts the ancestor chain to categories matching the supplied visibility flag. """ hidden: YesNo ): [Category!]! """ Products and clusters attached to the category, returned through a single page of results. """ baseProducts( """ Filtering, sorting and pagination criteria for the category's products and clusters. """ input: CategoryBaseProductsSearchInput ): BaseProductsResponse! """ Products attached to the category, resolved through the external product search service. Returns enriched search results that include facets, sort options and pagination metadata. """ products( """ Filtering, sorting and pagination criteria for the product search within the category. """ input: CategoryProductSearchInput ): ProductsResponse! """ Deprecated: numeric identifier of the parent category. Use `parentUuid` instead. """ parentId: Int @deprecated(reason: "Use parentUuid instead") """ Default language used to render category content when a requested language is unavailable. """ defaultLanguage: String! } """Result of a single product or cluster action""" type CategoryActionsData { """Message describing the result of the action""" message: String! """Whether the action was successful""" success: Boolean! """Product ID that was processed (null for cluster operations)""" productId: Int """Cluster ID that was processed (null for product operations)""" clusterId: Int } """Container for action results and messages""" type CategoryActionsResponse { """Detailed results for each product/cluster action""" data: [CategoryActionsData!]! """Summary messages for the operation""" messages: [String!]! } """Input for adding products and clusters to a category""" input CategoryAddProductsClustersInput { """Product identifiers to add to the category""" productIds: [Int!] """Cluster identifiers to add to the category""" clusterIds: [Int!] } """Response for adding products and clusters to a category""" type CategoryAddProductsClustersResponse { """The category object""" category: Category! """Output messages about the actions performed""" actions: CategoryActionsResponse! } """ Category-specific attribute containing custom properties and metadata for product categories. Extends the base category interface with attribute functionality. Used to store additional category information such as display properties, classification metadata, and custom properties that are not part of the standard category schema. Perfect for category-level configuration, taxonomy enhancement, and category-specific business rules that need to be applied across all products within the category. """ type CategoryAttribute implements Attribute { """ Unique identifier for this attribute instance. Auto-generated UUID that serves as the primary key for this specific attribute. Used to reference and manage individual attribute instances. """ id: String! """ The actual value data stored in this attribute. Contains the attribute value in the appropriate format based on the attribute description's type definition. The value structure varies depending on the attribute type (text, enum, color, etc.). """ value: AttributeValue! """ Timestamp when this attribute was originally created. Records the exact date and time when this attribute instance was first created in the system. Used for audit trails and data lifecycle management. """ createdAt: DateTime! """ Timestamp when this attribute was last modified. Records the most recent date and time when any changes were made to this attribute's value or configuration. Updated automatically on each modification. """ lastModifiedAt: DateTime! """ Identifier of the user who created this attribute. References the user account that originally created this attribute instance. May be 0 for system-generated attributes or when user information is not available. """ createdBy: Int """ Identifier of the user who last modified this attribute. References the user account that made the most recent changes to this attribute. May be 0 for system modifications or when user information is not available. """ lastModifiedBy: Int """ Retrieve the attribute description that defines this category attribute's schema and behavior. Returns the complete attribute description containing metadata, type definitions, display configuration, and localization settings. This description serves as the template that defines how this category attribute should behave and be presented. Essential for understanding attribute constraints, available operations, and presentation requirements for category-specific attributes that extend category information. """ attributeDescription: AttributeDescription """ Unique identifier of the category that owns this attribute. References the specific category in the catalog hierarchy that this attribute value is associated with. Used to establish the relationship between attributes and their parent categories for classification and organizational purposes. """ categoryId: Int! } input CategoryBaseProductsSearchInput { """Search term for SKU and localized content""" term: String """Filter by base product types""" types: [ProductClass!] """Filter by product statuses (applies to PRODUCT type only)""" statuses: [ProductStatus!] """Filter by manufacturers (applies to PRODUCT type only)""" manufacturers: [String!] """Filter by suppliers (applies to PRODUCT type only)""" suppliers: [String!] """ Filter base products by hidden status. true = only hidden, false = only non-hidden, null = no filter. """ hidden: Boolean """Include products from descendant categories""" getDescending: YesNo """Page number for pagination""" page: Int """Number of items per page""" offset: Int """Language for localized content""" language: String """Field to sort by""" sortBy: BaseProductSortField """Sort order""" sortOrder: SortOrder """Source system name (must be used with sourceIds)""" source: String """Source IDs to filter by (must be used with source)""" sourceIds: [String!] """Whether to apply orderlist filtering""" applyOrderlists: Boolean = true """Order list IDs to apply for filtering""" orderlistIds: [Int!] """ Browse catalog as a specific User. Permissions, orderlists, favorite will be merged with the logged in user. """ userId: Int """ Browse catalog as a specific Company. Permissions, orderlists, favorite will be merged with the logged in user. """ companyId: Int } """ Input for bulk category import from CSV files. Enables bulk creation of categories through CSV file upload with customizable field mappings. Supports validation, error reporting, and flexible column mapping for different CSV formats. """ input CategoryCsvInput { """ CSV file containing category data. The CSV file must contain valid category information with proper headers. File must be in CSV format with UTF-8 encoding. """ file: Upload! """ Column mapping configuration for CSV import. Defines how CSV columns map to category fields in the system. Each mapping specifies the CSV header name and corresponding system field. Mappings must be unique and follow the defined field constraints. """ mappings: [CategoryCsvMapping!] } """ Mapping configuration for CSV column to system field. Defines how a specific CSV column maps to a category field in the system. Ensures proper data import by specifying the relationship between CSV headers and system fields. """ input CategoryCsvMapping { """ CSV column header name. The exact name of the column header in the CSV file. Must match the header name exactly (case-sensitive). Cannot be empty or contain only whitespace. """ csvHeader: String! """ Propeller eCommerce Platform field for the CSV column. The corresponding field in the Propeller eCommerce Platform where the CSV column data will be imported. Must be a valid CategoryFieldName enum value. Each field has specific validation rules and constraints. """ fieldName: CategoryFieldName! } """ Column identifiers recognised by the category CSV importer. Each value identifies a category attribute that can be mapped to a column in the source spreadsheet so the import understands how to populate the catalogue. """ enum CategoryFieldName { """ [Optional][String] Identifier assigned to the parent category within its originating external system. Supply together with the matching source name. Cannot be combined with the internal parent identifier column. """ PARENT_SOURCE_ID """ [Optional][String] Name of the external system that originated the parent category. Supply together with the matching source identifier. Cannot be combined with the internal parent identifier column. """ PARENT_SOURCE_NAME """ [Optional][Integer] Internal identifier of the parent category. Cannot be combined with the external source columns for the parent category. """ PARENT_ID """ [Required][String] Primary language for category content. The default language code used when localized content is not available in the requested language. Determines fallback behavior for multilingual category display. """ DEFAULT_LANGUAGE """ [Required][String] Two-letter ISO 639-1 language code paired with the name, description and short description. """ LANGUAGE """ [Required][String] Localized category names for display in different languages. Collection of category names in various supported languages for international markets and multilingual storefronts. Falls back to the category's default language when specific language is not available. Maximum length is 150 characters. """ NAME """ [Optional][String] Detailed category description with rich content support. Comprehensive category information including features, purpose, and context. Supports HTML formatting for rich content display and can be translated for multilingual catalogs. Used for category pages and detailed product organization. """ DESCRIPTION """ [Optional][String] Brief category summary for listings and previews. Concise category description suitable for navigation menus, category cards, and overview displays where space is limited. Supports HTML formatting and multilingual translation for consistent user experience. """ SHORT_DESCRIPTION """ [Optional][String] SEO-optimized page title for search engines. Localized title tag content used for search engine optimization and browser tab display. Should be concise, descriptive, and include relevant keywords for better search visibility. """ METADATA_TITLE """ [Optional][String] SEO meta description for search engine results. Localized meta description tag content that appears in search engine results pages. Should be compelling, informative, and within recommended character limits to improve click-through rates. """ METADATA_DESCRIPTION """ [Optional][String] SEO keywords for search engine optimization. Localized meta keywords relevant to the category content. Used by search engines to understand category context and improve discoverability for relevant search queries. """ METADATA_KEYWORDS """ [Optional][String] Canonical URL for duplicate content management. Localized canonical URL that tells search engines which version of the category page is the authoritative source, preventing duplicate content issues and consolidating SEO value. """ METADATA_CANONICAL_URL """ [Optional][String] Name of the external system that originated the category. Supply together with the matching source identifier when matching by external source. Cannot be combined with the internal identifier column. """ SOURCE_NAME """ [Optional][String] Identifier assigned to the category within the originating external system. Supply together with the matching source name when matching by external source. Cannot be combined with the internal identifier column. """ SOURCE_ID """ [Optional][Integer] Internal identifier of the category. Cannot be combined with the external source columns for the category. """ ID """ [Optional][Enum] Visibility flag of the category. Must be one of: Y, N. When omitted the catalogue applies the default value of N. """ HIDDEN """ [Optional][String] URL slug for category page. Unique, human-readable identifier used in the category page URL. Should be concise, descriptive, and optimized for search engines. """ SLUG } """Result of a single product or cluster operation""" type CategoryItemOperationResult { """Lookup key used for the operation (id or sourceId)""" lookupKey: String! """Lookup key value""" key: String! """Type of item (product or cluster)""" class: String! """Whether the operation was successful""" success: Boolean! """Result message or error description""" message: String! """ Numeric ID of the product or cluster (productId/clusterId). Deprecated: Use key field instead. """ directoryId: Float @deprecated(reason: "Use the 'key' field instead. This field is maintained for backward compatibility with legacy API.") } """Summary statistics for bulk operations""" type CategoryProductsClustersOperationSummary { """Total number of operations attempted""" total: Int! """Number of successful operations""" successful: Int! """Number of failed operations""" failed: Int! } input CategoryProductSearchInput { """Product search term""" term: String """List of product manufacturers""" manufacturers: [String!] """List of product supplier codes""" supplierCodes: [String!] """List of product suppliers""" suppliers: [String!] """List of product manufacturer codes""" manufacturerCodes: [String!] """List of product EAN codes""" EANCodes: [String!] """List of product SKUS""" skus: [String!] """List of unique product identifiers""" ids: [Int!] """List of productIds to search for""" productIds: [Int!] """List of clusterIds to search for""" clusterIds: [Int!] """Product class""" class: ProductClass """List of product tags""" tags: [String!] """ Specify through which language to search in, has no effect on other returned fields (eg. names,slugs) """ language: String! = "NL" """Pagination page number [default=1]""" page: Int! = 1 """ Pagination offset number [default=12][max: 1000] NOTE: If offset > 1000 is supplied it will be capped to 1000 """ offset: Int! = 12 """List of text filters """ textFilters: [ProductTextFilterInput!] """List of range filters""" rangeFilters: [ProductRangeFilterInput!] """Product price filter""" price: ProductPriceFilterInput """List of product status filters""" statuses: [ProductStatus!]! = [A] """Is product hidden?""" hidden: Boolean """List of product sort filters""" sortInputs: [ProductSortInput!] """List of product search fields""" searchFields: [SearchFieldsInput!] """Is product in a bundle""" hasBundle: YesNo """Is product a bundle leader""" isBundleLeader: YesNo """Product container slug(s)""" containerSlugs: [String!] """Product path slug(s)""" containerPathSlugs: [String!] """ Browse catalog as a specific User. Permissions, orderlists, favorite will be merged with the logged in user. """ userId: Int """ Browse catalog as a specific Company. Permissions, orderlists, favorite will be merged with the logged in user. """ companyId: Int """Search by date created""" createdAt: DateSearchInput """Search by date changed""" lastModifiedAt: DateSearchInput """Include descendants of the specified categoryId""" getDescendants: Boolean = true """Apply orderlist filtering to search results""" applyOrderlists: Boolean = true """Order list IDs to apply for filtering""" orderlistIds: [Int!] """[Deprecated] Category path for hierarchical navigation.""" path: String } type CategoryProductSearchResult { """The category ID this result belongs to""" categoryId: Int! """The search results for this category""" response: CategorySearchResponse! } """Input for removing products and clusters from a category""" input CategoryRemoveProductsClustersInput { """Product identifiers to remove from the category""" productIds: [Int!] """Cluster identifiers to remove from the category""" clusterIds: [Int!] } """Response for removing products and clusters from a category""" type CategoryRemoveProductsClustersResponse { """The category object""" category: Category! """Output messages about the actions performed""" actions: CategoryActionsResponse! } """Paginated response containing categories""" type CategoryResponse { """Items returned by the query for the current page.""" items: [Category!]! """Total number of items found""" itemsFound: Int! """Number of items to skip""" offset: Int! """Current page number (1-based)""" page: Int! """Total number of pages""" pages: Int! """Starting index for current page""" start: Int! """Ending index for current page""" end: Int! } input CategorySearchInput { """Search term for category names""" name: String """Search by category slugs""" slugs: [String!] """Filter by parent category IDs""" parentCategoryIds: [Int!] """Filter by category IDs""" categoryIds: [Int!] """Filter by category UUIDs""" uuids: [String!] """Filter by hidden status (Y or N)""" hidden: YesNo """Start date for creation date filtering (ISO 8601 format)""" createdAtFrom: String """End date for creation date filtering (ISO 8601 format)""" createdAtTo: String """Start date for modification date filtering (ISO 8601 format)""" lastModifiedAtFrom: String """End date for modification date filtering (ISO 8601 format)""" lastModifiedAtTo: String """Page number for pagination""" page: Int = 1 """Number of items per page""" offset: Int = 12 """Language for localized content""" language: String """Field to sort the categories by""" sortField: CategorySortableFields """ Sort order for results. Determines the sorting direction for the specified sort field. ASC = ascending order, DESC = descending order. Defaults to ascending order. """ sortOrder: SortOrder = ASC """Source system name (must be used with sourceIds)""" source: String """Source IDs to filter by (must be used with source)""" sourceIds: [String!] } type CategorySearchResponse { """List of items matching the search""" items: [IBaseProductSearch!]! """Total number of items found in this category""" itemsFound: Int! """The amount of items to show per page""" offset: Int! """The current page""" page: Int! """Total amount of pages""" pages: Int! """The lowest price of a product in this category""" minPrice: Int """The highest price of a product in this category""" maxPrice: Int """Faceted filters for this category""" filters: [ProductSearchAttributeFilter!] } """ Available fields for ordering categories when listing or searching the catalogue tree. Use together with a sort order argument to control the direction of the ordering. """ enum CategorySortableFields { """Orders results alphabetically by the localized category name.""" name """Orders results by the date the category was created in the catalogue.""" createdAt """ Orders results by the date the category was last modified in the catalogue. """ lastModifiedAt """ Orders results by the merchandiser-controlled sort order within the parent category. """ categoryOrder """ Deprecated alias for the category creation date. Use `createdAt` instead. """ dateCreated @deprecated(reason: "Use \"createdAt\" instead") """ Deprecated alias for the category modification date. Use `lastModifiedAt` instead. """ dateChanged @deprecated(reason: "Use \"lastModifiedAt\" instead") } """ Represents a sales or distribution channel within a tenant. Channels define distinct pathways for product sales and customer interaction. """ type Channel { """ Unique identifier for the channel. Used for all channel-related operations and references. """ id: Int! """ [DEPRECATED] Legacy channel identifier. Maintained for backward compatibility - use 'id' field instead. """ channelId: Int! @deprecated(reason: "Use id instead") """ Display name of the channel. Used in user interfaces and for channel identification. """ name: String! """ Localized descriptions of the channel in different languages. Provides multilingual support for channel information display. """ descriptions: [LocalizedString!] """ Reference to the root catalog item for this channel. Defines the top-level product hierarchy available through this channel. """ catalogRootId: Int """ Reference to the anonymous user account for this channel. Used for handling unauthenticated user sessions and default permissions. """ anonymousUserId: Int """ [DEPRECATED] Legacy letter template identifier. No longer used in current system architecture. """ defaultLetterId: Int @deprecated(reason: "To be removed") """ Timestamp when the channel was created. Used for auditing and chronological ordering. """ createdAt: DateTime! """ Timestamp when the channel was last modified. Updated automatically on any channel changes. """ lastModifiedAt: DateTime! """ Resolves the tenant that owns this channel. Provides access to tenant information and settings for the channel. Errors: TENANT_GET_ERROR, TENANT_NOT_FOUND_ERROR if tenant doesn't exist. AUTH: Role=[configuration.OWNER,configuration.EDITOR,configuration.VIEWER] """ tenant: Tenant! """[DEPRECATED] This field will be removed in a future version""" shop: Shop @deprecated(reason: "This field will be removed in a future version") } """ Input for creating a new channel within a tenant. Channels represent distinct sales or distribution channels with their own configuration. """ input ChannelCreateInput { """ Unique name for the channel within the tenant. Must be at least 1 character long and will be used for identification and display purposes. Validation: Minimum length of 1 character. """ name: String! """ Localized descriptions for the channel in different languages. Each entry must have a unique language code to avoid duplicates. """ descriptions: [LocalizedStringInput!] """ Reference to the root catalog item for this channel. Defines the top-level product hierarchy available through this channel. """ catalogRootId: Int """ Reference to the anonymous user account for this channel. Used for handling unauthenticated user sessions and permissions. """ anonymousUserId: Int } """ Input for updating an existing channel. All fields are optional - only provided fields will be updated. """ input ChannelUpdateInput { """ Unique name for the channel within the tenant. Must be at least 1 character long and will be used for identification and display purposes. Validation: Minimum length of 1 character. """ name: String """ Localized descriptions for the channel in different languages. Each entry must have a unique language code to avoid duplicates. """ descriptions: [LocalizedStringInput!] """ Reference to the root catalog item for this channel. Defines the top-level product hierarchy available through this channel. """ catalogRootId: Int """ Reference to the anonymous user account for this channel. Used for handling unauthenticated user sessions and permissions. """ anonymousUserId: Int } """ Response for bulk user claims reset operations. Provides detailed statistics about the batch claims reset process, including success and failure counts for monitoring and auditing purposes. """ type ClaimsResetAllResponse { """ Number of users whose claims were successfully reset. Indicates how many user accounts had their authorization claims successfully updated during the batch operation. """ successCount: Int! """ Number of users whose claims reset failed. Indicates how many user accounts encountered errors during the claims reset process and may need manual intervention. """ errorCount: Int! """ Total number of users processed in the batch operation. Sum of successful and failed operations, representing the complete scope of the batch claims reset. """ totalProcessed: Int! """ Whether the entire batch operation completed successfully. Indicates if the batch process finished without critical errors, though individual user operations may still have failed. """ completed: Boolean! } """ Cluster entity representing grouped products with shared characteristics. External entity from the catalog service that provides cluster identification and categorization. Clusters group related products together based on shared attributes, features, or business logic. Used as a reference for cluster-specific attributes and group-level properties within the attribute system. """ type Cluster implements IResource & IBaseProduct & ICluster { """Identifier of the cluster the product is assigned to, if any.""" id: Int! """Identifier of the cluster the product is assigned to, if any.""" clusterId: Int! """ Identifier of the category exposed as the default for federation purposes. """ categoryId: Int! """Lists attributes for this cluster based on the search input.""" attributes(input: AttributeResultSearchInput): AttributeResultResponse """ Collection of favorite lists that contain this cluster. Returns paginated results of all favorite lists where this cluster has been added. Useful for understanding cluster popularity and usage patterns. **Response Structure**: - Paginated list of favorite lists containing this cluster - Complete favorite list metadata - Owner information (company, contact, or customer) - Creation and modification timestamps **Analytics Capabilities**: - Cluster popularity tracking - Usage pattern analysis - Cross-list cluster relationships - Category preference insights **Use Cases**: - Category recommendation systems - Popular cluster identification - Bulk product management insights - Inventory category demand analysis """ favoriteLists(input: FavoriteListsSearchInput): FavoriteListsResponse """ Order lists that include this product cluster. Returns a paginated collection of order lists where this cluster has been assigned. - POSITIVE order lists: Assigned users/companies can see and order all products in this cluster - NEGATIVE order lists: Assigned users/companies cannot see or order any products in this cluster Clusters enable efficient management of product access for groups of related products. Results can be filtered using the input parameter for more specific queries. """ orderlists( """ Search and filtering criteria for order lists that include this product cluster. Filters the results to show only order lists where this specific product cluster has been assigned. - POSITIVE order lists: Assigned users/companies can see and order products from this cluster - NEGATIVE order lists: Assigned users/companies cannot see or order products from this cluster The cluster inclusion means ALL products within this cluster are affected by the order list rules. All standard search criteria can be applied in addition to the cluster-specific filtering. If not provided, returns all order lists that include this cluster with default pagination settings. """ input: OrderlistSearchInput ): OrderlistsResponse! """ Legacy single-language hint retained for backward compatibility; use the localized fields instead. """ language: String @deprecated(reason: "No longer used, defaults to 'NL'") class: ProductClass! @deprecated(reason: "Use 'type' field instead. This field will be removed in a future version.") """Hides the record from public catalog and search surfaces when set.""" hidden: YesNo! """Globally unique identifier for the product or cluster.""" uuid: ID! """ Discriminator that distinguishes between a product and a cluster within the shared catalogue. """ type: ProductClass! """ Stock keeping unit. Uniquely identifies a product within the catalogue. """ sku: String! @deprecated(reason: "Use 'code' instead. Returns the same value as 'code' for clusters.") """ Relative ranking used when ordering records; higher values surface first. """ priority: Int """Identifiers of every category the product belongs to.""" categoryIds: [Int!]! """ The default language for this product or cluster, this is the language to fall back too, when there is no translation available in a specific language. """ defaultLanguage: String! @deprecated(reason: "No longer used, defaults to 'NL'") """ Localized names shown to end users in catalog and search surfaces. The catalogue's default language must be present. """ names(language: String): [LocalizedString!]! """Localized long-form descriptions shown on product detail surfaces.""" descriptions(language: String): [LocalizedString!]! """Localized short descriptions surfaced in listings and tiles.""" shortDescriptions(language: String): [LocalizedString!]! """ URL-friendly identifiers, one per language, used in human-readable links. """ slugs(language: String): [LocalizedString!]! """Localized short labels shown when the full name is too long.""" shortNames(language: String): [LocalizedString!]! """Localized titles surfaced in search engine result pages.""" metadataTitles(language: String): [LocalizedString!]! """Localized descriptive snippets surfaced in search engine result pages.""" metadataDescriptions(language: String): [LocalizedString!]! """ Localized keyword lists used by search engines, supplied as comma-separated values. """ metadataKeywords(language: String): [LocalizedString!]! """ Localized canonical URLs that search engines should treat as the authoritative location. """ metadataCanonicalUrls(language: String): [LocalizedString!]! """ Pairs of external system names and the identifiers each system assigned to the record. """ sources: [Source!]! """Timestamp marking when the record was created, in UTC ISO 8601 format.""" createdAt: DateTime! """ Timestamp marking the last modification of the record, in UTC ISO 8601 format. """ lastModifiedAt: DateTime! """ Cluster code. Uniquely identifies a cluster within the catalogue and is only meaningful on cluster records. """ code: String category(hidden: YesNo): Category categories(input: ClusterCategorySearchInput): CategoryResponse! categoryPath(hidden: YesNo): [Category!]! products(input: ClusterProductSearchInput): [Product!]! defaultProduct(hidden: Boolean): Product clusterConfig: ClusterConfig config: ClusterConfig drillDowns: [ClusterDrillDown!] @deprecated(reason: "Use config.setting instead") options(input: ClusterOptionSearchInput): [ClusterOption!]! """ Cross- and up-sell relationships originating from the cluster. AUTH: Role=[product.OWNER,product.EDITOR,product.VIEWER] OR (('user is authenticated') AND ('userId if present in input matches JWT' AND 'companyId(s) if present in input matches JWT')) """ crossupsellsFrom( """Filtering and pagination criteria for the cross-upsell relationships.""" input: CrossupsellSearchInput ): CrossupsellsResponse! """ Cross- and up-sell relationships targeting the cluster. AUTH: Role=[product.OWNER,product.EDITOR,product.VIEWER] OR (('user is authenticated') AND ('userId if present in input matches JWT' AND 'companyId(s) if present in input matches JWT')) """ crossupsellsTo( """Filtering and pagination criteria for the cross-upsell relationships.""" input: CrossupsellSearchInput ): CrossupsellsResponse! categoryRelations: [BaseProductCategoryRelationship!]! } """Input for assigning products to a cluster""" input ClusterAssignProductsInput { """Array of product IDs to assign to the cluster""" productIds: [Int!]! } """Response for cluster product assignment operation""" type ClusterAssignProductsResponse { """The cluster with updated product assignments""" cluster: Cluster! """Detailed results of the assignment actions""" actions: ClusterProductsActionResponse! } """ Cluster-specific attribute containing shared properties and metadata for product clusters. Extends the base cluster interface with attribute functionality. Used to store shared characteristics, group-level properties, and cluster-wide configuration that applies to all products within the cluster. Perfect for managing attributes that span multiple related products, defining cluster-level business rules, and maintaining consistency across product groups with shared characteristics. """ type ClusterAttribute implements Attribute { """ Unique identifier for this attribute instance. Auto-generated UUID that serves as the primary key for this specific attribute. Used to reference and manage individual attribute instances. """ id: String! """ The actual value data stored in this attribute. Contains the attribute value in the appropriate format based on the attribute description's type definition. The value structure varies depending on the attribute type (text, enum, color, etc.). """ value: AttributeValue! """ Timestamp when this attribute was originally created. Records the exact date and time when this attribute instance was first created in the system. Used for audit trails and data lifecycle management. """ createdAt: DateTime! """ Timestamp when this attribute was last modified. Records the most recent date and time when any changes were made to this attribute's value or configuration. Updated automatically on each modification. """ lastModifiedAt: DateTime! """ Identifier of the user who created this attribute. References the user account that originally created this attribute instance. May be 0 for system-generated attributes or when user information is not available. """ createdBy: Int """ Identifier of the user who last modified this attribute. References the user account that made the most recent changes to this attribute. May be 0 for system modifications or when user information is not available. """ lastModifiedBy: Int """ Retrieve the attribute description that defines this cluster attribute's schema and behavior. Returns the complete attribute description containing metadata, type definitions, display configuration, and localization settings. This description serves as the template that defines how this cluster attribute should behave and be presented. Essential for understanding attribute constraints, available operations, and presentation requirements for cluster-specific attributes that extend cluster information. """ attributeDescription: AttributeDescription """ Unique identifier of the cluster that owns this attribute. References the specific product cluster that this attribute value is associated with. Used to establish the relationship between attributes and their parent clusters for group-level property management and shared characteristics. """ clusterId: Int! } """ Error information for a failed cluster move operation. Contains details about what went wrong when attempting to move a cluster, including error codes, messages, and the affected cluster record. """ type ClusterBulkMoveError { """ Error code indicating the type of error. Can be VALIDATION, DB_INSERT, or UNKNOWN. """ code: ClusterBulkMoveErrorCode! """ List of error messages. Human-readable error messages describing what went wrong during the cluster move operation. """ messages: [String!]! """ The cluster record that failed. JSON representation of the cluster data that caused the error, if available. """ record: String """ Row number in the input array. The position of the failed cluster in the input array, useful for identifying which cluster move operation failed. """ rowNumber: Int } """ Error codes returned for individual rows of a bulk cluster move operation. Each code identifies the category of failure so callers can route the row to the correct retry or remediation flow. """ enum ClusterBulkMoveErrorCode { """The row failed validation before reaching the catalogue.""" VALIDATION """The row failed to persist in the catalogue.""" DB_INSERT """The row failed for an unclassified reason.""" UNKNOWN } """ Input for bulk moving clusters to categories. Contains an array of cluster-category pairs for moving multiple clusters to their respective categories in a single operation. """ input ClusterBulkMoveInput { """ List of cluster move operations. Array of cluster-category pairs specifying which clusters should be moved to which categories. Each item contains a clusterId and categoryId. """ clusters: [ClusterMoveItem!]! } """ Response for bulk cluster move operations. Contains the count of successfully moved clusters and any errors that occurred during the operation. """ type ClusterBulkMoveResponse { """ Number of clusters successfully moved. Count of clusters that were successfully moved to their target categories. """ movedCount: Int! """ List of errors that occurred. Array of error objects for clusters that failed to move, including error codes, messages, and affected records. """ errors: [ClusterBulkMoveError!]! } """ Search criteria for cluster-associated categories. Provides filtering and search options for categories associated with a specific cluster. Inherits all CategorySearchInput functionality except categoryId filtering, since the cluster's categories are already determined. """ input ClusterCategorySearchInput { """Search term for category names""" name: String """Search by category slugs""" slugs: [String!] """Deprecated: use `slugs` instead.""" slug: [String!] """Filter by parent category IDs""" parentCategoryIds: [Int!] """Deprecated: use `parentCategoryIds` instead.""" parentCategoryId: [Int!] """Filter by category IDs""" categoryIds: [Int!] """Filter by category UUIDs""" uuids: [String!] """Filter by hidden status (Y or N)""" hidden: YesNo """Start date for creation date filtering (ISO 8601 format)""" createdAtFrom: String """End date for creation date filtering (ISO 8601 format)""" createdAtTo: String """Start date for modification date filtering (ISO 8601 format)""" lastModifiedAtFrom: String """End date for modification date filtering (ISO 8601 format)""" lastModifiedAtTo: String """ Deprecated: use `createdAtFrom` instead. Start date for creation date filtering (ISO 8601 format) """ dateCreatedFrom: String """ Deprecated: use `createdAtTo` instead. End date for creation date filtering (ISO 8601 format) """ dateCreatedTo: String """ Deprecated: use `lastModifiedAtFrom` instead. Start date for modification date filtering (ISO 8601 format) """ dateModifiedFrom: String """ Deprecated: use `lastModifiedAtTo` instead. End date for modification date filtering (ISO 8601 format) """ dateModifiedTo: String """Page number for pagination""" page: Int = 1 """Number of items per page""" offset: Int = 12 """Language for localized content""" language: String """Field to sort the categories by""" sortField: CategorySortableFields """ Sort order for results. Determines the sorting direction for the specified sort field. ASC = ascending order, DESC = descending order. Defaults to ascending order. """ sortOrder: SortOrder = ASC """Source system name (must be used with sourceIds)""" source: String """Source IDs to filter by (must be used with source)""" sourceIds: [String!] } """ Cluster configuration template that defines how clusters should be configured """ type ClusterConfig { """Globally unique identifier for the cluster configuration.""" uuid: ID! """Numeric identifier of the cluster configuration.""" id: Int! """ Human-readable name of the cluster configuration. Must be unique. Maximum length is 35 characters. Must be SNAKE_CASE: only uppercase letters (A-Z), digits (0-9) and underscores (_) are accepted; lowercase letters, spaces and any other punctuation are rejected. """ name: String! """ Configuration settings that define how clusters built from the template can be customised. """ settings: [ClusterConfigSetting!]! """ Timestamp marking when the cluster configuration was created, in UTC ISO 8601 format. """ createdAt: DateTime! """Identifier of the user account that created the cluster configuration.""" createdBy: Int """ Timestamp marking the last modification of the cluster configuration, in UTC ISO 8601 format. """ lastModifiedAt: DateTime! """ Identifier of the user account that last modified the cluster configuration. """ lastModifiedBy: Int } """Input for creating a new cluster configuration template""" input ClusterConfigCreateInput { """ Human-readable name of the cluster configuration. Must be unique. Maximum length is 35 characters. Must be SNAKE_CASE: only uppercase letters (A-Z), digits (0-9) and underscores (_) are accepted; lowercase letters, spaces and any other punctuation are rejected. """ name: String! """ Configuration settings that define how clusters built from the template can be customised. """ settings: [ClusterConfigSettingInput!] } type ClusterConfigResponse { id: Int! name: String! settings: [ClusterConfigSettingResponse!] } """Input for searching cluster configurations""" input ClusterConfigSearchInput { """Search term to match against configuration names""" term: String """Specific configuration names to search for""" names: [String!] """Page number for pagination""" page: Int! = 1 """Number of items per page""" offset: Int! = 12 } """ Individual configurable setting on a cluster configuration template. Each setting defines one attribute that customers can customise on clusters built from the template, including its display style and ordering. """ type ClusterConfigSetting { """Globally unique identifier for the cluster configuration.""" uuid: ID! """ Numeric identifier retained for compatibility with legacy integrations. Use `uuid` for new integrations. """ id: Int! @deprecated(reason: "Use `uuid` instead.") """Identifier of the tenant the cluster configuration belongs to.""" tenant: String! """ Timestamp marking when the cluster configuration was created, in UTC ISO 8601 format. """ createdAt: DateTime! """Identifier of the user account that created the cluster configuration.""" createdBy: Int! """ Timestamp marking the last modification of the cluster configuration, in UTC ISO 8601 format. """ lastModifiedAt: DateTime! """ Identifier of the user account that last modified the cluster configuration. """ lastModifiedBy: Int! """Name of the configurable attribute exposed by the setting.""" attributeName: String! """ Deprecated alias for the configurable attribute name. Use `attributeName` instead. """ name: String! @deprecated(reason: "Use 'attributeName' field instead. This field will be removed in a future version.") """ Behaviour type that defines how this setting operates within clusters built from the template. """ type: ClusterConfigSettingType! """Control type used when surfacing the setting in user interfaces.""" displayType: ClusterConfigSettingDisplayType! """ Relative ranking used when ordering settings in user interfaces; higher values surface first. """ priority: String! """Reference to the cluster configuration that owns the setting.""" configUuid: ID! """Numeric identifier of the cluster configuration.""" clusterConfigId: Int! } """Input for creating a new cluster configuration setting""" input ClusterConfigSettingCreateInput { """Name of the configurable attribute exposed by the setting.""" attributeName: String! """Control type used when surfacing the setting in user interfaces.""" displayType: ClusterConfigSettingDisplayType! """ Relative ranking used when ordering settings in user interfaces; higher values surface first. """ priority: Int } """ Control type used when surfacing a cluster configuration setting in customer-facing user interfaces. Determines how a configurable option of a cluster is presented to the shopper, affecting the user experience and interaction style for product selection. """ enum ClusterConfigSettingDisplayType { """ Displays the available options inside a compact dropdown menu. Suitable for settings with many options or when screen space is limited. """ DROPDOWN """ Displays the available options as radio buttons. Suitable for settings with few options where all choices should be visible simultaneously. """ RADIO """ Displays the available options as clickable images. Suitable for visual attributes such as patterns, styles or product variants where the visual representation matters. """ IMAGE """ Displays the available options as color swatches. Designed specifically for colour-based product attributes and variations. """ COLOR } """Input for cluster configuration setting""" input ClusterConfigSettingInput { """Attribute name for the configuration setting""" attributeName: String! """How the setting should be displayed in UI""" displayType: ClusterConfigSettingDisplayType! """Priority for ordering settings""" priority: Int } type ClusterConfigSettingResponse { id: Int! attributeName: String! displayType: ClusterConfigSettingDisplayType! priority: Int clusterConfigId: String! } """ Configuration types that define how cluster settings behave and interact with product data. Determines the behavior and editability of cluster configuration settings, controlling how product attributes and fields are managed within product clusters. """ enum ClusterConfigSettingType { """ Field that can be customized per product within the cluster. Allows individual products in the cluster to have unique values for this field while maintaining cluster organization. """ EDITABLE_FIELD """ Field that is shared across all products in the cluster. All products in the cluster inherit the same value for this field, ensuring consistency across the product group. """ SHARED_FIELD """ Attribute that customers can select from predefined options. Provides customers with a dropdown or selection interface to choose from available attribute values when configuring the product. """ SELECTABLE_ATTRIBUTE """ Attribute that customers can freely edit or input. Allows customers to enter custom values for this attribute, providing flexibility for personalization or custom specifications. """ EDITABLE_ATTRIBUTE """ Attribute that is consistent across all cluster products. All products in the cluster share the same attribute value, providing uniformity while allowing other attributes to vary. """ SHARED_ATTRIBUTE } """Input for updating an existing cluster configuration setting""" input ClusterConfigSettingUpdateInput { """Attribute name for the configuration setting""" attributeName: String """How the setting should be displayed in UI""" displayType: ClusterConfigSettingDisplayType """Priority for ordering settings""" priority: Int } """Paginated response containing cluster configurations""" type ClusterConfigsResponse { """Items returned by the query for the current page.""" items: [ClusterConfig!]! """Total number of items found""" itemsFound: Int! """Number of items to skip""" offset: Int """Current page number (1-based)""" page: Int """Total number of pages""" pages: Int! """Starting index for current page""" start: Int! """Ending index for current page""" end: Int! } """ Fields to update on an existing cluster configuration template. Only the fields supplied in the input are modified; omitted fields are left untouched. """ input ClusterConfigUpdateInput { """ Human-readable name of the cluster configuration. Must be unique. Maximum length is 35 characters. Must be SNAKE_CASE: only uppercase letters (A-Z), digits (0-9) and underscores (_) are accepted; lowercase letters, spaces and any other punctuation are rejected. """ name: String } """Input for creating a new cluster""" input ClusterCreateInput { """ Localized names shown to end users in catalog and search surfaces. The catalogue's default language must be present. """ names: [LocalizedStringInput!] """Localized long-form descriptions shown on product detail surfaces.""" descriptions: [LocalizedStringInput!] """Localized short descriptions surfaced in listings and tiles.""" shortDescriptions: [LocalizedStringInput!] """ URL-friendly identifiers, one per language, used in human-readable links. """ slugs: [LocalizedStringInput!] """Localized titles surfaced in search engine result pages.""" metadataTitles: [LocalizedStringInput!] """Localized descriptive snippets surfaced in search engine result pages.""" metadataDescriptions: [LocalizedStringInput!] """ Localized keyword lists used by search engines, supplied as comma-separated values. """ metadataKeywords: [LocalizedStringInput!] """ Localized canonical URLs that search engines should treat as the authoritative location. """ metadataCanonicalUrls: [LocalizedStringInput!] """ Cluster code. Uniquely identifies a cluster within the catalogue and is only meaningful on cluster records. """ code: String """ Identifier of the category exposed as the default for federation purposes. """ parentId: Int """Identifier of the configuration template applied to the cluster.""" clusterConfigId: Int! """ Default product ID for this cluster - Sets the default cluster-product relationship """ defaultProductId: Int """Hides the record from public catalog and search surfaces when set.""" hidden: YesNo! = N """ Relative ranking used when ordering records; higher values surface first. """ priority: Int = 1000 """ Whether to auto-generate slugs from names. When true (default), slugs are always generated for languages with names unless explicitly provided. When false, slugs are only generated for languages without existing slugs. """ autoGenerateSlugs: Boolean = true """ Pairs of external system names and the identifiers each system assigned to the record. """ sources: [SourceInput!] } """ Input for bulk cluster import from CSV file. Enables bulk creation of clusters through CSV file upload with customizable field mappings. Supports validation, error reporting, and flexible column mapping for different CSV formats. """ input ClusterCsvInput { """ CSV file containing cluster data. The CSV file must contain valid cluster information with proper headers. File must be in CSV format with UTF-8 encoding. """ file: Upload! """ Column mapping configuration for CSV import. Defines how CSV columns map to cluster fields in the system. Each mapping specifies the CSV header name and corresponding system field. Mappings must be unique and follow the defined field constraints. """ mappings: [ClusterCsvMapping!] } """ Mapping configuration for CSV column to system field. Defines how a specific CSV column maps to a cluster field in the system. Ensures proper data import by specifying the relationship between CSV headers and system fields. """ input ClusterCsvMapping { """ CSV column header name. The exact name of the column header in the CSV file. Must match the header name exactly (case-sensitive). Cannot be empty or contain only whitespace. """ csvHeader: String! """ Propeller eCommerce Platform field for the CSV column. The corresponding field in the Propeller eCommerce Platform where the CSV column data will be imported. Must be a valid ClusterFieldName enum value. Each field has specific validation rules and constraints. """ fieldName: ClusterFieldName! } """ Drill-down configuration for a cluster, retained for compatibility with the previous catalogue service. Superseded by cluster configuration settings; new integrations should consume the configuration settings instead. """ type ClusterDrillDown implements IClusterDrillDown { """The id of the Attribute to create the drilldown matrix for""" attributeId: String! """The order in which the drilldown should be generated""" priority: Int! """Indicator how to display the current drilldown selection""" displayType: ClusterDrillDownDisplayType! } """ Control type used when surfacing a cluster drill-down selection in customer-facing user interfaces. Determines how the shopper chooses between the available drill-down values. Superseded by the cluster configuration setting display types. """ enum ClusterDrillDownDisplayType { """Displays the available drill-down values as radio buttons.""" RADIO """ Displays the available drill-down values inside a compact dropdown menu. """ DROPDOWN """Displays the available drill-down values as clickable images.""" IMAGE COLOR } """ Column identifiers recognised by the cluster CSV importer. Each value identifies a cluster attribute that can be mapped to a column in the source spreadsheet so the import understands how to populate the catalogue. """ enum ClusterFieldName { """[Required][String] Cluster default language""" LANGUAGE """[Required][String] Cluster name""" NAMES """[Optional][String] Cluster description""" DESCRIPTIONS """[Optional][String] Cluster short description""" SHORT_DESCRIPTIONS """[Optional][String] Cluster code""" CODE """[Required][String] Cluster config id""" CLUSTER_CONFIG_ID """ [Optional][String] Cluster id Use either the internal cluster identifier column or the combination of source name and source identifier columns; do not combine both. """ CLUSTER_ID """ [Optional][String] Cluster source name Supply together with the source identifier column. Cannot be combined with the internal cluster identifier column. """ SOURCE_NAME """ [Optional][String] Cluster source id Supply together with the source name column. Cannot be combined with the internal cluster identifier column. """ SOURCE_ID """ [Optional][String] The id of the category the cluster should be created in """ CATEGORY_ID """ [Optional][String] Name of the parent category source Supply together with the category source identifier column. Required only when matching the parent category by external source. """ CATEGORY_SOURCE_NAME """ [Optional][String] Parent category source id Supply together with the category source name column. Required only when matching the parent category by external source. """ CATEGORY_SOURCE_ID """[Optional][String] [SEO] Localized metadata title""" METADATA_TITLE """[Optional][String] [SEO] Localized metadata description""" METADATA_DESCRIPTION """[Optional][String] [SEO] Localized metadata keywords""" METADATA_KEYWORDS """[Optional][String] [SEO] Localized metadata canonical URL""" METADATA_CANONICAL_URL """ [Optional][Enum] The hidden status of the cluster Must be one of: Y, N. When omitted the catalogue applies the default value of N. """ HIDDEN } """ Input for a single cluster move operation. Contains the cluster identifier and the target category for moving a cluster to a different category. """ input ClusterMoveItem { """ Cluster identifier to move. Unique numeric identifier of the cluster that should be moved to a different category. """ clusterId: Int! """ Target category identifier. ID of the category where the cluster should be moved to. """ categoryId: Int! } """Cluster option for configuring cluster product selections""" type ClusterOption implements IClusterOption { """ Cluster option ID (alias for clusterOptionId for backward compatibility) """ id: Int! """Identifier of the cluster option, unique within its cluster.""" clusterOptionId: Int! """ Indicates whether the customer must choose a value for the option to complete the cluster configuration. """ isRequired: YesNo """ Hides the option from public catalog and configuration surfaces when set. """ hidden: YesNo """Globally unique identifier for the cluster option.""" uuid: ID! """Identifier of the tenant the cluster option belongs to.""" tenant: String! """ Timestamp marking when the cluster option was created, in UTC ISO 8601 format. """ createdAt: DateTime! """Identifier of the user account that created the cluster option.""" createdBy: Int! """ Timestamp marking the last modification of the cluster option, in UTC ISO 8601 format. """ lastModifiedAt: DateTime! """Identifier of the user account that last modified the cluster option.""" lastModifiedBy: Int! """Reference to the cluster that owns the option.""" clusterId: Int! """ Identifier of the product preselected as the default choice for the option. """ defaultProductId: Int """ Localized names shown to end users when presenting the option. The catalogue's default language must be present. """ names( """Two-letter ISO 639-1 language code that filters the localized names.""" language: String ): [LocalizedString!]! """ Localized long-form descriptions shown when the customer explores the option. """ descriptions( """ Two-letter ISO 639-1 language code that filters the localized descriptions. """ language: String ): [LocalizedString!]! """ Localized short descriptions shown next to the option in listings and configurators. """ shortDescriptions( """ Two-letter ISO 639-1 language code that filters the localized short descriptions. """ language: String ): [LocalizedString!]! """Products that the customer can pick from for the option.""" products( """ Visibility and additional filtering criteria for the products selectable for the option. """ input: ClusterOptionProductSearchInput ): [Product!]! """Sort order within the cluster""" sortOrder: Int """ Pairs of external system names and the identifiers each system assigned to the cluster option. """ sources: [Source!]! """ Product preselected as the default choice for the cluster option. Falls back to the earliest-attached product when no product is explicitly marked as default. """ defaultProduct( """ Restricts the default product to one matching the supplied visibility flag. """ hidden: Boolean ): Product } """Input for creating a new cluster option""" input ClusterOptionCreateInput { """ Indicates whether the customer must choose a value for the option to complete the cluster configuration. """ isRequired: YesNo """ Hides the option from public catalog and configuration surfaces when set. """ hidden: YesNo! = N """ Identifier of the product preselected as the default choice for the option. """ defaultProductId: Int """ Localized names shown to end users when presenting the option. The catalogue's default language must be present. """ names: [LocalizedStringInput!] """ Localized long-form descriptions shown when the customer explores the option. """ descriptions: [LocalizedStringInput!] """ Localized short descriptions shown next to the option in listings and configurators. """ shortDescriptions: [LocalizedStringInput!] """Products that the customer can pick from for the option.""" productIds: [Int!] """ Pairs of external system names and the identifiers each system assigned to the cluster option. """ sources: [SourceInput!] } """Input for searching cluster options with pagination""" input ClusterOptionPaginatedSearchInput { """Search term to match against option names""" term: String """Specific cluster IDs to filter by""" clusterIds: [Int!] """Specific cluster option IDs to filter by""" clusterOptionIds: [Int!] """Filter by required options only""" isRequired: Boolean """Include hidden options in results""" includeHidden: Boolean! = false """Page number for pagination""" page: Int! = 1 """Number of items per page""" offset: Int! = 12 } """Input for filtering products within a cluster option""" input ClusterOptionProductSearchInput { """Filter products by hidden status""" hidden: Boolean } """Search criteria for finding cluster options.""" input ClusterOptionSearchInput { """List of cluster option ids""" ids: [Int!] """Is cluster option hidden?""" hidden: Boolean } """Paginated response containing cluster options""" type ClusterOptionsResponse { """Items returned by the query for the current page.""" items: [ClusterOption!]! """Total number of items found""" itemsFound: Int! """Number of items to skip""" offset: Int """Current page number (1-based)""" page: Int """Total number of pages""" pages: Int! """Starting index for current page""" start: Int! """Ending index for current page""" end: Int! } """Input for updating an existing cluster option""" input ClusterOptionUpdateInput { """Whether this option is required for cluster configuration""" isRequired: YesNo """Whether this option is hidden from display""" hidden: YesNo """ID of the default product for this option""" defaultProductId: Int """Localized names for this cluster option""" names: [LocalizedStringInput!] """Localized descriptions for this cluster option""" descriptions: [LocalizedStringInput!] """Localized short descriptions for this cluster option""" shortDescriptions: [LocalizedStringInput!] """IDs of products available for this cluster option""" productIds: [Int!] """Source/SourceId combinations for external system lookup""" sources: [SourceInput!] } """Result of a single product assignment/unassignment action""" type ClusterProductsActionData { """Action performed (assign or unassign)""" action: String! """Message describing the result of the action""" message: String! """Product ID that was processed""" productId: Int! """Whether the action was successful""" success: Boolean! } """Container for action results and messages""" type ClusterProductsActionResponse { """Summary messages for the operation""" messages: [String!]! """Detailed results for each product action""" data: [ClusterProductsActionData!]! } """Search criteria for finding products within a cluster.""" input ClusterProductSearchInput { """Include hidden products in cluster results.""" hidden: Boolean } """Search criteria for clusters with filtering and pagination""" input ClusterSearchInput { """Search term for names, descriptions, or SKU""" term: String """Filter by SKUs""" skus: [String!] """Filter by slugs (requires language parameter)""" slugs: [String!] """Filter by category ID""" categoryId: Int """Filter by specific cluster IDs""" clusterIds: [Int!] """Filter by cluster configuration ID""" clusterConfigId: Int """Is cluster hidden?""" hidden: Boolean """ Browse catalog as a specific User. Permissions, orderlists, favorite will be merged with the logged in user. """ userId: Int """ Browse catalog as a specific Company. Permissions, orderlists, favorite will be merged with the logged in user. """ companyId: Int """Whether to apply orderlist filtering""" applyOrderlists: Boolean = true """Order list IDs to apply for filtering""" orderlistIds: [Int!] """Page number for pagination""" page: Int = 1 """Number of items per page""" offset: Int = 12 """Language for search and sorting""" language: String } """Paginated response containing clusters""" type ClustersResponse { """Array of clusters for current page""" items: [Cluster!]! """Total number of items found""" itemsFound: Int! """Number of items to skip""" offset: Int """Current page number (1-based)""" page: Int """Total number of pages""" pages: Int! """Starting index for current page""" start: Int! """Ending index for current page""" end: Int! } """Input for unassigning products from a cluster""" input ClusterUnassignProductsInput { """Array of product IDs to unassign from the cluster""" productIds: [Int!]! """ Optional: Category ID to move products to when unassigning from cluster (mutually exclusive with clusterId) """ categoryId: Int """ Optional: Cluster ID to move products to when unassigning from current cluster (mutually exclusive with categoryId) """ clusterId: Int } """Response for cluster product unassignment operation""" type ClusterUnassignProductsResponse { """The cluster with updated product assignments""" cluster: Cluster! """Detailed results of the unassignment actions""" actions: ClusterProductsActionResponse! } """Input for updating an existing cluster (partial update)""" input ClusterUpdateInput { """ Localized names shown to end users in catalog and search surfaces. The catalogue's default language must be present. """ names: [LocalizedStringInput!] """Localized long-form descriptions shown on product detail surfaces.""" descriptions: [LocalizedStringInput!] """Localized short descriptions surfaced in listings and tiles.""" shortDescriptions: [LocalizedStringInput!] """ URL-friendly identifiers, one per language, used in human-readable links. """ slugs: [LocalizedStringInput!] """ Stock keeping unit. Uniquely identifies a product within the catalogue. """ sku: String """ Cluster code. Uniquely identifies a cluster within the catalogue and is only meaningful on cluster records. """ code: String """ Legacy single-language hint retained for backward compatibility; use the localized fields instead. """ defaultLanguage: String """ Identifier of the category exposed as the default for federation purposes. """ parentId: Int """Identifier of the configuration template applied to the cluster.""" clusterConfigId: Int """ Default product ID for this cluster - Sets the default cluster-product relationship """ defaultProductId: Int """ Whether to auto-generate slugs from names. When true (default), slugs are always regenerated for languages with names unless explicitly provided. When false, slugs are only generated for languages without existing slugs in the database. """ autoGenerateSlugs: Boolean = true """Hides the record from public catalog and search surfaces when set.""" hidden: YesNo """ Relative ranking used when ordering records; higher values surface first. """ priority: Int """Localized titles surfaced in search engine result pages.""" metadataTitles: [LocalizedStringInput!] """Localized descriptive snippets surfaced in search engine result pages.""" metadataDescriptions: [LocalizedStringInput!] """ Localized keyword lists used by search engines, supplied as comma-separated values. """ metadataKeywords: [LocalizedStringInput!] """ Localized canonical URLs that search engines should treat as the authoritative location. """ metadataCanonicalUrls: [LocalizedStringInput!] """ Pairs of external system names and the identifiers each system assigned to the record. """ sources: [SourceInput!] } type CompaniesResponse { """List of items of type Company""" items: [Company!]! """Total number of items found""" itemsFound: Int! """The amount of items to show per page""" offset: Int! """The current page""" page: Int! """Total amount of pages""" pages: Int! """Start position of the current page""" start: Int! """End position of the current page""" end: Int! } """ Company entity representing business organizations and corporate entities. External entity from the company service that provides company identification and business information. Used as a reference for company-specific attributes and organizational relationships within the attribute system. """ type Company { """ Internal company identifier for system operations, data relationships, and business process integration """ companyId: Int! """Lists attributes for this company based on the search input.""" attributes(input: AttributeResultSearchInput): AttributeResultResponse """ Collection of favorite lists associated with this company. Returns paginated results of all favorite lists owned by this company. Includes both default and non-default lists with their complete metadata and content. **Response Structure**: - Paginated list of favorite lists - Complete favorite list metadata - Associated products and clusters - Creation and modification timestamps **Filtering Capabilities**: - Search by list name - Filter by default status - Date range filtering - Content-based filtering **Use Cases**: - Company catalog management - Procurement list organization - Inventory planning and management - Cross-departmental product sharing """ favoriteLists(input: FavoriteListsBaseSearchInput): FavoriteListsResponse """ Order lists that are assigned to or accessible by this company. Returns a paginated collection of order lists where this company has been granted access. Users belonging to this company will be able to see and order from these lists. Results can be filtered using the input parameter for more specific queries. """ orderlists( """ Search and filtering criteria for order lists associated with this company. Filters the results to show only order lists that are assigned to or accessible by this specific company. All standard search criteria can be applied in addition to the company-specific filtering. If not provided, returns all order lists accessible to this company with default pagination settings. Validation: All provided search criteria must be valid according to their respective field requirements. """ input: OrderlistSearchInput ): OrderlistsResponse pricesheets: [Pricesheet!] """ Universally unique identifier (UUID) providing global uniqueness across systems """ uuid: String """ Official company name for business identification, legal purposes, and customer communication """ name: String! """ Company tax identification number for legal compliance, billing, and financial reporting """ taxNumber: String """ Chamber of Commerce registration number for business verification and legal compliance """ cocNumber: String """ External debtor system identifier for financial integration, billing, and payment processing """ debtorId: String """ Primary business phone number for company communication and contact purposes """ phone: String """ Primary business email address for company communication and notifications """ email: String """ Additional notes and comments about the company for internal reference and business operations """ notes: String """ Visibility setting determining whether the company is hidden from public interfaces """ hidden: YesNo """ Configuration setting for automatic product list inheritance from parent company. Deprecated. """ inheritProductList: YesNo @deprecated(reason: "Deprecated, will be removed in the future") """ Hierarchical path representing the company's position in the organizational structure. Deprecated. """ path: String @deprecated(reason: "Deprecated, will be removed in the future") """ URL-friendly identifier for company web presence and public-facing interfaces. Deprecated. """ slug: String @deprecated(reason: "Deprecated, will be removed in the future") """Categorization tag for company classification and filtering purposes""" tag: String """ External system sources that contributed to this entity's data for traceability and integration """ sources: [Source!] """Timestamp when the entity record was initially created in the system""" createdAt: DateTime """Timestamp of the most recent modification to the entity record""" lastModifiedAt: DateTime """Company managers""" managers: [IBaseUser!] """Company contacts""" contacts( """Search criteria for filtering and paginating company contacts""" input: ContactSearchArguments = {page: 1, offset: 12} ): ContactsResponse! """Purchase authorization configurations""" purchaseAuthorizationConfigs( """Search criteria for filtering purchase authorization configurations""" input: CompanyPurchaseAuthorizationConfigSearchInput ): PurchaseAuthorizationConfigResponse """Physical addresses associated with the company for business operations""" addresses( """Filter addresses by specific type (delivery, invoice, etc.)""" type: AddressType """Filter addresses by default status""" isDefault: YesNo ): [Address!]! } input CompanyAddressCreateInput { """First name the address applies to""" firstName: String """Middle name the address applies to""" middleName: String """Last name the address applies to""" lastName: String """Gender the address applies to""" gender: Gender """Company the address applies to""" company: String """Street address""" street: String! """Street number""" number: String """Street number extension""" numberExtension: String """Address postal code""" postalCode: String! """Address city""" city: String! """Address region""" region: String """Address country""" country: String! """Address fixed phone number [min: 6, max: 30]""" phone: String """Address mobile number [min: 6, max: 30]""" mobile: String """Address email [valid email format required]""" email: String """Address code""" code: String """Address delivery notes""" notes: String """Company website URL""" url: String """Indicates whether the address is default for its type""" isDefault: YesNo """Indicates whether the address is active""" active: YesNo """ ICP address field defines whether tax should be applied to an order if the address is selected as a delivery address. Used when shipping b2b order abroad """ icp: YesNo """Company unique identifier""" companyId: Int! """Address type [one of 'home', 'delivery' or 'invoice']""" type: AddressType! } input CompanyAddressDeleteInput { """Address primary identifier""" id: Int! """Company unique identifier""" companyId: Int! } """ Physical address associated with a company for location-based operations. Represents a complete address record including contact information, location details, and address metadata. Used for shipping, billing, correspondence, and location-based business operations. Supports multiple address types per company with default address designation. """ type CompanyAddressSearch { """ Unique identifier for the address record. Primary key used to reference this address throughout the system and for all address-related operations. """ id: Int! """ First name of the person associated with this address. Personal name for address-specific contact identification, useful for delivery instructions and personal correspondence at this location. """ firstName: String """ Last name of the person associated with this address. Family name for address-specific contact identification, useful for delivery instructions and formal correspondence at this location. """ lastName: String """ Street name for the physical address location. Primary street identifier for the address, used for navigation, delivery, and official correspondence. """ street: String! """ Street number for precise address identification. Building or property number on the street, essential for accurate delivery and location identification. """ number: String """ Additional street number information for complex addresses. Extensions like apartment numbers, suite numbers, or building designations that provide additional location specificity. """ numberExtension: String """ Postal code for mail delivery and location services. ZIP code or postal code used by postal services for efficient mail routing and geographic identification. """ postalCode: String! """ City name for geographic and administrative identification. Municipality or city name used for location identification, administrative purposes, and geographic classification. """ city: String! """ State, province, or region for broader geographic classification. Administrative region above city level, used for geographic organization and location context. """ region: String """ Country code for international address identification. Country identifier for international operations, shipping, and geographic classification. """ country: String! """ Fixed phone number for this address location. Landline telephone number associated with this specific address. Must be between 6 and 30 characters. Used for location-specific communication and verification. """ phone: String """ Mobile phone number for this address location. Cell phone number associated with this specific address. Must be between 6 and 30 characters. Used for direct communication and delivery coordination. """ mobile: String """ Email address for correspondence to this location. Email contact specific to this address location. Must be a valid email format. Used for address-specific communication and notifications. """ email: String """ Internal reference code for the address. Custom identifier or reference code used for internal address management and categorization. """ code: String """ Delivery instructions and additional address information. Free-form text for delivery notes, access instructions, or additional context about this address location. """ notes: String """ Friendly display name for the address. Human-readable name or label for easy address identification. """ name: String """ Indicates if this is the default address for its type. Designates whether this address serves as the primary address for its specific address type within the company. """ isDefault: YesNo! """ Classification of the address purpose and usage. Defines how this address is used within business operations - [one of 'home', 'delivery', 'invoice']. """ type: AddressType! """ Indicates if the address is currently active and usable. Status flag showing whether this address is available for current business operations and communications. """ active: YesNo """ Address record creation timestamp. Date and time when this address was initially added to the system, used for auditing and record tracking. """ createdAt: DateTime! """ Address record last modification timestamp. Date and time when any address information was last updated, used for change tracking and data synchronization. """ lastModifiedAt: DateTime! } input CompanyAddressUpdateInput { """First name the address applies to""" firstName: String """Middle name the address applies to""" middleName: String """Last name the address applies to""" lastName: String """Gender the address applies to""" gender: Gender """Company the address applies to""" company: String """Street address""" street: String """Street number""" number: String """Street number extension""" numberExtension: String """Address postal code""" postalCode: String """Address city""" city: String """Address region""" region: String """Address country""" country: String """Address fixed phone number [min: 6, max: 30]""" phone: String """Address mobile number [min: 6, max: 30]""" mobile: String """Address email [valid email format required]""" email: String """Address code""" code: String """Address delivery notes""" notes: String """Company website URL""" url: String """Indicates whether the address is default for its type""" isDefault: YesNo """Indicates whether the address is active""" active: YesNo """ ICP address field defines whether tax should be applied to an order if the address is selected as a delivery address. Used when shipping b2b order abroad """ icp: YesNo """Address primary identifier""" id: Int! """Company unique identifier""" companyId: Int! } """ Company-specific attribute containing business metadata and organizational properties. Extends the base company interface with attribute functionality. Used to store additional company information such as business metadata, compliance data, organizational properties, and enterprise-specific configuration that are not part of the standard company schema. Perfect for managing company-level business rules, compliance requirements, and organizational data that needs to be tracked and managed across the enterprise. """ type CompanyAttribute implements Attribute { """ Unique identifier for this attribute instance. Auto-generated UUID that serves as the primary key for this specific attribute. Used to reference and manage individual attribute instances. """ id: String! """ The actual value data stored in this attribute. Contains the attribute value in the appropriate format based on the attribute description's type definition. The value structure varies depending on the attribute type (text, enum, color, etc.). """ value: AttributeValue! """ Timestamp when this attribute was originally created. Records the exact date and time when this attribute instance was first created in the system. Used for audit trails and data lifecycle management. """ createdAt: DateTime! """ Timestamp when this attribute was last modified. Records the most recent date and time when any changes were made to this attribute's value or configuration. Updated automatically on each modification. """ lastModifiedAt: DateTime! """ Identifier of the user who created this attribute. References the user account that originally created this attribute instance. May be 0 for system-generated attributes or when user information is not available. """ createdBy: Int """ Identifier of the user who last modified this attribute. References the user account that made the most recent changes to this attribute. May be 0 for system modifications or when user information is not available. """ lastModifiedBy: Int """ Retrieve the attribute description that defines this company attribute's schema and behavior. Returns the complete attribute description containing metadata, type definitions, display configuration, and localization settings. This description serves as the template that defines how this company attribute should behave and be presented. Essential for understanding attribute constraints, available operations, and presentation requirements for company-specific attributes that extend company information. """ attributeDescription: AttributeDescription """ Unique identifier of the company that owns this attribute. References the specific company in the business network that this attribute value is associated with. Used to establish the relationship between attributes and their parent companies for organizational and business management purposes. """ companyId: Int! } """ Metadata definition for company attribute types and their characteristics. Defines the structure and properties of custom attributes that can be assigned to companies. Contains the schema information that determines how attribute values are stored, validated, and displayed. Used for dynamic attribute system configuration. """ type CompanyAttributeDescriptionSearch { """ Unique identifier for the attribute description. Primary key used to reference this attribute definition throughout the system and for attribute value associations. """ id: String! """ Human-readable name for the attribute type. Display name used in user interfaces and reports to identify this attribute type. Provides context for what kind of information this attribute represents. """ name: String! } """ Custom attribute assigned to a company with metadata and audit information. Represents a specific attribute instance attached to a company, combining the attribute definition, actual value, and audit trail. Used for flexible data storage, custom business logic, and extended company information beyond standard fields. """ type CompanyAttributeSearch { """ Unique identifier for the attribute assignment. Primary key used to reference this specific attribute instance and for attribute-related operations. """ id: String! """ The actual value data for this attribute. Contains the concrete value assigned to the company for this attribute, including type information and validation metadata. """ value: CompanyAttributeValueSearch! """ Attribute assignment creation timestamp. Date and time when this attribute was initially assigned to the company, used for auditing and change tracking. """ createdAt: DateTime! """ Attribute last modification timestamp. Date and time when this attribute value or metadata was last updated, used for change tracking and synchronization. """ lastModifiedAt: DateTime! """ User identifier who created this attribute assignment. Reference to the user who initially assigned this attribute to the company, used for audit trails and accountability. """ createdBy: Int """ User identifier who last modified this attribute. Reference to the user who most recently updated this attribute value or metadata, used for audit trails and change tracking. """ lastModifiedBy: Int """ Metadata definition for this attribute type. Contains the schema and configuration information that defines how this attribute should be processed, validated, and displayed. """ attributeDescription: CompanyAttributeDescriptionSearch } """ Actual value data for a company attribute instance. Contains the concrete value assigned to a company for a specific attribute type. The value format and validation depend on the associated attribute description. Supports various data types including text, numbers, dates, and colors. """ type CompanyAttributeValueSearch { """ Unique identifier for the attribute value instance. Primary key used to reference this specific attribute value and for value-related operations. """ id: String! """ Data type classification for the attribute value. Specifies the format for this attribute value, determining how it should be processed, displayed, and validated. """ type: String! } """ Company contact person with comprehensive contact information. Represents an individual contact within a company including personal details, communication preferences, financial information, and custom attributes. Used for business relationship management and communication tracking. """ type CompanyContactSearch { """ Unique identifier for the contact person. Primary key used to reference this contact throughout the system and for all contact-related operations. """ id: Int! """ Contact's first name for personal identification. Given name of the contact person used for personal communication and formal correspondence. """ firstName: String! """ Contact's last name for personal identification. Family name of the contact person used for formal correspondence and professional communication. """ lastName: String """ Contact's middle name or initial. Middle name or initial for complete personal identification and formal addressing. """ middleName: String """ Primary phone number for business communication. Main telephone number for reaching the contact during business hours, including country and area codes. """ phone: String """ Mobile phone number for direct communication. Personal mobile number for urgent communication and direct contact outside of business hours. """ mobile: String """ Gender of the contact person. Gender information for proper addressing and communication preferences. """ gender: String """ Primary email address for digital communication. Main email contact for business correspondence, order confirmations, and professional communication with the contact person. """ email: String! """ International Bank Account Number for payments. IBAN format bank account number used for international payments and financial transactions with this contact. """ iban: String """ Domestic bank account number for payments. Local bank account number used for domestic payments and financial transactions, format varies by country. """ bankAccount: String """ Bank Identification Code for international transfers. SWIFT/BIC code identifying the contact's bank for international wire transfers and payment processing. """ bic: String """ Internal notes and additional contact information. Free-form text for storing internal notes, preferences, or additional context about the contact relationship. """ notes: String """ Legacy debtor account identifier (deprecated). Historical debtor identifier for financial tracking. Use company-level debtorId instead for new implementations. """ debtorId: String @deprecated(reason: "Deprecated in favor of company debtorId") """ Primary company identifier for this contact. References the main company this contact is associated with. Used for establishing the primary business relationship and contact-company associations in the new simplified event structure. """ primaryCompanyId: Int """ Contact's date of birth for personal records. Birth date used for personal identification, age verification, and compliance with data protection regulations. """ dateOfBirth: DateTime """ Contact record creation timestamp. Date and time when this contact was initially created in the system, used for auditing and relationship tracking. """ createdAt: DateTime! """ Contact record last modification timestamp. Date and time when any contact information was last updated, used for change tracking and data synchronization. """ lastModifiedAt: DateTime! """ Custom attributes and metadata for the contact. Flexible attribute system for storing additional contact information, preferences, roles, and custom business data specific to this contact person. """ attributes: [CompanyAttributeSearch!]! } input CompanyCsvInput { """CSV file to upload""" file: Upload! """CSV field mappings for companies""" mappings: [CompanyCsvMapping!] } input CompanyCsvMapping { """CSV column header name""" csvHeader: String! """Corresponding Propeller field name""" fieldName: CompanyFieldName! } enum CompanyFieldName { """ [Optional][String] Unique internal identifier for the company used for system operations and data relationships """ COMPANY_ID """ [Optional][String] Official company name for business identification, legal purposes, and customer communication """ NAME """ [Optional][String] Company tax identification number for legal compliance, billing, and financial reporting """ TAX_NUMBER """ [Optional][String] Chamber of Commerce registration number for business verification and legal compliance """ COC_NUMBER """ [Optional][String] External debtor system identifier for financial integration, billing, and payment processing """ DEBTOR_ID """ [Optional][String] Primary business phone number for company communication and contact purposes """ PHONE """ [Optional][String] Primary business email address for company communication and notifications """ EMAIL """ [Optional][String] Additional notes and comments about the company for internal reference and business operations """ NOTES """ [Optional][String] Organizational department within the company structure """ DEPARTMENT """ [Optional][String] Physical office location or branch identifier within the company """ OFFICE """ [Optional][String] Configuration setting for automatic product list inheritance from parent company. Deprecated. """ INHERIT_PRODUCT_LIST """ [Optional][String] Configuration setting for automatic order list inheritance from parent company. Deprecated. """ INHERIT_ORDER_LIST """ [Optional][String] Budget configuration setting for financial control and spending limits. Deprecated. """ BUDGET """ [Optional][String] Configuration setting for automatic budget inheritance from parent company. Deprecated. """ BUDGET_INHERIT """ [Optional][String] Visibility setting determining whether the company is hidden from public interfaces """ HIDDEN """ [Optional][String] Hierarchical path representing the company's position in the organizational structure. Deprecated. """ PATH """ [Optional][String] URL-friendly identifier for company web presence and public-facing interfaces. Deprecated. """ SLUG """ [Optional][String] Categorization tag for company classification and filtering purposes """ TAG """ [Optional][String] External system source name for integration and data traceability, use either COMPANY_ID or a combination of SOURCE_NAME and SOURCE_ID """ SOURCE_NAME """ [Optional][String] External system source identifier for integration and data synchronization, use either COMPANY_ID or a combination of SOURCE_NAME and SOURCE_ID """ SOURCE_ID """ [Optional][String] Default system language preference for localized communication and documentation, only required when using combination of SOURCE_NAME and SOURCE_ID """ LANGUAGE } input CompanyPurchaseAuthorizationConfigSearchInput { """List of purchase authorization config IDs""" ids: [String!] """List of unique contact ids""" contactIds: [Int!] """Purchase roles of a contact""" purchaseRoles: [PurchaseRole!] """ The purchaser's authorization limit i.e. maximum amount that can be spent per order """ authorizationLimit: DecimalSearchInput """Search by date created""" createdAt: DateSearchInput """Search by date changed""" lastModifiedAt: DateSearchInput page: Int! = 1 offset: Int! = 12 } """ Company search result with comprehensive business information. Represents a company entity optimized for search operations including business details, contact information, addresses, and custom attributes. Used for company discovery, customer management, and business relationship tracking. """ type CompanySearch { """ Unique identifier for the company. Primary key used to reference this company throughout the system and for all company-related operations. """ id: Int! """ Official company name for business identification. The legal or trading name of the company used for business correspondence, contracts, and official documentation. """ name: String! """ Tax identification number for regulatory compliance. Government-issued tax number used for tax reporting, invoicing, and regulatory compliance. Format varies by country and jurisdiction. """ taxNumber: String """ Chamber of Commerce registration number. Official business registration number from the Chamber of Commerce or equivalent business registry, used for legal identification and verification. """ cocNumber: String """ Internal notes and additional company information. Free-form text for storing internal notes, special instructions, or additional context about the company relationship. """ notes: String """ Debtor account identifier for financial management. Identifier used in accounting and financial systems to track financial transactions for this company. """ debtorId: String """ Primary email address for company communication. Main email contact for business correspondence, order confirmations, and official communications with the company. """ email: String """ Primary phone number for company communication. Main phone contact for business inquiries, customer service, and direct communication with the company. """ phone: String """ Company record creation timestamp. Date and time when this company was initially created in the system, used for auditing and business relationship tracking. """ createdAt: DateTime! """ Company record last modification timestamp. Date and time when any company information was last updated, used for change tracking and data synchronization. """ lastModifiedAt: DateTime! """ Company deletion timestamp for soft deletes. Date and time when the company was marked as deleted. Soft-deleted companies are excluded from active searches but retained for historical purposes. """ deletedAt: DateTime """ Physical addresses associated with the company. Collection of addresses including shipping addresses and billing addresses for comprehensive location information. """ addresses: [CompanyAddressSearch!]! """ Contact persons and representatives within the company. List of individual contacts including employees, decision makers, and key personnel for business communication and relationship management. """ contacts: [CompanyContactSearch!]! """ Custom attributes and metadata for the company. Flexible attribute system for storing additional company information, industry classifications, certifications, and custom business data. """ attributes: [CompanyAttributeSearch!]! } """Input for searching companies""" input CompanySearchArguments { """Company IDs""" companyIds: [Int!] """Company name""" name: String sources: [SourceSearchInput!] """ Company tax identification number for legal compliance, billing, and financial reporting """ taxNumber: String """ Chamber of Commerce registration number for business verification and legal compliance """ cocNumber: String """Search by debtor IDs""" debtorIds: [String!] """ Primary business email address for company communication and notifications """ email: String """ Primary business phone number for company communication and contact purposes """ phone: String """Managed companies only""" managedCompaniesOnly: Boolean = false """Page number for pagination (default: 1)""" page: Int! = 1 """Number of items per page (default: 12, max: 100)""" offset: Int! = 12 """ Array of sorting criteria for organizing search results by various attributes """ sort: [CompanySortInput!] """Date range filter for entities modified within a specific time period""" lastModifiedAt: DateSearchInput """Date range filter for entities created within a specific time period""" createdAt: DateSearchInput } """ Available search index templates for data reindexing and mapping operations """ enum CompanySearchIndexTemplate { """Main company search index template for comprehensive company data""" COMPANY_SEARCH """Independent contact search index template for contact data""" CONTACT_SEARCH """Address search index template for address data""" TEMP_ADDRESS """ Contact-company relationship search index template for contact-company associations """ TEMP_CONTACT_COMPANY """Attribute search index template for orphaned attribute data""" TEMP_ATTRIBUTE } """ Configuration for updating search index mapping definitions. Specifies which search index template should have its mapping configuration updated. Used for maintaining search performance and ensuring proper field indexing as data structures evolve. """ input CompanySearchIndexUpdateMappingInput { """ Search index template to update with new mapping configuration. Identifies the specific index template that should receive the mapping updates. The mapping defines how fields are indexed and made searchable. """ template: CompanySearchIndexTemplate! } """ Comprehensive search criteria for finding companies with advanced filtering options. Provides powerful company discovery functionality including full-text search, date range filtering, address type filtering, and custom sorting. Supports pagination and relevance-based ranking for optimal search results. """ input CompanySearchInput { """ Page number for pagination. Specifies which page of results to return. Must be 1 or greater. Default is page 1. """ page: Int! = 1 """ Number of items per page. Controls how many companies are returned in each page. Default is 12 companies per page. """ offset: Int! = 12 """ General search term for company discovery. Searches across company names, contact information, addresses, and other searchable fields. Minimum 2 characters required for search performance. """ term: String """ Specific fields to search within with custom boosting. Allows targeting specific fields for the search term with custom relevance boosting. If not provided, searches all available fields with equal weight. Useful for prioritizing certain types of matches. """ termFields: [CompanyTermFieldInput!] """ Filter by company creation date range. Allows filtering companies based on when they were originally created in the system. Useful for finding recently added companies or companies from specific time periods. """ companyCreatedAt: DateSearchInput """ Filter by company last modification date range. Allows filtering companies based on when they were last updated. Useful for finding recently modified companies or tracking changes over time. """ companyLastModifiedAt: DateSearchInput """ Filter by company attribute creation date range. Allows filtering companies based on when their custom attributes were initially created. Useful for tracking attribute assignment patterns and data enrichment timelines. """ companyAttributeCreatedAt: DateSearchInput """ Filter by company attribute modification date range. Allows filtering companies based on when their custom attributes were last updated. Useful for finding companies with recently changed attribute values. """ companyAttributeLastModifiedAt: DateSearchInput """ Filter by contact creation date range. Allows filtering companies based on when their contacts were initially added to the system. Useful for tracking relationship establishment and contact acquisition patterns. """ contactCreatedAt: DateSearchInput """ Filter by contact modification date range. Allows filtering companies based on when their contact information was last updated. Useful for finding companies with recently updated contact details. """ contactLastModifiedAt: DateSearchInput """ Filter by contact date of birth range. Allows filtering companies based on the birth dates of their associated contacts. Useful for demographic analysis and age-based business targeting. """ contactDateOfBirth: DateSearchInput """ Filter by contact attribute creation date range. Allows filtering companies based on when custom attributes were assigned to their contacts. Useful for tracking contact data enrichment and attribute assignment patterns. """ contactAttributeCreatedAt: DateSearchInput """ Filter by contact attribute modification date range. Allows filtering companies based on when their contact attributes were last updated. Useful for finding companies with recently changed contact attribute values. """ contactAttributeLastModifiedAt: DateSearchInput """ Filter by specific address types. Allows filtering companies that have addresses of the specified types. Array must contain unique values. Useful for targeting companies with specific address configurations like delivery or billing addresses. """ addressTypes: [AddressType!] """ Filter by companies with default addresses. Allows filtering companies based on whether they have addresses marked as default for their type. Useful for finding companies with properly configured primary addresses. """ addressIsDefault: YesNo """ Filter by companies with active addresses. Allows filtering companies based on whether they have active, usable addresses. Useful for finding companies with current, valid address information. """ addressActive: YesNo """ Sorting configuration for search results. Array of sort criteria to apply to the search results. Array must contain unique values. If not provided, defaults to relevance-based sorting in descending order. Multiple sort criteria are applied in the order specified. """ sortInputs: [CompanySearchSortInput!] } """ Configuration for reindexing company search data to new index structures. Specifies which index template should be used for data migration and reindexing operations. Used during system upgrades, performance optimizations, or when changing search index configurations. """ input CompanySearchReindexInput { """ Index template to use for the reindexing operation. Defines the target index structure and configuration for migrating company search data. The reindexing process will use this template to create the new index with updated settings. """ template: CompanySearchIndexTemplate! = COMPANY_SEARCH } """ Paginated response containing company search results with metadata. Provides a structured response for company search operations including the matching companies, pagination information, and result statistics. Enables efficient browsing of large result sets with comprehensive navigation metadata. """ type CompanySearchResponse { """List of items of type CompanySearch""" items: [CompanySearch!]! """Total number of items found""" itemsFound: Int! """The amount of items to show per page""" offset: Int! """The current page""" page: Int! """Total amount of pages""" pages: Int! """Start position of the current page""" start: Int! """End position of the current page""" end: Int! } """Available fields for sorting company search results""" enum CompanySearchSortField { """Sort by search relevance score (best matches first)""" RELEVANCE """Sort by company ID numerically""" COMPANY_ID """Sort by company name alphabetically""" COMPANY_NAME """Sort by tax identification number""" COMPANY_TAX_NUMBER """Sort by Chamber of Commerce registration number""" COMPANY_COC_NUMBER """Sort by internal company notes alphabetically""" COMPANY_NOTES """Sort by company creation date""" COMPANY_CREATED_AT """Sort by company last modification date""" COMPANY_LAST_MODIFIED_AT COMPANY_ADDRESS_ID COMPANY_ADDRESS_FIRST_NAME COMPANY_ADDRESS_LAST_NAME COMPANY_ADDRESS_STREET COMPANY_ADDRESS_NUMBER COMPANY_ADDRESS_NUMBER_EXTENSION """Sort by company address postal code""" COMPANY_ADDRESS_POSTAL_CODE """Sort by company address city alphabetically""" COMPANY_ADDRESS_CITY COMPANY_ADDRESS_REGION """Sort by company address country code""" COMPANY_ADDRESS_COUNTRY COMPANY_ADDRESS_PHONE COMPANY_ADDRESS_MOBILE COMPANY_ADDRESS_EMAIL COMPANY_ADDRESS_CODE COMPANY_ADDRESS_NOTES COMPANY_ADDRESS_NAME COMPANY_ADDRESS_IS_DEFAULT COMPANY_ADDRESS_TYPE COMPANY_ADDRESS_ACTIVE COMPANY_ATTRIBUTE_ID COMPANY_ATTRIBUTE_CREATED_AT COMPANY_ATTRIBUTE_LAST_MODIFIED_AT COMPANY_ATTRIBUTE_CREATED_BY COMPANY_ATTRIBUTE_LAST_MODIFIED_BY COMPANY_ATTRIBUTE_DESCRIPTION_ID COMPANY_ATTRIBUTE_DESCRIPTION_NAME COMPANY_ATTRIBUTE_DESCRIPTION_TYPE COMPANY_ATTRIBUTE_VALUE_ID COMPANY_ATTRIBUTE_VALUE_NAME COMPANY_ATTRIBUTE_VALUE_TYPE COMPANY_ATTRIBUTE_VALUE_COLOR_VALUE COMPANY_ATTRIBUTE_VALUE_TEXT_VALUES COMPANY_ATTRIBUTE_VALUE_DATE_VALUE COMPANY_ATTRIBUTE_VALUE_DECIMAL_VALUE COMPANY_ATTRIBUTE_VALUE_INTEGER_VALUE CONTACT_ID """Sort by primary contact first name alphabetically""" CONTACT_FIRST_NAME """Sort by primary contact last name alphabetically""" CONTACT_LAST_NAME CONTACT_PHONE CONTACT_MOBILE """Sort by primary contact email address alphabetically""" CONTACT_EMAIL CONTACT_IBAN CONTACT_BANK_ACCOUNT CONTACT_BIC CONTACT_NOTES """Sort by contact date of birth""" CONTACT_DATE_OF_BIRTH """Sort by contact creation date""" CONTACT_CREATED_AT CONTACT_LAST_MODIFIED_AT CONTACT_DEBTOR_ID CONTACT_ATTRIBUTE_ID CONTACT_ATTRIBUTE_CREATED_AT CONTACT_ATTRIBUTE_LAST_MODIFIED_AT CONTACT_ATTRIBUTE_CREATED_BY CONTACT_ATTRIBUTE_LAST_MODIFIED_BY CONTACT_ATTRIBUTE_DESCRIPTION_ID CONTACT_ATTRIBUTE_DESCRIPTION_NAME CONTACT_ATTRIBUTE_DESCRIPTION_TYPE CONTACT_ATTRIBUTE_VALUE_ID CONTACT_ATTRIBUTE_VALUE_NAME CONTACT_ATTRIBUTE_VALUE_TYPE CONTACT_ATTRIBUTE_VALUE_COLOR_VALUE CONTACT_ATTRIBUTE_VALUE_TEXT_VALUES CONTACT_ATTRIBUTE_VALUE_DATE_VALUE CONTACT_ATTRIBUTE_VALUE_DECIMAL_VALUE CONTACT_ATTRIBUTE_VALUE_INTEGER_VALUE } """ Sorting configuration for company search results. Defines how company search results should be ordered including the field to sort by and the sort direction. Multiple sort inputs can be combined for complex sorting logic. """ input CompanySearchSortInput { """ Company field to use for sorting. Specifies which company attribute should be used as the primary sort key. Options include relevance, name, creation date, and other company properties. """ field: CompanySearchSortField! """ Sort direction for the specified field. Determines whether results are sorted in ascending (A-Z, oldest first) or descending (Z-A, newest first) order. Defaults to ascending if not specified. """ order: SortOrder! } """Company sortable fields""" enum CompanySortableField { NAME LAST_MODIFIED_AT CREATED_AT } input CompanySortInput { """Available fields for sorting""" field: CompanySortableField! """Sort order (ASC or DESC, default: ASC)""" order: SortOrder! = ASC } """ Field-specific search configuration with relevance boosting. Allows targeting specific company fields for search terms with custom relevance scoring. Enables precise control over which fields are searched and how much weight each field contributes to the overall search relevance. """ input CompanyTermFieldInput { """ Company fields to search within for the search term. Array of specific field names that should be included in the search operation. Must contain unique values. Each field will be searched using the provided search term. """ fieldNames: [CompanyTermFieldName!]! """ Relevance boost multiplier for matches in these fields. Positive integer that increases the relevance score for matches found in the specified fields. Higher values make matches in these fields more prominent in search results. Must be a positive integer. """ boost: Int = 1 } """ Available field names for term-based filtering in company search queries, enabling precise field-specific search operations """ enum CompanyTermFieldName { """Filter by company unique identifier for exact company matching""" COMPANY_ID """Filter by company name for text-based company identification""" COMPANY_NAME """ Filter by tax identification number for regulatory and compliance searches """ COMPANY_TAX_NUMBER """ Filter by Chamber of Commerce registration number for official business verification """ COMPANY_COC_NUMBER COMPANY_NOTES COMPANY_DEBTOR_ID """Filter by company primary email address for contact-based searches""" COMPANY_EMAIL COMPANY_ATTRIBUTE_ID COMPANY_ATTRIBUTE_DESCRIPTION_ID COMPANY_ATTRIBUTE_DESCRIPTION_NAME COMPANY_ATTRIBUTE_DESCRIPTION_TYPE COMPANY_ATTRIBUTE_VALUE_ID COMPANY_ATTRIBUTE_VALUE_NAME COMPANY_ATTRIBUTE_VALUE_TYPE COMPANY_ATTRIBUTE_VALUE_COLOR_VALUE COMPANY_ATTRIBUTE_VALUE_TEXT_VALUES COMPANY_ATTRIBUTE_VALUE_DATE_VALUE COMPANY_ATTRIBUTE_VALUE_DECIMAL_VALUE COMPANY_ATTRIBUTE_VALUE_INTEGER_VALUE COMPANY_ADDRESS_ID COMPANY_ADDRESS_FIRST_NAME COMPANY_ADDRESS_LAST_NAME COMPANY_ADDRESS_STREET COMPANY_ADDRESS_NUMBER COMPANY_ADDRESS_NUMBER_EXTENSION """Filter by company address postal code for precise location targeting""" COMPANY_ADDRESS_POSTAL_CODE """Filter by company address city for location-based searches""" COMPANY_ADDRESS_CITY COMPANY_ADDRESS_REGION """Filter by company address country for regional business searches""" COMPANY_ADDRESS_COUNTRY COMPANY_ADDRESS_PHONE COMPANY_ADDRESS_MOBILE COMPANY_ADDRESS_EMAIL COMPANY_ADDRESS_CODE COMPANY_ADDRESS_NOTES COMPANY_ADDRESS_NAME CONTACT_ID """Filter by contact first name for person-based company searches""" CONTACT_FIRST_NAME """Filter by contact last name for person-based company searches""" CONTACT_LAST_NAME CONTACT_PHONE CONTACT_MOBILE """Filter by contact email address for communication-based searches""" CONTACT_EMAIL CONTACT_IBAN CONTACT_BANK_ACCOUNT CONTACT_BIC CONTACT_NOTES CONTACT_DEBTOR_ID CONTACT_ATTRIBUTE_ID CONTACT_ATTRIBUTE_DESCRIPTION_ID CONTACT_ATTRIBUTE_DESCRIPTION_NAME CONTACT_ATTRIBUTE_DESCRIPTION_TYPE CONTACT_ATTRIBUTE_VALUE_ID CONTACT_ATTRIBUTE_VALUE_NAME CONTACT_ATTRIBUTE_VALUE_TYPE CONTACT_ATTRIBUTE_VALUE_COLOR_VALUE CONTACT_ATTRIBUTE_VALUE_TEXT_VALUES CONTACT_ATTRIBUTE_VALUE_DATE_VALUE CONTACT_ATTRIBUTE_VALUE_DECIMAL_VALUE CONTACT_ATTRIBUTE_VALUE_INTEGER_VALUE } input ComputedOrderlistsInput { """ Customer identifier to retrieve orderlists for. If provided, retrieves all orderlists assigned to this customer. Cannot be used in combination with companyId. """ customerId: Int """ Contact identifier to retrieve orderlists for. If provided, retrieves all orderlists assigned to this contact. Can be used in combination with companyId to also include company-level orderlists. """ contactId: Int """ Company identifier to retrieve orderlists for. If provided, retrieves all orderlists assigned to this company. Can be used in combination with contactId to include both contact and company orderlists. Cannot be used with customerId. """ companyId: Int } """ Computed orderlists result containing merged positive and negative product/cluster IDs. This output represents the result of merging all orderlists for a customer or contact/company. Positive orderlists are filtered to exclude any IDs that appear in negative orderlists. The computation process: - Retrieves all active orderlists for the specified customer/contact/company - Separates orderlists by type (POSITIVE/NEGATIVE) - Combines product IDs and cluster IDs from each type - Filters out negative IDs from positive lists (negative orderlists take precedence) """ type ComputedOrderlistsResponse { """ Merged product IDs from positive orderlists, excluding any IDs from negative orderlists. These are the products that should be included for ordering after applying negative orderlist exclusions. If a product ID appears in both positive and negative orderlists, it will be excluded from this array. """ positiveOrderlistsProductIds: [Int!]! """ Merged product IDs from negative orderlists. These are the products that should be excluded from ordering. All product IDs from negative orderlists are included in this array. """ negativeOrderListsProductIds: [Int!]! """ Merged cluster IDs from positive orderlists, excluding any IDs from negative orderlists. These are the clusters that should be included for ordering after applying negative orderlist exclusions. If a cluster ID appears in both positive and negative orderlists, it will be excluded from this array. """ positiveOrderListsClusterIds: [Int!]! """ Merged cluster IDs from negative orderlists. These are the clusters that should be excluded from ordering. All cluster IDs from negative orderlists are included in this array. """ negativeOrderListsClusterIds: [Int!]! """Count of positive orderlists that were merged.""" positiveOrderlistsCount: Int! """Count of negative orderlists that were merged.""" negativeOrderlistsCount: Int! } """ Response confirming the successful completion of an operation. Provides status information and descriptive messages for operations that modify surcharge data or associations. """ type ConfirmationResponse { """ Status indicator of the operation result. Typically returns "success" for completed operations or error status for failed operations. """ status: String! """ Descriptive message providing details about the operation result. Contains human-readable information about what was accomplished or any relevant details about the operation. """ message: String! } """ Contact entity representing individual contacts and business relationships. External entity from the contact service that provides contact identification and relationship information. Used as a reference for contact-specific attributes and relationship management within the attribute system. """ type Contact implements IBaseUser { """Contact unique identifier""" contactId: Int! """Lists attributes for this contacts based on the search input.""" attributes(input: AttributeResultSearchInput): AttributeResultResponse """ Retrieve all magic tokens associated with this contact. Returns a complete list of magic tokens that belong to this contact, including active, expired, and used tokens. Useful for authentication management and token usage tracking. """ magicTokens: [MagicToken!]! """ Collection of favorite lists associated with this contact. Returns paginated results of all favorite lists owned by this contact. Includes both default and non-default lists with their complete metadata and content. **Response Structure**: - Paginated list of personal favorite lists - Complete favorite list metadata - Associated products and clusters - Creation and modification timestamps **Filtering Capabilities**: - Search by list name - Filter by default status - Date range filtering - Content-based filtering **Use Cases**: - Personal shopping lists - Sales tool organization - Individual product preferences - Quick access to frequently used items """ favoriteLists(input: FavoriteListsBaseSearchInput): FavoriteListsResponse """ Order lists that are assigned to or accessible by this contact. Returns a paginated collection of order lists where this contact has been granted access. The contact will be able to see and order from these lists based on their permissions. Results can be filtered using the input parameter for more specific queries. """ orderlists( """ Search and filtering criteria for order lists assigned to this contact. Filters the results to show only order lists that are assigned to or accessible by this specific contact. All standard search criteria can be applied in addition to the contact-specific filtering. If not provided, returns all order lists accessible to this contact with default pagination settings. Validation: All provided search criteria must be valid according to their respective field requirements. """ input: OrderlistSearchInput ): OrderlistsResponse pricesheets: [Pricesheet!] """ Get effective pricesheets for this contact. Returns all pricesheets that apply to this contact, including directly assigned pricesheets, company pricesheets, and pricesheets linked via usergroups. Results are ordered by priority (highest first) and paginated. """ pricesheetsEffective( """ Optional input parameters for pagination and company selection. You can optionally specify companyId (defaults to contact's default company if omitted). """ input: PricesheetsEffectivePaginationInput ): PricesheetResponse! """The unique identifier of the user.""" userId: Int """Deprecated in favor of company debtorId""" debtorId: String @deprecated(reason: "Deprecated in favor of company debtorId") """Contact gender""" gender: Gender """Contact's first name for personal identification and communication""" firstName: String! """Contact's middle name or initial for complete personal identification""" middleName: String """ Contact's last name for personal identification and formal communication """ lastName: String! """Primary phone number for business communication and contact purposes""" phone: String """Mobile phone number for urgent communication and SMS notifications""" mobile: String """Primary email address for business communication and notifications""" email: String """Contact login""" login: String """Contact IBAN""" iban: String """Contact bank account number""" bankAccount: String """Contact BIC code""" bic: String """Contact notes""" notes: String """Contact primary language""" primaryLanguage: String """Contact expiration date""" expires: DateTime """External ID""" externalId: String """Contact date of birth""" dateOfBirth: DateTime """Whether the contact is subscribed to mailing list""" mailingList: YesNo """Whether the contact is currently logged in""" isLoggedIn: Boolean """Timestamp when the entity record was initially created in the system""" createdAt: DateTime """Timestamp of the most recent modification to the entity record""" lastModifiedAt: DateTime """ Universally unique identifier (UUID) providing global uniqueness across systems """ uuid: String """The primary company ID for the contact""" parentCompanyId: Int """Contact company""" company: Company """Managed companies""" managedCompanies: [Company!] """ External system sources that contributed to this entity's data for traceability and integration """ sources: [Source!] """ All companies associated with this contact through various business relationships """ companies( """Search criteria for filtering and paginating associated companies""" input: ContactCompaniesSearchInput ): CompaniesResponse """ Purchase authorization configurations that apply to this contact for spending limits and approval workflows """ purchaseAuthorizationConfigs( """Search criteria for filtering purchase authorization configurations""" input: ContactPurchaseAuthorizationConfigSearchInput ): PurchaseAuthorizationConfigResponse } type ContactActionsData { """Output message""" message: String! """Success status indicator""" success: Boolean! """ Unique internal identifier for the company used for system operations and data relationships """ companyId: Int! } type ContactActionsResponse { """Collection of output messages""" data: [ContactActionsData!]! """Additional messages""" messages: [String!]! } input ContactAddToCompaniesInput { """List of company unique identifiers""" companyIds: [Int!]! } type ContactAddToCompaniesResponse { """The contact object""" contact: Contact! """Collection of output messages""" actions: ContactActionsResponse! } """ Contact-specific attribute containing extended contact information and relationship data. Extends the base contact interface with attribute functionality. Used to store additional contact information such as extended contact details, relationship data, communication preferences, and professional information that enhances contact profiles. Perfect for contact relationship management, communication tracking, and building comprehensive contact profiles that support business relationship management and networking. """ type ContactAttribute implements Attribute { """ Unique identifier for this attribute instance. Auto-generated UUID that serves as the primary key for this specific attribute. Used to reference and manage individual attribute instances. """ id: String! """ The actual value data stored in this attribute. Contains the attribute value in the appropriate format based on the attribute description's type definition. The value structure varies depending on the attribute type (text, enum, color, etc.). """ value: AttributeValue! """ Timestamp when this attribute was originally created. Records the exact date and time when this attribute instance was first created in the system. Used for audit trails and data lifecycle management. """ createdAt: DateTime! """ Timestamp when this attribute was last modified. Records the most recent date and time when any changes were made to this attribute's value or configuration. Updated automatically on each modification. """ lastModifiedAt: DateTime! """ Identifier of the user who created this attribute. References the user account that originally created this attribute instance. May be 0 for system-generated attributes or when user information is not available. """ createdBy: Int """ Identifier of the user who last modified this attribute. References the user account that made the most recent changes to this attribute. May be 0 for system modifications or when user information is not available. """ lastModifiedBy: Int """ Retrieve the attribute description that defines this contact attribute's schema and behavior. Returns the complete attribute description containing metadata, type definitions, display configuration, and localization settings. This description serves as the template that defines how this contact attribute should behave and be presented. Essential for understanding attribute constraints, available operations, and presentation requirements for contact-specific attributes that extend contact information. """ attributeDescription: AttributeDescription """ Unique identifier of the contact that owns this attribute. References the specific contact in the contact directory that this attribute value is associated with. Used to establish the relationship between attributes and their parent contacts for relationship management and communication purposes. """ contactId: Int! } input ContactCompaniesSearchInput { page: Int = 1 offset: Int = 12 } input ContactCsvInput { """CSV file to upload""" file: Upload! """CSV field mappings for contacts""" mappings: [ContactCsvMapping!] } input ContactCsvMapping { """CSV column header name""" csvHeader: String! """Corresponding Propeller field name""" fieldName: ContactFieldName! } enum ContactFieldName { """[Optional][String] Contact unique identifier""" CONTACT_ID """ [Optional][String] Contact's first name for personal identification and communication """ FIRST_NAME """ [Optional][String] Contact's middle name or initial for complete personal identification """ MIDDLE_NAME """ [Optional][String] Contact's last name for personal identification and formal communication """ LAST_NAME """[Optional][String] A short abbreviation for the contact""" ABBREVIATION """ [Optional][String] The professional title or designation of the contact """ TITLE """ [Optional][DateTime] Contact date of birth, in ISO 8601 format 'YYYY-MM-DD' (e.g., 2024-10-31) """ DATE_OF_BIRTH """ [Optional][Enum] Contact gender, must be one of the following: [M, F, U] """ GENDER """[Optional][String] Contact social security number""" SSN """ [Optional][String] Primary phone number for business communication and contact purposes """ PHONE """ [Optional][String] Mobile phone number for urgent communication and SMS notifications """ MOBILE """ [Optional][String] Primary email address for business communication and notifications """ EMAIL """[Optional][String] Contact primary language""" PRIMARY_LANGUAGE """[Optional][String] Whether the contact is subscribed to mailing list""" MAILING_LIST """ [Optional][DateTime] Contact expiration date, in ISO 8601 format 'YYYY-MM-DD' (e.g., 2024-10-31) """ EXPIRES """ [Optional][String] External debtor system identifier for financial and billing integration """ DEBTOR_ID """[Optional][String] Contact login""" LOGIN """[Optional][String] Contact IBAN""" IBAN """[Optional][String] Contact bank account number""" BANK_ACCOUNT """[Optional][String] Contact BIC code""" BIC """[Optional][String] Contact notes""" NOTES """[Optional][String] Contact tax number""" TAX_NUMBER """[Optional][String] Contact chamber of commerce number""" COC_NUMBER """[Optional][String] Contact login root""" LOGIN_ROOT """[Optional][String] The primary company ID for the contact""" PRIMARY_COMPANY_ID """ [Optional][String] The id of the company the contact should be created in """ COMPANY_ID """[Optional][String] The parent company source id""" COMPANY_SOURCE_ID """[Optional][String] The name of the parent company source""" COMPANY_SOURCE_NAME """ [Optional][String] Contact source name, use either CONTACT_ID or a combination of SOURCE_NAME and SOURCE_ID """ SOURCE_NAME """ [Optional][String] Contact source id, use either CONTACT_ID or a combination of SOURCE_NAME and SOURCE_ID """ SOURCE_ID """ [Optional][String] The preferred language of the contact, only required when using combination of SOURCE_NAME and SOURCE_ID """ LANGUAGE } input ContactPurchaseAuthorizationConfigSearchInput { """List of purchase authorization config IDs""" ids: [String!] """List of unique company ids""" companyIds: [Int!] """Purchase roles of a contact""" purchaseRoles: [PurchaseRole!] """ The purchaser's authorization limit i.e. maximum amount that can be spent per order """ authorizationLimit: DecimalSearchInput """Search by date created""" createdAt: DateSearchInput """Search by date changed""" lastModifiedAt: DateSearchInput page: Int! = 1 offset: Int! = 12 } input ContactRemoveFromCompaniesInput { """List of company unique identifiers""" companyIds: [Int!]! } type ContactRemoveFromCompaniesResponse { """The contact object""" contact: Contact! """Collection of output messages""" actions: ContactActionsResponse! } """ Search criteria for finding contacts with advanced filtering, pagination, and sorting capabilities. Supports filtering by personal information, contact details, dates, and business relationships. **Validation Rules:** - Maximum 100 items per page for performance - Contact IDs must be unique within the array - Email addresses must be valid format - Date ranges must be in ISO 8601 format - Source searches require both source name and source ID """ input ContactSearchArguments { """ Array of internal contact IDs for direct lookup and bulk operations. Maximum 50 IDs per request for performance optimization. """ contactIds: [Int!] """ Contact's first name for personal identification and communication. Maximum length: 30 characters. """ firstName: String """ Contact's middle name or initial for complete personal identification. Maximum length: 20 characters. """ middleName: String """ Contact's last name for personal identification and formal communication. Maximum length: 50 characters. """ lastName: String """ Primary email address for business communication and notifications. Must be a valid email format. """ email: String """Contact gender""" gender: Gender """List of debtor IDs to search for""" debtorIds: [String!] """Page number for pagination (default: 1)""" page: Int! = 1 """Number of items per page (default: 12, max: 100)""" offset: Int! = 12 """ Array of sorting criteria for organizing search results by various attributes """ sort: [ContactSortInput!] """Date range filter for entities modified within a specific time period""" lastModifiedAt: DateSearchInput """Date range filter for entities created within a specific time period""" createdAt: DateSearchInput sources: [SourceSearchInput!] } """Contact sortable fields""" enum ContactSortableField { FIRST_NAME LAST_NAME LAST_MODIFIED_AT CREATED_AT } input ContactSortInput { """Available fields for sorting""" field: ContactSortableField! """Sort order (ASC or DESC, default: ASC)""" order: SortOrder! = ASC } type ContactsResponse { """List of items of type Contact""" items: [Contact!]! """Total number of items found""" itemsFound: Int! """The amount of items to show per page""" offset: Int! """The current page""" page: Int! """Total amount of pages""" pages: Int! """Start position of the current page""" start: Int! """End position of the current page""" end: Int! } type CostPrice { """ Unique identifier for the cost price record. Primary key used for cost price management and margin calculation operations. """ id: String! """ Reference to the associated price record. Foreign key linking this cost price to its base price for margin calculations and cost tracking. """ priceId: String! """ Timestamp when the cost price record was initially created. Used for audit trails and cost tracking history. """ createdAt: DateTime! """ Timestamp when the cost price record was last updated. Essential for tracking cost changes and margin analysis. """ lastModifiedAt: DateTime! """ Minimum quantity threshold for this cost price tier to apply. Minimum order quantity required for this cost price to be used in margin calculations and cost analysis. """ quantityFrom: Int! """ Cost value for this quantity tier. Unit cost that applies when the minimum quantity threshold is met for margin calculations and profitability analysis. """ value: Float! """ Date when this cost price becomes active and available for margin calculations. If not specified, the cost price is immediately effective. Used for scheduling cost price changes and managing time-based cost structures. """ validFrom: DateTime """ Date when this cost price expires and is no longer available for margin calculations. If not specified, the cost price remains active indefinitely. Used for temporary cost pricing and seasonal supplier rates. """ validTo: DateTime } """ Cost price creation data for establishing product cost structures and margin calculations. Contains essential information to create cost price records including price associations, cost values, and quantity thresholds. Used for inventory management and pricing optimization. """ input CostPriceCreateInput { """ Unique identifier of the associated price record. Must reference an existing price in the system. Cost prices are linked to base prices to enable margin calculations and cost analysis. """ priceId: String! """ Cost value for the specified quantity threshold. Decimal value representing the cost price with up to 5 decimal places precision. Used for margin calculations and cost analysis. """ value: Float! """ Minimum quantity threshold for this cost price tier. Positive integer representing the minimum quantity required for this cost price to apply. Used for quantity-based cost calculations. """ quantityFrom: Int! = 1 """ Date when this cost price becomes active. If omitted, the cost price is immediately effective. """ validFrom: String """ Date when this cost price expires. If omitted, the cost price remains active indefinitely. """ validTo: String } type CostPriceResponse { """List of items of type CostPrice""" items: [CostPrice!]! """Total number of items found""" itemsFound: Int! """The amount of items to show per page""" offset: Int! """The current page""" page: Int! """Total amount of pages""" pages: Int! """Start position of the current page""" start: Int! """End position of the current page""" end: Int! } """ Search criteria for filtering and retrieving cost price records. Provides comprehensive filtering options including pagination, date ranges, price associations, quantity thresholds, cost values, and sorting. Used for cost price management and margin analysis operations. """ input CostPriceSearchInput { """ Page number for result pagination. Specifies which page of results to retrieve. Used with offset to control result set size and navigation through large datasets. """ page: Int = 1 """ Number of records per page for pagination. Controls how many cost price records are returned in each page. Used for managing result set size and performance optimization. """ offset: Int = 12 """ Filter cost prices by creation date range. Allows filtering based on when cost price records were initially created in the system. Useful for audit trails and historical cost analysis. """ createdAt: DateSearchInput """ Filter cost prices by last modification date range. Allows filtering based on when cost price records were last updated. Essential for tracking recent cost changes and synchronization operations. """ lastModifiedAt: DateSearchInput """Search by bulk price ids""" ids: [String!] """Search by price ids""" priceIds: [String!] """Search by quantity from""" quantityFrom: NumberSearchInput """Search by values""" value: DecimalSearchInput """Search by valid from""" validFrom: DateSearchInput """Search by valid to""" validTo: DateSearchInput """The sorting criteria for the result set.""" sortInputs: [CostPriceSortInput!] } """Available fields for sorting cost price search results""" enum CostPriceSortField { """Sort by cost price record ID""" ID """Sort by minimum quantity threshold numerically""" QUANTITY_FROM """Sort by cost price value numerically""" VALUE """Sort by cost price start date""" VALID_FROM """Sort by cost price end date""" VALID_TO """Sort by the date when the cost price was last modified""" LAST_MODIFIED_AT """Sort by the date when the cost price was created""" CREATED_AT } input CostPriceSortInput { """Field to sort by""" field: CostPriceSortField! """Order option to sort by. [Default to `ASC`]""" order: SortOrder! } """ Cost price update data for modifying existing cost price configurations. Contains optional fields for updating cost price records. Only provided fields will be updated, others remain unchanged. Used for maintaining cost pricing structures and margin calculations. """ input CostPriceUpdateInput { """ Cost value for the specified quantity threshold. Decimal value representing the cost price with up to 5 decimal places precision. Used for margin calculations and cost analysis. """ value: Float """ Date when this cost price becomes active. If omitted, the cost price is immediately effective. """ validFrom: String """ Date when this cost price expires. If omitted, the cost price remains active indefinitely. """ validTo: String """ Updated minimum quantity threshold for this cost price tier. Positive integer representing the minimum quantity required for this cost price to apply. Used for quantity-based cost calculations. """ quantityFrom: Int } input CreateAccountInput { """Password for creating new account""" password: String } """ Initial authorization claims and permissions for new user accounts. Defines the user's starting permissions, roles, and organizational associations that will be embedded in their authentication tokens and used for access control. """ input CreateAuthenticationClaimsInput { """ Unique identifier for the user within the system. This ID will be used to associate the user with their data and permissions across all system operations. """ userId: Int! """ User classification type for permission and access control. Determines the user's category within the system (e.g., 'contact', 'customer', 'admin') which affects their available permissions and accessible resources. """ class: String! """ Primary company identifier for the user's organizational association. Represents the user's main company affiliation and will be used as the default company context when no specific company is provided in operations. """ companyId: Int """ Complete list of company identifiers the user has access to. Includes all companies the user is associated with, enabling multi-company access and operations across different organizational contexts. """ companyIds: [Int!] """ Initial role assignments for the user account. Defines the user's starting permissions and access levels within the system. Roles determine what operations the user can perform and what data they can access. """ roles: [String!] = [] } """ User account creation parameters for new user registration. Contains all necessary information to create a new user account including credentials, profile information, and initial authorization claims. """ input CreateAuthenticationInput { """ User's email address for account identification and communication. Must be a valid email format and will serve as the primary identifier for the user account. This email will be used for login and account recovery. """ email: String! """ User's password for account security. Must be at least 6 characters long. If not provided, the user will need to set a password through the password initialization process. """ password: String """ User's phone number for contact and verification purposes. Should be provided in international format for optimal compatibility with verification systems. """ phoneNumber: String """ User's display name for profile presentation. This name will be shown in user interfaces and can be different from the user's legal name. Used for personalization and user experience. """ displayName: String """ External system identifier for user account linking. Used to associate this user account with accounts in external systems or to maintain consistency during migrations. """ uid: String """ Initial authorization claims and permissions for the new user. Defines the user's initial roles, permissions, and access rights within the system. If not provided, default user permissions will be applied. """ claims: CreateAuthenticationClaimsInput } """ Definition of the category to create. Contains the localized content, optional parent reference, SEO metadata and visibility flag needed to place a new category in the catalogue tree. Either `name` or `names` must be supplied; the catalogue's default language must be among the supplied languages. """ input CreateCategoryInput { """ Localized names shown to end users in catalog and navigation surfaces. The catalogue's default language must be present. """ names: [LocalizedStringInput!] """Localized long-form descriptions shown on category landing surfaces.""" descriptions: [LocalizedStringInput!] """Localized short descriptions surfaced in listings and tiles.""" shortDescriptions: [LocalizedStringInput!] """ URL-friendly identifiers, one per language, used in human-readable links. """ slugs: [LocalizedStringInput!] """ Legacy numeric identifier of the parent category; superseded by the structured parent reference. """ parent: Int """ Globally unique identifier of the parent category. Omitted for root categories. """ parentUuid: ID """ Hides the category from public catalog and navigation surfaces when set. """ hidden: YesNo! = N """Localized titles surfaced in search engine result pages.""" metadataTitles: [LocalizedStringInput!] """Localized descriptive snippets surfaced in search engine result pages.""" metadataDescriptions: [LocalizedStringInput!] """ Localized keyword lists used by search engines, supplied as comma-separated values. """ metadataKeywords: [LocalizedStringInput!] """ Localized canonical URLs that search engines should treat as the authoritative location. """ metadataCanonicalUrls: [LocalizedStringInput!] """ Generates missing slugs from the localized names when set; existing slugs are preserved. When enabled, slugs are regenerated from the localized names for any language whose slug is not explicitly supplied. """ autoGenerateSlugs: Boolean = true """ Pairs of external system names and the identifiers each system assigned to the record. """ sources: [SourceInput!] } """Company creation data with validation and business rules""" input CreateCompanyInput { """ Official company name for business identification, legal purposes, and customer communication """ name: String """ Company tax identification number for legal compliance, billing, and financial reporting """ taxNumber: String """ Chamber of Commerce registration number for business verification and legal compliance """ cocNumber: String """ External debtor system identifier for financial integration, billing, and payment processing """ debtorId: String """ Primary business email address for company communication and notifications """ email: String """ Primary business phone number for company communication and contact purposes """ phone: String """ Additional notes and comments about the company for internal reference and business operations """ notes: String """ Custom attributes and metadata for extended company information and categorization """ attributes: [AttributeBulkCreateInput!] """Physical addresses associated with the company for business operations""" addresses: [AddressBulkItemInput!] sources: [SourceInput!] } input CreateContactInput { """Contact's first name for personal identification and communication""" firstName: String """Contact's middle name or initial for complete personal identification""" middleName: String """ Contact's last name for personal identification and formal communication """ lastName: String """Contact gender""" gender: Gender """Primary email address for business communication and notifications""" email: String """Contact homepage""" homepage: String """Primary phone number for business communication and contact purposes""" phone: String """Mobile phone number for urgent communication and SMS notifications""" mobile: String """Contact date of birth""" dateOfBirth: String """Whether the contact is subscribed to mailing list""" mailingList: YesNo """Contact primary language""" primaryLanguage: String """Deprecated in favor of company debtorId""" debtorId: String """Attributes for bulk operations""" attributes: [AttributeBulkCreateInput!] """ Company that this contact belongs to. Required for establishing organizational relationships """ parentId: Int! sources: [SourceInput!] } input CreateInventoryInput { """ Classification of inventory storage and management type. Determines how the inventory is managed, whether it's held locally in company warehouses or managed by external suppliers for drop-shipping. """ type: InventoryType! """ Product identifier linked to this inventory. References the specific product in the catalog that this inventory record tracks, enabling product-inventory relationships. """ productId: Int! """ Current stock level available for this inventory record. The number of units physically available at this location, used for availability calculations and stock level monitoring. """ quantity: Int! """ Specific storage location within the warehouse. Detailed location information such as aisle, shelf, or bin number for precise inventory placement and efficient picking operations. Maximum 35 characters. """ location: String """ Warehouse facility identifier. References the specific warehouse or storage facility where this inventory is physically located for fulfillment operations. """ warehouseId: Int """ Company identifier for inventory ownership. References the company that owns or manages this inventory, used for multi-tenant inventory management and reporting. """ companyId: Int """ Additional information and handling instructions. Free-form text for storing special handling requirements, quality notes, or other relevant information about this inventory batch. Maximum 255 characters. """ notes: String """ Expected replenishment delivery date. Estimated date when the next shipment of this product will arrive, used for stock planning and customer availability communication. Must be in ISO8601 format. """ nextDeliveryDate: String """ Unit cost for this inventory batch. The cost incurred to acquire each unit in this inventory record, used for margin calculations, inventory valuation, and profitability analysis. """ costPrice: Float = 0 """ Supplier name for this inventory batch. The company or organization that supplied the products. Defaults: - 'INTERN' for locally managed inventory - Product supplier name for supplier-managed inventory """ supplier: String } """Input data for creating a new order status in the workflow system""" input CreateOrderStatusInput { """ Human-readable name for the order status. Used for display purposes in user interfaces and reports. Should be descriptive and meaningful for business users. Maximum length is 64 characters. """ name: String! """ Unique code identifier for the order status. Must be uppercase and contain only letters, numbers, hyphens, and underscores. Used for system integration and API references. Maximum length is 32 characters and must match pattern: ^[A-Z0-9_-]+$ """ code: String! """ Classification of order status origin and management level. SYSTEM types are built-in platform statuses that cannot be modified, while CUSTOM types are user-defined statuses for specific business workflows. Defaults to CUSTOM. """ type: String! = "CUSTOM" """ Type of orders this status applies to. Determines which business processes can use this status: quotations for price quotes, orders for confirmed purchases, or requests for special inquiries. Defaults to ORDER. """ orderType: String! = "ORDER" """ Detailed description of the order status purpose and usage. Provides additional context about when and how this status should be used in the order workflow. Maximum length is 255 characters. """ description: String """ Priority value for workflow ordering and sequence. Lower numbers indicate higher priority. Used to determine the order of statuses in workflow displays and processing sequences. Defaults to 0. """ priority: Int = 0 """ Designates this status as the default for new orders. Default statuses are automatically assigned to new orders when no specific status is provided during creation. Defaults to false. """ isDefault: Boolean = false """ Controls visibility of orders with this status to external systems and users. """ isPublic: Boolean = false """ Determines whether orders with this status can be modified after creation. Orders with editable statuses allow updates to their properties, while non-editable statuses are locked to prevent accidental changes to critical workflow states. Defaults to false. """ isEditable: Boolean = false """ Controls whether orders with this status can be permanently removed from the system. Orders with deletable statuses can be removed when no longer needed, while non-deletable statuses are protected from deletion to maintain workflow integrity. Defaults to false. """ isDeletable: Boolean = false """ List of order status IDs that can follow this status in the workflow. Defines the possible workflow transitions from this status to other statuses, enabling controlled order progression through the business process. Each ID must represent a valid order status. """ nextStatusesIds: [Int!] """ The order status set to associate this status with during creation. Allows immediate assignment of the new status to an existing status set for workflow organization. The status set must exist and be accessible. """ addOrderStatusToSet: OrderStatusSetSearchByInput } """ Input data for creating a new order status set for workflow organization """ input CreateOrderStatusSetInput { """ Human-readable name for the order status set. Used for display purposes in user interfaces and workflow management. Should be descriptive and meaningful for business users organizing their order workflows. Maximum length is 64 characters. """ name: String! """ Detailed description of the order status set purpose and usage. Provides additional context about the workflow this set represents and when it should be used for order management. Maximum length is 255 characters. """ description: String """ List of order status IDs to include in this set during creation. Allows immediate population of the status set with existing order statuses for complete workflow setup. Each ID must represent a valid order status in the system. """ orderStatusIds: [Int!] } input CreateOrUpdateOrderItemInput { """OrderItem update payload""" update: OrderItemUpdateInput """OrderItem create payload""" create: OrderItemCreateInput """OrderItem delete payload""" delete: OrderItemDeleteInput } """ Payment creation data including transaction details and payment method information. Contains all necessary information to create a payment record including amounts, payment method, and optional transaction data. All monetary amounts must be expressed in the smallest currency unit (cents) for precision. """ input CreatePaymentInput { """ Authenticated user identifier for payment attribution and history tracking. Links the payment to a specific authenticated user for user-specific payment history and account management. Must be a positive integer when provided. """ userId: Int """ Anonymous user session identifier for guest checkout payments. References the guest user session for payments made without authentication. Used for guest checkout tracking and order management. Must be a positive integer when provided. """ anonymousId: Int """ External payment identifier provided by the payment service provider for tracking. Unique payment reference provided by the Payment Service Provider (PSP) for tracking and reconciliation. Used for payment status updates and transaction matching. Maximum length of 255 characters. """ paymentId: String """ Order identifier that this payment is intended to fulfill. References the specific order that this payment is intended to fulfill. Used for order-payment relationship tracking and fulfillment processing. Must be a positive integer. """ orderId: Int! """ Payment amount in smallest currency unit (cents) for precise financial calculations. The total amount to be paid expressed in the smallest denomination of the currency (e.g., cents for USD, pence for GBP). Must be a positive integer for precise financial calculations. """ amount: Int! """ ISO 4217 three-letter currency code for international financial transactions. Three-letter currency code (e.g., USD, EUR, GBP) following ISO 4217 standard. Used for currency conversion and financial reporting. Must be exactly 3 uppercase letters. """ currency: String! """ Payment method code used by the payment service provider for transaction processing. Specific payment method code used by the Payment Service Provider for processing this transaction (e.g., 'credit_card', 'paypal', 'bank_transfer'). Maximum length of 100 characters. """ method: String! """ Initial payment processing status for the new payment record. Sets the starting status for the payment lifecycle. Determines the initial state and available actions for the payment processing workflow. """ status: PaymentStatuses! """ Optional transaction to create alongside the payment for immediate processing. When provided, creates an associated transaction record with the payment for immediate processing and tracking. Enables atomic creation of payment and initial transaction in a single operation. """ addTransaction: CreateTransactionInput } """Input for creating a new product""" input CreateProductInput { """ Localized names shown to end users in catalog and search surfaces. The catalogue's default language must be present. """ names: [LocalizedStringInput!] """Localized long-form descriptions shown on product detail surfaces.""" descriptions: [LocalizedStringInput!] """Localized short descriptions surfaced in listings and tiles.""" shortDescriptions: [LocalizedStringInput!] """ Localized keywords used by search ranking. Supplied as comma-separated lists per language. """ keywords: [LocalizedStringInput!] """ Localized custom keywords appended to the search index in addition to the standard keywords. """ customKeywords: [LocalizedStringInput!] """Localized descriptions of the product packaging.""" packageDescriptions: [LocalizedStringInput!] """ URL-friendly identifiers, one per language, used in human-readable links. """ slugs: [LocalizedStringInput!] """Internal localized notes that are not exposed to end users.""" notes: [LocalizedStringInput!] """Localized titles surfaced in search engine result pages.""" metadataTitles: [LocalizedStringInput!] """Localized descriptive snippets surfaced in search engine result pages.""" metadataDescriptions: [LocalizedStringInput!] """ Localized keyword lists used by search engines, supplied as comma-separated values. """ metadataKeywords: [LocalizedStringInput!] """ Localized canonical URLs that search engines should treat as the authoritative location. """ metadataCanonicalUrls: [LocalizedStringInput!] """ Stock keeping unit. Uniquely identifies a product within the catalogue. """ sku: String """ Identifier of the category exposed as the default for federation purposes.. Ignored when used with clusterProductCreate (cluster products cannot have categories). """ categoryId: Int """Localized short labels shown when the full name is too long.""" shortNames: [LocalizedStringInput!] """Hides the record from public catalog and search surfaces when set.""" hidden: YesNo! = N """ Relative ranking used when ordering records; higher values surface first. """ priority: Int """Code assigned to the product by its manufacturer.""" manufacturerCode: String """European Article Number barcode value.""" eanCode: String """Code assigned to the product by its supplier.""" supplierCode: String """ General-purpose barcode value for warehouse and point-of-sale scanning. """ barCode: String """Lifecycle status of the product within the catalogue.""" status: ProductStatus """Name of the manufacturer that produced the product.""" manufacturer: String """Name of the supplier that delivers the product.""" supplier: String """Indicates whether the product can currently be added to an order.""" orderable: YesNo = Y """Smallest quantity a customer may add to a single order line.""" minimumQuantity: Int = 1 """Unit of measurement used when ordering and pricing the product.""" unit: Int = 1 """Identifier of the cluster the product is assigned to, if any.""" clusterId: Int """Free-text status note that complements the structured status field.""" statusExtra: String """ Indicates whether the product can be returned by the customer after purchase. """ returnable: YesNo = Y """ Distinguishes physical goods from digital ones for shipping and tax handling. """ physical: YesNo = Y """Width of the product expressed in the catalogue's base length unit.""" width: Float """Height of the product expressed in the catalogue's base length unit.""" height: Float """Depth of the product expressed in the catalogue's base length unit.""" depth: Float """Weight of the product expressed in the catalogue's base weight unit.""" weight: Float """Type of packaging used to ship the product.""" package: String """Unit of measurement for the contents of a single package.""" packageUnit: String """Quantity of the package unit contained in a single package.""" packageUnitQuantity: String = "1" """Unit used by buyers when placing purchase orders.""" purchaseUnit: Int """Smallest quantity that can be placed on a purchase order.""" purchaseMinimumQuantity: Int """ Quantity that minimises ordering and holding costs for purchase orders. """ economicOrderQuantity: Int = 1 """Classification used for turnover analysis and financial reporting.""" turnoverGroup: String """ Taxonomy code used to slot the product into external classification systems. """ taxonomy: String """Group used to apply shared pricing rules and discounts to the product.""" priceGroup: String """Earliest moment from which the product may be ordered.""" orderableFrom: String """Latest moment until which the product may be ordered.""" orderableTo: String """Date on which the product is released to the market.""" releaseDate: String """ Whether to auto-generate slugs from names. When true (default), slugs are always generated for languages with names unless explicitly provided. When false, slugs are only generated for languages without existing slugs. """ autoGenerateSlugs: Boolean = true """ Pairs of external system names and the identifiers each system assigned to the record. """ sources: [SourceInput!] } """ Input for creating a new spare part. Defines the required information to register a new spare part in the system including identification, localized names, and inventory data. """ input CreateSparePartInput { """ Localized names for the spare part. Collection of translated names in multiple languages. Each entry must have unique language codes within the array. """ name: [LocalizedStringInput!] """ Initial quantity of the spare part. Must be a positive integer representing the number of units available in inventory. """ quantity: Int! """ Stock Keeping Unit identifier. Unique product code for inventory tracking and ordering. Cannot be empty and must be unique within the system. """ sku: String! } """ Input for creating a new spare parts machine. Defines all required information to register a new machine in the system including external references, localized content, hierarchical relationships, and associated spare parts. """ input CreateSparePartsMachineInput { """ External system reference for the machine. Links this machine to its counterpart in external systems for data synchronization and cross-platform integration. """ externalReference: ExternalReferenceInput! """ Localized names for the machine. Collection of translated machine names in multiple languages. Each entry must have unique language codes within the array. """ name: [LocalizedStringInput!]! """ Detailed descriptions of the machine. Comprehensive information about the machine's purpose, specifications, and usage in multiple languages. Each entry must have unique language codes within the array. """ description: [LocalizedStringInput!] """ Child machines nested within this machine. Hierarchical collection of sub-machines that belong to this parent machine, enabling complex equipment structures and organizational relationships. Each entry must be unique within the array. """ machines: [CreateSparePartsMachineInput!] """ Spare parts associated with this machine. Collection of replacement components and parts that are compatible with or required for this machine's operation and maintenance. Each entry must be unique within the array. """ parts: [CreateSparePartInput!] """ URL-friendly identifiers for the machine. Human-readable URL segments used for SEO-friendly navigation and localized machine pages. Must be unique per language and globally unique within the system. Each entry must have unique language codes within the array. """ slug: [LocalizedStringInput!] } """ Input data for creating a new surcharge in the pricing system. Contains all necessary information to establish a surcharge with calculation rules, localized content, and configuration settings. All validation constraints must be satisfied for successful creation. """ input CreateSurchargeInput { """ Localized names for the surcharge in different languages. Must contain at least one language entry. Each entry requires a valid 2-character language code and corresponding name value. Used for display purposes across different locales. """ name: [LocalizedStringInput!]! """ Detailed descriptions of the surcharge in different languages. Provides additional context about the surcharge purpose and application. Each entry requires a valid 2-character language code and corresponding description value. Used for detailed information display. """ description: [LocalizedStringInput!] """ Classification of surcharge calculation method. Determines how the surcharge value is applied to pricing calculations. Must be either flat fee for fixed amounts or percentage for proportional charges. """ type: SurchargeType! """ Numeric value for surcharge calculation. For flat fees: amount in currency units. For percentages: percentage value (e.g., 15.5 for 15.5%). Must be a positive number. """ value: Float! """ Tax classification code that determines applicable tax rates and regulations. Specifies the tax treatment for the surcharge. Must be one of the defined tax codes (H for high rate, L for low rate, N for no tax). """ taxCode: TaxCode """ Tax classification code that determines applicable tax rates and regulations. Specifies the tax treatment for the surcharge. Must be one of the defined tax codes (H for high rate, L for low rate, N for no tax). """ taxCodeValue: Taxcode """ Geographic tax zone identifier for regional tax calculations. Must be exactly 2 characters representing the tax jurisdiction. Used to determine applicable tax rates and compliance requirements. """ taxZone: String! """ Activation status of the surcharge. When true, the surcharge is active and will be applied to pricing calculations. When false, it is disabled and will not affect pricing. """ enabled: Boolean! """ Start date and time for surcharge validity period. Surcharge will only be applied to orders after this timestamp. If not provided, surcharge is immediately active. Must be a valid ISO 8601 date string. """ validFrom: String """ End date and time for surcharge validity period. Surcharge will not be applied to orders after this timestamp. If not provided, surcharge remains active indefinitely. Must be a valid ISO 8601 date string. """ validTo: String """ [DEPRECATED] Shop identifier for surcharge application scope. If not provided, the default shop will be inferred from the channel context. Must be a positive integer representing a valid shop identifier. """ shopId: Int } input CreateTenantDto { """ Human-readable display name for the organization. This name appears in administrative interfaces and user-facing elements. Should be descriptive and professional as it represents the organization identity. Maximum length of 64 characters. """ name: String! """ Unique identifier used throughout the system for this organization. This identifier is used in URLs, API calls, and internal references. Must be unique across all organizations and follow naming conventions (lowercase, hyphens allowed). Maximum length of 32 characters. """ tenant: String! """ Designates whether this organization should be set as the default. The default organization is used for system-wide operations and as a fallback when no specific organization is specified. Only one organization can be default at a time. """ default: Boolean! """ Email address of the administrative user to associate with this organization. This user will be granted administrative privileges for the new organization and will be responsible for initial configuration and user management. """ email: String! } """ Transaction creation data including operation type, amount, and processing details. Contains all necessary information to create a transaction record including transaction type, amounts, currency, and processing status. All monetary amounts must be expressed in the smallest currency unit (cents) for precision. """ input CreateTransactionInput { """ External transaction identifier provided by the payment service provider for tracking. Unique transaction reference provided by the Payment Service Provider (PSP) for tracking and reconciliation. Used for transaction status updates and matching with external systems. Maximum length of 255 characters. """ transactionId: String! """ External payment identifier provided by the payment service provider for correlation. External payment identifier provided by the Payment Service Provider for correlation with parent payment. Used to link transactions to their originating payments in external systems. Maximum length of 255 characters. """ paymentId: String """ Transaction amount in smallest currency unit (cents) for precise financial calculations. The transaction amount expressed in the smallest denomination of the currency (e.g., cents for USD, pence for GBP). Must be a positive integer for precise financial calculations. """ amount: Int! """ ISO 4217 three-letter currency code for international financial transactions. Three-letter currency code (e.g., USD, EUR, GBP) following ISO 4217 standard. Used for currency conversion and financial reporting. Must be exactly 3 uppercase letters. """ currency: String! """ Human-readable description of the transaction purpose or details. Optional descriptive text explaining the transaction purpose or providing additional context for record keeping and audit trails. Maximum length of 500 characters. """ description: String """ Timestamp when the transaction was processed by the payment service provider. ISO 8601 formatted timestamp indicating when the transaction was processed by the external payment service provider. Used for transaction sequencing and audit trails. """ timestamp: DateTime """ Type of transaction operation to be performed. Specifies the specific payment operation to execute (authorization, capture, refund, etc.). Each type has distinct business logic and financial implications for the payment workflow. """ type: TransactionTypes! """ Name of the payment service provider processing the transaction. Identifies the external payment service provider handling the transaction processing. Used for provider-specific logic and reporting. Maximum length of 100 characters. """ provider: String """ Initial processing status for the new transaction. Sets the starting status for the transaction processing workflow. Determines the initial state and available actions for the transaction lifecycle management. """ status: TransactionStatuses! } input CreateUserDto { """ First name of the administrative user. Used for personalization and identification in administrative interfaces. Maximum length of 30 characters. """ firstName: String """ Middle name or initial of the administrative user. Optional field for complete name representation in formal communications. Maximum length of 20 characters. """ middleName: String """ Last name (surname) of the administrative user. Used for formal identification and sorting in administrative listings. Maximum length of 50 characters. """ lastName: String """ Gender identity of the administrative user. Used for personalization and demographic reporting where applicable. Supports standard gender classifications with unknown as default for privacy. """ gender: Gender """ Preferred language for user interface and communications. Two-letter ISO 639-1 language code that determines the language for system notifications and interface elements. Maximum length of 2 characters. """ language: String = "NL" """ Contact phone number for the administrative user. Primary phone number for urgent communications and two-factor authentication. Should follow international format with country code. Maximum length of 30 characters. """ phone: String """ Job title or role description of the administrative user. Professional title that helps identify the user's responsibilities and authority level within the organization. Maximum length of 30 characters. """ job: String """ Primary email address for the administrative user account. This email will be used for authentication, notifications, and system communications. Must be unique across all administrative users in the system. """ email: String! } """ Input for creating a new warehouse address. Contains comprehensive address and contact information needed to establish a warehouse location. Includes physical address details, contact information, and operational settings for the warehouse facility. """ input CreateWarehouseAddressInput { """ First name of the primary contact person. Given name of the main contact person for this warehouse address, used for deliveries and communication. Maximum 30 characters. """ firstName: String """ Middle name of the primary contact person. Middle name or initial of the main contact person for this warehouse address. Maximum 20 characters. """ middleName: String """ Last name of the primary contact person. Family name of the main contact person for this warehouse address, used for deliveries and official communication. Maximum 50 characters. """ lastName: String """ Gender of the primary contact person. Gender designation for the main contact person, used for appropriate communication and addressing. """ gender: Gender """ Company name associated with the warehouse address. Business name or organization associated with this warehouse location, used for official correspondence and shipping documentation. Maximum 100 characters. """ company: String """ Street name and address line. Primary street address including street name and any additional address line information for the warehouse location. Maximum 150 characters. """ street: String! """ Street number or building number. Numeric or alphanumeric identifier for the specific building or location on the street. Length must be between 1 and 10 characters. """ number: String """ Street number extension or unit identifier. Additional identifier such as apartment number, suite, or unit designation. Maximum 15 characters. """ numberExtension: String """ Postal code for the warehouse location. ZIP code, postal code, or equivalent regional identifier used for mail delivery and location identification. Maximum 10 characters. """ postalCode: String! """ City name for the warehouse location. Name of the city where the warehouse is located, used for shipping, logistics planning, and location identification. Maximum 100 characters. """ city: String! """ State or region code for the warehouse location. Two-letter state, province, or region code where the warehouse is located. Used for regional logistics and tax calculations. Maximum 2 characters. """ region: String """ Country code for the warehouse location. Two-letter ISO country code where the warehouse is located. Used for international shipping, customs, and regulatory compliance. Maximum 2 characters. """ country: String! """ Primary phone number for the warehouse location. Fixed-line telephone number for warehouse contact and communication. Used for logistics coordination and customer inquiries. Length must be between 6 and 30 characters. """ phone: String """ Fax number for the warehouse location. Fax number for document transmission and official communications. Used for shipping documents and formal correspondence. Length must be between 6 and 30 characters. """ fax: String """ Mobile phone number for the warehouse location. Mobile telephone number for urgent communications and on-the-go contact. Used for logistics coordination and emergency situations. Length must be between 6 and 30 characters. """ mobile: String """ Email address for the warehouse location. Primary email contact for warehouse communications, shipping notifications, and operational correspondence. Must be a valid email format. """ email: String """ Internal reference code for the warehouse address. Custom identifier or reference code used for internal tracking and organization of warehouse addresses. Maximum 64 characters. """ code: String """ Special delivery instructions and notes. Additional information for delivery personnel including access instructions, special handling requirements, or location-specific details. Maximum 255 characters. """ notes: String """ Friendly display name for the warehouse address. Human-readable name used to identify this address in user interfaces and reports. Helps distinguish between multiple addresses for the same warehouse. Maximum 150 characters. """ name: String """ Company website URL associated with the warehouse. Official website or domain URL for the company operating at this warehouse location. Must be a valid URL format. Maximum 150 characters. """ url: String """ Intra-Community Purchase (ICP) tax designation. Determines whether tax should be applied when this address is used as a delivery destination for business-to-business orders across borders. Used for international tax compliance. """ icp: YesNo } """ Input for creating a new warehouse facility. Contains all necessary information to establish a new warehouse including identification, operational settings, business hours, and optional address information. Used for setting up new warehouse locations for inventory management and logistics operations. """ input CreateWarehouseInput { """ Unique name for the warehouse facility. Identifier used to distinguish this warehouse from others in the system. Cannot contain spaces and must be unique. Maximum 64 characters. """ name: String! """ Detailed description of the warehouse facility. Comprehensive description providing context about the warehouse's purpose, capabilities, or special characteristics. Maximum 255 characters. """ description: String! """ Internal notes and operational information. Free-form text for storing internal notes, special instructions, or operational details about the warehouse. Not visible to external users. Maximum 255 characters. """ notes: String! """ Operational status of the warehouse. Indicates whether the warehouse is currently active and available for operations. Inactive warehouses are excluded from inventory allocation and order fulfillment. """ isActive: Boolean! """ Store designation for customer-facing operations. Indicates whether this warehouse also functions as a retail store location, enabling customer visits, in-store pickup, and retail operations. """ isStore: Boolean! """ Customer pickup location availability. Indicates whether customers can collect their orders from this warehouse location, enabling click-and-collect and pickup services. """ isPickupLocation: Boolean! """ Operating hours for each day of the week. Defines when the warehouse is operational for receiving, processing, and shipping orders. Must include exactly 7 entries (one for each day of the week from Sunday=0 to Saturday=6). Used for scheduling operations and customer communication about availability. """ businessHours: [BusinessHoursInput!]! """ Address information for the warehouse location. Optional address details including street address, city, postal code, country, and contact information for the warehouse facility. """ createWarehouseAddress: CreateWarehouseAddressInput } """ Removes pixels from an image. When specifying a crop parameter, the value starts with the desired width and height, either as measurements of pixels, separated with a comma, or as a ratio, separated with a colon (for example, crop=4:3 or crop=640,480 or crop=0.8,0.4). The remaining parameters determine the position of the cropped region. On each dimension, placement can be made either with a position coordinate (x or y, which are relative to the top left of the uncropped image) or as a percentage offset from the center of the image using offset-x and offset-y. These can be mixed and matched, but only one method can be used for each dimension (i.e., x can be combined with offset-y but x cannot be combined with offset-x). Offset positioning acts to distribute the remaining space according to the specified offset proportions. If an image is 2000 pixels wide and is being cropped to 1000 pixels wide, offset-x10 would crop 10% (100 pixels) from the left of the image and 90% (900 pixels) from the right. An offset of 50 centers the crop in the middle of the image. Appending ,smart to the parameter value enables content-aware algorithms to attempt to crop the image to the desired aspect ratio while intelligently focusing on the most important visual content, including the detection of faces. If the specified cropped region is outside the bounds of the image, the transformation will fail with the error "Invalid transformation for requested image: Invalid crop, region out of bounds". Append ,safe to the parameter value to override this. In safe mode, the image gets delivered as an intersection of the origin image and the specified cropped region. This avoids the error, but the resulting image may not be of the specified dimensions. """ input CropInput { """Width as Pixel or Percentage""" width: Int """Height as Pixels or Percentage""" height: Int """WidthRatio as Number""" widthRatio: Int """HeightRatio as Number""" heightRatio: Int """X coordinate as Pixels or Percentage""" x: Int """Y coordinate as Pixels or Percentage""" y: Int """X coordinate offset as Percentage""" offsetX: Int """Y coordinate offset as Percentage""" offsetY: Int """smart""" smart: String = "smart" """safe""" safe: String = "safe" } """ Cross-upsell relationship supporting mixed product/cluster relationships """ type Crossupsell { """Globally unique identifier for the cross- or up-sell relationship.""" id: String! """ Category of the relationship, such as cross-sell, up-sell, related, or bundle. """ type: CrossupsellType! """Sub-classification refining the relationship within its category.""" subType: String """ Identifier of the source record (product or cluster) the relationship originates from. """ baseProductUuidFrom: ID! """ Identifier of the target record (product or cluster) the relationship points to. """ baseProductUuidTo: ID! """Source record (product or cluster) the relationship originates from.""" baseProductFrom(hidden: Boolean): IBaseProduct """Target record (product or cluster) the relationship points to.""" baseProductTo(hidden: Boolean): IBaseProduct """Timestamp marking when the record was created, in UTC ISO 8601 format.""" createdAt: DateTime! """ Timestamp marking the last modification of the record, in UTC ISO 8601 format. """ lastModifiedAt: DateTime! """ Source product identifier retained for compatibility with legacy integrations. """ productIdFrom: Float """ Target product identifier retained for compatibility with legacy integrations. """ productIdTo: Float """ Source cluster identifier retained for compatibility with legacy integrations. """ clusterIdFrom: Float """ Target cluster identifier retained for compatibility with legacy integrations. """ clusterIdTo: Float """Source product (null if baseProductFrom is not a product)""" productFrom(hidden: Boolean): IBaseProduct """Target product (null if baseProductTo is not a product)""" productTo(hidden: Boolean): IBaseProduct """Source cluster (null if baseProductFrom is not a cluster)""" clusterFrom(hidden: Boolean): IBaseProduct """Target cluster (null if baseProductTo is not a cluster)""" clusterTo(hidden: Boolean): IBaseProduct } """Input for creating cross-upsell relationships with STI support""" input CrossupsellCreateInput { """ Category of the relationship, such as cross-sell, up-sell, related, or bundle. """ type: CrossupsellType! """Sub-classification refining the relationship within its category.""" subType: String """ Identifier of the source record (product or cluster) the relationship originates from. """ baseProductUuidFrom: ID """ Identifier of the target record (product or cluster) the relationship points to. """ baseProductUuidTo: ID """ Source product identifier retained for compatibility with legacy integrations. """ productIdFrom: Int """ Source cluster identifier retained for compatibility with legacy integrations. """ clusterIdFrom: Int """ Target product identifier retained for compatibility with legacy integrations. """ productIdTo: Int """ Target cluster identifier retained for compatibility with legacy integrations. """ clusterIdTo: Int } """Search criteria for cross-upsell relationships with STI support""" input CrossupsellSearchInput { """Filter by specific cross-upsell IDs""" ids: [String!] """Filter by cross-upsell types""" types: [CrossupsellType!] """Filter by sub-types""" subTypes: [String!] """Filter by source base product UUIDs (STI-based)""" baseProductUuidsFrom: [ID!] """Filter by target base product UUIDs (STI-based)""" baseProductUuidsTo: [ID!] """Filter by source product IDs (legacy - for backward compatibility)""" productIdsFrom: [Int!] """Filter by target product IDs (legacy - for backward compatibility)""" productIdsTo: [Int!] """Filter by source cluster IDs (legacy - for backward compatibility)""" clusterIdsFrom: [Int!] """Filter by target cluster IDs (legacy - for backward compatibility)""" clusterIdsTo: [Int!] """ Filter by hidden status of related base products. true = only hidden, false = only non-hidden, null = no filter. """ hidden: Boolean """Filter recommendations by their creation date range.""" createdAt: DateSearchInput """Filter recommendations by their last modification date range.""" lastModifiedAt: DateSearchInput """ Specify multiple sorting criteria for the recommendation results. Results will be sorted by the first criteria, then by subsequent criteria for ties. """ sortInputs: [CrossupsellSortInput!] """ Legacy field name for sorting. Use sortInputs instead. Specify multiple sorting criteria for the recommendation results. """ sortBy: [CrossupsellSortInput!] """Enable or disable applying orderlists""" applyOrderlists: Boolean = true """List orderlists to apply""" orderlistIds: [Int!] """ Browse catalog as a specific User. Permissions, orderlists, favorite will be merged with the logged in user. """ userId: Int """ Browse catalog as a specific Company. Permissions, orderlists, favorite will be merged with the logged in user. """ companyId: Int """Page number for pagination""" page: Int = 1 """Number of items per page""" offset: Int = 12 } """ Available fields for sorting cross-sell and upsell recommendation results in search and retrieval operations """ enum CrossupsellSortField { """ Sort by recommendation unique identifier. Provides consistent ordering based on system-generated IDs. """ ID """ Sort by recommendation type (accessories, alternatives, etc.). Groups recommendations by their relationship category. """ TYPE """ Sort by recommendation subtype for more granular categorization within the main type. """ SUBTYPE """ Sort by source product identifier. Orders recommendations by the product that triggers the suggestion. """ PRODUCT_ID_FROM """ Sort by source product cluster identifier. Groups recommendations by the cluster that triggers suggestions. """ CLUSTER_ID_FROM """ Sort by target product identifier. Orders recommendations by the product being suggested. """ PRODUCT_ID_TO """ Sort by target product cluster identifier. Groups recommendations by the cluster being suggested. """ CLUSTER_ID_TO """ Sort by last modification timestamp. Shows most recently updated recommendations first for tracking changes. """ LAST_MODIFIED_AT """ Sort by creation timestamp. Shows newest or oldest recommendations first based on when they were created. """ CREATED_AT } """ Sorting criteria for cross-sell and upsell recommendation results. Multiple sort inputs can be combined to create complex sorting logic. """ input CrossupsellSortInput { """ The field to use for sorting cross-sell and upsell recommendation results """ field: CrossupsellSortField! """The sort order direction (ASC or DESC). Default: ASC""" order: SortOrder = ASC } """Paginated response containing cross-upsells""" type CrossupsellsResponse { """Items returned by the query for the current page.""" items: [Crossupsell!]! """Total number of items found""" itemsFound: Int! """Number of items to skip""" offset: Int! """Current page number (1-based)""" page: Int! """Total number of pages""" pages: Int! """Starting index for current page""" start: Int! """Ending index for current page""" end: Int! } """ Classification of cross-sell and upsell recommendation types that determine the relationship and presentation context between products """ enum CrossupsellType { """ Accessory products that complement the main product. Used for suggesting additional items that enhance or work with the primary purchase. """ ACCESSORIES """ Alternative products that can substitute the main product. Used for suggesting similar items when the primary product is unavailable or for comparison shopping. """ ALTERNATIVES """ Optional upgrades or variations of the main product. Used for suggesting premium versions, different configurations, or enhanced features. """ OPTIONS """ Replacement parts or components for the main product. Used for suggesting maintenance items, spare parts, or consumables related to the primary purchase. """ PARTS """ Related products that are commonly purchased together. Used for suggesting items that are frequently bought in combination with the main product. """ RELATED } """Input for updating cross-upsell relationships (partial update)""" input CrossupsellUpdateInput { """Type of cross-upsell relationship""" type: CrossupsellType """Optional sub-type for more specific categorization""" subType: String """UUID of the source base product (STI reference)""" baseProductUuidFrom: ID """UUID of the target base product (STI reference)""" baseProductUuidTo: ID """Legacy product ID from source (will be converted to UUID)""" productIdFrom: Int """Legacy cluster ID from source (will be converted to UUID)""" clusterIdFrom: Int """Legacy product ID to target (will be converted to UUID)""" productIdTo: Int """Legacy cluster ID to target (will be converted to UUID)""" clusterIdTo: Int } type CsvImportResponse { importedCount: Int! errors: [CsvRecordError!] } type CsvRecordError { code: CsvRecordErrorCode! messages: [String!]! record: JSONObject rowNumber: Int } """CsvRecordErrorCode""" enum CsvRecordErrorCode { VALIDATION DB_INSERT UNKNOWN } """ Customer entity representing individual customers and end users. External entity from the customer service that provides customer identification and profile information. Used as a reference for customer-specific attributes and personalization features within the attribute system. """ type Customer implements IBaseUser { """ Internal customer identifier for system operations, data relationships, and business process integration """ customerId: Int! """Lists attributes for this customer based on the search input.""" attributes(input: AttributeResultSearchInput): AttributeResultResponse """ Retrieve all magic tokens associated with this customer. Returns a complete list of magic tokens that belong to this customer, including active, expired, and used tokens. Useful for authentication management and token usage tracking. """ magicTokens: [MagicToken!]! """ Collection of favorite lists associated with this customer. Returns paginated results of all favorite lists owned by this customer. Includes both default and non-default lists with their complete metadata and content. **Response Structure**: - Paginated list of customer favorite lists - Complete favorite list metadata - Associated products and clusters - Creation and modification timestamps **Filtering Capabilities**: - Search by list name - Filter by default status - Date range filtering - Content-based filtering **Use Cases**: - Personal shopping and wishlists - Repeat purchase management - Product recommendation systems - Customer preference tracking """ favoriteLists(input: FavoriteListsBaseSearchInput): FavoriteListsResponse """ Order lists that are assigned to or accessible by this customer. Returns a paginated collection of order lists where this customer has been granted access. The customer will be able to see and order from these lists based on their permissions. Results can be filtered using the input parameter for more specific queries. """ orderlist: OrderlistsResponse orderlists( """ Search and filtering criteria for order lists assigned to this customer. Filters the results to show only order lists that are assigned to or accessible by this specific customer. All standard search criteria can be applied in addition to the customer-specific filtering. If not provided, returns all order lists accessible to this customer with default pagination settings. Validation: All provided search criteria must be valid according to their respective field requirements. """ input: OrderlistSearchInput ): OrderlistsResponse! pricesheets: [Pricesheet!] """ Get effective pricesheets for this customer. Returns all pricesheets that apply to this customer, including directly assigned pricesheets and pricesheets linked via usergroups. Results are ordered by priority (highest first) and paginated. """ pricesheetsEffective( """Optional input parameters for pagination.""" input: PricesheetsEffectivePaginationInput ): PricesheetResponse! """The unique identifier of the user.""" userId: Int """ External debtor system identifier for financial integration, billing, and payment processing """ debtorId: String """ Customer's gender for demographic data collection and personalized communication """ gender: Gender """ Customer's first name for personal identification and communication purposes """ firstName: String! """Customer's middle name or initial for complete personal identification""" middleName: String """ Customer's last name for personal identification and formal communication """ lastName: String! """Primary phone number for business communication and contact purposes""" phone: String """Mobile phone number for urgent communication and SMS notifications""" mobile: String """ Primary email address for business communication, notifications, and account management """ email: String """System login identifier for authentication and account access control""" login: String """ International Bank Account Number for automated payment processing and financial transactions """ iban: String """ Bank account number for payment processing and financial transaction management """ bankAccount: String """ Bank Identification Code for international wire transfers and financial institution identification """ bic: String """ Additional notes and comments about the customer for internal reference and customer service """ notes: String """ Customer's preferred language for localized communication, documentation, and user interface """ primaryLanguage: String """ Account expiration date after which customer access will be disabled for security purposes """ expires: DateTime """ External system identifier for integration with third-party applications and services """ externalId: String """ Customer's date of birth for age verification, demographic analysis, and personalized services """ dateOfBirth: DateTime """ Opt-in preference for marketing communications, promotional materials, and newsletter subscriptions """ mailingList: YesNo """ Current login status indicator for session management and security monitoring """ isLoggedIn: Boolean """Timestamp when the entity record was initially created in the system""" createdAt: DateTime """Timestamp of the most recent modification to the entity record""" lastModifiedAt: DateTime """ Universally unique identifier (UUID) providing global uniqueness across systems """ uuid: String """ External system sources that contributed to this entity's data for traceability and integration """ sources: [Source!] """ Retrieve addresses associated with the customer with optional filtering. ## Key Features - **Address Retrieval**: Returns all addresses associated with the customer - **Type Filtering**: Filter addresses by specific type (delivery, invoice, etc.) - **Default Filtering**: Filter addresses by default status - **Batch Loading**: Optimized loading for multiple customers ## Business Rules - Returns addresses belonging to the specified customer - Empty result if no addresses exist for the customer - Filtering is applied after address retrieval - Addresses are returned in creation order unless filtered ## Use Cases - Customer profile display - Order processing and address selection - Address management interfaces - Data validation and verification """ addresses( """Filter addresses by specific type (delivery, invoice, etc.)""" type: AddressType """Filter addresses by default status""" isDefault: YesNo ): [Address!]! } input CustomerAddressCreateInput { """First name the address applies to""" firstName: String """Middle name the address applies to""" middleName: String """Last name the address applies to""" lastName: String """Gender the address applies to""" gender: Gender """Company the address applies to""" company: String """Street address""" street: String! """Street number""" number: String """Street number extension""" numberExtension: String """Address postal code""" postalCode: String! """Address city""" city: String! """Address region""" region: String """Address country""" country: String! """Address fixed phone number [min: 6, max: 30]""" phone: String """Address mobile number [min: 6, max: 30]""" mobile: String """Address email [valid email format required]""" email: String """Address code""" code: String """Address delivery notes""" notes: String """Company website URL""" url: String """Indicates whether the address is default for its type""" isDefault: YesNo """Indicates whether the address is active""" active: YesNo """ ICP address field defines whether tax should be applied to an order if the address is selected as a delivery address. Used when shipping b2b order abroad """ icp: YesNo """Address customer primary identifier""" customerId: Int! """Address type [one of 'home', 'delivery' or 'invoice']""" type: AddressType! } input CustomerAddressDeleteInput { """Address primary identifier""" id: Int! """Address customer primary identifier""" customerId: Int! } input CustomerAddressUpdateInput { """First name the address applies to""" firstName: String """Middle name the address applies to""" middleName: String """Last name the address applies to""" lastName: String """Gender the address applies to""" gender: Gender """Company the address applies to""" company: String """Street address""" street: String """Street number""" number: String """Street number extension""" numberExtension: String """Address postal code""" postalCode: String """Address city""" city: String """Address region""" region: String """Address country""" country: String """Address fixed phone number [min: 6, max: 30]""" phone: String """Address mobile number [min: 6, max: 30]""" mobile: String """Address email [valid email format required]""" email: String """Address code""" code: String """Address delivery notes""" notes: String """Company website URL""" url: String """Indicates whether the address is default for its type""" isDefault: YesNo """Indicates whether the address is active""" active: YesNo """ ICP address field defines whether tax should be applied to an order if the address is selected as a delivery address. Used when shipping b2b order abroad """ icp: YesNo """Address primary identifier""" id: Int! """Address customer primary identifier""" customerId: Int! } """ Customer-specific attribute containing personalization data and customer relationship information. Extends the base customer interface with attribute functionality. Used to store additional customer information such as preferences, behavioral data, personalization settings, and customer relationship management data that enhances customer profiles. Perfect for customer personalization, preference management, and building comprehensive customer profiles that drive personalized experiences and targeted marketing. """ type CustomerAttribute implements Attribute { """ Unique identifier for this attribute instance. Auto-generated UUID that serves as the primary key for this specific attribute. Used to reference and manage individual attribute instances. """ id: String! """ The actual value data stored in this attribute. Contains the attribute value in the appropriate format based on the attribute description's type definition. The value structure varies depending on the attribute type (text, enum, color, etc.). """ value: AttributeValue! """ Timestamp when this attribute was originally created. Records the exact date and time when this attribute instance was first created in the system. Used for audit trails and data lifecycle management. """ createdAt: DateTime! """ Timestamp when this attribute was last modified. Records the most recent date and time when any changes were made to this attribute's value or configuration. Updated automatically on each modification. """ lastModifiedAt: DateTime! """ Identifier of the user who created this attribute. References the user account that originally created this attribute instance. May be 0 for system-generated attributes or when user information is not available. """ createdBy: Int """ Identifier of the user who last modified this attribute. References the user account that made the most recent changes to this attribute. May be 0 for system modifications or when user information is not available. """ lastModifiedBy: Int """ Retrieve the attribute description that defines this customer attribute's schema and behavior. Returns the complete attribute description containing metadata, type definitions, display configuration, and localization settings. This description serves as the template that defines how this customer attribute should behave and be presented. Essential for understanding attribute constraints, available operations, and presentation requirements for customer-specific attributes that extend customer information. """ attributeDescription: AttributeDescription """ Unique identifier of the customer that owns this attribute. References the specific customer in the customer base that this attribute value is associated with. Used to establish the relationship between attributes and their parent customers for personalization and customer relationship management purposes. """ customerId: Int! } input CustomerCsvInput { """CSV file to upload""" file: Upload! """CSV field mappings for customers""" mappings: [CustomerCsvMapping!] } input CustomerCsvMapping { """CSV column header name""" csvHeader: String! """Corresponding Propeller field name""" fieldName: CustomerFieldName! } enum CustomerFieldName { """ [Optional][String] External debtor system identifier for financial integration, billing, and payment processing """ DEBTOR_ID """ [Optional][String] Customer's first name for personal identification and communication purposes """ FIRST_NAME """ [Optional][String] Customer's middle name or initial for complete personal identification """ MIDDLE_NAME """ [Optional][String] Customer's last name for personal identification and formal communication """ LAST_NAME """ [Optional][String] Shortened form of customer name for display purposes and system efficiency """ ABBREVIATION """ [Optional][String] Professional or personal title for formal communication and business correspondence """ TITLE """ [Optional][DateTime] Customer's date of birth for age verification, demographic analysis, and personalized services, in ISO 8601 format 'YYYY-MM-DD' (e.g., 2024-10-31) """ DATE_OF_BIRTH """ [Optional][Enum] Customer's gender for demographic data collection and personalized communication, must be one of the following: [M, F, U] """ GENDER """ [Optional][String] Social Security Number for identity verification and regulatory compliance purposes """ SSN """ [Optional][String] Primary phone number for business communication and contact purposes """ PHONE """ [Optional][String] Primary email address for business communication, notifications, and account management """ EMAIL """ [Optional][String] Customer's preferred language for localized communication, documentation, and user interface """ PRIMARY_LANGUAGE """ [Optional][String] Unique internal identifier for the customer used for system operations and data relationships, use either CUSTOMER_ID or a combination of SOURCE_NAME and SOURCE_ID """ CUSTOMER_ID """ [Optional][String] Data source system name for tracking customer data origin and integration points, use either CUSTOMER_ID or a combination of SOURCE_NAME and SOURCE_ID """ SOURCE_NAME """ [Optional][String] Source ID for the customer. Deprecated, use sources instead., use either CUSTOMER_ID or a combination of SOURCE_NAME and SOURCE_ID """ SOURCE_ID """ [Optional][String] Language preference for the customer. Deprecated, use primaryLanguage instead., only required when using combination of SOURCE_NAME and SOURCE_ID """ LANGUAGE } """ Complete customer information required for creating a new customer account with validation and business rule enforcement """ input CustomerInput { """ Customer's first name for personal identification and communication purposes. Maximum 30 characters, HTML tags are automatically removed for security. """ firstName: String """ Customer's middle name or initial for complete personal identification. Maximum 20 characters, HTML tags are automatically removed for security. """ middleName: String """ Customer's last name for personal identification and formal communication. Maximum 50 characters, HTML tags are automatically removed for security. """ lastName: String """ External debtor system identifier for financial integration, billing, and payment processing. """ debtorId: String """ Customer's gender for demographic data collection and personalized communication """ gender: Gender """ Primary email address for business communication, notifications, and account management. Must be a valid email format. """ email: String """Primary phone number for business communication and contact purposes.""" phone: String """Mobile phone number for urgent communication and SMS notifications.""" mobile: String """ Customer's date of birth for age verification, demographic analysis, and personalized services. Accepts various date formats. """ dateOfBirth: String """ Opt-in preference for marketing communications, promotional materials, and newsletter subscriptions. """ mailingList: YesNo """ Customer's preferred language for localized communication, documentation, and user interface. """ primaryLanguage: String """ External system sources that contributed to this customer's data for traceability and integration. """ sources: [SourceUpsertInput!] """ Custom attributes and metadata for extended customer information and categorization. """ attributes: [AttributeBulkCreateInput!] """ Physical addresses associated with the customer for business operations and delivery purposes. """ addresses: [AddressBulkItemInput!] } """ Search criteria for filtering and retrieving customers with pagination, sorting, and date range filtering capabilities """ input CustomerSearchArguments { """ Internal customer identifiers for precise customer lookup. All IDs must be unique integers for accurate filtering. """ customerIds: [Int!] """ External debtor system identifiers for financial integration and billing system lookup. Each debtor ID must be unique and maximum 100 characters. """ debtorIds: [String!] """ Customer's first name for personal identification search. Maximum 100 characters for precise matching. """ firstName: String """ Customer's middle name or initial for complete personal identification search. Maximum 50 characters for precise matching. """ middleName: String """ Customer's last name for personal identification search. Maximum 50 characters for precise matching. """ lastName: String """ Primary email address for customer identification and communication lookup. Must be valid email format for accurate matching. """ email: String """ Customer's gender for demographic filtering and personalized service identification """ gender: Gender """ Page number for paginated results. Defaults to 1 for first page of results. """ page: Int = 1 """ Number of results per page for pagination. Minimum 1, maximum 100 results per page for optimal performance. """ offset: Int = 12 """ Sorting criteria for organizing search results by multiple fields with ascending or descending order """ sort: [CustomerSortInput!] """ Date range filter for customer records based on last modification timestamp for change tracking and audit purposes """ lastModifiedAt: DateSearchInput """ Date range filter for customer records based on creation timestamp for historical data analysis and reporting """ createdAt: DateSearchInput """ Data source filtering for tracking customer data origin and integration points for compliance and audit purposes """ sources: [SourceSearchInput!] } """Customer sortable fields""" enum CustomerSortableField { NAME LAST_MODIFIED_AT CREATED_AT } input CustomerSortInput { """Available customer fields for sorting""" field: CustomerSortableField! """Customer sort order (ASC or DESC, default: ASC)""" order: SortOrder! = ASC } type CustomersResponse { """List of items of type Customer""" items: [Customer!]! """Total number of items found""" itemsFound: Int! """The amount of items to show per page""" offset: Int! """The current page""" page: Int! """Total amount of pages""" pages: Int! """Start position of the current page""" start: Int! """End position of the current page""" end: Int! } input DateSearchInput { """Date greater than provided date""" greaterThan: String """Date less than provided date""" lessThan: String } """ A date-time string at UTC, such as 2019-12-03T09:54:33Z, compliant with the date-time format. """ scalar DateTime input DecimalSearchInput { """greater than or equal""" greaterThan: Float """less than or equal""" lessThan: Float """equal to""" equal: Float } """Response confirming successful deletion of a private attachment file""" type DeleteMediaAttachmentResponse { """ Unique identifier of the successfully deleted attachment. This ID can be used to confirm which private attachment was removed from the system. The attachment file and all its associated metadata are permanently deleted and cannot be recovered. """ mediaId: String! } """Response confirming successful deletion of a document media item""" type DeleteMediaDocumentResponse { """ Unique identifier of the successfully deleted document. This ID can be used to confirm which document was removed from the system. The document file and all its associated metadata are permanently deleted and cannot be recovered. """ mediaId: String! } """Response confirming successful deletion of an image media item""" type DeleteMediaImageResponse { """ Unique identifier of the successfully deleted image. This ID can be used to confirm which image was removed from the system. The image and all its associated files are permanently deleted and cannot be recovered. """ mediaId: String! } """Response confirming successful deletion of a video media item""" type DeleteMediaVideoResponse { """ Unique identifier of the successfully deleted video. This ID can be used to confirm which video was removed from the system. The video and all its associated metadata are permanently deleted and cannot be recovered. """ mediaId: String! } """ Input for deleting a warehouse address. Contains the identifier of the warehouse address to be permanently removed. This action cannot be undone and will affect any operations that depend on this address. """ input DeleteWarehouseAddressInput { """ Unique identifier of the warehouse address to delete. Primary key used to identify which specific address should be permanently removed from the warehouse's address collection. """ id: Int! } """Represents a discount that can be applied to a product or category.""" type Discount implements IDiscount { """Unique identifier for the discount record""" id: String! """Timestamp when the discount record was initially created""" createdAt: DateTime! """Timestamp when the discount record was last updated""" lastModifiedAt: DateTime! """Discount value applied to qualifying purchases""" value: Float! """ Minimum quantity threshold for bulk pricing eligibility. The minimum number of units that must be purchased to qualify for the bulk price discount. Creates tiered pricing structure based on order volume. """ quantityFrom: Int! """ Bulk pricing effective start date. The date when the bulk pricing becomes active and available for customer orders. Must be a valid ISO 8601 date string format. """ validFrom: DateTime """ Bulk pricing expiration date. The date when the bulk pricing offer expires and is no longer available. Must be a valid ISO 8601 date string format. """ validTo: DateTime """Pricesheet identifier for discount association""" pricesheetId: String! """Product identifier for product-specific discounts""" productId: Int """Category identifier for category-wide discounts""" categoryId: Int """Price group classification for targeted discounts""" priceGroup: String """Method for calculating and applying the discount value""" discountType: PriceDiscountType! """ Retrieve the pricesheet associated with this discount. Returns the pricesheet record that contains this discount, providing context for the discount's application scope and customer assignments. AUTH: Role=[pricing.OWNER] """ pricesheet: Pricesheet """ Product associated with the discount. The product that this discount applies to, providing context for discount rules and application. Null when no product is associated with the discount. """ product(hidden: Boolean): Product """ Category associated with the discount. The category that this discount applies to, providing context for discount rules and application. Null when no category is associated with the discount. """ category( """ Filter by category visibility status. Y = include only if category is hidden, N = include only if category is visible. When omitted, includes category regardless of visibility status. """ hidden: YesNo ): Category } input DiscountCreateInput { """Pricesheet identifier for discount association""" pricesheetId: String! """Product identifier for product-specific discounts""" productId: Int """Category identifier for category-wide discounts""" categoryId: Int """Price group classification for targeted discounts""" priceGroup: String """Discount value amount or percentage""" value: Float! """Discount calculation method""" discountType: PriceDiscountType! """Minimum quantity threshold for discount eligibility""" quantityFrom: Int! = 1 """Discount effective start date""" validFrom: String """Discount effective end date""" validTo: String } input DiscountCsvInput { """CSV file""" file: Upload! """List of Discount mappings""" mappings: [DiscountCsvMapping!] } input DiscountCsvMapping { """The name of the column in the CSV file""" csvHeader: String! """The name of the field in Propeller eCommerce Platform""" fieldName: DiscountFieldName! } enum DiscountFieldName { """[Required][String] Pricesheet identifier""" PRICESHEET_ID """[Optional][Integer] Product identifier""" PRODUCT_ID """[Optional][Integer] Category identifier""" CATEGORY_ID """[Optional][String] Price group""" PRICE_GROUP """[Required][Float] Discount value""" VALUE """ [Required][PriceDiscountType] Discount type. One of: [costpriceplus, listpricemin, netprice] """ DISCOUNT_TYPE """[Optional][Integer] Quantity from. Default value is: 1 """ QUANTITY_FROM """ [Optional][Date] Valid from date. Must be a valid ISO 8601 date string. """ VALID_FROM """[Optional][Date] Valid to date. Must be a valid ISO 8601 date string.""" VALID_TO } type DiscountResponse { """List of items of type Discount""" items: [Discount!]! """Total number of items found""" itemsFound: Int! """The amount of items to show per page""" offset: Int! """The current page""" page: Int! """Total amount of pages""" pages: Int! """Start position of the current page""" start: Int! """End position of the current page""" end: Int! } """ Search criteria for filtering discount records with comprehensive filtering options. Supports filtering by pricesheet associations, category assignments, percentage ranges, effective dates, product assignments, and more. All fields are optional and can be combined for precise discount discovery. """ input DiscountSearchInput { """ Page number for pagination results. Minimum value is 1. Used with offset to control result pagination for large discount datasets. """ page: Int = 1 """ Number of discount records to return per page. Minimum value is 1. Controls the size of each page in paginated results for efficient data loading. """ offset: Int = 12 """Search by date created""" createdAt: DateSearchInput """Search by date changed""" lastModifiedAt: DateSearchInput """ Filter by specific discount record identifiers. Array of unique UUID values representing discount records. Each ID must be a valid UUID format. Use this to retrieve specific discount records by their primary keys. """ ids: [String!] """ Filter by pricesheet associations. Array of unique UUID values representing pricesheet records. Returns discounts that belong to any of the specified pricesheets. Use this to find all discounts within specific pricing contexts. """ pricesheetIds: [String!] """ Filter by product-specific discount assignments. Array of unique product identifiers. Returns discounts that apply to any of the specified products. Use this to find product-specific promotional pricing and targeted discounts. """ productIds: [Int!] """ Filter by category-wide discount assignments. Array of unique category identifiers. Returns discounts that apply to any of the specified categories. Use this to find category-level promotional pricing and bulk discount strategies. """ categoryIds: [Int!] """Search by price groups""" priceGroups: [String!] """Search by values""" value: DecimalSearchInput """Discount type. One of: [costpriceplus, listpricemin, netprice]""" discountTypes: [PriceDiscountType!] """Search by quantity from""" quantityFrom: NumberSearchInput """Inputs to sort by""" sortInputs: [DiscountSortInput!] """Search by valid from""" validFrom: DateSearchInput """Search by valid to""" validTo: DateSearchInput } """Available fields for sorting discount search results""" enum DiscountSortField { """Sort by discount record ID""" ID """Sort by associated pricesheet ID""" PRICESHEETID """Sort by associated product ID""" PRODUCTID """Sort by associated category ID""" CATEGORYID """Sort by price group alphabetically""" PRICEGROUP """Sort by discount value numerically""" VALUE """Sort by discount type""" DISCOUNTTYPE """Sort by minimum quantity threshold""" QUANTITYFROM """Sort by discount start date""" VALIDFROM """Sort by discount end date""" VALIDTO """Sort by the date when the discount was last modified""" LAST_MODIFIED_AT """Sort by the date when the discount was created""" CREATED_AT } input DiscountSortInput { """Field to sort by""" field: DiscountSortField! order: SortOrder! } """Discount types""" enum DiscountType { FLAT_FEE PERCENTAGE } """ Discount update data for modifying existing discount configurations. Contains optional fields for updating discount information including values, calculation methods, quantity thresholds, effective dates, and target assignments. All fields are optional for partial updates. """ input DiscountUpdateInput { """Pricesheet identifier for discount association""" pricesheetId: String """Product identifier for product-specific discounts""" productId: Int """Category identifier for category-wide discounts""" categoryId: Int """Price group classification for targeted discounts""" priceGroup: String """Discount value amount or percentage""" value: Float """Discount calculation method""" discountType: PriceDiscountType """Minimum quantity threshold for discount eligibility""" quantityFrom: Int = 1 """Discount effective start date""" validFrom: String """Discount effective end date""" validTo: String } input DocumentCsvInput { """CSV file""" file: Upload! """A list of MediaDocuments CSV field mappings""" mappings: [DocumentCsvMapping!] } input DocumentCsvMapping { """The name of the column in the CSV file""" csvHeader: String! """The name of the field in Propeller eCommerce Platform""" fieldName: DocumentFieldName! } """Fields available for document CSV mapping.""" enum DocumentFieldName { """[Optional][String] This MediaDocument's unique identifier""" ID """[Required][String] Language of the MediaDocument [Default: EN]""" LANGUAGE """ [Required][String] The alt descriptions of this MediaDocument per language """ ALT_VALUE """[Required][String] The descriptions of this MediaDocument per language""" DESCRIPTION_VALUE """[Required][String[]] The tags of this MediaDocument per language""" TAGS_VALUES """[Required][String] MediaDocument file url""" DOCUMENT_FILE_URI """[Required][String] MediaDocument file name""" DOCUMENT_FILE_NAME """ [Optional][Integer] MediaDocument display priority [Lower value has higher priority] - [Default: 1000] """ PRIORITY """[Optional][String] This MediaDocument's linked Product.""" PRODUCT_ID """[Optional][String] This MediaDocument's linked Cluster""" CLUSTER_ID """[Optional][Integer] This MediaDocument's linked Category""" CATEGORY_ID """[Optional][String] This MediaDocument's linked SpareParts Machine""" SPAREPARTS_MACHINE_ID } """ Document template for automated PDF and document generation. Defines the structure, layout, and content for generating documents such as invoices, quotes, reports, and certificates. Supports localized content, dynamic data integration, and can serve as default templates for specific document types. """ type DocumentTemplate implements IBaseTemplate { """ Unique identifier for the message template. Used to reference and manage specific templates throughout the messaging system for emails, documents, and notifications. """ id: String! """ Handlebars template content for each supported language. The actual template markup using Handlebars syntax for dynamic content generation, stored per language for localization support. """ contents: [LocalizedTemplateContent!] """ Localized template names for different languages. Human-readable names for the template in various languages, used for template identification and management in multilingual environments. """ names( """ Language filter for localized content selection. Filter parameter used to retrieve content in specific languages from multilingual template fields. """ language: String ): [LocalizedString!]! """ Compiled template content for document generation. The processed template content ready for variable substitution and document generation, derived from the localized contents based on the target language. """ content: String """ GraphQL query for additional data enrichment. Custom query executed before template rendering to fetch supplementary data not included in the original event payload, enabling rich template content. """ customQuery: String """ Variables for custom GraphQL query execution. JSON object containing variables used in the custom query, supports Handlebars expressions for dynamic variable generation based on event data. """ queryVariables: String """ Template creation timestamp. Date and time when this template was initially created in the system, used for auditing and template lifecycle management. """ createdAt: DateTime! """ Template last modification timestamp. Date and time when any template content or configuration was last updated, used for change tracking and version control. """ lastModifiedAt: DateTime! """ Template creator user identifier. ID of the user who originally created this template, used for ownership tracking and access control. """ createdBy: Int """ Template last editor user identifier. ID of the user who most recently modified this template, used for change attribution and audit trails. """ lastModifiedBy: Int """ Dynamic file names for document template outputs. File naming patterns per language using Handlebars variables to generate contextual file names for generated documents and attachments. """ fileNames: [LocalizedString!]! """ Default order document template designation. Indicates whether this template serves as the default template for generating order-related PDF documents in the system. """ isDefaultOrderPdf: Boolean! """ Default quotation document template designation. Indicates whether this template serves as the default template for generating quotation-related PDF documents in the system. """ isDefaultQuotePdf: Boolean! } """ Document template creation data with document-specific configuration. Extends base template functionality with document-specific fields including file naming patterns, default template designations for automated document generation workflows. """ input DocumentTemplateCreateInput { """ Handlebars template content for each supported language. The actual template markup using Handlebars syntax for dynamic content generation, stored per language for localization support. Validation: Array must not be empty, must contain unique language entries. """ contents: [LocalizedTemplateContentInput!]! """ Localized template names for different languages. Human-readable names for the template in various languages, used for template identification and management in multilingual environments. Validation: Array must not be empty, must contain unique language entries. """ names: [LocalizedStringInput!]! """ GraphQL query for additional data enrichment. Custom query executed before template rendering to fetch supplementary data not included in the original event payload, enabling rich template content with external data sources. """ customQuery: String """ Variables for custom GraphQL query execution. JSON object containing variables used in the custom query, supports Handlebars expressions for dynamic variable generation based on event data. Only valid when customQuery is provided. """ queryVariables: String """ Dynamic file names for document template outputs. File naming patterns per language using Handlebars variables to generate contextual file names for generated documents and attachments, enabling personalized document naming. Validation: Array must not be empty, must contain unique language entries. """ fileNames: [LocalizedStringInput!]! """ Designates this template as the default for order PDF generation. When enabled, this template will be automatically selected for generating order confirmation PDFs in the system, streamlining the order processing workflow. """ isDefaultOrderPdf: Boolean! = false """ Designates this template as the default for quote PDF generation. When enabled, this template will be automatically selected for generating quotation PDFs in the system, streamlining the quote processing workflow. """ isDefaultQuotePdf: Boolean! = false } """ Document template update data with document-specific configuration. Extends base template update functionality with document-specific fields including file naming patterns and default template designations. All fields are optional for partial updates. """ input DocumentTemplateUpdateInput { """ Updated localized template names for different languages. Human-readable names for the template in various languages, used for template identification and management in multilingual environments. Validation: When provided, array must not be empty and must contain unique language entries. """ names: [LocalizedStringInput!] """ Updated Handlebars template content for each supported language. The actual template markup using Handlebars syntax for dynamic content generation, stored per language for localization support. Validation: When provided, array must not be empty and must contain unique language entries. """ contents: [LocalizedTemplateContentInput!] """ Updated GraphQL query for additional data enrichment. Custom query executed before template rendering to fetch supplementary data not included in the original event payload, enabling rich template content with external data sources. """ customQuery: String """ Updated variables for custom GraphQL query execution. JSON object containing variables used in the custom query, supports Handlebars expressions for dynamic variable generation based on event data. Only valid when customQuery is provided or already exists. """ queryVariables: String """ Updated dynamic file names for document template outputs. File naming patterns per language using Handlebars variables to generate contextual file names for generated documents and attachments, enabling personalized document naming. Validation: When provided, array must not be empty and must contain unique language entries. """ fileNames: [LocalizedStringInput!] """ Updated designation for default order PDF generation. When enabled, this template will be automatically selected for generating order confirmation PDFs in the system, streamlining the order processing workflow. """ isDefaultOrderPdf: Boolean """ Updated designation for default quote PDF generation. When enabled, this template will be automatically selected for generating quotation PDFs in the system, streamlining the quote processing workflow. """ isDefaultQuotePdf: Boolean } """ Email contact information with flexible identification methods. Represents an email recipient or sender with multiple identification options including direct email addresses, system user references, and contact database lookups for comprehensive contact management. """ type EmailContact { """ Direct email address for contact identification. Valid email address used for message delivery when direct email addressing is preferred over system user lookups. """ email: String """ Display name for personalized communication. Human-readable name that appears alongside the email address in email clients, enhancing the personal touch of communications. """ name: String """ Contact database identifier for recipient lookup. References a contact record in the contact management system, enabling automatic email address and name resolution from the contact database. """ contactId: Int """ Customer database identifier for recipient lookup. References a customer record in the customer management system, enabling automatic email address and name resolution from customer data. """ customerId: Int """ Administrative user identifier for recipient lookup. References an admin user account in the user management system, enabling automatic email address and name resolution from admin user data. """ adminUserId: Int } """ Email contact information with flexible identification options. Supports multiple ways to identify email recipients including direct email addresses, system user references, and contact database lookups. Only one identification method should be provided per contact. """ input EmailContactInput { """ Direct email address for contact identification. Valid email address that will be used for message delivery when direct email addressing is preferred over system user lookups. """ email: String """ Display name for personalized communication. Human-readable name that will be shown alongside the email address in email clients, enhancing personal touch. Only valid when used with email field. Validation: Maximum length of 998 characters. """ name: String """ Contact database identifier for recipient lookup. References a contact record in the contact management system, enabling automatic email address and name resolution from the contact database. """ contactId: Int """ Customer database identifier for recipient lookup. References a customer record in the customer management system, enabling automatic email address and name resolution from customer data. """ customerId: Int """ Administrative user identifier for recipient lookup. References an admin user account in the user management system, enabling automatic email address and name resolution from admin user data. """ adminUserId: Int } """ Email event trigger data for template-based messaging. Contains all necessary information to trigger an email event through the template engine, including event classification, context data, recipients, and customization options. """ input EmailEventInput { """ Classification of the email event being triggered. Determines the purpose and context of the email, enabling appropriate template selection and content personalization based on the business scenario. """ type: EmailEventType! """ The id of the order to use when triggering an event of type orderconfirm """ orderId: Int """ User identifier for recipient determination. Used to identify the email recipient when the user cannot be derived from other context inputs like order or contact information. """ userId: Int """ Campaign letter identifier for marketing emails. Required when triggering campaign-type events, references the specific marketing letter or campaign content to be sent. """ letterId: String """ Custom email subject line override. Provides a specific subject line when it cannot be derived from template configuration or other context inputs, enabling dynamic subject customization. """ subject: String """ Custom email content override. Provides specific email content when it cannot be derived from template configuration or other context inputs, enabling dynamic content customization. """ content: String """ Email sender information override. Specifies the email sender when it cannot be derived from template configuration or other context inputs, enabling flexible sender customization. """ from: EmailSendContactInput """ Primary email recipients override. Specifies the email recipients when they cannot be derived from other context inputs like user ID or order information, enabling flexible recipient targeting. """ to: [EmailSendContactInput!] """ File attachments for the email. Base64-encoded files that will be attached to the email message, supporting various file types for comprehensive communication needs. """ attachments: [Base64FileInput!] """ Template variable data for dynamic content. JSON object containing key-value pairs that will be used for Handlebars variable substitution in the email template, enabling personalized and context-specific content generation. Validation: Must be valid JSON format. """ variables: JSONObject """ Language code for email localization. ISO 639-1 language code that determines which language version of the template to use for message generation, enabling multilingual email support. """ language: String } """Type of e-mail events that can be triggered""" enum EmailEventType { orderconfirm quotation registration campaign transactional custom system error } """ Contact information for email recipients and senders. Defines the essential contact details needed for email delivery, including email address and optional display name for personalized communication. """ input EmailSendContactInput { """ Email address for message delivery. Valid email address that will receive the message, must conform to standard email format requirements for successful delivery. """ email: String! """ Display name for personalized communication. Human-readable name that will be shown alongside the email address in email clients, enhancing the personal touch of communications. """ name: String } """ Email sender information with localization support. Defines the sender details for email templates including email address and localized display names for multilingual email communications and personalized sender identification. """ type EmailSender { """ Sender email address for outgoing messages. Valid email address that appears in the 'From' field of sent emails, must be authorized for sending through the email system. """ email: String! """ Localized sender display names. Multilingual display names that appear alongside the sender email address in email clients, enabling personalized sender identification across different languages and regions. """ names: [LocalizedString!] } """ Email sender configuration with localization support. Defines the sender information for email templates including email address and localized display names for multilingual email communications. """ input EmailSenderInput { """ Sender email address for outgoing messages. Valid email address that will appear in the 'From' field of sent emails, must be authorized for sending through the email system. Validation: Must be valid email format when provided. """ email: String """ Localized sender display names. Multilingual display names that will appear alongside the sender email address in email clients, enabling personalized sender identification across different languages. Validation: Array must not be empty, must contain unique entries. """ names: [LocalizedStringInput!] } """ Complete email data for direct sending without template processing. Contains all processed email information including recipients, subject, content, and attachments that can be sent immediately without requiring template rendering or data enrichment. """ input EmailSendEventInput { """ Email subject line for the message. The complete subject text that will appear in the recipient's email client, should be pre-processed and ready for delivery. """ subject: String! """ Complete email content ready for delivery. The fully rendered email content including HTML markup, text, and any dynamic data that has already been processed and is ready for immediate sending. """ content: String! """ Email sender contact information. Complete sender details including email address and display name that will appear in the 'From' field of the email message. """ from: EmailSendContactInput! """ Primary email recipients. List of contacts who will receive the email in their main inbox, visible to all recipients in the 'To' field. """ to: [EmailSendContactInput!]! """ Carbon copy recipients. List of contacts who will receive a copy of the email, visible to all recipients in the 'CC' field for transparency. """ cc: [EmailSendContactInput!] """ Blind carbon copy recipients. List of contacts who will receive a copy of the email without being visible to other recipients, maintaining privacy. """ bcc: [EmailSendContactInput!] """ File attachments for the email. Base64-encoded files that will be attached to the email message, supporting various file types for comprehensive communication. """ attachments: [Base64FileInput!] """ Marketing campaign identifier for tracking. Unique identifier linking this email to a specific marketing campaign for analytics and performance tracking purposes. """ campaignId: String """ Unique message identifier for tracking. Unique identifier for this specific email message, used for delivery tracking, analytics, and message correlation. """ messageId: String """ UTM tracking parameters for analytics. URL tracking parameters that will be appended to links in the email for campaign performance measurement and user behavior analysis. """ utmTags: String """Variables that can be used in the email template""" variables: JSONObject } """ Email template for automated messaging and communication campaigns. Defines the structure, content, and configuration for email messages including localized content, recipients, attachments, and dynamic data integration. Used for transactional emails, marketing campaigns, and system notifications. """ type EmailTemplate implements IBaseTemplate { """ Unique identifier for the message template. Used to reference and manage specific templates throughout the messaging system for emails, documents, and notifications. """ id: String! """ Handlebars template content for each supported language. The actual template markup using Handlebars syntax for dynamic content generation, stored per language for localization support. """ contents: [LocalizedTemplateContent!] """ Localized template names for different languages. Human-readable names for the template in various languages, used for template identification and management in multilingual environments. """ names( """ Language code filter for localized names. ISO 639-1 language code (e.g., 'en', 'nl', 'de') to filter the returned names to a specific language. When omitted, returns names for all available languages. """ language: String ): [LocalizedString!]! """ Compiled template content for rendering. The processed template content ready for variable substitution and message generation, derived from the localized contents based on the target language. """ content: String """ GraphQL query for additional data enrichment. Custom query executed before template rendering to fetch supplementary data not included in the original event payload, enabling rich template content. """ customQuery: String """ Variables for custom GraphQL query execution. JSON object containing variables used in the custom query, supports Handlebars expressions for dynamic variable generation based on event data. """ queryVariables: String """ Template creation timestamp. Date and time when this template was initially created in the system, used for auditing and template lifecycle management. """ createdAt: DateTime! """ Template last modification timestamp. Date and time when any template content or configuration was last updated, used for change tracking and version control. """ lastModifiedAt: DateTime! """ Template creator user identifier. ID of the user who originally created this template, used for ownership tracking and access control. """ createdBy: Int """ Template last editor user identifier. ID of the user who most recently modified this template, used for change attribution and audit trails. """ lastModifiedBy: Int """ Localized email subject lines with dynamic content support. Email subject text for each language with Handlebars variable support for personalized subject lines based on recipient and context data. """ subjects( """ Language code filter for localized subject lines. ISO 639-1 language code (e.g., 'en', 'nl', 'de') to filter the returned subject lines to a specific language. When omitted, returns subjects for all available languages. """ language: String ): [LocalizedString!]! """ Email sender contact information. Sender details including email address and display name used in the 'From' field of outgoing emails. """ from: EmailSender! """ Primary email recipient contact information. List of primary recipients who will receive the email in their main inbox, visible to all recipients. """ tos: [EmailContact!] """ Carbon copy email recipient contacts. List of secondary recipients who will receive a copy of the email, visible to all recipients as CC recipients. """ ccs: [EmailContact!] """ Blind carbon copy email recipient contacts. List of hidden recipients who will receive a copy of the email without being visible to other recipients. """ bccs: [EmailContact!] """ Document templates to include as email attachments. List of document templates that will be rendered and attached to the email when sent, supporting dynamic document generation. """ attachments: [DocumentTemplate!] } """ Email template creation data with email-specific configuration. Extends base template functionality with email-specific fields including subject lines, sender information, recipients, and attachment handling for comprehensive email template setup. """ input EmailTemplateCreateInput { """ Handlebars template content for each supported language. The actual template markup using Handlebars syntax for dynamic content generation, stored per language for localization support. Validation: Array must not be empty, must contain unique language entries. """ contents: [LocalizedTemplateContentInput!]! """ Localized template names for different languages. Human-readable names for the template in various languages, used for template identification and management in multilingual environments. Validation: Array must not be empty, must contain unique language entries. """ names: [LocalizedStringInput!]! """ GraphQL query for additional data enrichment. Custom query executed before template rendering to fetch supplementary data not included in the original event payload, enabling rich template content with external data sources. """ customQuery: String """ Variables for custom GraphQL query execution. JSON object containing variables used in the custom query, supports Handlebars expressions for dynamic variable generation based on event data. Only valid when customQuery is provided. """ queryVariables: String """ Localized email subject lines with dynamic content support. Email subject text for each language with Handlebars variable support for personalized subject lines based on recipient and context data. Validation: Array must not be empty, must contain unique language entries. """ subjects: [LocalizedStringInput!]! """ Email sender contact information. Sender details including email address and display name used in the 'From' field of outgoing emails, supporting localized sender names for multilingual communications. """ from: EmailSenderInput! """ Primary email recipient contact information. List of primary recipients who will receive the email in their main inbox, visible to all recipients. Supports multiple identification methods including direct email addresses and system user references. Validation: When provided, array must not be empty and must contain unique entries. """ tos: [EmailContactInput!] """ Carbon copy recipient contact information. List of recipients who will receive a copy of the email, visible to all recipients in the 'CC' field for transparency. Useful for keeping stakeholders informed. Validation: When provided, array must not be empty and must contain unique entries. """ ccs: [EmailContactInput!] """ Blind carbon copy recipient contact information. List of recipients who will receive a copy of the email without being visible to other recipients, maintaining privacy while ensuring necessary parties are informed. Validation: When provided, array must not be empty and must contain unique entries. """ bccs: [EmailContactInput!] } """ Email template update data with email-specific configuration. Extends base template update functionality with email-specific fields including subject lines, sender information, recipients, and attachment handling. All fields are optional for partial updates. """ input EmailTemplateUpdateInput { """ Updated localized template names for different languages. Human-readable names for the template in various languages, used for template identification and management in multilingual environments. Validation: When provided, array must not be empty and must contain unique language entries. """ names: [LocalizedStringInput!] """ Updated Handlebars template content for each supported language. The actual template markup using Handlebars syntax for dynamic content generation, stored per language for localization support. Validation: When provided, array must not be empty and must contain unique language entries. """ contents: [LocalizedTemplateContentInput!] """ Updated GraphQL query for additional data enrichment. Custom query executed before template rendering to fetch supplementary data not included in the original event payload, enabling rich template content with external data sources. """ customQuery: String """ Updated variables for custom GraphQL query execution. JSON object containing variables used in the custom query, supports Handlebars expressions for dynamic variable generation based on event data. Only valid when customQuery is provided or already exists. """ queryVariables: String """ Updated localized email subject lines with dynamic content support. Email subject text for each language with Handlebars variable support for personalized subject lines based on recipient and context data. Validation: When provided, array must not be empty and must contain unique language entries. """ subjects: [LocalizedStringInput!] """ Updated email sender contact information. Sender details including email address and display name used in the 'From' field of outgoing emails, supporting localized sender names for multilingual communications. """ from: EmailSenderInput """ Updated primary email recipient contact information. List of primary recipients who will receive the email in their main inbox, visible to all recipients. Supports multiple identification methods including direct email addresses and system user references. Validation: When provided, array must not be empty and must contain unique entries. """ tos: [EmailContactInput!] """ Updated carbon copy recipient contact information. List of recipients who will receive a copy of the email, visible to all recipients in the 'CC' field for transparency. Useful for keeping stakeholders informed. Validation: When provided, array must not be empty and must contain unique entries. """ ccs: [EmailContactInput!] """ Updated blind carbon copy recipient contact information. List of recipients who will receive a copy of the email without being visible to other recipients, maintaining privacy while ensuring necessary parties are informed. Validation: When provided, array must not be empty and must contain unique entries. """ bccs: [EmailContactInput!] } """ Multi-factor authentication factor details for enhanced account security. Represents a single authentication factor (such as SMS or authenticator app) that has been enrolled for a user account to provide additional security beyond password authentication. """ type EnrolledFactor { """ Unique identifier for this authentication factor. System-generated ID that uniquely identifies this specific multi-factor authentication method for the user. """ factorId: String! """ Phone number associated with this authentication factor. The phone number used for SMS-based multi-factor authentication. Should be in international format for optimal delivery. """ phoneNumber: String! } """ Paginated response containing event action configurations. Provides search results with pagination metadata including total count, current page, and offset information for efficient data retrieval and navigation. """ type EventActionConfigResponse { """List of items of type IEventActionConfig""" items: [IEventActionConfig!]! """Total number of items found""" itemsFound: Int! """The amount of items to show per page""" offset: Int! """The current page""" page: Int! """Total amount of pages""" pages: Int! """Start position of the current page""" start: Int! """End position of the current page""" end: Int! } """ Search criteria for filtering and paginating event action configurations. Provides comprehensive filtering options including trigger types, custom codes, pagination controls, and sorting preferences for efficient data retrieval. """ input EventActionConfigSearchInput { """ Filter by specific event trigger types. Allows filtering configurations by one or more trigger types. Each trigger must be unique in the array. """ triggers: [EventTrigger!] """ Filter by custom event codes. Search for configurations with specific custom event codes. Each code must be unique in the array and is used for CUSTOM_EVENT trigger types. """ codes: [String!] """ Number of items to return per page. Controls pagination by specifying how many results to include in each page. Must be a positive integer. """ offset: Int = 12 """ Page number for pagination. Specifies which page of results to return. Must be a positive integer starting from 1. """ page: Int = 1 """ Filter by channel identifiers. Search for configurations that are associated with specific communication channels. Each channel must be unique in the array. """ channelIds: [Int!] """ Sorting configuration for result ordering. Defines how results should be sorted. Multiple sort criteria can be applied in order of priority. Each sort input must be unique. """ sortInputs: [EventActionConfigSortInput!] } """Fields by which EventActionConfig can be sorted in search queries.""" enum EventActionConfigSortField { """ Sort by the event trigger type that activates the action configuration. """ TRIGGER """ Sort by the timestamp when the event action configuration was last updated. """ LAST_MODIFIED_AT """ Sort by the timestamp when the event action configuration was initially created. """ CREATED_AT } input EventActionConfigSortInput { """Field to sort by""" field: EventActionConfigSortField! """The sort order ASC/DESC""" order: SortOrder! } """ Event action configuration for email automation. Defines automated email sending based on templates when system events occur. Includes template references and recipient settings for reliable email delivery. """ type EventToEmailConfig implements IEventActionConfig { """ Unique identifier for the event action configuration. Uses UUID v7 format for chronological ordering and global uniqueness across the system. """ id: String! """ System event that activates this action configuration. Defines which event type will cause this automation to execute, enabling event-driven workflow processing. """ trigger: EventTrigger! """ Custom event identifier for CUSTOM_EVENT triggers. Required when trigger type is CUSTOM_EVENT. Used to match and execute specific configurations when custom events are triggered. """ code: String """ Timestamp when the event action configuration was initially created. Provides audit trail information for tracking configuration lifecycle and changes. """ createdAt: DateTime! """ Timestamp when the event action configuration was last updated. Provides audit trail information for tracking recent changes and configuration history. """ lastModifiedAt: DateTime! """ User identifier who created this event action configuration. Provides audit trail information for tracking configuration ownership and accountability. """ createdBy: Int """ User identifier who last modified this event action configuration. Provides audit trail information for tracking recent changes and accountability. """ lastModifiedBy: Int """ Localized display names for the event action configuration. Provides human-readable names in multiple languages for user interface display and identification purposes. """ names( """ Language code filter for localized content. Filters localized string results to return only entries matching the specified language code. When omitted, returns all available language variants. """ language: String ): [LocalizedString!]! """ Array of channel identifiers for filtering event action configurations. Used to restrict event action configurations to specific communication channels. When omitted, returns all channels. """ channelIds: [Int!] """ Reference to the email template for message content. Must be a valid UUID referencing an existing email template that defines the email structure, content, and formatting. """ emailTemplateId: String! } """ Input for creating email event action configurations. Extends base event action creation with email-specific fields including template identification for automated email sending. """ input EventToEmailConfigCreateInput { """ Display names in multiple languages. Must contain at least one localized name. Each language entry must be unique and properly validated. """ names: [LocalizedStringInput!]! """ System event that activates this action configuration. Defines which event type will cause this automation to execute, enabling event-driven workflow processing. """ trigger: EventTrigger! """ Custom event code for CUSTOM_EVENT triggers. Required when trigger is CUSTOM_EVENT. Maximum length of 64 characters. Used to identify which configurations to execute for custom events. """ code: String """ Array of channel identifiers for filtering event action configurations. Used to restrict event action configurations to specific communication channels. When omitted, returns all channels. """ channelIds: [Int!] """ Email template identifier for message content. Must be a valid UUID format referencing an existing email template in the system. The template defines the email content, subject, and formatting. """ emailTemplateId: String! } """ Input for updating email event action configurations. Extends base event action updates with email-specific fields. Only provided fields will be updated. """ input EventToEmailConfigUpdateInput { """ Updated display names in multiple languages. When provided, must contain at least one localized name. Each language entry must be unique and properly validated. """ names: [LocalizedStringInput!] """ System event that activates this action configuration. Defines which event type will cause this automation to execute, enabling event-driven workflow processing. """ trigger: EventTrigger """ Updated custom event code for CUSTOM_EVENT triggers. Maximum length of 64 characters. Used to identify which configurations to execute for custom events. """ code: String """ Array of channel identifiers for filtering event action configurations. Used to restrict event action configurations to specific communication channels. When omitted, returns all channels. """ channelIds: [Int!] """ Updated email template identifier for message content. Must be a valid UUID format referencing an existing email template in the system. The template defines the email content, subject, and formatting. """ emailTemplateId: String } """ Event action configuration for webhook automation. Defines automated HTTP POST requests to external endpoints when system events occur. Includes URL destination, authentication settings, and security configurations for reliable webhook delivery. """ type EventToWebHookConfig implements IEventActionConfig { """ Unique identifier for the event action configuration. Uses UUID v7 format for chronological ordering and global uniqueness across the system. """ id: String! """ System event that activates this action configuration. Defines which event type will cause this automation to execute, enabling event-driven workflow processing. """ trigger: EventTrigger! """ Custom event identifier for CUSTOM_EVENT triggers. Required when trigger type is CUSTOM_EVENT. Used to match and execute specific configurations when custom events are triggered. """ code: String """ Timestamp when the event action configuration was initially created. Provides audit trail information for tracking configuration lifecycle and changes. """ createdAt: DateTime! """ Timestamp when the event action configuration was last updated. Provides audit trail information for tracking recent changes and configuration history. """ lastModifiedAt: DateTime! """ User identifier who created this event action configuration. Provides audit trail information for tracking configuration ownership and accountability. """ createdBy: Int """ User identifier who last modified this event action configuration. Provides audit trail information for tracking recent changes and accountability. """ lastModifiedBy: Int """ Localized display names for the event action configuration. Provides human-readable names in multiple languages for user interface display and identification purposes. """ names( """ Language code filter for localized content. Filters localized string results to return only entries matching the specified language code. When omitted, returns all available language variants. """ language: String ): [LocalizedString!]! """ Array of channel identifiers for filtering event action configurations. Used to restrict event action configurations to specific communication channels. When omitted, returns all channels. """ channelIds: [Int!] """ Target webhook endpoint for HTTP POST requests. Must be a secure HTTPS URL where event payloads will be sent for external system integration and automation. """ url: String! """ The salt used to generate HMAC-SHA256 signature for webhook authentication. When configured, the webhook will include an 'X-Propeller-Signature' header with format 'sha256='. To verify the signature: 1) JSON stringify the payload 2) Generate HMAC-SHA256 using this salt and the stringified payload 3) Compare with the received signature using crypto.timingSafeEqual() to prevent timing attacks Example (Node.js): const expectedSig = crypto.createHmac('sha256', salt).update(JSON.stringify(payload), 'utf8').digest('hex'); const receivedSig = signature.replace('sha256=', ''); return crypto.timingSafeEqual(Buffer.from(expectedSig, 'hex'), Buffer.from(receivedSig, 'hex')); """ signatureSalt: String """ Username for HTTP Basic Authentication. Used together with basicAuthPassword to provide authentication credentials for webhook requests. Both username and password must be provided or both omitted. """ basicAuthUsername: String } """ Input for creating webhook event action configurations. Extends base event action creation with webhook-specific fields including URL endpoint, authentication, and security settings for HTTP POST requests. """ input EventToWebHookConfigCreateInput { """ Display names in multiple languages. Must contain at least one localized name. Each language entry must be unique and properly validated. """ names: [LocalizedStringInput!]! """ System event that activates this action configuration. Defines which event type will cause this automation to execute, enabling event-driven workflow processing. """ trigger: EventTrigger! """ Custom event code for CUSTOM_EVENT triggers. Required when trigger is CUSTOM_EVENT. Maximum length of 64 characters. Used to identify which configurations to execute for custom events. """ code: String """ Array of channel identifiers for filtering event action configurations. Used to restrict event action configurations to specific communication channels. When omitted, returns all channels. """ channelIds: [Int!] """ HTTPS webhook endpoint URL. Must be a valid HTTPS URL with protocol specified. Only secure HTTPS connections are allowed for webhook delivery to ensure data security. """ url: String! """ The salt used to generate HMAC-SHA256 signature for webhook authentication. When configured, the webhook will include an 'X-Propeller-Signature' header with format 'sha256='. To verify the signature: 1) JSON stringify the payload 2) Generate HMAC-SHA256 using this salt and the stringified payload 3) Compare with the received signature using crypto.timingSafeEqual() to prevent timing attacks Example (Node.js): const expectedSig = crypto.createHmac('sha256', salt).update(JSON.stringify(payload), 'utf8').digest('hex'); const receivedSig = signature.replace('sha256=', ''); return crypto.timingSafeEqual(Buffer.from(expectedSig, 'hex'), Buffer.from(receivedSig, 'hex')); """ signatureSalt: String """ Basic authentication username. When provided, must be used together with basicAuthPassword. Both username and password must be provided or both must be omitted for valid authentication configuration. """ basicAuthUsername: String """ Basic authentication password. When provided, must be used together with basicAuthUsername. Both username and password must be provided or both must be omitted for valid authentication configuration. """ basicAuthPassword: String } """ Input for updating webhook event action configurations. Extends base event action updates with webhook-specific fields. Only provided fields will be updated, others remain unchanged. """ input EventToWebHookConfigUpdateInput { """ Updated display names in multiple languages. When provided, must contain at least one localized name. Each language entry must be unique and properly validated. """ names: [LocalizedStringInput!] """ System event that activates this action configuration. Defines which event type will cause this automation to execute, enabling event-driven workflow processing. """ trigger: EventTrigger """ Updated custom event code for CUSTOM_EVENT triggers. Maximum length of 64 characters. Used to identify which configurations to execute for custom events. """ code: String """ Array of channel identifiers for filtering event action configurations. Used to restrict event action configurations to specific communication channels. When omitted, returns all channels. """ channelIds: [Int!] """ Updated HTTPS webhook endpoint URL. Must be a valid HTTPS URL with protocol specified. Only secure HTTPS connections are allowed for webhook delivery to ensure data security. """ url: String """ The salt used to generate HMAC-SHA256 signature for webhook authentication. When configured, the webhook will include an 'X-Propeller-Signature' header with format 'sha256='. To verify the signature: 1) JSON stringify the payload 2) Generate HMAC-SHA256 using this salt and the stringified payload 3) Compare with the received signature using crypto.timingSafeEqual() to prevent timing attacks Example (Node.js): const expectedSig = crypto.createHmac('sha256', salt).update(JSON.stringify(payload), 'utf8').digest('hex'); const receivedSig = signature.replace('sha256=', ''); return crypto.timingSafeEqual(Buffer.from(expectedSig, 'hex'), Buffer.from(receivedSig, 'hex')); """ signatureSalt: String """ Updated basic authentication username. When provided, must be used together with basicAuthPassword. Both username and password must be provided or both must be omitted for valid authentication configuration. """ basicAuthUsername: String """ Updated basic authentication password. When provided, must be used together with basicAuthUsername. Both username and password must be provided or both must be omitted for valid authentication configuration. """ basicAuthPassword: String } """ Events published by the Propeller system where the Event Action Manager can subscribe to and execute an Action. """ enum EventTrigger { """Event triggered for sending a regular order confirmation e-mail.""" ORDER_SEND_CONFIRMATION """ Event triggered to send the confirmation e-mail after a quote is requested. """ QUOTE_SEND_REQUEST """ Event triggered to send a quote to a senior account manager for validation. """ QUOTE_SEND_VALIDATION """Event triggered to send a quote proposal to the customer.""" QUOTE_SEND """Event triggered when a new contact is created.""" CONTACT_CREATED """Event triggered when an existing contact is updated.""" CONTACT_UPDATED """Event triggered when an existing contact is deleted.""" CONTACT_DELETED """Event triggered when multiple contacts are updated.""" CONTACT_BULK """Event triggered to send a welcome e-mail to a new contact.""" CONTACT_SEND_WELCOME_EMAIL """Event triggered when a new customer is created.""" CUSTOMER_CREATED """Event triggered when an existing customer is updated.""" CUSTOMER_UPDATED """Event triggered when an existing customer is deleted.""" CUSTOMER_DELETED """Event triggered when multiple customers are updated.""" CUSTOMER_BULK """Event triggered to send a welcome e-mail to a new customer.""" CUSTOMER_SEND_WELCOME_EMAIL """Event triggered when a new company is created.""" COMPANY_CREATED """Event triggered when an existing company is updated.""" COMPANY_UPDATED """Event triggered when an existing company is deleted.""" COMPANY_DELETED """Event triggered when multiple companies are updated.""" COMPANY_BULK """ Event triggered to send a password reset e-mail to a contact or customer. """ SEND_RESET_PASSWORD """ Event triggered to send a initial set password e-mail to a contact or customer. """ SEND_INIT_PASSWORD """Event triggered when a new order or quote is created.""" ORDER_CREATED """Event triggered when an existing order or quote is deleted.""" ORDER_DELETED """Event triggered when an existing order or quote is updated.""" ORDER_UPDATED """Event triggered when multiple orders are updated.""" ORDER_BULK """ Event triggered for custom business logic execution. Allows triggering event actions based on custom event codes defined in the system. Used for flexible automation workflows that don't fit standard system events. """ CUSTOM_EVENT """ Event triggered to send the e-mail to authorization managers when a cart is pending purchase authorization. """ CART_SEND_REQUEST_PURCHASE_AUTHORIZATION } """ Parameters for exchanging a refresh token for new access tokens. Contains the refresh token that will be validated and exchanged for fresh authentication tokens to extend the user's session. """ input ExchangeRefreshTokenInput { """ Valid refresh token to exchange for new access tokens. Must be a currently valid refresh token that was previously issued during authentication. The token will be validated before new tokens are issued. """ refreshToken: String! } """ Input for referencing entities from external systems. Used to establish connections between internal entities and their counterparts in external systems for data synchronization and cross-platform integration. """ input ExternalReferenceInput { """ External system identifier. Name or code of the external system that contains the referenced entity. Maximum length is 32 characters. """ source: String! """ Entity identifier within the external system. Unique identifier used by the external system to reference this entity. Maximum length is 64 characters. """ sourceId: String! } type FavoriteList { """ Unique identifier for the favorite list. This is a MongoDB ObjectId that serves as the primary key for the favorite list. Use this ID for all operations that reference this specific favorite list. The ID is automatically generated when the list is created and cannot be changed. Format: 24-character hexadecimal string (e.g., "67d2a7d52dfe2a405d3bd5b9") """ id: ID! """ The descriptive name of the favorite list. This name helps users identify the purpose and content of the list. A URL-friendly slug is automatically generated from this name. Validation constraints: - Required field (cannot be empty) - Maximum length: 64 characters - Must be unique within the owner's scope (company, contact, or customer) - Supports Unicode characters for international use The name is used for: - Display in user interfaces - Automatic slug generation for URLs - Search and filtering operations - Uniqueness validation within owner scope """ name: String! """ The unique identifier of the company that owns this favorite list. When present, this favorite list belongs to the specified company. Only one of companyId, contactId, or customerId can be set. Validation constraints: - Must be a positive integer - Must reference an existing company in the system - Mutually exclusive with contactId and customerId - Cannot be changed after list creation Use this for: - Company-specific product catalogs - B2B procurement lists - Corporate inventory management """ companyId: Int """ The unique identifier of the contact that owns this favorite list. When present, this favorite list belongs to the specified contact. Only one of companyId, contactId, or customerId can be set. Validation constraints: - Must be a positive integer - Must reference an existing contact in the system - Mutually exclusive with companyId and customerId - Cannot be changed after list creation Use this for: - Personal contact lists - Sales representative collections - Individual user preferences """ contactId: Int """ The unique identifier of the customer that owns this favorite list. When present, this favorite list belongs to the specified customer. Only one of companyId, contactId, or customerId can be set. Validation constraints: - Must be a positive integer - Must reference an existing customer in the system - Mutually exclusive with companyId and contactId - Cannot be changed after list creation Use this for: - Customer shopping lists - Personal product collections - End-user favorites and wishlists """ customerId: Int """ Indicates whether this favorite list is marked as a default list. Default lists have special significance in the system and may be automatically selected or prioritized in user interfaces and business logic. Validation constraints: - Must be a boolean value (true or false) - Default value: false - Only one default list per owner is typically allowed Use cases for default lists: - Primary shopping list for customers - Main product catalog for companies - Default collection for sales representatives """ isDefault: Boolean! """ A URL-friendly slug automatically generated from the list name. This slug can be used for creating user-friendly URLs and is automatically updated when the list name changes. Characteristics: - Automatically generated from the name field - Contains only lowercase letters, numbers, and hyphens - Unique within the owner's scope - Updated automatically when name changes - Cannot be set manually Use cases: - SEO-friendly URLs - Human-readable identifiers - URL routing and navigation - API endpoint references """ slug: String! """ The timestamp when this favorite list was first created. This value is automatically set when the list is created and never changes. Characteristics: - Automatically set on creation - Cannot be modified after creation - ISO 8601 format in responses - Used for audit trails and compliance Use cases: - Audit logging and compliance - Chronological sorting - Date range filtering in searches - Analytics and reporting - Data retention policies """ createdAt: DateTime! """ The timestamp when this favorite list was last modified. This value is automatically updated whenever the list name, content, or properties are changed. Characteristics: - Automatically updated on any modification - ISO 8601 format in responses - Tracks all types of changes (name, items, settings) - Used for change tracking and synchronization Use cases: - Change detection and synchronization - Conflict resolution in concurrent updates - Cache invalidation strategies - Analytics and usage tracking - Data freshness validation Triggers for updates: - Name changes - Item additions or removals - Default status changes - Any field modifications """ updatedAt: DateTime! products(input: ProductSearchInput): ProductsResponse clusters(input: ProductSearchInput): ProductsResponse company: Company contact: Contact customer: Customer } input FavoriteListsBaseSearchInput { """ Text search filter for favorite list names. Performs a partial, case-sensitive match on the favorite list name field. Use this to find lists with names containing the specified text. Maximum length is 64 characters. """ name: String """ Filter by default list status. When true, returns only favorite lists marked as default. When false, returns only non-default lists. When omitted, returns both default and non-default lists. """ isDefault: Boolean """ Page number for pagination. Determines which page of results to return. Must be a positive integer starting from 1. Default value is 1 if not specified. """ page: Int = 1 """ Number of items per page for pagination. Controls how many favorite lists are returned in each page. Must be a positive integer. Default value is 12 if not specified. """ offset: Int = 12 } """ Input for creating a new favorite list. This input type defines all the required and optional fields for creating a favorite list. At least one owner (companyId, contactId, or customerId) must be specified. Required fields: - name: Descriptive name for the list (max 64 characters) - At least one owner ID (companyId, contactId, or customerId) Optional fields: - productIds or productSources: Products to include - clusterIds or clusterSources: Clusters to include - isDefault: Whether this is a default list Validation rules: - Name must be unique within owner scope - Only one owner type can be specified - Cannot mix internal IDs with external sources for same item type - All referenced IDs must exist in the system """ input FavoriteListsCreateInput { """ Array of unique product identifiers to include in the favorite list. Each ID must be a positive integer representing a valid product in the system. Duplicate values are automatically removed during processing. Cannot be used together with productSources in the same request. Validation constraints: - Each ID must be a positive integer (minimum: 1) - Array must contain unique values only - Each ID must reference an existing product in the system - Cannot be combined with productSources in the same request Use cases: - Adding products to shopping lists - Building product catalogs - Creating curated collections - Inventory management """ productIds: [Int!] """ Array of product source identifiers for external system integration. Use this when referencing products from external systems that are not directly managed in the internal catalog. Each source must contain a valid name and external ID combination. Cannot be used together with productIds in the same request - choose one approach. Validation constraints: - Each source must have a valid name and id field - Array must contain unique combinations - Cannot be combined with productIds in the same request - Source names must match configured external systems Use cases: - Integration with external product catalogs - Cross-platform product synchronization - Third-party marketplace integration """ productSources: [SourceInput!] """ Array of unique cluster identifiers to include in the favorite list. Each ID must be a positive integer representing a valid product cluster in the system. Duplicate values are automatically removed during processing. Cannot be used together with clusterSources in the same request. Validation constraints: - Each ID must be a positive integer (minimum: 1) - Array must contain unique values only - Each ID must reference an existing cluster in the system - Cannot be combined with clusterSources in the same request Use cases: - Bulk product management - Category-based organization - Hierarchical product grouping - Efficient inventory management """ clusterIds: [Int!] """ Array of cluster source identifiers for external system integration. Use this when referencing product clusters from external systems that are not directly managed in the internal catalog. Each source must contain a valid name and external ID combination. Cannot be used together with clusterIds in the same request - choose one approach. Validation constraints: - Each source must have a valid name and id field - Array must contain unique combinations - Cannot be combined with clusterIds in the same request - Source names must match configured external systems Use cases: - Integration with external cluster systems - Cross-platform cluster synchronization - Third-party category management """ clusterSources: [SourceInput!] """ Specifies whether this favorite list should be marked as a default list. Default lists have special significance in the system and may be automatically selected or prioritized in user interfaces. Only one default list per owner is typically allowed, and setting this to true may affect other default lists. Validation constraints: - Must be a boolean value (true or false) - Default value: false - Only one default list per owner is typically allowed Use cases for default lists: - Primary shopping list for customers - Main product catalog for companies - Default collection for sales representatives """ isDefault: Boolean = false """ A descriptive name for the favorite list. The name should be meaningful and help users identify the purpose of the list. A URL-friendly slug will be automatically generated from this name. Validation constraints: - Required field (cannot be empty) - Maximum length: 64 characters - Must be unique within the owner's scope (company, contact, or customer) - Supports Unicode characters for international use - Cannot contain only whitespace The name is used for: - Display in user interfaces - Automatic slug generation for URLs - Search and filtering operations - Uniqueness validation within owner scope """ name: String! """ The unique identifier of the company that owns this favorite list. Cannot be used together with contactId, customerId, or their source equivalents. Only one ownership type is allowed per favorite list. Must reference an existing company in the system. Validation constraints: - Must be a positive integer (minimum: 1) - Must reference an existing company in the system - Mutually exclusive with contactId, customerId, and their source equivalents - Cannot be changed after list creation Use this for: - Company-specific product catalogs - B2B procurement lists """ companyId: Int """ External system source identifier for the company that owns this favorite list. Use this when referencing a company from an external system that is not directly managed in the internal system. Cannot be used together with companyId or other ownership fields (contactId, customerId, contactSource, customerSource). Must contain a valid name and external ID combination. """ companySource: SourceInput """ The unique identifier of the contact that owns this favorite list. Cannot be used together with companyId, customerId, or their source equivalents. Only one ownership type is allowed per favorite list. Must reference an existing contact in the system. """ contactId: Int """ External system source identifier for the contact that owns this favorite list. Use this when referencing a contact from an external system that is not directly managed in the internal system. Cannot be used together with contactId or other ownership fields (companyId, customerId, companySource, customerSource). Must contain a valid name and external ID combination. """ contactSource: SourceInput """ The unique identifier of the customer that owns this favorite list. Cannot be used together with companyId, contactId, or their source equivalents. Only one ownership type is allowed per favorite list. Must reference an existing customer in the system. """ customerId: Int """ External system source identifier for the customer that owns this favorite list. Use this when referencing a customer from an external system that is not directly managed in the internal system. Cannot be used together with customerId or other ownership fields (companyId, contactId, companySource, contactSource). Must contain a valid name and external ID combination. """ customerSource: SourceInput } input FavoriteListsItemsInput { """ Array of unique product identifiers to add or remove from the favorite list. Each ID must be a positive integer representing a valid product in the system. Duplicate values are automatically removed during processing. Cannot be used together with productSources in the same request. """ productIds: [Int!] """ Array of product source identifiers for external system integration. Use this when referencing products from external systems that are not directly managed in the internal catalog. Each source must contain a valid name and external ID combination. Cannot be used together with productIds in the same request - choose one approach. """ productSources: [SourceInput!] """ Array of unique cluster identifiers to add or remove from the favorite list. Each ID must be a positive integer representing a valid product cluster in the system. Duplicate values are automatically removed during processing. Cannot be used together with clusterSources in the same request. """ clusterIds: [Int!] """ Array of cluster source identifiers for external system integration. Use this when referencing product clusters from external systems that are not directly managed in the internal catalog. Each source must contain a valid name and external ID combination. Cannot be used together with clusterIds in the same request - choose one approach. """ clusterSources: [SourceInput!] } type FavoriteListsResponse { """List of items of type FavoriteList""" items: [FavoriteList!]! """Total number of items found""" itemsFound: Int! """The amount of items to show per page""" offset: Int! """The current page""" page: Int! """Total amount of pages""" pages: Int! """Start position of the current page""" start: Int! """End position of the current page""" end: Int! } input FavoriteListsSearchInput { """ Text search filter for favorite list names. Performs a partial, case-sensitive match on the favorite list name field. Use this to find lists with names containing the specified text. Maximum length is 64 characters. """ name: String """ Filter by default list status. When true, returns only favorite lists marked as default. When false, returns only non-default lists. When omitted, returns both default and non-default lists. """ isDefault: Boolean """ Page number for pagination. Determines which page of results to return. Must be a positive integer starting from 1. Default value is 1 if not specified. """ page: Int = 1 """ Number of items per page for pagination. Controls how many favorite lists are returned in each page. Must be a positive integer. Default value is 12 if not specified. """ offset: Int = 12 """ Filter by company ownership using internal company ID. Returns favorite lists that belong to the specified company. Cannot be used with other ownership filters (contact/customer) in the same request. Must reference an existing company in the system. """ companyId: Int """ Filter by company ownership using external source identifier. Use this when referencing a company from an external system that is not directly managed in the internal system. Cannot be used with other ownership filters or companyId in the same request. Must contain a valid name and external ID combination. """ companySource: SourceInput """ Filter by contact ownership using internal contact ID. Returns favorite lists that belong to the specified contact. Cannot be used with other ownership filters (company/customer) in the same request. Must reference an existing contact in the system. """ contactId: Int """ Filter by contact ownership using external source identifier. Use this when referencing a contact from an external system that is not directly managed in the internal system. Cannot be used with other ownership filters or contactId in the same request. Must contain a valid name and external ID combination. """ contactSource: SourceInput """ Filter by customer ownership using internal customer ID. Returns favorite lists that belong to the specified customer. Cannot be used with other ownership filters (company/contact) in the same request. Must reference an existing customer in the system. """ customerId: Int """ Filter by customer ownership using external source identifier. Use this when referencing a customer from an external system that is not directly managed in the internal system. Cannot be used with other ownership filters or customerId in the same request. Must contain a valid name and external ID combination. """ customerSource: SourceInput """ Filter by products contained in the favorite lists. Returns favorite lists that contain ANY of the specified product IDs. Use this to find lists that include specific products. Each ID must reference an existing product in the system. """ productIds: [Int!] """ Filter by products using external source identifiers. Returns favorite lists that contain ANY of the specified product sources. Use this when referencing products from external systems that are not directly managed in the internal catalog. Each source must contain a valid name and external ID combination. """ productSources: [SourceInput!] """ Filter by clusters contained in the favorite lists. Returns favorite lists that contain ANY of the specified cluster IDs. Use this to find lists that include specific product clusters. Each ID must reference an existing cluster in the system. """ clusterIds: [Int!] """ Filter by clusters using external source identifiers. Returns favorite lists that contain ANY of the specified cluster sources. Use this when referencing clusters from external systems that are not directly managed in the internal catalog. Each source must contain a valid name and external ID combination. """ clusterSources: [SourceInput!] """ Filter by creation date range. Use this to find favorite lists created within a specific time period. Supports various date range operations like greaterThan, lessThan for flexible date filtering. Dates should be provided in ISO 8601 format. """ createdAt: DateSearchInput """ Filter by last modification date range. Use this to find favorite lists that were updated within a specific time period. Supports various date range operations like greaterThan, lessThan for flexible date filtering. Dates should be provided in ISO 8601 format. """ lastModifiedAt: DateSearchInput } input FavoriteListsUpdateInput { """ Array of unique product identifiers to include in the favorite list. Each ID must be a positive integer representing a valid product in the system. Duplicate values are automatically removed during processing. Cannot be used together with productSources in the same request. Validation constraints: - Each ID must be a positive integer (minimum: 1) - Array must contain unique values only - Each ID must reference an existing product in the system - Cannot be combined with productSources in the same request Use cases: - Adding products to shopping lists - Building product catalogs - Creating curated collections - Inventory management """ productIds: [Int!] """ Array of product source identifiers for external system integration. Use this when referencing products from external systems that are not directly managed in the internal catalog. Each source must contain a valid name and external ID combination. Cannot be used together with productIds in the same request - choose one approach. Validation constraints: - Each source must have a valid name and id field - Array must contain unique combinations - Cannot be combined with productIds in the same request - Source names must match configured external systems Use cases: - Integration with external product catalogs - Cross-platform product synchronization - Third-party marketplace integration """ productSources: [SourceInput!] """ Array of unique cluster identifiers to include in the favorite list. Each ID must be a positive integer representing a valid product cluster in the system. Duplicate values are automatically removed during processing. Cannot be used together with clusterSources in the same request. Validation constraints: - Each ID must be a positive integer (minimum: 1) - Array must contain unique values only - Each ID must reference an existing cluster in the system - Cannot be combined with clusterSources in the same request Use cases: - Bulk product management - Category-based organization - Hierarchical product grouping - Efficient inventory management """ clusterIds: [Int!] """ Array of cluster source identifiers for external system integration. Use this when referencing product clusters from external systems that are not directly managed in the internal catalog. Each source must contain a valid name and external ID combination. Cannot be used together with clusterIds in the same request - choose one approach. Validation constraints: - Each source must have a valid name and id field - Array must contain unique combinations - Cannot be combined with clusterIds in the same request - Source names must match configured external systems Use cases: - Integration with external cluster systems - Cross-platform cluster synchronization - Third-party category management """ clusterSources: [SourceInput!] """ Specifies whether this favorite list should be marked as a default list. Default lists have special significance in the system and may be automatically selected or prioritized in user interfaces. Only one default list per owner is typically allowed, and setting this to true may affect other default lists. Validation constraints: - Must be a boolean value (true or false) - Default value: false - Only one default list per owner is typically allowed Use cases for default lists: - Primary shopping list for customers - Main product catalog for companies - Default collection for sales representatives """ isDefault: Boolean = false """ A new descriptive name for the favorite list. When updated, a new URL-friendly slug will be automatically generated. The name should be meaningful and help users identify the purpose of the list. Maximum length is 64 characters and must be unique within the owner's scope. """ name: String } """ Control flags for enabling or disabling specific image transformation features """ enum FeaturesEnableDisable { """ Controls whether images can be enlarged beyond their original dimensions. When disabled, prevents upscaling to maintain image quality. When enabled, allows enlargement which may reduce quality but provides flexibility for responsive design. """ UPSCALE } """ Filtering criteria for retrieving available product attributes. Enables filtering the list of available attributes based on their properties such as visibility, searchability, and data types. Used to discover which attributes can be used for product filtering and search. """ input FilterAvailableAttributeInput { """ Filter attributes by public visibility status. When true, returns only attributes that are publicly visible to customers. When false, returns only attributes that are private or internal. When not specified, returns attributes regardless of visibility status. """ isPublic: Boolean """ Filter attributes by searchability status. When true, returns only attributes that can be used in search queries. When false, returns only attributes that are not searchable. When not specified, returns attributes regardless of searchability status. """ isSearchable: Boolean """ Filter attributes by specific IDs. List of attribute IDs to include in the results. When provided, only attributes with matching IDs will be returned. """ ids: [String!] """ Filter attributes by data types. List of attribute data types to include in the results. When provided, only attributes with matching data types will be returned. """ types: [AttributeType!] } """ Firebase-specific authentication information and metadata. Contains Firebase authentication service data including provider information, multi-factor authentication details, and identity mappings. """ type Firebase { """ Identity provider mappings and user identifiers. Contains mappings between the user's identity and various authentication providers, including provider-specific user identifiers. """ identities: JSONObject """ Primary authentication provider used for sign-in. Identifies which authentication method was used for the user's current session (e.g., 'password', 'google.com', 'facebook.com'). """ sign_in_provider: String! """ Second factor authentication method used during sign-in. When multi-factor authentication is enabled, indicates the type of second factor used (e.g., 'phone', 'totp'). """ sign_in_second_factor: String """ Identifier for the second factor authentication method. Unique identifier for the specific second factor device or method used during authentication. """ second_factor_identifier: String """ Authentication environment identifier. Identifies the specific authentication environment or tenant context for this user session. """ tenant: String } """ Controls how images are resized and positioned within specified dimensions while maintaining aspect ratio. Only effective when both width and height are specified. """ enum Fit { """ Scales the image to fit entirely within the specified dimensions, preserving aspect ratio. May result in letterboxing or pillarboxing if aspect ratios don't match. """ BOUNDS """ Scales the image to completely fill the specified dimensions, preserving aspect ratio. May crop parts of the image if aspect ratios don't match. """ COVER """ Resizes and crops the image from the center to exactly match the specified dimensions, potentially removing content from edges. """ CROP } type ForceReleaseLockResponse { released: Boolean! message: String } """ Output format for the transformed image, determining compression method, quality, and browser compatibility """ enum Format { """ Automatically selects the optimal format based on browser capabilities, image content, and transformation requirements """ AUTO """ AV1 Image File Format - next-generation format with superior compression and quality, supported by modern browsers """ AVIF """ Baseline JPEG format optimized for broad compatibility and sequential loading """ BJPG """ Graphics Interchange Format supporting animation and transparency, ideal for simple graphics and animations """ GIF """ Standard JPEG format with lossy compression, best for photographs and complex images """ JPG """ JPEG XL format offering better compression than JPEG with both lossy and lossless modes """ JXL """MP4 video format (H.264) for converting animated images to video""" MP4 """ Progressive JPEG that loads in multiple passes, improving perceived loading speed """ PJPG """ Progressive JPEG XL that loads incrementally for better user experience """ PJXL """ Portable Network Graphics with lossless compression, ideal for images with transparency or sharp edges """ PNG """ 8-bit PNG with 256-color palette and transparency, smaller file size than full PNG """ PNG8 """ WebP format providing excellent compression for both lossy and lossless images """ WEBP """ WebP lossless format maintaining perfect image quality with better compression than PNG """ WEBPLL """ WebP lossy format offering better compression than JPEG while maintaining quality """ WEBPLY } """ User account metadata and activity timestamps. Contains important timestamps related to user account activity, authentication events, and session management. """ type GCIPMetadata { """ Timestamp of the user's most recent successful authentication. Indicates when the user last signed in to their account, used for security monitoring and session management. """ lastSignInTime: String """ Timestamp when the user account was originally created. Records the initial account creation time, used for account age tracking and audit purposes. """ creationTime: String """ Timestamp of the most recent token refresh operation. Indicates when the user's authentication tokens were last refreshed, used for session lifecycle management. """ lastRefreshTime: String } """ Authentication provider-specific user information. Contains user profile data and identifiers from external authentication providers like Google, Facebook, or other OAuth providers. """ type GCIPProviderData { """ User identifier from the authentication provider. The unique ID assigned to the user by the external authentication provider. """ uid: String """ Authentication provider identifier. Indicates which external service provided the authentication (e.g., 'google.com', 'facebook.com'). """ providerId: String """ User's display name from the authentication provider. The name associated with the user's account on the external authentication provider. """ displayName: String """ URL to the user's profile photo from the authentication provider. Link to the user's avatar or profile picture hosted by the external authentication provider. """ photoUrl: String """ Federated identifier for the user from the authentication provider. Provider-specific identifier used for federated identity management and account linking. """ federatedId: String """ User's email address from the authentication provider. The email address associated with the user's account on the external authentication provider. """ email: String """ Raw user identifier from the authentication provider. Unprocessed user ID as provided by the external authentication service. """ rawId: String """ User's screen name or username from the authentication provider. The public username or handle associated with the user's account on the external provider. """ screenName: String """ User's phone number from the authentication provider. Phone number associated with the user's account on the external authentication provider. """ phoneNumber: String } """ Authenticated user session with comprehensive profile and token information. Represents a complete user authentication session from Google Cloud Identity Platform including profile data, authentication tokens, provider information, and security settings. Used for maintaining user sessions and accessing protected resources. """ type GCIPUser { """ Unique user identifier for authentication and authorization. Permanent identifier for the user account, either supplied during user creation or automatically generated. Used throughout the system for user identification and session management. """ uid: String! """ Primary email address for the user account. Email address used for authentication, communication, and account recovery. Must be unique across the system and serves as the primary login identifier. """ email: String """ Email verification status for account security. Indicates whether the user has verified ownership of their email address through the verification process. Affects account security and feature access. """ emailVerified: Boolean """ User's display name for personalization. Human-readable name shown in user interfaces and communications. Can be different from the email address and is used for personalized user experiences. """ displayName: String """ Profile photo URL for user avatar display. URL pointing to the user's profile picture, used for avatar display in user interfaces and social features. """ photoUrl: String """ Phone number for two-factor authentication and communication. User's phone number used for SMS-based authentication, account recovery, and optional communication preferences. """ phoneNumber: String """ Account status indicating if the user has been disabled. When true, the user account is disabled and cannot be used for authentication. Used for account suspension and security management. """ disabled: Boolean """ Anonymous session indicator for guest users. Indicates whether this is an anonymous user session without full authentication. Anonymous users have limited access to system features. """ isAnonymous: Boolean """ User account metadata and activity timestamps. Contains important timestamps related to user account activity, authentication events, and session management for auditing and security purposes. """ metadata: GCIPMetadata """ Token validity threshold timestamp. All tokens issued before this time are considered invalid. Used for security purposes when user credentials are compromised or changed. """ tokensValidAfterTime: String """ Authentication environment identifier. Identifies the specific authentication environment or tenant context for this user account. """ tenantId: String """ External authentication providers linked to this user. List of external authentication services (Google, Facebook, etc.) that can be used to authenticate this user account. """ providerData: [GCIPProviderData!] """ Encrypted password hash for security. Cryptographically hashed password used for authentication. Never exposed in plain text for security reasons. """ passwordHash: String """ Password encryption salt for enhanced security. Random data used in password hashing to prevent rainbow table attacks and enhance password security. """ passwordSalt: String """ Authentication domain for the user account. Domain context for user authentication, used for multi-domain authentication scenarios. """ authDomain: String """ Timestamp of the user's most recent login. Records when the user last successfully authenticated, used for security monitoring and session tracking. """ lastLoginAt: DateTime """ User account creation timestamp. Records when the user account was originally created in the authentication system. """ createdAt: DateTime """ JWT access token for API authentication. Short-lived token used to authenticate API requests and access protected resources. Contains user claims and permissions for authorization decisions. """ accessToken: String! """ Refresh token for session renewal. Long-lived token used to obtain new access tokens when they expire, enabling persistent user sessions without requiring re-authentication. """ refreshToken: String! """ Access token expiration timestamp. Date and time when the current access token expires and needs to be refreshed. Used for automatic token renewal and session management. """ expirationTime: DateTime """ Multi-factor authentication configuration and status. Contains information about the user's MFA setup including enrolled factors, backup codes, and authentication preferences for enhanced account security. """ multiFactor: MultiFactor } """A persons gender""" enum Gender { """Male""" M """Female""" F """Unknown""" U } """Represents a GraphQL API key with encrypted key storage""" type GqlApiKey { """Unique identifier for the API key """ id: String! """Name of the API key""" name: String! """The API key value""" key: String! """Whether the API key is active""" active: Boolean! """Roles assigned to this API key""" roles: [GqlApiKeyRole!] """Channel ID associated with this API key""" channelId: Int """Timestamp when the API key was created""" createdAt: DateTime! """Timestamp when the API key was last modified""" lastModifiedAt: DateTime! } """Input for creating a new GraphQL API key""" input GqlApiKeyCreateInput { """Name for the API key""" name: String! """Whether the API key is active""" active: Boolean! = true """Roles assigned to this API key""" roles: [GqlApiKeyRoleInput!] """ Channel ID associated with this API key, if not provided, the default channel will be used """ channelId: Int = 1 } type GqlApiKeyResponse { """List of items of type GqlApiKey""" items: [GqlApiKey!]! """Total number of items found""" itemsFound: Int! """The amount of items to show per page""" offset: Int! """The current page""" page: Int! """Total amount of pages""" pages: Int! """Start position of the current page""" start: Int! """End position of the current page""" end: Int! } """Represents a role with access level for a GraphQL API key""" type GqlApiKeyRole { """Name of the role definition""" roleDefinitionName: String! """Access level for this role""" access: RoleAccess! } """Input for defining a role with access level for a GraphQL API key""" input GqlApiKeyRoleInput { """Name of the role definition""" roleDefinitionName: String! """Access level for this role""" access: RoleAccess! } """Input for searching and filtering GraphQL API keys""" input GqlApiKeySearchInput { """Pagination page number""" page: Int! = 1 """Pagination offset number""" offset: Int! = 12 """Search by date created""" createdAt: DateSearchInput """Search by date changed""" lastModifiedAt: DateSearchInput """Inputs to sort by""" sortInputs: [GqlApiKeySortInput!] """Filter by specific IDs""" ids: [String!] """Filter by active status""" active: Boolean """Filter by channel ID""" channelIds: [Int!] } """Fields available for sorting GraphQL API keys""" enum GqlApiKeySortField { ID NAME CREATED_AT LAST_MODIFIED_AT CHANNEL_ID ACTIVE } """Input for sorting GraphQL API keys""" input GqlApiKeySortInput { """Field to sort by""" field: GqlApiKeySortField! """Sort order direction""" order: SortOrder! } """ Input for updating an existing GraphQL API key. All fields are optional - only provided fields will be updated. """ input GqlApiKeyUpdateInput { """Name for the API key""" name: String """Whether the API key is active""" active: Boolean = true """Roles assigned to this API key""" roles: [GqlApiKeyRoleInput!] """ Channel ID associated with this API key, if not provided, the default channel will be used """ channelId: Int } """ Decimal range boundaries for numeric attribute filtering. Defines the minimum and maximum decimal values found in search results for a numeric attribute, used for building precise range slider filters and decimal input controls. """ interface IAttributeDecimalRangeFilter { """ Minimum decimal value found for this attribute in current results. The lowest decimal value present in the search results for this attribute, used as the lower bound for precise range filtering controls. """ min: Float """ Maximum decimal value found for this attribute in current results. The highest decimal value present in the search results for this attribute, used as the upper bound for precise range filtering controls. """ max: Float } """ Filterable attribute with available values and ranges for product search. Represents a product attribute that can be used for filtering search results, containing all available values and ranges found in the current result set. Used for building faceted search interfaces and attribute-based product filtering. """ interface IAttributeFilter { """ Unique identifier of the product attribute. System-generated ID that uniquely identifies this attribute across the catalog, used for referencing the attribute in filters and search operations. """ id: String! """ Data type of the attribute values. Specifies the format for attribute values, determining how the attribute should be processed, displayed, and filtered in search interfaces. """ type: AttributeType! """ Available text-based filter values for this attribute. Collection of distinct text values found in the current search results for this attribute, along with their occurrence counts. Used for building checkbox or list-based filters in search interfaces. """ textFilters: [AttributeTextFilter!] """ Numeric range boundaries for integer-type attributes. Minimum and maximum integer values found in the current search results for this attribute, used for building range slider or numeric input filters. """ integerRangeFilter: AttributeIntegerRangeFilter """ Numeric range boundaries for decimal-type attributes. Minimum and maximum decimal values found in the current search results for this attribute, used for building precise range filters for measurements and prices. """ decimalRangeFilter: AttributeDecimalRangeFilter } """ Integer range boundaries for numeric attribute filtering. Defines the minimum and maximum integer values found in search results for a numeric attribute, used for building range slider filters and numeric input controls. """ interface IAttributeIntegerRangeFilter { """ Minimum integer value found for this attribute in current results. The lowest integer value present in the search results for this attribute, used as the lower bound for range filtering controls. """ min: Int """ Maximum integer value found for this attribute in current results. The highest integer value present in the search results for this attribute, used as the upper bound for range filtering controls. """ max: Int } """ Text-based attribute filter value with product counts and selection state. Represents a specific text value for an attribute that can be used for filtering products, including occurrence counts and selection status for building interactive filter interfaces. """ interface IAttributeTextFilter { """ Attribute value text for filtering. The actual text value of the attribute that customers can select to filter products. This is the display value shown in filter interfaces. """ value: String! """ Number of products matching this value with current filters applied. Count of products that have this attribute value and also match all currently applied search filters and criteria. Used for showing relevant filter options. """ count: Int! """ Total number of products with this value across all results. Count of products that have this attribute value without any filters applied, representing the complete availability of this value in the catalog. """ countTotal: Int """ Number of products with this value excluding other attribute filters. Count of products that have this attribute value with all other attribute filters removed but keeping search terms and category filters. Used for showing filter impact. """ countActive: Int """ Selection status of this attribute value in current search. Indicates whether this attribute value is currently selected as an active filter in the customer's search criteria. """ isSelected: Boolean! } """ Base interface for all product types in the system. Defines common properties shared across products and clusters. This interface provides a unified structure for product-related data while allowing for type-specific implementations. """ interface IBaseProduct { """Globally unique identifier for the product or cluster.""" uuid: ID! """ Numeric identifier retained for compatibility with legacy integrations. """ id: Int! """ Discriminator that distinguishes between a product and a cluster within the shared catalogue. """ type: ProductClass! """ Stock keeping unit. Uniquely identifies a product within the catalogue. """ sku: String! """Primary language for this product""" language: String @deprecated(reason: "No longer used, defaults to 'NL'") """Whether the product is hidden from public display""" hidden: YesNo! """Priority for sorting and display""" priority: Int """Default category ID""" categoryId: Int! """All category IDs this base product belongs to""" categoryIds: [Int!]! """ The default language for this product or cluster, this is the language to fall back too, when there is no translation available in a specific language. """ defaultLanguage: String! """ Localized names shown to end users in catalog and search surfaces. The catalogue's default language must be present. """ names(language: String): [LocalizedString!]! """Localized long-form descriptions shown on product detail surfaces.""" descriptions(language: String): [LocalizedString!]! """Localized short descriptions surfaced in listings and tiles.""" shortDescriptions(language: String): [LocalizedString!]! """ URL-friendly identifiers, one per language, used in human-readable links. """ slugs(language: String): [LocalizedString!]! """Localized short labels shown when the full name is too long.""" shortNames(language: String): [LocalizedString!]! """Localized titles surfaced in search engine result pages.""" metadataTitles: [LocalizedString!]! """Localized descriptive snippets surfaced in search engine result pages.""" metadataDescriptions: [LocalizedString!]! """ Localized keyword lists used by search engines, supplied as comma-separated values. """ metadataKeywords: [LocalizedString!]! """ Localized canonical URLs that search engines should treat as the authoritative location. """ metadataCanonicalUrls: [LocalizedString!]! """Source/SourceId combinations for external system lookup""" sources: [Source!]! """Timestamp marking when the record was created, in UTC ISO 8601 format.""" createdAt: DateTime! """ Timestamp marking the last modification of the record, in UTC ISO 8601 format. """ lastModifiedAt: DateTime! class: ProductClass! @deprecated(reason: "Use 'type' field instead. This field will be removed in a future version.") } """ Interface for the BaseProduct Type, where both Products and clusters derive from """ interface IBaseProductSearch { """Resource primary identifier""" id: Int! """The class of the request resource""" class: ProductClass! """The UUID of the product or cluster""" uuid: String! """The creation date of this product or cluster""" createdAt: DateTime """The last modified date of this product or cluster""" lastModifiedAt: DateTime """The date this product or cluster was indexed""" indexedAt: DateTime """Whether this product or cluster is marked for deleted""" isDeleted: Boolean! """The status of this product or cluster""" status: ProductStatus! """ The effective price for this product/cluster based on priceSheetId priority. Computed at query time using the provided priceSheetIds, falling back to default price. """ effectivePrice: Float } """ Base interface for all message templates in the system. Defines common properties and functionality shared between email templates and document templates, including content management, localization, data integration, and metadata tracking. """ interface IBaseTemplate { """ Unique identifier for the message template. Used to reference and manage specific templates throughout the messaging system for emails, documents, and notifications. """ id: String! """ Handlebars template content for each supported language. The actual template markup using Handlebars syntax for dynamic content generation, stored per language for localization support. """ contents: [LocalizedTemplateContent!] """ Localized template names for different languages. Human-readable names for the template in various languages, used for template identification and management in multilingual environments. """ names: [LocalizedString!]! """ Compiled template content for rendering. The processed template content ready for variable substitution and message generation, derived from the localized contents based on the target language. """ content: String """ GraphQL query for additional data enrichment. Custom query executed before template rendering to fetch supplementary data not included in the original event payload, enabling rich template content. """ customQuery: String """ Variables for custom GraphQL query execution. JSON object containing variables used in the custom query, supports Handlebars expressions for dynamic variable generation based on event data. """ queryVariables: String """ Template creation timestamp. Date and time when this template was initially created in the system, used for auditing and template lifecycle management. """ createdAt: DateTime! """ Template last modification timestamp. Date and time when any template content or configuration was last updated, used for change tracking and version control. """ lastModifiedAt: DateTime! """ Template creator user identifier. ID of the user who originally created this template, used for ownership tracking and access control. """ createdBy: Int """ Template last editor user identifier. ID of the user who most recently modified this template, used for change attribution and audit trails. """ lastModifiedBy: Int } """ Interface for the BaseUser Type, where both Contacts and Customers derive from """ interface IBaseUser { """The unique identifier of the user.""" userId: Int """The debtor ID of the user.""" debtorId: String """The gender of the user.""" gender: Gender """The first name of the user.""" firstName: String! """The middle name of the user.""" middleName: String """The last name of the user.""" lastName: String! """The phone number of the user.""" phone: String """The mobile number of the user.""" mobile: String """The email of the user.""" email: String """ The login name (email) the account is linked to, generally the same as email address. When null a account has not been linked yet. """ login: String """The International Bank Account Number of the user""" iban: String """The Bank Account Number of the user""" bankAccount: String """The Bank Identification Code of the user""" bic: String """Notes about the user.""" notes: String """The primary language of the user""" primaryLanguage: String """ The expiration date of the contact. After this date expires contact will be disabled. """ expires: DateTime """External ID""" externalId: String """The date of birth of the contact.""" dateOfBirth: DateTime """Whether the user is subscribed to mailing list.""" mailingList: YesNo """Whether the user is currently logged in.""" isLoggedIn: Boolean """The creation date of this user.""" createdAt: DateTime """The last modified date of this user.""" lastModifiedAt: DateTime } """ Base interface for all business rule expression types defining common properties and behavior. Expressions are the fundamental building blocks for business rule conditions and calculations. Each expression type provides specific operators and validation logic for different data types including strings, numbers, dates, arrays, and complex aggregations. """ interface IBusinessRuleExpression { """Unique identifier for this expression within the business rule system""" id: ID! """ Data type classification of the expression determining available operators and validation rules """ type: BusinessRuleExpressionTypes! } """ Base interface for all business rule node types defining common properties and behavior. Nodes are the fundamental processing units within a business rule graph, each serving a specific function: - Input nodes receive and validate incoming data - Decision table nodes contain the core business logic and rules - Output nodes format and return the final results - Function nodes execute custom computational logic """ interface IBusinessRuleNode { """ Functional classification of the node determining its role in the business rule execution flow """ type: BusinessRuleNodeType! """Unique identifier for the node within the business rule graph""" id: ID! """ Human-readable name of the node for identification and documentation purposes """ name: String! """ Detailed explanation of the node's purpose and functionality within the business rule workflow """ description: String! } interface ICart { user: IBaseUser @deprecated(reason: "Deprecated in favor of `contact` or `customer`") } interface ICartBaseItem { itemId: String! productId: Int bundleId: String } interface ICluster { """Globally unique identifier for the product or cluster.""" uuid: ID! """ Numeric identifier retained for compatibility with legacy integrations. """ id: Int! """ Discriminator that distinguishes between a product and a cluster within the shared catalogue. """ type: ProductClass! """ Stock keeping unit. Uniquely identifies a product within the catalogue. """ sku: String! """Primary language for this product""" language: String @deprecated(reason: "No longer used, defaults to 'NL'") """Whether the product is hidden from public display""" hidden: YesNo! """Priority for sorting and display""" priority: Int """Default category ID""" categoryId: Int! """All category IDs this base product belongs to""" categoryIds: [Int!]! """ The default language for this product or cluster, this is the language to fall back too, when there is no translation available in a specific language. """ defaultLanguage: String! """ Localized names shown to end users in catalog and search surfaces. The catalogue's default language must be present. """ names(language: String): [LocalizedString!]! """Localized long-form descriptions shown on product detail surfaces.""" descriptions(language: String): [LocalizedString!]! """Localized short descriptions surfaced in listings and tiles.""" shortDescriptions(language: String): [LocalizedString!]! """ URL-friendly identifiers, one per language, used in human-readable links. """ slugs(language: String): [LocalizedString!]! """Localized short labels shown when the full name is too long.""" shortNames(language: String): [LocalizedString!]! """Localized titles surfaced in search engine result pages.""" metadataTitles: [LocalizedString!]! """Localized descriptive snippets surfaced in search engine result pages.""" metadataDescriptions: [LocalizedString!]! """ Localized keyword lists used by search engines, supplied as comma-separated values. """ metadataKeywords: [LocalizedString!]! """ Localized canonical URLs that search engines should treat as the authoritative location. """ metadataCanonicalUrls: [LocalizedString!]! """Source/SourceId combinations for external system lookup""" sources: [Source!]! """Timestamp marking when the record was created, in UTC ISO 8601 format.""" createdAt: DateTime! """ Timestamp marking the last modification of the record, in UTC ISO 8601 format. """ lastModifiedAt: DateTime! class: ProductClass! @deprecated(reason: "Use 'type' field instead. This field will be removed in a future version.") """Cluster ID (legacy field)""" clusterId: Int! } """ Drill-down navigation configuration for cluster product filtering. Defines how customers can navigate through cluster products using attribute-based filtering. Each drill-down represents a filterable attribute that helps customers narrow down product choices within a cluster. """ interface IClusterDrillDown { """ Unique identifier of the attribute used for drill-down filtering. References the specific product attribute that customers can use to filter and navigate through cluster products, such as color, size, or material. """ attributeId: String! """ Display order priority for drill-down navigation. Numeric value that determines the sequence in which drill-down filters appear in customer interfaces. Lower values appear first in the navigation flow. """ priority: Int! """ User interface display method for the drill-down filter. Specifies how customers interact with this drill-down filter, such as through radio buttons, dropdowns, image selection, or color swatches. """ displayType: ClusterDrillDownDisplayType! } interface IClusterOption { """Resource primary identifier""" id: Int! """The classID of the cluster that represents this cluster""" clusterOptionId: Int! """Indicates whether an option is required or not""" isRequired: YesNo """Indicates whether an option is hidden or not""" hidden: YesNo } interface IDiscount { id: String! """Creation date""" createdAt: DateTime! """Last modified date""" lastModifiedAt: DateTime! value: Float! quantityFrom: Int! validFrom: DateTime validTo: DateTime } """ Base interface for event action configurations. Defines the common structure for all event action types including email and webhook configurations. Provides shared fields for identification, timing, and event triggering. """ interface IEventActionConfig { """ Unique identifier for the event action configuration. Uses UUID v7 format for chronological ordering and global uniqueness across the system. """ id: String! """ System event that activates this action configuration. Defines which event type will cause this automation to execute, enabling event-driven workflow processing. """ trigger: EventTrigger! """ Custom event identifier for CUSTOM_EVENT triggers. Required when trigger type is CUSTOM_EVENT. Used to match and execute specific configurations when custom events are triggered. """ code: String """ Timestamp when the event action configuration was initially created. Provides audit trail information for tracking configuration lifecycle and changes. """ createdAt: DateTime! """ Timestamp when the event action configuration was last updated. Provides audit trail information for tracking recent changes and configuration history. """ lastModifiedAt: DateTime! """ User identifier who created this event action configuration. Provides audit trail information for tracking configuration ownership and accountability. """ createdBy: Int """ User identifier who last modified this event action configuration. Provides audit trail information for tracking recent changes and accountability. """ lastModifiedBy: Int """ Localized display names for the event action configuration. Provides human-readable names in multiple languages for user interface display and identification purposes. """ names( """ Language code filter for localized content. Filters localized string results to return only entries matching the specified language code. When omitted, returns all available language variants. """ language: String ): [LocalizedString!]! """ Array of channel identifiers for filtering event action configurations. Used to restrict event action configurations to specific communication channels. When omitted, returns all channels. """ channelIds: [Int!] } """ Input for bulk importing images from a CSV file with field mapping configuration """ input ImageCsvInput { """ CSV file containing image data for bulk import. Must be a valid CSV file with headers that match the configured field mappings. Each row represents one image to be created with the specified metadata and file references. """ file: Upload! """ Configuration mapping CSV columns to image entity fields. Defines how CSV column headers correspond to image fields. If not provided, the system will attempt to auto-map based on standard column names. Each mapping must be unique and valid. """ mappings: [ImageCsvMapping!] } """ Mapping configuration between CSV column headers and image entity fields """ input ImageCsvMapping { """ Name of the column header in the CSV file. Must exactly match the column header in the uploaded CSV file. Used to identify which CSV column contains the data for the corresponding image field. """ csvHeader: String! """ Target image field that will receive the CSV column data. Specifies which image entity field should be populated with the data from the corresponding CSV column. Each field has specific validation requirements and data format expectations. """ fieldName: ImageFieldName! } """Fields available for image CSV mapping.""" enum ImageFieldName { """[Optional][String] This MediaImage's unique identifier""" ID """[Required][String] Language of the MediaImage [Default: EN]""" LANGUAGE """ [Required][String] The alt descriptions of this MediaImage per language """ ALT_VALUE """[Required][String] The descriptions of this MediaImage per language""" DESCRIPTION_VALUE """[Required][String[]] The tags of this MediaImage per language""" TAGS_VALUES """[Required][String] MediaImage file url""" IMAGE_FILE_URI """[Required][String] MediaImage file name""" IMAGE_FILE_NAME """ [Optional][Integer] MediaImage display priority [Lower value has higher priority] - [Default: 1000] """ PRIORITY """[Optional][String] This MediaImage's linked Product.""" PRODUCT_ID """[Optional][String] This MediaImage's linked Cluster""" CLUSTER_ID """[Optional][Integer] This MediaImage's linked Category""" CATEGORY_ID """[Optional][String] This MediaImage's linked SpareParts Machine""" SPAREPARTS_MACHINE_ID } """ The metadata parameters controls whether to include metadata in the output image """ enum ImageMetadata { """ Preserve copyright notice, creator, credit line, licensor, and web statement of rights fields. """ COPYRIGHT } input ImageTransformationInput { """Friendly name for your image transformation""" name: String! """Image transformation options""" transformation: TransformationInput! } """A transformed version of an image with specific modifications applied""" type ImageVariant { """ Human-readable name for the image variant. Typically describes the transformation applied or the intended use case (e.g., 'thumbnail', 'hero-banner', 'mobile-optimized'). """ name: String! """ Language code associated with this image variant. Indicates the language context for localized image content or text overlays. Uses standard language codes like 'EN', 'DE', 'FR'. """ language: String! """ Direct URL to access the transformed image. Fully qualified URL that can be used to display or download the transformed image. The URL includes all applied transformations and optimizations. """ url: String! """ MIME type of the transformed image. Indicates the file format of the transformed image (e.g., 'image/jpeg', 'image/webp', 'image/png'). May differ from the original image format based on transformations applied. """ mimeType: String! } """ Available actions that can be executed by incentive business rules to provide customer benefits and promotional offers """ enum IncentiveActions { """ Add a specific product to the order as a bonus item without charge. Used for promotional giveaways and product bundling. """ ADD_PRODUCT_TO_BONUS_ITEMS DUPLICATE_PRODUCT_IN_BONUS_ITEMS MOVE_PRODUCT_TO_BONUS_ITEMS DUPLICATE_CHEAPEST_IN_BONUS_ITEMS """ Apply a discount to the lowest-priced item in the order. Common for 'buy X get cheapest free' promotions. """ GIVE_DISCOUNT_TO_CHEAPEST_ITEM GIVE_DISCOUNT_TO_ORDER_ITEM """ Apply a discount to the entire order total. Used for percentage or fixed amount discounts on the complete purchase. """ GIVE_DISCOUNT_TO_ORDER_TOTAL """ Override shipping costs with a specific amount. Used for free shipping promotions or special shipping rates. """ SET_SHIPPING_COSTS SET_SHIPPING_TAXCODE SET_TRANSACTION_COSTS } """ Calculation methods for applying discount values in incentive business rules """ enum IncentiveDiscountType { """Fixed amount discount applied as an absolute monetary value""" FlatFee """Proportional discount applied as a percentage of the target value""" Percentage } input IncentiveRuleOrderItemSetCellInput { """The ID of the BusinessRule that contains the table cell""" ruleId: ID! """The ID of the row the table cell""" rowId: ID! """The expressions value for this cell""" expression: BusinessRuleExpressionGroupInput """ The string value of the cell, used in output cells. Can contain a string or an expression. Strings need to be wrapped in "" """ value: String """ The localized string value of the cell, used in output cells. Used when you want a rule to generate a translated string in the output """ localizedValue: [LocalizedStringInput!] """The numeric value for this cell, used in output cells""" number: Float } input IncentiveRuleSetActionInput { ruleId: ID! rowId: ID! action: IncentiveActions! name: [LocalizedStringInput!]! productId: Int price: Float quantity: Int discount: Float discountType: IncentiveDiscountType valuePoints: Float repeat: YesNo = N """ The action code that was applied by this rule. Should match the order.actionCode field in the inputs """ actionCode: String } input IndexCategoriesInput { """Category IDs to index""" ids: [String!]! } input IndexClustersInput { """Cluster IDs to index""" ids: [String!]! } type IndexEntitiesResponse { accepted: Boolean! entityCount: Int! } input IndexProductsInput { """Product IDs to index""" ids: [String!]! } input IntegerRangeSearchInput { """Integer range operator""" operator: NumberExpressionOperator! """Integer value to search for""" value: Int! } """ Inventory record representing stock levels and location details for products. Contains comprehensive inventory information including stock quantities, supplier details and warehouse locations. """ type Inventory { """ Unique identifier for the inventory record. Primary key used to reference this specific inventory entry throughout the system and for inventory operations. """ id: ID! """ Product identifier associated with this inventory. References the specific product that this inventory record tracks, linking stock levels to product catalog entries. """ productId: Int! """ Current stock quantity available. The number of units currently in stock at this location. Used for availability calculations and stock level monitoring. """ quantity: Int! """ Cost price per unit for this inventory batch. The cost incurred to acquire each unit in this inventory batch, used for margin calculations and inventory valuation. """ costPrice: Float! """ Supplier name for this inventory batch. The company or organization that supplied the products in this inventory record, used for supplier management and procurement tracking. """ supplier: String! """ Supplier's code for cross-referencing. The supplier's own identifier used for ordering, communication, and inventory reconciliation with supplier systems. """ supplierCode: String """ Stock Keeping Unit for inventory tracking. Unique product code used for inventory management and product identification across all warehouse operations. """ sku: String! """ [Deprecated] Last modification timestamp for the inventory record. Date and time when this inventory record was last updated, used for change tracking and synchronization. """ dateModified: DateTime @deprecated(reason: "Use lastModifiedAt instead") """ Warehouse identifier where the inventory is located. References the specific warehouse or storage facility where this inventory is physically stored. """ warehouseId: Int! """ Company identifier for inventory ownership. References the company this inventory is reserved for, used for multi-tenant inventory management and reporting. """ companyId: Int """ Specific location within the warehouse. Detailed location information such as aisle, shelf, or bin number for precise inventory placement and picking operations. """ location: String! """ Estimated date for next inventory replenishment. Expected delivery date for the next shipment of this product, used for stock planning and customer communication about availability. """ nextDeliveryDate: DateTime """ Additional notes and comments about this inventory. Free-form text for storing special handling instructions, quality notes, or other relevant information about this inventory batch. """ notes: String! createdAt: DateTime! lastModifiedAt: DateTime! } """ Input for importing inventory records from a CSV file. Contains the CSV file data and optional field mappings to define how CSV columns correspond to inventory properties. Used for bulk inventory import operations with customizable field mapping. """ input InventoryCsvInput { """ CSV file containing inventory data. The uploaded CSV file must contain valid inventory data with proper headers. File size is limited and must be in CSV format with comma-separated values. """ file: Upload! """ Field mapping configuration for CSV import. Optional array of mappings that define how CSV column headers correspond to inventory fields. If not provided, default mappings will be used based on standard column names. """ mappings: [InventoryCsvMapping!] } """ Mapping configuration for CSV column to inventory field association. Defines how CSV file columns should be mapped to inventory record fields during import operations. Each mapping specifies which CSV column header corresponds to which inventory property. """ input InventoryCsvMapping { """ CSV column header name. The exact name of the column header in the CSV file that contains the data for this inventory field. Must match the header exactly as it appears in the CSV file. """ csvHeader: String! """ Target inventory field for this CSV column. Specifies which inventory property this CSV column should populate during import. The field name determines data validation rules and processing requirements. """ fieldName: InventoryFieldName! } """Response returned if delete inventory was successful.""" type InventoryDeleteResponse { """[DEPRECATED]""" messages: [String!]! @deprecated(reason: "No longer used") } enum InventoryFieldName { """ [Required][String] Unique identifier for inventory record retrieval. Used to locate and reference specific inventory entries in the system for updates, queries, and reporting operations., must be one of the following: [id, sku, supplierCode, sourceId] """ LOOKUP_KEY """ [Required][Enum] Classification of inventory storage and management type. Determines how the inventory is managed, whether it's held locally in company warehouses or managed by external suppliers for drop-shipping., must be one of the following: [local, supplier] """ INVENTORY_TYPE """ [Required][Integer] Current stock level available for this inventory record. The number of units physically available at this location, used for availability calculations and stock level monitoring. """ QUANTITY """ [Optional][String] Stock Keeping Unit for product identification. Unique alphanumeric code used for inventory tracking, order processing, and product identification across all warehouse operations., required only when lookup key is sku """ SKU """ [Optional][String] Supplier's product identification code. The supplier's own product identifier used for ordering, inventory reconciliation, and communication with supplier systems., required only when lookup key is supplierCode """ SUPPLIER_CODE """ [Optional][String] Supplier name for this inventory batch. The company or organization that supplied the products. Defaults: - 'INTERN' for locally managed inventory - Product supplier name for supplier-managed inventory, required only when lookup key is supplierCode """ SUPPLIER """ [Required][Integer] Product identifier linked to this inventory. References the specific product in the catalog that this inventory record tracks, enabling product-inventory relationships., required only when lookup key is id """ PRODUCT_ID """ [Optional][String] Data source identifier for inventory integration. Unique identifier for the system or process that created or manages this inventory record, used for data lineage and synchronization., required only when lookup key is sourceId """ SOURCE_ID """ [Optional][String] Data source name for inventory tracking. Name of the system, supplier, or process that provided this inventory data, used for integration management and data quality., required only when lookup key is sourceId """ SOURCE_NAME """ [Optional][Integer] Warehouse facility identifier. References the specific warehouse or storage facility where this inventory is physically located for fulfillment operations. """ WAREHOUSE_ID """ [Optional][Integer] Company identifier for inventory ownership. References the company that owns or manages this inventory, used for multi-tenant inventory management and reporting. """ COMPANY_ID """ [Optional][String] Company data source identifier. Identifier for the system that provided the company information, used for company data synchronization and integration. """ COMPANY_SOURCE_ID """ [Optional][String] Company data source name. Name of the system that provided the company data, used for data lineage tracking and integration management. """ COMPANY_SOURCE_NAME """ [Optional][String] Specific storage location within the warehouse. Detailed location information such as aisle, shelf, or bin number for precise inventory placement and efficient picking operations. Maximum 35 characters. """ LOCATION """ [Optional][Decimal] Unit cost for this inventory batch. The cost incurred to acquire each unit in this inventory record, used for margin calculations, inventory valuation, and profitability analysis. """ COST_PRICE """ [Optional][DateTime] Expected replenishment delivery date. Estimated date when the next shipment of this product will arrive, used for stock planning and customer availability communication. Must be in ISO8601 format. in ISO 8601 format 'YYYY-MM-DDThh:mm:ss.sssZ' (e.g., 2024-10-31T09:55:00.000Z) """ NEXT_DELIVERY_DATE """ [Optional][String] Additional information and handling instructions. Free-form text for storing special handling requirements, quality notes, or other relevant information about this inventory batch. Maximum 255 characters. """ NOTES } """ Inventory information response with associated warehouse details. Contains inventory data linked to a specific warehouse location. Used for inventory management, stock tracking, and warehouse-specific inventory operations. """ type InventoryResponse { """ Unique identifier for the inventory record. Primary key used to reference this specific inventory entry throughout the system and for inventory operations. """ id: ID! """ Product identifier associated with this inventory. References the specific product that this inventory record tracks, linking stock levels to product catalog entries. """ productId: Int! """ Current stock quantity available. The number of units currently in stock at this location. Used for availability calculations and stock level monitoring. """ quantity: Int! """ Cost price per unit for this inventory batch. The cost incurred to acquire each unit in this inventory batch, used for margin calculations and inventory valuation. """ costPrice: Float! """ Supplier name for this inventory batch. The company or organization that supplied the products in this inventory record, used for supplier management and procurement tracking. """ supplier: String! """ Supplier's code for cross-referencing. The supplier's own identifier used for ordering, communication, and inventory reconciliation with supplier systems. """ supplierCode: String """ Stock Keeping Unit for inventory tracking. Unique product code used for inventory management and product identification across all warehouse operations. """ sku: String! """ [Deprecated] Last modification timestamp for the inventory record. Date and time when this inventory record was last updated, used for change tracking and synchronization. """ dateModified: DateTime @deprecated(reason: "Use lastModifiedAt instead") """ Warehouse identifier where the inventory is located. References the specific warehouse or storage facility where this inventory is physically stored. """ warehouseId: Int! """ Company identifier for inventory ownership. References the company this inventory is reserved for, used for multi-tenant inventory management and reporting. """ companyId: Int """ Specific location within the warehouse. Detailed location information such as aisle, shelf, or bin number for precise inventory placement and picking operations. """ location: String! """ Estimated date for next inventory replenishment. Expected delivery date for the next shipment of this product, used for stock planning and customer communication about availability. """ nextDeliveryDate: DateTime """ Additional notes and comments about this inventory. Free-form text for storing special handling instructions, quality notes, or other relevant information about this inventory batch. """ notes: String! createdAt: DateTime! lastModifiedAt: DateTime! """[DEPRECATED]""" messages: [String!]! @deprecated(reason: "No longer used") """[DEPRECATED]""" total: Int! @deprecated(reason: "No longer used") """ Complete warehouse information for the inventory location. Detailed warehouse object including address, operational settings, and facility information where this inventory is stored. """ warehouse: Warehouse } """Classification of inventory storage and management types""" enum InventoryType { """ Inventory held in company-owned warehouses and storage facilities, immediately available for fulfillment """ local """ Inventory managed by external suppliers, available for drop-shipping or supplier-direct fulfillment """ supplier } interface IProduct { """Globally unique identifier for the product or cluster.""" uuid: ID! """ Numeric identifier retained for compatibility with legacy integrations. """ id: Int! """ Discriminator that distinguishes between a product and a cluster within the shared catalogue. """ type: ProductClass! """ Stock keeping unit. Uniquely identifies a product within the catalogue. """ sku: String! """Primary language for this product""" language: String @deprecated(reason: "No longer used, defaults to 'NL'") """Whether the product is hidden from public display""" hidden: YesNo! """Priority for sorting and display""" priority: Int """Default category ID""" categoryId: Int! """All category IDs this base product belongs to""" categoryIds: [Int!]! """ The default language for this product or cluster, this is the language to fall back too, when there is no translation available in a specific language. """ defaultLanguage: String! """ Localized names shown to end users in catalog and search surfaces. The catalogue's default language must be present. """ names(language: String): [LocalizedString!]! """Localized long-form descriptions shown on product detail surfaces.""" descriptions(language: String): [LocalizedString!]! """Localized short descriptions""" shortDescriptions: [LocalizedString!]! """ URL-friendly identifiers, one per language, used in human-readable links. """ slugs(language: String): [LocalizedString!]! """Localized short names for display purposes""" shortNames: [LocalizedString!]! """Localized titles surfaced in search engine result pages.""" metadataTitles: [LocalizedString!]! """Localized descriptive snippets surfaced in search engine result pages.""" metadataDescriptions: [LocalizedString!]! """ Localized keyword lists used by search engines, supplied as comma-separated values. """ metadataKeywords: [LocalizedString!]! """ Localized canonical URLs that search engines should treat as the authoritative location. """ metadataCanonicalUrls: [LocalizedString!]! """Source/SourceId combinations for external system lookup""" sources: [Source!]! """Timestamp marking when the record was created, in UTC ISO 8601 format.""" createdAt: DateTime! """ Timestamp marking the last modification of the record, in UTC ISO 8601 format. """ lastModifiedAt: DateTime! class: ProductClass! @deprecated(reason: "Use 'type' field instead. This field will be removed in a future version.") """Product ID (legacy field)""" productId: Int! """ Short name for display purposes (deprecated, returns first value from shortNames) """ shortName: String! @deprecated(reason: "Use shortNames instead") """Localized keywords""" keywords: [LocalizedString!]! """Localized custom keywords""" customKeywords: [LocalizedString!]! """Localized package descriptions""" packageDescriptions: [LocalizedString!]! """Product status""" status: ProductStatus! """Manufacturer""" manufacturer: String! """Supplier""" supplier: String! """Manufacturer code""" manufacturerCode: String! """EAN barcode""" eanCode: String! """Supplier code""" supplierCode: String! """Barcode identifier""" barCode: String """Additional status information""" statusExtra: String """Whether the product is orderable""" orderable: YesNo! """Whether product is returnable""" returnable: YesNo! """Whether product is physical (vs digital)""" physical: YesNo! """Package type""" package: String! """Package unit""" packageUnit: String! """Package unit quantity""" packageUnitQuantity: String! """Minimum quantity for ordering""" minimumQuantity: Float! """Unit value""" unit: Int! """Purchase unit configuration""" purchaseUnit: Int! """Purchase minimum quantity""" purchaseMinimumQuantity: Int! """Economic order quantity""" economicOrderQuantity: Int! """Turnover group classification""" turnoverGroup: String """Taxonomy classification""" taxonomy: String """Price group classification""" priceGroup: String """Date from which product can be ordered""" orderableFrom: DateTime """Date until which product can be ordered""" orderableTo: DateTime """Product release date""" releaseDate: DateTime """Cluster ID if assigned to cluster""" clusterId: Int } """Interface for the ProductOffer Type""" interface IProductOffer { """The id of the offer.""" id: String! """The calculated price for this offer.""" price: Float! validFrom: DateTime! validTo: DateTime! formula: String! } """ Decimal range boundaries for numeric attribute filtering. Defines the minimum and maximum decimal values found in search results for a numeric attribute, used for building precise range slider filters and decimal input controls. """ interface IProductSearchAttributeDecimalRangeFilter { """ Minimum decimal value found for this attribute in current results. The lowest decimal value present in the search results for this attribute, used as the lower bound for precise range filtering controls. """ min: Float """ Maximum decimal value found for this attribute in current results. The highest decimal value present in the search results for this attribute, used as the upper bound for precise range filtering controls. """ max: Float } """ Filterable attribute with available values and ranges for product search. Represents a product attribute that can be used for filtering search results, containing all available values and ranges found in the current result set. Used for building faceted search interfaces and attribute-based product filtering. """ interface IProductSearchAttributeFilter { """ Unique identifier of the product attribute. System-generated ID that uniquely identifies this attribute across the catalog, used for referencing the attribute in filters and search operations. """ id: String! """ Data type of the attribute values. Specifies the format for attribute values, determining how the attribute should be processed, displayed, and filtered in search interfaces. """ type: AttributeType """ Available text-based filter values for this attribute. Collection of distinct text values found in the current search results for this attribute, along with their occurrence counts. Used for building checkbox or list-based filters in search interfaces. """ textFilters: [IProductSearchAttributeTextFilter!] """ Numeric range boundaries for integer-type attributes. Minimum and maximum integer values found in the current search results for this attribute, used for building range slider or numeric input filters. """ integerRangeFilter: IProductSearchAttributeIntegerRangeFilter """ Numeric range boundaries for decimal-type attributes. Minimum and maximum decimal values found in the current search results for this attribute, used for building precise range filters for measurements and prices. """ decimalRangeFilter: IProductSearchAttributeDecimalRangeFilter } """ Integer range boundaries for numeric attribute filtering. Defines the minimum and maximum integer values found in search results for a numeric attribute, used for building range slider filters and numeric input controls. """ interface IProductSearchAttributeIntegerRangeFilter { """ Minimum integer value found for this attribute in current results. The lowest integer value present in the search results for this attribute, used as the lower bound for range filtering controls. """ min: Int """ Maximum integer value found for this attribute in current results. The highest integer value present in the search results for this attribute, used as the upper bound for range filtering controls. """ max: Int } """ Text-based attribute filter value with product counts and selection state. Represents a specific text value for an attribute that can be used for filtering products, including occurrence counts and selection status for building interactive filter interfaces. """ interface IProductSearchAttributeTextFilter { """ Attribute value text for filtering. The actual text value of the attribute that customers can select to filter products. This is the display value shown in filter interfaces. """ value: String! """ Number of products matching this value with current filters applied. Count of products that have this attribute value and also match all currently applied search filters and criteria. Used for showing relevant filter options. """ count: Int! """ Total number of products with this value across all results. Count of products that have this attribute value without any filters applied, representing the complete availability of this value in the catalog. """ countTotal: Int """ Number of products with this value excluding other attribute filters. Count of products that have this attribute value with all other attribute filters removed but keeping search terms and category filters. Used for showing filter impact. """ countActive: Int """ Selection status of this attribute value in current search. Indicates whether this attribute value is currently selected as an active filter in the customer's search criteria. """ isSelected: Boolean! } interface IResource { """Resource primary identifier""" id: Int! """ The requested language for this this resource, default to the products default language. ISO 639-1 format. """ language: String """The class of the request resource""" class: ProductClass! """The hidden status of this resource.""" hidden: YesNo! } """ Interface for the TenderBaseItem Type, where both TenderBaseItem and TenderMainItem derive from """ interface ITenderBaseItem { id: Int! @deprecated(reason: "Deprecate, please use uuid instead") """ Id of the tender item, this id can be used for update or delete mutation for this tender item """ uuid: String! """Id of the order item""" orderItemId: Int """Tender/order item name""" name: String! """The tender/order item's productId, if applicable""" productId: Int """Tender/order item SKU""" sku: String! """The quantity for this tender/order item""" quantity: Int! """Tender/order item supplier""" supplier: String """Tender/order item supplier code""" supplierCode: String """ The gross sales price per UOM of this tender/order item, no item specific incentives and extra costs are applied to this price. VAT excluding """ price: Float! """ The sales price per UOM of this tender/order item, no item specific incentives and extra costs are applied to this price. VAT including """ priceNet: Float! """ The total gross price of this tender/order item, no item specific incentives and extra costs are applied to this price. VAT excluding """ totalPrice: Float! """ The total price of this tender/order item, no item specific incentives and extra costs are applied to this price. VAT including """ totalPriceNet: Float! """The tax code for this tender/order item""" taxCode: Taxcode! """The tax percentage for this tender/order item""" taxPercentage: Int! """Customer discount (%)""" customerDiscountPercentage: Float! """Sales discount (%)""" discountPercentage: Float! """Total discount (%)""" totalDiscountPercentage: Float! """Default margin amount (list price). VAT excluding""" marginAmount: Float! """Default margin percentage (list price)""" marginPercentage: Float! """Margin amount. VAT excluding""" saleMarginAmount: Float! """Margin percentage""" saleMarginPercentage: Float! """ Extra item discount (%) calculated based on tender/order total discount """ attributedSaleDiscount: Float! """Margin percentage calculated based on tender/order total discount""" attributedSaleMargin: Float! """Product list price per UOM of this tender/order item. VAT excluding""" originalPrice: Float! """Product cost price per UOM of this tender/order item. VAT excluding""" costPrice: Float! """ Customer special price per UOM of this tender/order item. VAT excluding """ customerPrice: Float! """Total amount of valuePoints that apply to this tender/order item""" valuePoints: Int """The preferred delivery date for this order as requested by the user""" expectedDeliveryDate: DateTime """The order item's ID in an external system""" externalOrderitemId: String """User notes on tender item level""" notes: String """The incentives applied to this tender item""" incentive: TenderItemIncentive """The surcharges applied to this tender item""" surcharges: [TenderItemSurcharge!] """ The priority of the item within its tender. Auto-assigned in increments of 100 if not provided. Lower numbers are considered higher priority. Must be unique per order. When setting a priority that conflicts with an existing item, other items are automatically shifted to make room. """ priority: Int } """ The `JSON` scalar type represents JSON values as specified by [ECMA-404](http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-404.pdf). """ scalar JSON """ The `JSONObject` scalar type represents JSON objects as specified by [ECMA-404](http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-404.pdf). """ scalar JSONObject """ When converting animated GIFs to the MP4 format and when used in conjunction with the profile parameter, the level parameter specifies a set of constraints indicating a degree of required decoder performance for a profile. NOTE: If either level or profile parameters are missing, profile=baseline&level=3.0 will be used as the default. """ enum Level { """Level: 1.0""" LEVEL_1_0 """Level: 1.1""" LEVEL_1_1 """Level: 1.2""" LEVEL_1_2 """Level: 2.0""" LEVEL_2_0 """Level: 2.1""" LEVEL_2_1 """Level: 2.2""" LEVEL_2_2 """Level: 3.0 (Default)""" LEVEL_3_0 """Level: 3.1""" LEVEL_3_1 """Level: 3.2""" LEVEL_3_2 """Level: 4.0""" LEVEL_4_0 """Level: 4.1""" LEVEL_4_1 """Level: 4.2""" LEVEL_4_2 """Level: 5.0""" LEVEL_5_0 """Level: 5.1""" LEVEL_5_1 """Level: 5.2""" LEVEL_5_2 """Level: 6.0""" LEVEL_6_0 """Level: 6.1""" LEVEL_6_1 """Level: 6.2""" LEVEL_6_2 } """ Language-specific private attachment file with metadata and access information """ type LocalizedAttachment { """ Language code for this attachment variant. Indicates the language context or locale for which this attachment is intended. Uses standard language codes like 'EN', 'DE', 'FR'. """ language: String! """ Secure URL to the original attachment file. Provides access to the private attachment file with appropriate security measures. Access is restricted based on user permissions and ownership rules. """ originalUrl: String! """ MIME type of the attachment file. Indicates the file format (e.g., 'application/pdf', 'application/zip', 'application/vnd.openxmlformats-officedocument.wordprocessingml.document'). Used for proper file handling and security validation. """ mimeType: String! } """Language-specific document file with metadata and storage information""" type LocalizedDocument { """ Language code for this document variant. Indicates the language context or locale for which this document is intended. Uses standard language codes like 'EN', 'DE', 'FR'. """ language: String! """ Direct URL to the original, unmodified document file. Provides access to the source document as originally uploaded, without any modifications. Used for downloading and viewing the document in its original format. """ originalUrl: String! """ MIME type of the document file. Indicates the document format (e.g., 'application/pdf', 'application/vnd.openxmlformats-officedocument.wordprocessingml.document'). Determines how the document should be processed and displayed. """ mimeType: String! } """Language-specific image file with metadata and storage information""" type LocalizedImage { """ Language code for this image variant. Indicates the language context or locale for which this image is intended. Uses standard language codes like 'EN', 'DE', 'FR'. """ language: String! """ Direct URL to the original, unmodified image file. Provides access to the source image as originally uploaded, without any transformations or optimizations applied. Used as the base for generating variants. """ originalUrl: String! """ MIME type of the original image file. Indicates the file format of the stored image (e.g., 'image/jpeg', 'image/png', 'image/webp'). Determines how the image should be processed and displayed. """ mimeType: String! } """ A String representation of a type Field that is suitable for Localization """ type LocalizedString { language: String! value: String } """ A multivalue string representation of a type Field that is suitable for Localization """ type LocalizedStringArray { """Language is set as 2 character country code.""" language: String! """List of localized string values""" values: [String!] } input LocalizedStringArrayInput { """Language is set as 2 character country code.""" language: String! """List of localized string values""" values: [String!] } """ A String representation of a type Field that is suitable for Localization """ input LocalizedStringInput { """Localized field language code""" language: String! """Localized field value""" value: String } """ Localized template content for specific language support. Contains template content in a particular language with both raw and optimized versions, enabling multilingual template systems and improved rendering performance through precompilation. """ type LocalizedTemplateContent { """ ISO 639-1 language code for content localization. Two-character language identifier (e.g., 'en', 'nl', 'de') that determines which language version of the template content to use for message generation. """ language: String! """ Handlebars template markup for dynamic content generation. The raw template content containing Handlebars expressions, HTML markup, or document structure used for rendering personalized messages with dynamic data substitution. """ content: String! """ Optimized template content for faster rendering. Pre-processed and compiled version of the Handlebars template that improves rendering performance by eliminating compilation overhead during message generation. """ precompiled: String } """ Localized template content for specific language support. Defines template content in a particular language, enabling multilingual template systems and region-specific message customization. """ input LocalizedTemplateContentInput { """ ISO 639-1 language code for content localization. Two-character language identifier (e.g., 'en', 'nl', 'de') that determines which language version of the template content to use for message generation. Validation: Maximum length of 2 characters. """ language: String! """ Handlebars template markup for dynamic content generation. The raw template content containing Handlebars expressions, HTML markup, or document structure used for rendering personalized messages with dynamic data substitution. """ content: String! } """Language-specific video file with metadata and location information""" type LocalizedVideo { """ Language code for this video variant. Indicates the language context or locale for which this video is intended. Uses standard language codes like 'EN', 'DE', 'FR'. """ language: String! """ URI or URL pointing to the video content. Can be a direct link to a video file, or a URL from supported video platforms like YouTube or Vimeo. The URI must be accessible for playback. """ uri: String! """ MIME type of the video file. Indicates the video format and encoding (e.g., 'video/mp4', 'video/webm'). Used by browsers and players to determine how to handle the video content. """ mimeType: String } """ Authentication response containing login session information. Returned after successful user authentication, providing session details and user information. """ type Login { """ Authentication provider identifier. Indicates which authentication provider was used for the login (e.g., 'google', 'facebook', 'email'). """ providerId: String """ Type of authentication operation performed. Describes the specific authentication action that was executed (e.g., 'signIn', 'signUp', 'anonymous'). """ operationType: String """ User session information. Contains the authenticated user's profile data, tokens, and session details. Null if authentication failed. """ session: GCIPUser } """ User authentication credentials for login. Supports both email/password authentication and optional provider-based authentication. """ input LoginInput { """ User's email address. Must be a valid email format and is used as the primary identifier for authentication. """ email: String! """ User's password. Must be at least 6 characters long. Password strength requirements may apply based on system configuration. """ password: String! """ Optional authentication provider identifier. Used for third-party authentication providers like Google, Facebook, etc. If not specified, defaults to email/password authentication. """ provider: String } """ Response for user logout operations (deprecated). This type is deprecated and will be replaced by a more comprehensive signOut response in future versions. Currently serves as a placeholder for logout functionality. """ type Logout { """ Placeholder field for future logout response data. This field is currently unused and will be replaced with meaningful logout response information in future versions. """ todo: String } """ Magic token for passwordless authentication. Magic tokens provide a secure way to authenticate users without requiring passwords. They can be associated with either contacts or customers and support configurable expiration and usage limits. """ type MagicToken { """ Unique identifier for the magic token. This UUID serves as the primary key and can be used to reference the token in authentication requests. """ id: String! """ Contact identifier associated with this magic token. When specified, the magic token will authenticate as this contact. Either contactId or customerId must be provided, but not both. """ contactId: Int """ Customer identifier associated with this magic token. When specified, the magic token will authenticate as this customer. Either customerId or contactId must be provided, but not both. """ customerId: Int """ Token expiration timestamp. After this date and time, the magic token becomes invalid and cannot be used for authentication. If null, the token never expires. """ expiresAt: DateTime """ Timestamp of the last authentication attempt using this token. Updated each time the token is used for login, regardless of success or failure. Used for security monitoring and audit purposes. """ lastAccessedAt: DateTime """ Count of failed authentication attempts using this token. Incremented each time an authentication attempt fails. Used for security monitoring and potential token blocking after too many failures. """ failedLogins: Int """ Count of successful authentication attempts using this token. Incremented each time the token is successfully used for authentication. For one-time use tokens, this should never exceed 1. """ successfulLogins: Int """ Whether this token can only be used once. When true, the token becomes invalid after the first successful authentication. When false, the token can be reused until it expires. """ oneTimeUse: Boolean! """ Additional metadata or context information for the token. Can store arbitrary string data related to the token's purpose, origin, or usage context. Useful for tracking and debugging. """ extra: [String!] contact: Contact customer: Customer } input MagicTokenCreateInput { """ Identifier of the associated contact, use either contactId or customerId """ contactId: Int """ Identifier of the associated customer, use either customerId or contactId """ customerId: Int """Expiration date and time of the magic token""" expiresAt: String """Indicates if the magic token is for one-time use only""" oneTimeUse: Boolean extra: [String!] } """ Paginated response containing magic tokens and pagination metadata. Provides a structured response for magic token search operations with pagination support and result statistics. """ type MagicTokenResponse { """List of items of type MagicToken""" items: [MagicToken!]! """Total number of items found""" itemsFound: Int! """The amount of items to show per page""" offset: Int! """The current page""" page: Int! """Total amount of pages""" pages: Int! """Start position of the current page""" start: Int! """End position of the current page""" end: Int! } """ Search criteria for filtering magic tokens. Supports filtering by various token properties including associated users, expiration dates, usage statistics, and pagination options. """ input MagicTokenSearchInput { """ Filter by specific magic token IDs. Returns only tokens whose IDs match the provided list. Useful for retrieving specific tokens. """ ids: [String!] """ Filter by contact identifiers. Returns tokens associated with any of the specified contact IDs. Useful for finding all tokens belonging to specific contacts. """ contactIds: [Int!] """ Filter by customer identifiers. Returns tokens associated with any of the specified customer IDs. Useful for finding all tokens belonging to specific customers. """ customerIds: [Int!] """ Filter by token expiration date range. Allows filtering tokens based on their expiration timestamps. Useful for finding expired tokens or tokens expiring within a specific timeframe. """ expiresAt: DateSearchInput """ Filter by one-time use restriction. When true, returns only tokens that can be used once. When false, returns only reusable tokens. When null, returns all tokens regardless of usage restriction. """ oneTimeUse: Boolean """ Filter by failed login attempt count range. Allows filtering tokens based on the number of failed authentication attempts. Useful for security monitoring and identifying potentially compromised tokens. """ failedLogins: IntegerRangeSearchInput """ Filter by successful login attempt count range. Allows filtering tokens based on the number of successful authentication attempts. Useful for usage analytics and identifying heavily used tokens. """ successfulLogins: IntegerRangeSearchInput """ Filter by token creation date range. Allows filtering tokens based on when they were originally created. Useful for finding tokens created within specific time periods. """ createdAt: DateSearchInput """ Filter by last modification date range. Allows filtering tokens based on when they were last updated. Useful for finding recently modified tokens or tracking changes. """ lastModifiedAt: DateSearchInput """ Page number for pagination. Specifies which page of results to return. Must be 1 or greater. """ page: Int! = 1 """ Number of items per page. Controls how many magic tokens are returned in each page. Must be 1 or greater. """ offset: Int! = 12 } """ Parameters for updating an existing magic token's properties. Allows modification of magic token settings such as expiration time, usage restrictions, associated user, and metadata. All fields are optional - only provided fields will be updated. """ input MagicTokenUpdateInput { """ Contact identifier for reassociating the magic token. When specified, the token will authenticate as this contact instead of its current association. Cannot be used together with customerId. Must be a valid contact ID that exists in the system. """ contactId: Int """ Customer identifier for reassociating the magic token. When specified, the token will authenticate as this customer instead of its current association. Cannot be used together with contactId. Must be a valid customer ID that exists in the system. """ customerId: Int """ Updated expiration timestamp for the magic token. ISO 8601 formatted date and time when the token should expire. After this time, the token becomes invalid and cannot be used for authentication. If not provided, the current expiration remains unchanged. """ expiresAt: String """ Updated one-time use restriction for the magic token. When true, the token becomes invalid after the first successful authentication. When false, the token can be reused until it expires. If not provided, the current setting remains unchanged. """ oneTimeUse: Boolean """ Updated metadata or context information for the magic token. Array of strings containing arbitrary metadata related to the token's purpose, origin, or usage context. This completely replaces any existing extra data. Useful for tracking token usage and debugging. """ extra: [String!] } """ Unified media access point providing single items and paginated collections for all media types """ type Media { """ Single image media item. Provides access to a specific image with its metadata, transformations, and localized variants. Used for retrieving individual images by ID. """ image( """ Unique identifier of the image to retrieve. Must be a valid media ID representing an existing image in the media storage system. """ mediaId: String! ): MediaImage """ Paginated collection of image media items. Returns a searchable and filterable list of images with pagination support. Includes metadata for navigation and result counts. """ images( """ Search criteria for filtering images. If not provided, returns all accessible images with default pagination settings. Supports filtering by metadata, dimensions, file types, and upload dates. """ search: MediaImageSearchInput = {page: 1, offset: 12} ): PaginatedMediaImageResponse """ Single video media item. Provides access to a specific video with its metadata, hosting information, and localized variants. Used for retrieving individual videos by ID. """ video( """ Unique identifier of the video to retrieve. Must be a valid media ID representing an existing video in the media storage system. """ mediaId: String! ): MediaVideo """ Paginated collection of video media items. Returns a searchable and filterable list of videos with pagination support. Includes metadata for navigation and result counts. """ videos( """ Search criteria for filtering videos. If not provided, returns all accessible videos with default pagination settings. Supports filtering by metadata, duration, resolution, file types, and upload dates. """ search: MediaVideoSearchInput = {page: 1, offset: 12} ): PaginatedMediaVideoResponse """ Single document media item. Provides access to a specific document with its metadata, file information, and localized variants. Used for retrieving individual documents by ID. """ document( """ Unique identifier of the document to retrieve. Must be a valid media ID representing an existing document in the media storage system. """ mediaId: String! ): MediaDocument """ Paginated collection of document media items. Returns a searchable and filterable list of documents with pagination support. Includes metadata for navigation and result counts. """ documents( """ Search criteria for filtering documents. If not provided, returns all accessible documents with default pagination settings. Supports filtering by metadata, file types, sizes, and upload dates. """ search: MediaDocumentSearchInput = {page: 1, offset: 12} ): PaginatedMediaDocumentResponse """ Retrieve a specific attachment by its identifier. Returns detailed information about an attachment including metadata, storage location, file information, and association details. Used for attachment display and management operations. """ attachment( """ Unique identifier of the attachment to retrieve. Must be a valid attachment ID representing an existing attachment in the media storage system. """ id: String! ): MediaAttachment! """ Search and retrieve attachments with comprehensive filtering and pagination. Provides flexible search capabilities across attachment metadata including names, file types, associations, and upload dates. Results are paginated and filtered based on user permissions for secure access control. """ attachments( """ Search criteria for filtering attachments. If not provided, returns all accessible attachments with default pagination settings. Supports filtering by metadata, file types, associations, and upload dates. Access is controlled based on user permissions. """ input: MediaAttachmentSearchInput = {page: 1, offset: 12} ): PaginatedMediaAttachmentResponse! } """Private attachment file with restricted access and ownership controls""" type MediaAttachment { """ Globally unique identifier for the media item. Used to reference and retrieve the specific media item across all operations. This ID is immutable and unique across the entire media system. """ id: ID! """ Associates the media item with a specific spare parts machine for maintenance and service documentation """ sparePartsMachineId: ID """ Alternative text descriptions for accessibility and SEO purposes. Provides brief, descriptive text that explains the media content for screen readers and when the media cannot be displayed. Essential for web accessibility compliance and search engine optimization. """ alt: [LocalizedString!]! """ Detailed descriptions of the media content. Provides comprehensive information about what the media shows or contains. Used for content management, search indexing, and user information display. """ description: [LocalizedString!]! """ Searchable tags for categorizing and organizing media content. Keywords that help classify and discover media items. Used for search functionality, content filtering, and organizational purposes. """ tags: [LocalizedStringArray!]! """ Type classification of the media item. Indicates whether this is an image, video, document, or attachment. Used for processing, display, and filtering logic. """ type: String """ Timestamp when the media item was originally created. Recorded in ISO 8601 format with timezone information. Used for sorting, filtering, and audit purposes. """ createdAt: DateTime """ Timestamp when the media item was last modified. Updated whenever the media metadata or content is changed. Recorded in ISO 8601 format with timezone information. """ lastModifiedAt: DateTime """ Display order priority for the media item. Lower numeric values indicate higher priority and will be displayed first. Used for controlling the order of media items in galleries, carousels, and listings. """ priority: Int """ Collection of private attachment files in different languages and formats. Contains confidential or sensitive files that are restricted to specific users or organizations. Each attachment can have multiple language variants and format versions. """ attachments: [LocalizedAttachment!] """ Associates the attachment with a specific order. Links the attachment to order-related documentation such as invoices, contracts, or delivery notes. Cannot be used simultaneously with sparePartsMachineId as attachments are associated with either orders or machines. """ orderId: Int """ Associates the attachment with a specific company owner. Indicates that the attachment belongs to and is accessible by the specified company. Cannot be used simultaneously with customerId as attachments have a single owner type. """ companyId: Int """ Associates the attachment with a specific customer owner. Indicates that the attachment belongs to and is accessible by the specified customer. Cannot be used simultaneously with companyId as attachments have a single owner type. """ customerId: Int } input MediaAttachmentInput { """Associates the media item with a specific spare parts machine""" sparePartsMachineId: ID """ Alternative text descriptions for accessibility and SEO purposes. Provides brief, descriptive text that explains the media content for screen readers and when the media cannot be displayed. Each entry supports different languages. """ alt: [MediaLocalizedStringInput!]! """ Detailed descriptions of the media content. Provides comprehensive information about what the media shows or contains. Used for search indexing and user information. Each entry supports different languages. """ description: [MediaLocalizedStringInput!]! """ Searchable tags for categorizing and filtering media content. Keywords that help organize and discover media items. Used for search functionality and content organization. Each entry supports different languages with multiple tag values. """ tags: [MediaLocalizedStringArrayInput!]! """ Display order priority for the media item. Lower numeric values indicate higher priority and will be displayed first. Used for controlling the order of media items in galleries and listings. """ priority: Int = 1000 """Upload File input reference""" uploadAttachments: [UploadFileInput!]! """ Unique order identifier that the attachment relates to. [Cannot use it together with sparePartsMachineId] """ orderId: Int """ Unique company identifier that the attachment relates to. [Cannot use it together with customerId] """ companyId: Int """ Unique customer identifier that the attachment relates to. [Cannot use it together with companyId] """ customerId: Int } """Search and filter criteria specifically for private attachment files""" input MediaAttachmentSearchInput { """Filter media items associated with a specific spare parts machine""" sparePartsMachineId: String """ Search within media item descriptions. Performs text search against the description field in the specified language. Supports partial matching and is case-insensitive. """ description: MediaLocalizedStringInput """ Search within media item tags. Finds media items that have tags matching the specified value in the given language. Useful for content categorization and discovery. """ tag: MediaLocalizedStringInput """ Sort order for search results. Controls whether results are returned in ascending or descending order. Sorting is typically applied to the priority field or creation date. """ sort: Sort """ Page number for pagination. Specifies which page of results to return. Pages start at 1. """ page: Int = 1 """ Number of items per page. Controls how many media items are returned in each page of results. Maximum recommended value is 50 for performance. """ offset: Int = 12 """ Filter attachments associated with a specific order. Retrieves attachments linked to the specified order ID. Cannot be used simultaneously with sparePartsMachineId as attachments are associated with either orders or machines, not both. """ orderId: Int """ Filter attachments owned by a specific company. Retrieves attachments that belong to the specified company. Cannot be used simultaneously with customerId as attachments have a single owner type. """ companyId: Int """ Filter attachments owned by a specific customer. Retrieves attachments that belong to the specified customer. Cannot be used simultaneously with companyId as attachments have a single owner type. """ customerId: Int } """File upload using base64 encoded content for direct data transmission""" input MediaBase64FileInput { """ Base64 encoded representation of the file content. The complete file data encoded in base64 format. Maximum size is approximately 10MB (13,981,017 characters). This method is useful for small files or when direct file upload is not available. """ base64: String! """ Filename to use when creating the file from base64 data. Must include the file extension and be between 5-255 characters. This name will be used for storage and affects how the file is processed and referenced. """ fileName: String! } """ Document media item with file access and metadata management capabilities """ type MediaDocument { """ Globally unique identifier for the media item. Used to reference and retrieve the specific media item across all operations. This ID is immutable and unique across the entire media system. """ id: ID! """ Associates the media item with a specific product for product catalogs and displays """ productId: ID """ Associates the media item with a specific cluster for organizational grouping """ clusterId: ID """ Associates the media item with a specific product category for categorization and filtering """ categoryId: ID """ Associates the media item with a specific spare parts machine for maintenance and service documentation """ sparePartsMachineId: ID """ Alternative text descriptions for accessibility and SEO purposes. Provides brief, descriptive text that explains the media content for screen readers and when the media cannot be displayed. Essential for web accessibility compliance and search engine optimization. """ alt( """ Filter results to a specific language code (e.g., 'EN', 'DE'). If not provided, returns all available languages. """ language: String ): [LocalizedString!]! """ Detailed descriptions of the media content. Provides comprehensive information about what the media shows or contains. Used for content management, search indexing, and user information display. """ description( """ Filter results to a specific language code (e.g., 'EN', 'DE'). If not provided, returns all available languages. """ language: String ): [LocalizedString!]! """ Searchable tags for categorizing and organizing media content. Keywords that help classify and discover media items. Used for search functionality, content filtering, and organizational purposes. """ tags( """ Filter results to a specific language code (e.g., 'EN', 'DE'). If not provided, returns all available languages. """ language: String ): [LocalizedStringArray!]! """ Type classification of the media item. Indicates whether this is an image, video, document, or attachment. Used for processing, display, and filtering logic. """ type: String """ Timestamp when the media item was originally created. Recorded in ISO 8601 format with timezone information. Used for sorting, filtering, and audit purposes. """ createdAt: DateTime """ Timestamp when the media item was last modified. Updated whenever the media metadata or content is changed. Recorded in ISO 8601 format with timezone information. """ lastModifiedAt: DateTime """ Display order priority for the media item. Lower numeric values indicate higher priority and will be displayed first. Used for controlling the order of media items in galleries, carousels, and listings. """ priority: Int """ Collection of document files in different languages and formats. Contains the actual document files with their metadata, file sizes, and storage locations. Each document can have multiple language variants and format versions such as PDF, DOCX, or XLSX. """ documents: [LocalizedDocument!] } input MediaDocumentInput { """Associates the media item with a specific product""" productId: ID """Associates the media item with a specific cluster""" clusterId: ID """Associates the media item with a specific product category""" categoryId: ID """Associates the media item with a specific spare parts machine""" sparePartsMachineId: ID """ Alternative text descriptions for accessibility and SEO purposes. Provides brief, descriptive text that explains the media content for screen readers and when the media cannot be displayed. Each entry supports different languages. """ alt: [MediaLocalizedStringInput!]! """ Detailed descriptions of the media content. Provides comprehensive information about what the media shows or contains. Used for search indexing and user information. Each entry supports different languages. """ description: [MediaLocalizedStringInput!]! """ Searchable tags for categorizing and filtering media content. Keywords that help organize and discover media items. Used for search functionality and content organization. Each entry supports different languages with multiple tag values. """ tags: [MediaLocalizedStringArrayInput!]! """ Display order priority for the media item. Lower numeric values indicate higher priority and will be displayed first. Used for controlling the order of media items in galleries and listings. """ priority: Int = 1000 """Upload File input reference""" uploadDocuments: [UploadFileInput!]! } """ Search criteria for documents associated with a specific product, excluding entity association fields """ input MediaDocumentProductSearchInput { """ Search within media item descriptions. Performs text search against the description field in the specified language. Supports partial matching and is case-insensitive. """ description: MediaLocalizedStringInput """ Search within media item tags. Finds media items that have tags matching the specified value in the given language. Useful for content categorization and discovery. """ tag: MediaLocalizedStringInput """ Sort order for search results. Controls whether results are returned in ascending or descending order. Sorting is typically applied to the priority field or creation date. """ sort: Sort """ Page number for pagination. Specifies which page of results to return. Pages start at 1. """ page: Int = 1 """ Number of items per page. Controls how many media items are returned in each page of results. Maximum recommended value is 50 for performance. """ offset: Int = 12 } """Search and filter criteria specifically for document media items""" input MediaDocumentSearchInput { """Filter media items associated with a specific product""" productId: Int """Filter media items associated with a specific product category""" categoryId: Int """Filter media items associated with a specific cluster""" clusterId: Int """Filter media items associated with a specific spare parts machine""" sparePartsMachineId: String """ Search within media item descriptions. Performs text search against the description field in the specified language. Supports partial matching and is case-insensitive. """ description: MediaLocalizedStringInput """ Search within media item tags. Finds media items that have tags matching the specified value in the given language. Useful for content categorization and discovery. """ tag: MediaLocalizedStringInput """ Sort order for search results. Controls whether results are returned in ascending or descending order. Sorting is typically applied to the priority field or creation date. """ sort: Sort """ Page number for pagination. Specifies which page of results to return. Pages start at 1. """ page: Int = 1 """ Number of items per page. Controls how many media items are returned in each page of results. Maximum recommended value is 50 for performance. """ offset: Int = 12 } type MediaImage { """ Globally unique identifier for the media item. Used to reference and retrieve the specific media item across all operations. This ID is immutable and unique across the entire media system. """ id: ID! """ Associates the media item with a specific product for product catalogs and displays """ productId: ID """ Associates the media item with a specific cluster for organizational grouping """ clusterId: ID """ Associates the media item with a specific product category for categorization and filtering """ categoryId: ID """ Associates the media item with a specific spare parts machine for maintenance and service documentation """ sparePartsMachineId: ID """ Alternative text descriptions for accessibility and SEO purposes. Provides brief, descriptive text that explains the media content for screen readers and when the media cannot be displayed. Essential for web accessibility compliance and search engine optimization. """ alt( """ Filter results to a specific language code (e.g., 'EN', 'DE'). If not provided, returns all available languages. """ language: String ): [LocalizedString!]! """ Detailed descriptions of the media content. Provides comprehensive information about what the media shows or contains. Used for content management, search indexing, and user information display. """ description( """ Filter results to a specific language code (e.g., 'EN', 'DE'). If not provided, returns all available languages. """ language: String ): [LocalizedString!]! """ Searchable tags for categorizing and organizing media content. Keywords that help classify and discover media items. Used for search functionality, content filtering, and organizational purposes. """ tags( """ Filter results to a specific language code (e.g., 'EN', 'DE'). If not provided, returns all available languages. """ language: String ): [LocalizedStringArray!]! """ Type classification of the media item. Indicates whether this is an image, video, document, or attachment. Used for processing, display, and filtering logic. """ type: String """ Timestamp when the media item was originally created. Recorded in ISO 8601 format with timezone information. Used for sorting, filtering, and audit purposes. """ createdAt: DateTime """ Timestamp when the media item was last modified. Updated whenever the media metadata or content is changed. Recorded in ISO 8601 format with timezone information. """ lastModifiedAt: DateTime """ Display order priority for the media item. Lower numeric values indicate higher priority and will be displayed first. Used for controlling the order of media items in galleries, carousels, and listings. """ priority: Int """ Collection of image files in different languages and formats. Contains the actual image files with their metadata, dimensions, file sizes, and storage locations. Each image can have multiple language variants and format versions. """ images: [LocalizedImage!] """List of image variant objects""" imageVariants( """ Transformation specifications to apply to the image. Each transformation in the array is applied sequentially. Common transformations include resizing, format conversion, quality optimization, and visual effects. """ input: TransformationsInput! ): [ImageVariant!] } input MediaImageInput { """Associates the media item with a specific product""" productId: ID """Associates the media item with a specific cluster""" clusterId: ID """Associates the media item with a specific product category""" categoryId: ID """Associates the media item with a specific spare parts machine""" sparePartsMachineId: ID """ Alternative text descriptions for accessibility and SEO purposes. Provides brief, descriptive text that explains the media content for screen readers and when the media cannot be displayed. Each entry supports different languages. """ alt: [MediaLocalizedStringInput!]! """ Detailed descriptions of the media content. Provides comprehensive information about what the media shows or contains. Used for search indexing and user information. Each entry supports different languages. """ description: [MediaLocalizedStringInput!]! """ Searchable tags for categorizing and filtering media content. Keywords that help organize and discover media items. Used for search functionality and content organization. Each entry supports different languages with multiple tag values. """ tags: [MediaLocalizedStringArrayInput!]! """ Display order priority for the media item. Lower numeric values indicate higher priority and will be displayed first. Used for controlling the order of media items in galleries and listings. """ priority: Int = 1000 """Upload File input reference""" uploadImages: [UploadFileInput!]! } """ Search criteria for images associated with a specific product, excluding entity association fields """ input MediaImageProductSearchInput { """ Search within media item descriptions. Performs text search against the description field in the specified language. Supports partial matching and is case-insensitive. """ description: MediaLocalizedStringInput """ Search within media item tags. Finds media items that have tags matching the specified value in the given language. Useful for content categorization and discovery. """ tag: MediaLocalizedStringInput """ Sort order for search results. Controls whether results are returned in ascending or descending order. Sorting is typically applied to the priority field or creation date. """ sort: Sort """ Page number for pagination. Specifies which page of results to return. Pages start at 1. """ page: Int = 1 """ Number of items per page. Controls how many media items are returned in each page of results. Maximum recommended value is 50 for performance. """ offset: Int = 12 } """Search and filter criteria specifically for image media items""" input MediaImageSearchInput { """Filter media items associated with a specific product""" productId: Int """Filter media items associated with a specific product category""" categoryId: Int """Filter media items associated with a specific cluster""" clusterId: Int """Filter media items associated with a specific spare parts machine""" sparePartsMachineId: String """ Search within media item descriptions. Performs text search against the description field in the specified language. Supports partial matching and is case-insensitive. """ description: MediaLocalizedStringInput """ Search within media item tags. Finds media items that have tags matching the specified value in the given language. Useful for content categorization and discovery. """ tag: MediaLocalizedStringInput """ Sort order for search results. Controls whether results are returned in ascending or descending order. Sorting is typically applied to the priority field or creation date. """ sort: Sort """ Page number for pagination. Specifies which page of results to return. Pages start at 1. """ page: Int = 1 """ Number of items per page. Controls how many media items are returned in each page of results. Maximum recommended value is 50 for performance. """ offset: Int = 12 } """ Localized array of string values with language specification for tags and multi-value fields """ input MediaLocalizedStringArrayInput { """ Language code for the localized content. Must be a valid 2-character language code (e.g., 'EN', 'DE', 'FR'). Used to identify the language of the associated string array values for proper localization and display. """ language: String! """ Array of text values in the specified language. Multiple string values for the specified language, commonly used for tags, keywords, or categories. Each value should be meaningful and relevant to the associated media content. Set to null to remove this language. Empty array [] is valid data (prevents fallback language from showing). """ values: [String!] } """ Localized string value with language specification for internationalization support """ input MediaLocalizedStringInput { """ Language code for the localized content. Must be a valid 2-character language code (e.g., 'EN', 'DE', 'FR'). Used to identify the language of the associated text value for proper localization and display. """ language: String! """ Text content in the specified language. The actual text value for the specified language. Must be between 3-255 characters and contain meaningful content for the associated field. Set to null to remove this language. """ value: String } type MediaVideo { """ Globally unique identifier for the media item. Used to reference and retrieve the specific media item across all operations. This ID is immutable and unique across the entire media system. """ id: ID! """ Associates the media item with a specific product for product catalogs and displays """ productId: ID """ Associates the media item with a specific cluster for organizational grouping """ clusterId: ID """ Associates the media item with a specific product category for categorization and filtering """ categoryId: ID """ Associates the media item with a specific spare parts machine for maintenance and service documentation """ sparePartsMachineId: ID """ Alternative text descriptions for accessibility and SEO purposes. Provides brief, descriptive text that explains the media content for screen readers and when the media cannot be displayed. Essential for web accessibility compliance and search engine optimization. """ alt( """ Filter results to a specific language code (e.g., 'EN', 'DE'). If not provided, returns all available languages. """ language: String ): [LocalizedString!]! """ Detailed descriptions of the media content. Provides comprehensive information about what the media shows or contains. Used for content management, search indexing, and user information display. """ description( """ Filter results to a specific language code (e.g., 'EN', 'DE'). If not provided, returns all available languages. """ language: String ): [LocalizedString!]! """ Searchable tags for categorizing and organizing media content. Keywords that help classify and discover media items. Used for search functionality, content filtering, and organizational purposes. """ tags( """ Filter results to a specific language code (e.g., 'EN', 'DE'). If not provided, returns all available languages. """ language: String ): [LocalizedStringArray!]! """ Type classification of the media item. Indicates whether this is an image, video, document, or attachment. Used for processing, display, and filtering logic. """ type: String """ Timestamp when the media item was originally created. Recorded in ISO 8601 format with timezone information. Used for sorting, filtering, and audit purposes. """ createdAt: DateTime """ Timestamp when the media item was last modified. Updated whenever the media metadata or content is changed. Recorded in ISO 8601 format with timezone information. """ lastModifiedAt: DateTime """ Display order priority for the media item. Lower numeric values indicate higher priority and will be displayed first. Used for controlling the order of media items in galleries, carousels, and listings. """ priority: Int """ Collection of video files in different languages and formats. Contains the actual video files with their metadata, hosting information, and playback details. Each video can have multiple language variants and may be hosted on different platforms. """ videos: [LocalizedVideo!] } input MediaVideoInput { """Associates the media item with a specific product""" productId: ID """Associates the media item with a specific cluster""" clusterId: ID """Associates the media item with a specific product category""" categoryId: ID """Associates the media item with a specific spare parts machine""" sparePartsMachineId: ID """ Alternative text descriptions for accessibility and SEO purposes. Provides brief, descriptive text that explains the media content for screen readers and when the media cannot be displayed. Each entry supports different languages. """ alt: [MediaLocalizedStringInput!]! """ Detailed descriptions of the media content. Provides comprehensive information about what the media shows or contains. Used for search indexing and user information. Each entry supports different languages. """ description: [MediaLocalizedStringInput!]! """ Searchable tags for categorizing and filtering media content. Keywords that help organize and discover media items. Used for search functionality and content organization. Each entry supports different languages with multiple tag values. """ tags: [MediaLocalizedStringArrayInput!]! """ Display order priority for the media item. Lower numeric values indicate higher priority and will be displayed first. Used for controlling the order of media items in galleries and listings. """ priority: Int = 1000 """Store Video input reference""" videos: [UploadVideoInput!]! } """ Search criteria for videos associated with a specific product, excluding entity association fields """ input MediaVideoProductSearchInput { """ Search within media item descriptions. Performs text search against the description field in the specified language. Supports partial matching and is case-insensitive. """ description: MediaLocalizedStringInput """ Search within media item tags. Finds media items that have tags matching the specified value in the given language. Useful for content categorization and discovery. """ tag: MediaLocalizedStringInput """ Sort order for search results. Controls whether results are returned in ascending or descending order. Sorting is typically applied to the priority field or creation date. """ sort: Sort """ Page number for pagination. Specifies which page of results to return. Pages start at 1. """ page: Int = 1 """ Number of items per page. Controls how many media items are returned in each page of results. Maximum recommended value is 50 for performance. """ offset: Int = 12 } """Search and filter criteria specifically for video media items""" input MediaVideoSearchInput { """Filter media items associated with a specific product""" productId: Int """Filter media items associated with a specific product category""" categoryId: Int """Filter media items associated with a specific cluster""" clusterId: Int """Filter media items associated with a specific spare parts machine""" sparePartsMachineId: String """ Search within media item descriptions. Performs text search against the description field in the specified language. Supports partial matching and is case-insensitive. """ description: MediaLocalizedStringInput """ Search within media item tags. Finds media items that have tags matching the specified value in the given language. Useful for content categorization and discovery. """ tag: MediaLocalizedStringInput """ Sort order for search results. Controls whether results are returned in ascending or descending order. Sorting is typically applied to the priority field or creation date. """ sort: Sort """ Page number for pagination. Specifies which page of results to return. Pages start at 1. """ page: Int = 1 """ Number of items per page. Controls how many media items are returned in each page of results. Maximum recommended value is 50 for performance. """ offset: Int = 12 } """ Multi-factor authentication configuration for user account security. Contains all enrolled authentication factors for a user, enabling enhanced security through multiple verification methods beyond traditional password authentication. """ type MultiFactor { """ List of authentication factors enrolled for this user. All multi-factor authentication methods that have been set up and verified for this user account. Used for additional security verification during login. """ enrolledFactors: [EnrolledFactor!] } type Mutation { """ Create a new administrative user with specified profile information and system access. Establishes a new administrative user account with the provided profile data and grants appropriate system access based on organizational requirements. The user will be available for authentication immediately. Possible errors: - BAD_REQUEST: User with the specified email already exists - INTERNAL_SERVER_ERROR: Failed to create user due to system error - UNAUTHENTICATED: Invalid or missing authentication token - FORBIDDEN: Insufficient permissions to create administrative users AUTH: Role=[role.OWNER] """ adminUserCreate( """ Complete user profile data including personal information, contact details, and system preferences required for account creation. """ input: CreateUserDto! ): AdminUser! """ Update profile information for an existing administrative user. Modifies user profile data including personal information, contact details, and system preferences. Only the provided fields will be updated, leaving other profile information unchanged. Possible errors: - NOT_FOUND: User with the specified email does not exist - UNAUTHENTICATED: Invalid or missing authentication token - FORBIDDEN: Insufficient permissions to modify user data AUTH: Role=[role.OWNER,role.EDITOR] OR (('user is authenticated') AND ('email if present in input matches JWT')) """ adminUserUpdate( """ Email address of the administrative user to update. Must correspond to an existing user in the system. """ email: String! """ Partial user profile data for updating. Only the provided fields will be modified, other fields remain unchanged. """ input: UpdateUserDto! ): AdminUser! """ Permanently delete an administrative user from the system. Removes the user account and all associated data from the system. This action cannot be undone and will revoke all system access for the specified user immediately. Possible errors: - NOT_FOUND: User with the specified email does not exist - UNAUTHENTICATED: Invalid or missing authentication token - FORBIDDEN: Insufficient permissions to delete administrative users AUTH: Role=[role.OWNER] """ adminUserDelete( """ Email address of the administrative user to permanently delete from the system. """ email: String! ): Boolean! """ Create a new ticket. Establishes a new ticket with the provided details and initial state. Used for ticket management and support operations. Possible errors: - FORBIDDEN: Insufficient permissions to create tickets - TICKET_CREATE_ERROR: Error occurred while creating ticket AUTH: Role=[user.OWNER] """ ticketCreate( """Input parameters for creating a new ticket.""" input: TicketCreateInput! ): Ticket! """ Update an existing ticket. Modifies the ticket with the provided details. Only the provided fields will be updated, other fields remain unchanged. Possible errors: - FORBIDDEN: Insufficient permissions to update tickets - TICKET_UPDATE_ERROR: Error occurred while updating ticket - TICKET_AUTH_ERROR: You are not allowed to access this ticket AUTH: Role=[user.OWNER,user.EDITOR] OR ('user is authenticated') """ ticketUpdate( """Unique identifier of the ticket to update.""" id: ID! """Update parameters for modifying an existing ticket.""" input: TicketUpdateInput! ): Ticket! """ Delete a ticket. Permanently removes the ticket. This action cannot be undone. Possible errors: - FORBIDDEN: Insufficient permissions to delete tickets - TICKET_NOT_FOUND: Ticket with the specified ID does not exist - TICKET_DELETE_ERROR: Error occurred while deleting ticket AUTH: Role=[user.OWNER] """ ticketDelete( """Unique identifier of the ticket to delete.""" id: ID! ): Boolean! """ Create a new tenant in the multi-tenancy system. Establishes a new tenant with configuration, settings, and administrative setup. The tenant will be available for user assignment and system operations immediately. Possible errors: - NOT_FOUND: User with the specified email address does not exist - BAD_REQUEST: User already has access to the specified tenant - UNAUTHENTICATED: Invalid or missing authentication - FORBIDDEN: Insufficient permissions to create tenants AUTH: Role=[role.OWNER,role.EDITOR,role.VIEWER] """ adminUserTenantCreate( """ Tenant creation data including name, configuration, and administrative settings. Contains all necessary information to create a functional tenant including initial configuration and setup parameters. """ input: CreateTenantDto! ): AdminUserTenant! """ Permanently delete a tenant from the multi-tenancy system. Removes the tenant and all associated configuration and data. This action cannot be undone and will affect all users and data associated with this tenant. Possible errors: - NOT_FOUND: Tenant with the specified ID does not exist - UNAUTHENTICATED: Invalid or missing authentication - FORBIDDEN: Insufficient permissions to delete tenants AUTH: Role=[role.OWNER] """ adminUserTenantDelete( """ Unique identifier of the tenant to delete. Must be a positive integer representing a valid tenant ID in the system. """ id: Int! ): AdminUserTenant! """ Create a new attribute description in the system. Establishes a new attribute description with metadata, display configuration, and localization settings. The description will be available for attribute value creation immediately. Possible errors: - ATTRIBUTE_DESCRIPTION_CREATE: Failed to create the attribute description - ATTRIBUTE_DESCRIPTION_ALREADY_EXISTS: Attribute description with the same identifier already exists - FORBIDDEN: Insufficient permissions AUTH: Role=[configuration.OWNER] """ attributeDescriptionCreate( """ Attribute description creation data including metadata and configuration. Contains all necessary information to create a functional attribute description including type definition and display settings. """ input: AttributeDescriptionCreateInput! ): AttributeDescription! """ Update an existing attribute description's configuration. Modifies attribute description details including metadata, display settings, and localization options. Only provided fields will be updated, others remain unchanged. Possible errors: - ATTRIBUTE_DESCRIPTION_NOT_FOUND: Attribute description with the specified ID does not exist - ATTRIBUTE_DESCRIPTION_UPDATE: Failed to update the attribute description - FORBIDDEN: Insufficient permissions AUTH: Role=[configuration.OWNER,configuration.EDITOR] """ attributeDescriptionUpdate( """ Unique identifier of the attribute description to update. Must be a valid UUID format representing an existing attribute description in the system. """ id: String! """ Updated attribute description information. Contains the attribute description properties to update. Only provided fields will be changed, others remain unchanged. """ input: AttributeDescriptionUpdateInput! ): AttributeDescription! """ Permanently delete an attribute description from the system. Removes the attribute description and all associated configuration. This action cannot be undone and will affect any attributes that depend on this description. Possible errors: - ATTRIBUTE_DESCRIPTION_NOT_FOUND: Attribute description with the specified ID does not exist - ATTRIBUTE_DESCRIPTION_DELETE: Failed to delete the attribute description - FORBIDDEN: Insufficient permissions AUTH: Role=[configuration.OWNER] """ attributeDescriptionDelete( """ Unique identifier of the attribute description to delete. Must be a valid UUID format representing an existing attribute description in the system. """ id: String! ): Boolean! """ Bulk delete multiple attribute descriptions from the system in a single optimized operation. Removes multiple attribute descriptions and all their associated configurations efficiently using a single database transaction. This is significantly more performant than calling attributeDescriptionDelete multiple times. The response includes two arrays: - deletedIds: IDs that were successfully deleted - failedIds: IDs that failed to delete (e.g., not found) Possible errors: - FORBIDDEN: Insufficient permissions AUTH: Role=[configuration.OWNER] """ attributeDescriptionDeleteBulk( """ Array of unique identifiers of attribute descriptions to delete. Each must be a valid UUID format representing an existing attribute description in the system. Recommended maximum: 100 IDs per request for optimal performance. """ ids: [String!]! ): BulkDeleteResponse! """ Import attribute descriptions from CSV file for bulk operations. Processes a CSV file containing attribute description definitions and creates or updates multiple descriptions in a single operation. Provides detailed import results including success and error counts. Possible errors: - FORBIDDEN: Insufficient permissions AUTH: Role=[configuration.OWNER] """ attributeDescriptionCsvImport( """ CSV import configuration including file data and processing options. Contains the CSV file content and import settings for bulk attribute description creation or updates. """ input: AttributeDescriptionCsvInput! ): CsvImportResponse! """ Create a new attribute with typed values and complete configuration. Establishes a new attribute instance with proper type definition and entity association. The attribute is immediately available and properly validated according to its attribute description's specifications. The creation process includes: - Validation against the attribute description's type - Proper entity association (product, category, cluster, company, contact, or customer) - Value type validation and formatting - Metadata and tracking information setup The newly created attribute is fully functional and can be used immediately for data storage, retrieval, and business logic operations. Possible errors: - ATTRIBUTE_CREATE: Failed to create the attribute due to system error - ATTRIBUTE_VALIDATION_ERROR: Attribute data validation failed against description rules - ATTRIBUTE_ALREADY_EXISTS: Attribute with the same description already exists for this entity - ATTRIBUTE_DESCRIPTION_NOT_FOUND: Referenced attribute description does not exist - FORBIDDEN: Insufficient permissions AUTH: Role=[product.OWNER,product.EDITOR,user.OWNER,user.EDITOR] """ attributeCreate( """ Complete attribute creation data including values, entity association, and configuration. Contains all necessary information to create a functional attribute including: - Attribute description reference for type - Typed value data matching the description's specifications - Entity association (exactly one of: productId, categoryId, clusterId, companyId, contactId, customerId) - Metadata and tracking information """ input: AttributeCreateInput! ): Attribute! """ Update an existing attribute's values and configuration. Modifies attribute data including typed values, metadata, and configuration options. Only provided fields are updated while others remain unchanged. The update process validates new values against the attribute description's type. Update operations support: - Value modifications - Metadata updates (modification timestamps and user tracking) - Partial updates (only specified fields are changed) The updated attribute maintains its entity associations and core configuration while allowing flexible value and metadata modifications. Possible errors: - ATTRIBUTE_NOT_FOUND: Attribute with the specified ID does not exist - ATTRIBUTE_VALIDATION_ERROR: Updated attribute data validation failed against description rules - ATTRIBUTE_VALUE_VALIDATION_ERROR: New value does not match attribute type requirements - FORBIDDEN: Insufficient permissions AUTH: Role=[product.OWNER,product.EDITOR,user.OWNER,user.EDITOR] """ attributeUpdate( """ Unique identifier of the attribute to update. Must be a valid UUID format representing an existing attribute in the system. The attribute must be accessible within the current context and permissions. """ id: String! """ Updated attribute information with partial update support. Contains the attribute properties to update. Only provided fields will be changed, others remain unchanged. Values are validated against the attribute description's type. Supports partial updates for flexible attribute management without requiring complete data replacement. """ input: AttributeUpdateInput! ): Attribute! """ Permanently delete an attribute and all associated data from the system. Removes the attribute completely including its values, metadata, and entity associations. This is a destructive operation that cannot be undone and will permanently remove the attribute data. The deletion process: - Removes the attribute record and all associated data - Cleans up any references or relationships - Maintains data integrity across the system - Cannot be reversed once completed Use with caution as this operation permanently removes attribute data. Possible errors: - ATTRIBUTE_NOT_FOUND: Attribute with the specified ID does not exist - ATTRIBUTE_DELETE: Failed to delete the attribute due to system error - FORBIDDEN: Insufficient permissions AUTH: Role=[product.OWNER,product.EDITOR,user.OWNER,user.EDITOR] """ attributeDelete( """ Unique identifier of the attribute to delete. Must be a valid UUID format representing an existing attribute in the system. The attribute must be accessible within the current context and permissions. """ id: String! ): Boolean! """ Import attributes from CSV file for efficient bulk operations and data migration. Processes a CSV file containing attribute definitions and creates or updates multiple attributes in a single atomic operation. Provides comprehensive import results including success counts, error details, and validation feedback. The import process includes: - CSV format validation and parsing - Attribute data validation against description - Bulk creation or update operations - Detailed error reporting for failed records - Transaction management for data consistency - Progress tracking and result summarization Perfect for data migration, bulk attribute setup, or synchronizing attribute data from external systems. The operation is designed to handle large datasets efficiently while maintaining data integrity. Possible errors: - ATTRIBUTE_VALIDATION_ERROR: One or more attributes failed validation against description rules - ATTRIBUTE_DESCRIPTION_NOT_FOUND: Referenced attribute descriptions do not exist - FORBIDDEN: Insufficient permissions AUTH: Role=[product.OWNER,product.EDITOR,user.OWNER,user.EDITOR] """ attributeCsvImport( """ CSV import configuration including file data and processing options. Contains the CSV file content, column mapping configuration, and import settings for bulk attribute creation or updates. Includes processing options to control the import behavior. The input supports flexible CSV formats with configurable column mapping to accommodate different data sources and export formats. """ input: AttributeCsvInput! ): CsvImportResponse! """ Initialize an anonymous authentication session. Creates an anonymous Firebase session for users who haven't logged in yet. This allows access to public content and provides a foundation for later authentication. The session includes temporary tokens for API access. """ startSession: Login! """ Authenticate user and establish secure session. Validates user credentials and returns a complete authentication session including access tokens, refresh tokens, and user information. The session enables access to protected resources and user-specific functionality. Possible errors: - USER_NOT_FOUND_ERROR: User account does not exist """ login( """ User login credentials including email and password. Contains the email address and password required for user authentication. """ input: LoginInput! ): Login! """ End user authentication session (deprecated). Terminates the current user session and invalidates authentication tokens. This mutation is deprecated and will be replaced by signOut mutation in future versions. AUTH: Role=[] OR ('user is authenticated') """ logout: Logout @deprecated(reason: "signOut mutation will be available in the future") """ Create a new user account and establish authentication session. Registers a new user with the provided credentials and returns a complete authentication session. The user account is created with the specified email, password, and optional profile information. Possible errors: - REGISTER_USER_ERROR: Failed to create user account AUTH: Role=[supervisor,admin,system,internal,user.OWNER] OR ('user is anonymous') """ authenticationCreate( """ User account creation parameters including email, password, and profile information. Contains all necessary information to create a new user account and establish initial authentication. """ input: CreateAuthenticationInput! ): Login! """ Permanently delete a user account from the system. Removes the user account and all associated data from the authentication system. This action cannot be undone and will immediately invalidate all user sessions. Note: This operation does not throw specific error codes. Firebase handles user deletion internally and the method returns a boolean success indicator. AUTH: Role=[system] OR ('user is authenticated') """ authenticationDelete( """ Unique identifier of the user account to delete. Firebase UID that uniquely identifies the user account in the authentication system. """ uid: String! ): Boolean! """ Reset and refresh user authorization claims. Updates the user's authorization claims with the latest permissions, roles, and access rights. This is useful when user permissions have changed and need to be reflected in their authentication tokens. Possible errors: - USER_NOT_FOUND_ERROR: User account with the specified UID does not exist AUTH: Role=[system] OR ('user is authenticated') """ claimsReset( """ Unique identifier of the user whose claims should be reset. Firebase UID that uniquely identifies the user account in the authentication system. """ uid: String! """ Email address of the user whose claims should be reset. Used for additional verification and claim lookup operations. """ email: String! ): Boolean! """ Reset authorization claims for all users in the current environment. Performs a bulk reset of user authorization claims, processing users in batches of 50 to ensure system stability. This operation refreshes all user permissions, roles, and access rights to reflect the latest authorization policies. Possible errors: AUTH: Role=[system] """ claimsResetAll: ClaimsResetAllResponse! """ Verify and decode an authentication token. Validates the provided JWT token and returns the decoded token information including user identity, claims, and token metadata. Used for token validation and user session verification. Possible errors: - TOKEN_VERIFICATION_ERROR: Failed to verify token signature """ verifyToken( """ Token verification parameters containing the JWT token to validate. Contains the authentication token that needs to be verified and decoded. """ input: VerifyTokenInput! ): VerifyToken! """ Exchange a refresh token for new access tokens. Uses a valid refresh token to obtain new access and refresh tokens, extending the user's authentication session. This allows maintaining user sessions without requiring re-authentication. Possible errors: - EXCHANGE_REFRESH_TOKEN_ERROR: Failed to exchange tokens """ exchangeRefreshToken( """ Refresh token exchange parameters containing the refresh token. Contains the refresh token that will be exchanged for new authentication tokens. """ input: ExchangeRefreshTokenInput! ): RefreshTokenResponse! """ Trigger password reset email notification. Initiates the process to send a password reset email to the specified user. The email contains a secure link that allows the user to reset their password. This mutation can be called without authentication. Possible errors: - GENERATE_PASSWORD_RECOVERY_LINK_ERROR: Failed to generate password recovery link - TRIGGER_SEND_PASSWORD_RESET_EVENT_ERROR: Failed to trigger password reset email AUTH: Role=[user.OWNER] OR ('undefined') """ triggerPasswordSendResetEmailEvent( """ Password reset email parameters including user email and optional redirect URL. Contains the email address of the user requesting password reset and optional customization parameters. """ input: PasswordRecoveryLinkInput! ): Boolean! """ Trigger password initialization email for new users. Sends a password setup email to newly created users who haven't set their password yet. The email contains a secure link that allows the user to set their initial password. Possible errors: - TRIGGER_SEND_PASSWORD_INIT_EVENT_ERROR: Failed to trigger password initialization email AUTH: Role=[user.OWNER] """ triggerPasswordSendInitEmailEvent( """ Password initialization email parameters including user email and optional redirect URL. Contains the email address of the new user and optional customization parameters for the password setup process. """ input: PasswordRecoveryLinkInput! ): String! """ Generate a secure password recovery link for email inclusion. Creates a secure, time-limited link that can be included in password recovery emails. The link allows users to reset their password through a secure web interface. Possible errors: - GENERATE_PASSWORD_RECOVERY_LINK_ERROR: Failed to generate recovery link AUTH: Role=[user.OWNER] """ passwordResetLink( """ Password recovery link generation parameters. Contains the user email, optional redirect URL, and language preferences for the recovery process. """ input: PasswordRecoveryLinkInput ): String! """ Create a new magic token for passwordless authentication. Generates a new magic token that can be used for one-time or multiple-use authentication. The token can be associated with either a contact or customer and includes configurable expiration settings. Possible errors: - MAGIC_TOKEN_CREATE_ERROR: Failed to create the magic token AUTH: Role=[configuration.OWNER] """ magicTokenCreate( """ Magic token creation parameters. Must specify either contactId or customerId, but not both. """ input: MagicTokenCreateInput! ): MagicToken! """ Update an existing magic token's properties. Allows modification of magic token settings such as expiration time, one-time use flag, and additional metadata. Cannot change the associated contact or customer. Possible errors: - MAGIC_TOKEN_NOT_FOUND_ERROR: Magic token with the specified ID does not exist - MAGIC_TOKEN_UPDATE_ERROR: Failed to update the magic token AUTH: Role=[configuration.OWNER,configuration.EDITOR] """ magicTokenUpdate( """ Unique identifier of the magic token to update. Must be a valid UUID format. """ id: String! """ Updated magic token properties. Only provided fields will be updated, others remain unchanged. """ input: MagicTokenUpdateInput! ): MagicToken! """ Permanently delete a magic token. Removes the magic token from the system, making it unusable for future authentication attempts. This action cannot be undone. Possible errors: - MAGIC_TOKEN_NOT_FOUND_ERROR: Magic token with the specified ID does not exist - MAGIC_TOKEN_DELETE_ERROR: Failed to delete the magic token AUTH: Role=[configuration.OWNER] """ magicTokenDelete( """ Unique identifier of the magic token to delete. Must be a valid UUID format. """ id: String! ): Boolean! """ Authenticate using a magic token and create a user session. Validates the provided magic token and creates an authenticated session for the associated contact or customer. Returns session information including access and refresh tokens. If the token is configured for one-time use, it will be automatically invalidated after successful authentication. Possible errors: - MAGIC_TOKEN_NOT_FOUND_ERROR: Magic token does not exist or has been deleted - MAGIC_TOKEN_INVALID_ERROR: Magic token has expired, already been used, or has no associated login - USER_NOT_FOUND_ERROR: User associated with the magic token does not exist - MAGIC_TOKEN_LOGIN_ERROR: General error during magic token authentication process """ magicTokenLogin( """ Magic token identifier to use for authentication. Can be either the token's UUID or the actual token string value. """ id: String! ): Login! """ Create a new product bundle in the system. Establishes a new bundle with configuration, pricing rules, and initial product associations. The bundle will be available for sales and order processing immediately. Possible errors: - CREATE_BUNDLE_ERROR: Failed to create the bundle - BUNDLE_ALREADY_EXISTS_ERROR: Bundle with the same name already exists - BUNDLE_ITEM_ALREADY_EXISTS_ERROR: Bundle item with the provided product data already exists - BUNDLE_ITEMS_NON_UNIQUE_ERROR: Bundle items must have unique product IDs or only one leader item - FORBIDDEN: Insufficient permissions to create bundles """ bundleCreate( """ Bundle creation data including configuration and initial items. Contains all necessary information to create a functional bundle including name, description, pricing rules, and optional initial product associations. """ input: BundleCreateInput! ): Bundle! """ Update an existing bundle's configuration. Modifies bundle details including name, description, pricing rules, and settings. Only provided fields will be updated, others remain unchanged. Possible errors: - BUNDLE_NOT_FOUND_ERROR: Bundle with the specified ID does not exist - UPDATE_BUNDLE_ERROR: Failed to update the bundle - BUNDLE_ALREADY_EXISTS_ERROR: Updated name conflicts with existing bundle - BUNDLE_ITEM_ALREADY_EXISTS_ERROR: Bundle item with provided data already exists - FORBIDDEN: Insufficient permissions to update bundles """ bundleUpdate( """ Unique identifier of the bundle to update. Must be a valid UUID format representing an existing bundle in the system. """ id: String! """ Updated bundle information. Contains the bundle properties to update. Only provided fields will be changed, others remain unchanged. """ input: BundleUpdateInput! ): Bundle! """ Permanently delete a bundle from the system. Removes the bundle and all associated items and configuration. This action cannot be undone and will affect any orders or carts that reference this bundle. Possible errors: - BUNDLE_NOT_FOUND_ERROR: Bundle with the specified ID does not exist - DELETE_BUNDLE_ERROR: Failed to delete the bundle - FORBIDDEN: Insufficient permissions to delete bundles """ bundleDelete( """ Unique identifier of the bundle to delete. Must be a valid UUID format representing an existing bundle in the system. """ id: String! ): Boolean! """ Add products to an existing bundle and return the added items. Expands bundle contents with additional products while maintaining validation rules for unique products and single leader designation. This mutation is deprecated in favor of bundleAddItemsAndReturnBundle. Possible errors: - BUNDLE_NOT_FOUND_ERROR: Bundle with the specified ID does not exist - BUNDLE_ITEM_ALREADY_EXISTS_ERROR: One or more products already exist in the bundle - ADD_BUNDLE_ITEMS_ERROR: Failed to add items to the bundle - BUNDLE_ITEMS_NON_UNIQUE_ERROR: Bundle can have only one leader item - FORBIDDEN: Insufficient permissions to modify bundles """ bundleAddItems( """ Unique identifier of the bundle to modify. Must be a valid UUID format representing an existing bundle in the system. """ id: String! """ Items to add to the bundle. Contains the product configurations and roles to be added to the existing bundle. """ input: BundleAddItemsInput! ): [BundleItem!]! @deprecated(reason: "Use bundleAddItemsAndReturnBundle instead") """ Add products to an existing bundle and return the updated bundle. Expands bundle contents with additional products while maintaining validation rules for unique products and single leader designation. Returns the complete updated bundle with pricing calculations. Possible errors: - BUNDLE_NOT_FOUND_ERROR: Bundle with the specified ID does not exist - BUNDLE_ITEM_ALREADY_EXISTS_ERROR: One or more products already exist in the bundle - ADD_BUNDLE_ITEMS_ERROR: Failed to add items to the bundle - BUNDLE_ITEMS_NON_UNIQUE_ERROR: Bundle can have only one leader item - FORBIDDEN: Insufficient permissions to modify bundles """ bundleAddItemsAndReturnBundle( """ Unique identifier of the bundle to modify. Must be a valid UUID format representing an existing bundle in the system. """ id: String! """ Items to add to the bundle. Contains the product configurations and roles to be added to the existing bundle. """ input: BundleAddItemsInput! ): Bundle! """ Remove a product from an existing bundle. Permanently removes the specified product from the bundle configuration. This mutation is deprecated in favor of bundleRemoveItemAndReturnBundle which provides the updated bundle data. Possible errors: - BUNDLE_ITEM_NOT_FOUND_ERROR: Product is not part of the specified bundle - REMOVE_BUNDLE_ITEM_ERROR: Failed to remove item from the bundle - FORBIDDEN: Insufficient permissions to modify bundles """ bundleRemoveItem( """ Unique identifier of the bundle to modify. Must be a valid UUID format representing an existing bundle in the system. """ id: String! """ Product identifier to remove from the bundle. Must be a positive integer representing a product that exists in the specified bundle. """ productId: Int! ): Boolean! @deprecated(reason: "Use bundleRemoveItemAndReturnBundle instead") """ Remove a product from an existing bundle and return the updated bundle. Permanently removes the specified product from the bundle configuration and returns the complete updated bundle with recalculated pricing. Possible errors: - BUNDLE_NOT_FOUND_ERROR: Bundle with the specified ID does not exist after item removal - BUNDLE_ITEM_NOT_FOUND_ERROR: Product is not part of the specified bundle - REMOVE_BUNDLE_ITEM_ERROR: Failed to remove item from the bundle - FORBIDDEN: Insufficient permissions to modify bundles """ bundleRemoveItemAndReturnBundle( """ Unique identifier of the bundle to modify. Must be a valid UUID format representing an existing bundle in the system. """ id: String! """ Product identifier to remove from the bundle. Must be a positive integer representing a product that exists in the specified bundle. """ productId: Int! """ Tax zone for pricing calculations. Geographic tax zone code used to calculate accurate bundle pricing after item removal. Defaults to 'NL' if not specified. """ taxZone: String = "NL" ): Bundle! """ Create a new business rule with specified configuration and logic. Establishes a new business rule with the provided name and type. The created rule will have a basic structure that can be extended with decision tables, expressions, and workflow logic. Possible errors: - BUSINESS_RULE_UNKNOWN_ERROR: Unexpected error occurred during rule creation - FORBIDDEN: Insufficient permissions to create business rules AUTH: Role=[configuration.OWNER] """ businessRuleCreate( """Business rule creation data including name, and type for the new rule""" input: BusinessRuleCreateInput! ): BusinessRule! """ Update an existing business rule's basic configuration and metadata. Modifies business rule properties such as name and other basic settings. Only the provided fields will be updated while others remain unchanged. Possible errors: - BUSINESS_RULE_NOT_FOUND: Business rule with the specified ID does not exist - BUSINESS_RULE_UPDATE_ERROR: Failed to update the business rule due to validation or system errors - FORBIDDEN: Insufficient permissions to update business rules AUTH: Role=[configuration.OWNER,configuration.EDITOR] """ businessRuleUpdate( """Unique identifier of the business rule to update""" id: ID! """Updated business rule data containing the fields to be modified""" input: BusinessRuleUpdateInput! ): BusinessRule! """ Permanently delete a business rule and all its associated data from the system. Removes the business rule including all decision tables, expressions, and configuration. This action is irreversible and may affect dependent workflows and processes. Possible errors: - BUSINESS_RULE_NOT_FOUND: Business rule with the specified ID does not exist - BUSINESS_RULE_DELETE_ERROR: Failed to delete the business rule due to system constraints - FORBIDDEN: Insufficient permissions to delete business rules AUTH: Role=[configuration.OWNER] """ businessRuleDelete( """ Unique identifier of the business rule to permanently delete from the system """ id: ID! ): Boolean! """ Add a new column to a decision table in a business rule. Creates a new input or output column with the specified configuration and data type. The column will be added to all existing rows with default empty values. Possible errors: - BUSINESS_RULE_NOT_FOUND: Business rule with the specified ID does not exist - BUSINESS_RULE_DECISION_TABLE_NOT_FOUND_ERROR: Decision table with the specified ID does not exist within the rule - BUSINESS_RULE_DECISION_TABLE_UPDATE_ERROR: Failed to update the decision table due to validation or system errors - FORBIDDEN: Insufficient permissions to modify decision tables AUTH: Role=[configuration.OWNER,configuration.EDITOR] """ businessRuleDecisionTableAddColumn(input: BusinessRuleDecisionTableAddColumnInput!): BusinessRuleDecisionTable! """ Update the basic configuration and metadata of a decision table. Modifies decision table properties such as hit policy, name, and other configuration settings. Only the provided fields will be updated while others remain unchanged. Possible errors: - BUSINESS_RULE_NOT_FOUND: Business rule with the specified ID does not exist - BUSINESS_RULE_DECISION_TABLE_NOT_FOUND_ERROR: Decision table with the specified ID does not exist within the rule - BUSINESS_RULE_DECISION_TABLE_UPDATE_ERROR: Failed to update the decision table due to validation or system errors - FORBIDDEN: Insufficient permissions to modify decision tables AUTH: Role=[configuration.OWNER,configuration.EDITOR] """ businessRuleDecisionTableUpdate(input: BusinessRuleDecisionTableUpdateInput!): BusinessRuleDecisionTable! """ Delete a column from a decision table in a business rule. Removes the specified input or output column and all associated cell values from all rows. This action is irreversible and may affect rule logic and execution. Possible errors: - BUSINESS_RULE_NOT_FOUND: Business rule with the specified ID does not exist - BUSINESS_RULE_DECISION_TABLE_NOT_FOUND_ERROR: Decision table with the specified ID does not exist within the rule - BUSINESS_RULE_DECISION_TABLE_COLUMN_NOT_FOUND_ERROR: Column with the specified ID does not exist in the decision table - BUSINESS_RULE_DECISION_TABLE_UPDATE_ERROR: Failed to update the decision table due to validation or system errors - FORBIDDEN: Insufficient permissions to modify decision tables AUTH: Role=[configuration.OWNER,configuration.EDITOR] """ businessRuleDecisionTableDeleteColumn(input: BusinessRuleDecisionTableDeleteColumnInput!): BusinessRuleDecisionTable! """ Add a new row to a decision table in a business rule. Creates a new row with empty cell values for all existing input and output columns. The row can then be populated with conditions and actions using the setCell mutation. Possible errors: - BUSINESS_RULE_NOT_FOUND: Business rule with the specified ID does not exist - BUSINESS_RULE_DECISION_TABLE_NOT_FOUND_ERROR: Decision table with the specified ID does not exist within the rule - BUSINESS_RULE_DECISION_TABLE_UPDATE_ERROR: Failed to update the decision table due to validation or system errors - FORBIDDEN: Insufficient permissions to modify decision tables AUTH: Role=[configuration.OWNER,configuration.EDITOR] """ businessRuleDecisionTableAddRow(input: BusinessRuleDecisionTableSearchInput!): BusinessRuleDecisionTable! """ Move a row to a different position within a decision table. Reorders rows in the decision table by moving the specified row before or after the target row. Row order can affect rule evaluation depending on the hit policy configuration. Possible errors: - BUSINESS_RULE_NOT_FOUND: Business rule with the specified ID does not exist - BUSINESS_RULE_DECISION_TABLE_NOT_FOUND_ERROR: Decision table with the specified ID does not exist within the rule - BUSINESS_RULE_DECISION_TABLE_ROW_NOT_FOUND_ERROR: Source or target row with the specified ID does not exist in the decision table - BUSINESS_RULE_DECISION_TABLE_UPDATE_ERROR: Failed to update the decision table due to validation or system errors - FORBIDDEN: Insufficient permissions to modify decision tables AUTH: Role=[configuration.OWNER,configuration.EDITOR] """ businessRuleDecisionTableMoveRow(input: BusinessRuleDecisionTableMoveRowInput!): BusinessRuleDecisionTable! """ Delete a row from a decision table in a business rule. Permanently removes the specified row and all its associated cell values from the decision table. This action is irreversible and may affect rule logic and execution. Possible errors: - BUSINESS_RULE_NOT_FOUND: Business rule with the specified ID does not exist - BUSINESS_RULE_DECISION_TABLE_NOT_FOUND_ERROR: Decision table with the specified ID does not exist within the rule - BUSINESS_RULE_DECISION_TABLE_ROW_NOT_FOUND_ERROR: Row with the specified ID does not exist in the decision table - BUSINESS_RULE_DECISION_TABLE_UPDATE_ERROR: Failed to update the decision table due to validation or system errors - FORBIDDEN: Insufficient permissions to modify decision tables AUTH: Role=[configuration.OWNER,configuration.EDITOR] """ businessRuleDecisionTableDeleteRow(input: BusinessRuleDecisionTableDeleteRowInput!): BusinessRuleDecisionTable! """ Set the value of a specific cell in a decision table row. Updates the content of a cell at the intersection of a specific row and column with the provided value, expression, or localized content. Supports different data types including strings, numbers, expressions, and localized values. Possible errors: - BUSINESS_RULE_NOT_FOUND: Business rule with the specified ID does not exist - BUSINESS_RULE_DECISION_TABLE_NOT_FOUND_ERROR: Decision table with the specified ID does not exist within the rule - BUSINESS_RULE_DECISION_TABLE_ROW_NOT_FOUND_ERROR: Row with the specified ID does not exist in the decision table - BUSINESS_RULE_DECISION_TABLE_CELL_NOT_FOUND_ERROR: Cell with the specified column ID does not exist in the specified row - BUSINESS_RULE_DECISION_TABLE_UPDATE_ERROR: Failed to update the decision table due to validation or system errors - FORBIDDEN: Insufficient permissions to modify decision tables AUTH: Role=[configuration.OWNER,configuration.EDITOR] """ businessRuleDecisionTableSetCell(input: BusinessRuleDecisionTableSetCellInput!): BusinessRuleDecisionTable! """ Create a specialized business rule configured for incentive and discount management. Initializes a business rule with a pre-configured decision table containing order items input/output columns and the necessary structure for implementing incentive actions such as discounts, promotions, and special offers. Possible errors: - BUSINESS_RULE_UNKNOWN_ERROR: Unexpected error occurred during incentive rule creation - FORBIDDEN: Insufficient permissions to create incentive rules AUTH: Role=[configuration.OWNER] """ incentiveRuleCreate( """ Business rule creation data with incentive-specific configuration and metadata """ input: BusinessRuleCreateInput! ): BusinessRule! """ Configure order item conditions for an incentive rule using complex expressions. Constructs and applies complex expressions to the incentive rule's decision table cells for order items processing. Enables sophisticated filtering and condition logic for determining when incentives should be applied to specific order items. Possible errors: - BUSINESS_RULE_NOT_FOUND: Incentive rule with the specified ID does not exist - BUSINESS_RULE_UPDATE_ERROR: Failed to update the incentive rule conditions - FORBIDDEN: Insufficient permissions to modify incentive rules AUTH: Role=[configuration.OWNER,configuration.EDITOR] """ incentiveRuleSetOrderItemConditions( """ Configuration data for setting order item conditions and filtering criteria """ input: IncentiveRuleOrderItemSetCellInput! ): BusinessRule! """ Configure the incentive action and discount settings for an incentive rule. Defines the specific incentive action to be applied when rule conditions are met, including discount types, amounts, and application logic for promotional offers and special pricing. Possible errors: - BUSINESS_RULE_NOT_FOUND: Incentive rule with the specified ID does not exist - BUSINESS_RULE_UPDATE_ERROR: Failed to update the incentive rule action - FORBIDDEN: Insufficient permissions to modify incentive rules AUTH: Role=[configuration.OWNER,configuration.EDITOR] """ incentiveRuleSetAction( """ Configuration data for setting incentive actions, discount types, and promotional settings """ input: IncentiveRuleSetActionInput! ): BusinessRule! """ Create a new shipping carrier in the system. Establishes a new carrier with service details, coverage areas, pricing information, and integration settings. The carrier will be available for shipping calculations and logistics operations immediately after creation. Validates warehouse IDs against the warehouse service to ensure coverage areas exist. Possible errors: - CARRIER_CREATE_ERROR: Failed to create the carrier due to data source issues or warehouse validation failure - CARRIER_ALREADY_EXISTS_ERROR: Carrier with the same name already exists within the organization - FORBIDDEN: Insufficient permissions to create carriers AUTH: Role=[logistics.OWNER] """ carrierCreate( """ Carrier creation data including service details and configuration. Contains all required and optional carrier information including name (maximum 64 characters), service type, localized descriptions, shipping cost, tracking URL template (HTTPS only), logo URL, and warehouse coverage areas. All warehouse IDs are validated against the warehouse service. """ input: CarrierCreateInput! ): Carrier! """ Update an existing carrier's configuration. Modifies carrier details including service type, localized descriptions, pricing information, tracking URL template, logo, and warehouse coverage areas. Only provided fields will be updated, others remain unchanged. Validates warehouse IDs against the warehouse service if provided. Possible errors: - CARRIER_NOT_FOUND_ERROR: Carrier with the specified ID does not exist in the system - CARRIER_UPDATE_ERROR: Failed to update the carrier due to data source issues or warehouse validation failure - CARRIER_ALREADY_EXISTS_ERROR: Updated name conflicts with existing carrier within the organization - FORBIDDEN: Insufficient permissions to update carriers AUTH: Role=[logistics.OWNER,logistics.EDITOR] """ carrierUpdate( """ Unique identifier of the carrier to update. Must be a positive integer representing a valid carrier ID in the system. This ID is used to locate the specific carrier for modification. """ id: Int! """ Updated carrier information. Contains the carrier properties to update including name (maximum 64 characters), service type, localized descriptions, shipping cost, tracking URL template (HTTPS only), logo URL, and warehouse coverage areas. Only provided fields will be changed, others remain unchanged. All warehouse IDs are validated against the warehouse service. """ input: CarrierUpdateInput! ): Carrier! """ Permanently delete a carrier from the system. Removes the carrier and all associated configuration including warehouse assignments and service settings. This action cannot be undone and will affect any shipping operations that depend on this carrier. Ensure the carrier is not actively used before deletion. Possible errors: - CARRIER_NOT_FOUND_ERROR: Carrier with the specified ID does not exist in the system - CARRIER_DELETE_ERROR: Failed to delete the carrier due to data source issues or referential integrity constraints - FORBIDDEN: Insufficient permissions to delete carriers AUTH: Role=[logistics.OWNER] """ carrierDelete( """ Unique identifier of the carrier to delete. Must be a positive integer representing a valid carrier ID in the system. This ID is used to locate the specific carrier for permanent removal. """ id: Int! ): Boolean! """ Assign a warehouse to a carrier for shipping operations (deprecated). Associates a warehouse with a carrier to enable shipping services from that fulfillment location. This method is deprecated and returns only a boolean success indicator. Validates warehouse existence against the warehouse service before assignment. Possible errors: - CARRIER_NOT_FOUND_ERROR: Carrier with the specified ID does not exist in the system - CARRIER_ASSIGN_WAREHOUSE_ERROR: Failed to assign warehouse to carrier due to data source issues or warehouse validation failure - FORBIDDEN: Insufficient permissions to assign warehouses to carriers AUTH: Role=[logistics.OWNER,logistics.EDITOR] """ carrierAssignWarehouse( """ Unique identifier of the carrier. Must be a positive integer representing a valid carrier ID in the system. This ID is used to locate the carrier for warehouse assignment. """ id: Int! """ Unique identifier of the warehouse to assign. Must be a positive integer representing a valid warehouse ID in the system. This warehouse will be validated against the warehouse service before assignment. """ warehouseId: Int! ): Boolean! @deprecated(reason: "Use `carrierAssignWarehouseAndReturnCarrier` instead.") """ Assign a warehouse to a carrier and return the updated carrier. Associates a warehouse with a carrier to enable shipping services from that fulfillment location. Returns the updated carrier with the new warehouse assignment for immediate use in shipping calculations. Validates warehouse existence against the warehouse service before assignment. Possible errors: - CARRIER_NOT_FOUND_ERROR: Carrier with the specified ID does not exist in the system - CARRIER_ASSIGN_WAREHOUSE_ERROR: Failed to assign warehouse to carrier due to data source issues or warehouse validation failure - FORBIDDEN: Insufficient permissions to assign warehouses to carriers AUTH: Role=[logistics.OWNER,logistics.EDITOR] """ carrierAssignWarehouseAndReturnCarrier( """ Unique identifier of the carrier. Must be a positive integer representing a valid carrier ID in the system. This ID is used to locate the carrier for warehouse assignment. """ id: Int! """ Unique identifier of the warehouse to assign. Must be a positive integer representing a valid warehouse ID in the system. This warehouse will be validated against the warehouse service before assignment. """ warehouseId: Int! ): Carrier! """ Remove warehouse assignment from a carrier (deprecated). Disassociates a warehouse from a carrier, removing shipping services from that fulfillment location. This method is deprecated and returns only a boolean success indicator. Possible errors: - CARRIER_NOT_FOUND_ERROR: Carrier with the specified ID does not exist in the system - CARRIER_UNASSIGN_WAREHOUSE_ERROR: Failed to unassign warehouse from carrier due to data source issues - FORBIDDEN: Insufficient permissions to unassign warehouses from carriers AUTH: Role=[logistics.OWNER,logistics.EDITOR] """ carrierUnassignWarehouse( """ Unique identifier of the carrier. Must be a positive integer representing a valid carrier ID in the system. This ID is used to locate the carrier for warehouse unassignment. """ id: Int! """ Unique identifier of the warehouse to unassign. Must be a positive integer representing a valid warehouse ID in the system. This warehouse will be removed from the carrier's coverage areas. """ warehouseId: Int! ): Boolean! @deprecated(reason: "Use `carrierUnassignWarehouseAndReturnCarrier` instead.") """ Remove warehouse assignment from a carrier and return the updated carrier. Disassociates a warehouse from a carrier, removing shipping services from that fulfillment location. Returns the updated carrier with the warehouse removed from coverage areas for immediate use in shipping calculations. Possible errors: - CARRIER_NOT_FOUND_ERROR: Carrier with the specified ID does not exist in the system - CARRIER_UNASSIGN_WAREHOUSE_ERROR: Failed to unassign warehouse from carrier due to data source issues - FORBIDDEN: Insufficient permissions to unassign warehouses from carriers AUTH: Role=[logistics.OWNER,logistics.EDITOR] """ carrierUnassignWarehouseAndReturnCarrier( """ Unique identifier of the carrier. Must be a positive integer representing a valid carrier ID in the system. This ID is used to locate the carrier for warehouse unassignment. """ id: Int! """ Unique identifier of the warehouse to unassign. Must be a positive integer representing a valid warehouse ID in the system. This warehouse will be removed from the carrier's coverage areas. """ warehouseId: Int! ): Carrier! """ Create a new shopping cart session. Initializes a new cart with optional configuration including customer association, shop settings, and initial parameters. The cart will be created with a unique identifier and can be used for adding products and managing the shopping experience. Possible errors: - CART_CREATE_ERROR: Failed to create the cart - CHANNEL_NOT_FOUND_ERROR: Specified channel does not exist - CONTACT_NOT_FOUND_ERROR: Specified contact does not exist - CUSTOMER_NOT_FOUND_ERROR: Specified customer does not exist - COMPANY_NOT_FOUND_ERROR: Specified company does not exist - FORBIDDEN: Insufficient permissions to create carts AUTH: Role=[order.OWNER,order.EDITOR,order.VIEWER] OR (('user is authenticated') AND ('userId if present in input matches JWT' AND 'contactId if present in input matches JWT' AND 'customerId if present in input matches JWT' AND 'companyId(s) if present in input matches JWT')) """ cartStart( """ Cart initialization parameters. Optional configuration for the new cart including customer association, shop settings, language preferences, and initial cart state. If not provided, creates a basic cart with default settings. """ input: CartStartInput ): Cart! """ Associate a user with an existing cart (deprecated). Links a user account to the cart for personalized pricing, order history, and account-specific features. This mutation is deprecated and will be removed in future versions. Possible errors: - CART_NOT_FOUND_ERROR: Cart with the specified ID does not exist - CART_SET_USER_ERROR: Failed to associate user with cart - USER_NOT_FOUND_ERROR: Specified user does not exist - FORBIDDEN: Insufficient permissions to modify cart AUTH: Role=[order.OWNER,order.EDITOR,order.VIEWER] OR (('user is authenticated') AND ('userId if present in input matches JWT')) """ cartSetUser( """ Unique identifier of the cart to associate with user. Must be a valid UUID format representing an existing cart. """ id: String! """ User association data. Contains the user identifier and any additional configuration for the user-cart association. """ input: CartSetUserInput! ): Cart! @deprecated(reason: "Will be removed in the future, please use `cartSetContact` or `cartSetCustomer` mutations instead.") """ Associate a contact with an existing cart. Links a contact to the cart for personalized pricing, company-specific terms, and contact-based order processing. This enables B2B functionality and contact-specific cart features. Possible errors: - CART_NOT_FOUND_ERROR: Cart with the specified ID does not exist - CART_SET_CONTACT_ERROR: Failed to associate contact with cart - CONTACT_NOT_FOUND_ERROR: Specified contact does not exist - FORBIDDEN: Insufficient permissions to modify cart AUTH: Role=[order.OWNER,order.EDITOR,order.VIEWER] OR (('user is authenticated') AND ('contactId if present in input matches JWT' AND 'companyId(s) if present in input matches JWT')) """ cartSetContact( """ Unique identifier of the cart to associate with contact. Must be a valid UUID format representing an existing cart. """ id: String! """ Contact association data. Contains the contact identifier and company information for establishing the cart-contact relationship. """ input: CartSetContactInput! ): Cart! """ Associate a customer with an existing cart. Links a customer account to the cart for personalized pricing, customer-specific terms, and individual customer order processing. This enables B2C functionality and customer-based cart features. Possible errors: - CART_NOT_FOUND_ERROR: Cart with the specified ID does not exist - CART_SET_CUSTOMER_ERROR: Failed to associate customer with cart - CUSTOMER_NOT_FOUND_ERROR: Specified customer does not exist - FORBIDDEN: Insufficient permissions to modify cart AUTH: Role=[order.OWNER,order.EDITOR,order.VIEWER] OR (('user is authenticated') AND ('customerId if present in input matches JWT')) """ cartSetCustomer( """ Unique identifier of the cart to associate with customer. Must be a valid UUID format representing an existing cart. """ id: String! """ Customer association data. Contains the customer identifier and any additional configuration for the customer-cart relationship. """ input: CartSetCustomerInput! ): Cart! """ Update an existing cart's information and settings. Modifies cart properties including addresses, payment preferences, shipping options, notes, and other cart metadata. Cart items are updated separately using dedicated item mutations. Possible errors: - CART_NOT_FOUND_ERROR: Cart with the specified ID does not exist - CART_UPDATE_ERROR: Failed to update the cart - CART_INVALID_STATUS_ERROR: Cart is in a status that doesn't allow updates """ cartUpdate( """ Unique identifier of the cart to update. Must be a valid UUID format representing an existing cart. """ id: String! """ Updated cart information. Contains the cart properties to update. Only provided fields will be changed, others remain unchanged. """ input: CartUpdateInput! ): Cart! """ Permanently delete a shopping cart. Removes the cart and all associated data including items, addresses, and preferences. This action cannot be undone and will invalidate any references to the cart. Possible errors: - CART_NOT_FOUND_ERROR: Cart with the specified ID does not exist - CART_DELETE_ERROR: Failed to delete the cart - CART_INVALID_OWNER_ERROR: Insufficient permissions to delete this cart """ cartDelete( """ Unique identifier of the cart to delete. Must be a valid UUID format representing an existing cart. """ id: String! ): Boolean! """ Process cart and convert it to an order. Finalizes the cart by validating all items, calculating final totals, applying discounts, and converting it to an order. This is the final step in the checkout process. Possible errors: - CART_NOT_FOUND_ERROR: Cart with the specified ID does not exist - CART_PROCESS_ERROR: Failed to process the cart - CART_INVALID_STATUS_ERROR: Cart is not in a processable state - PRODUCT_INVALID_ERROR: One or more products in the cart are no longer valid """ cartProcess( """ Unique identifier of the cart to process. Must be a valid UUID format representing an existing cart ready for checkout. """ id: String! """ Cart processing configuration. Contains final checkout parameters including payment confirmation, delivery preferences, and processing options. """ input: CartProcessInput! ): CartProcessResponse! """ Apply a promotional action code to the cart. Adds a discount code, promotional offer, or special action to the cart. The action code will be validated and applied if eligible, potentially affecting pricing and available options. Possible errors: - CART_NOT_FOUND_ERROR: Cart with the specified ID does not exist - CART_ACTION_CODE_ADD_ERROR: Failed to apply the action code """ cartAddActionCode( """ Unique identifier of the cart to apply action code to. Must be a valid UUID format representing an existing cart. """ id: String! """ Action code application data. Contains the action code and any additional parameters needed for application. """ input: CartActionCodeInput! ): Cart! """ Remove a promotional action code from the cart. Removes a previously applied discount code or promotional offer from the cart, reverting any pricing changes or special conditions that were applied. Possible errors: - CART_NOT_FOUND_ERROR: Cart with the specified ID does not exist - CART_ACTION_CODE_REMOVE_ERROR: Failed to remove the action code """ cartRemoveActionCode( """ Unique identifier of the cart to remove action code from. Must be a valid UUID format representing an existing cart. """ id: String! """ Action code removal data. Contains the action code identifier to be removed from the cart. """ input: CartActionCodeInput! ): Cart! """ Update cart delivery and billing addresses. Modifies the addresses associated with the cart including delivery address, billing address, and any additional address types required for order processing. Possible errors: - CART_NOT_FOUND_ERROR: Cart with the specified ID does not exist - CART_ADDRESS_UPDATE_ERROR: Failed to update the cart addresses """ cartUpdateAddress( """ Unique identifier of the cart to update addresses for. Must be a valid UUID format representing an existing cart. """ id: String! """ Address update information. Contains the new address details for delivery, billing, or other address types associated with the cart. """ input: CartUpdateAddressInput! ): Cart! """ Request cart purchase authorization. Use it to finalize a cart that cannot be processed because purchase authorization (by an authorization manager) is required. The cart status will be changed to PENDING_PURCHASE_AUTHORIZATION. Possible errors: - CART_NOT_FOUND_ERROR: Cart with the specified ID does not exist - CART_REQUEST_PURCHASE_AUTHORIZATION_ERROR: Failed to request purchase authorization - CART_INVALID_STATUS_ERROR: Cart is not in a valid state for purchase authorization AUTH: Role=[order.OWNER,order.EDITOR] OR ('user is authenticated') """ cartRequestPurchaseAuthorization( """Cart unique identifier""" id: String! ): Cart! """ Accept cart purchase authorization request. Use it to accept ownership of a cart that requires purchase authorization and finalize it. Possible errors: - CART_NOT_FOUND_ERROR: Cart with the specified ID does not exist - CART_ACCEPT_PURCHASE_AUTHORIZATION_REQUEST_ERROR: Failed to accept purchase authorization - CART_INVALID_STATUS_ERROR: Cart is not in a valid state for authorization acceptance - CONTACT_NOT_FOUND_ERROR: Specified contact does not exist AUTH: Role=[supervisor,admin,system,internal,order.OWNER,order.EDITOR] OR (('user is authenticated') AND ('contactId if present in input matches JWT')) """ cartAcceptPurchaseAuthorizationRequest( """Cart unique identifier""" id: String! """Cart accept purchase authorization input""" input: CartAcceptPurchaseAuthorizationRequestInput ): Cart! """ Add a product item to the shopping cart. Adds a single product to the cart with specified quantity and configuration. Supports simple products, configurable products with clusters, and custom pricing. Cart totals are automatically recalculated. Possible errors: - CART_NOT_FOUND_ERROR: Cart with the specified ID does not exist - CART_ITEM_ADD_ERROR: Failed to add the item to the cart - PRODUCT_NOT_FOUND_ERROR: Specified product does not exist - PRODUCT_INVALID_ERROR: Product is not valid or available for purchase - CLUSTER_INVALID_CONFIGURATION_ERROR: Invalid cluster configuration for configurable products """ cartAddItem( """ Unique identifier of the cart to add the item to. Must be a valid UUID format representing an existing cart. """ id: String! """ Product item information to add to the cart. Contains product ID, quantity, pricing overrides, and configuration options for complex products. """ input: CartAddItemInput! ): Cart! """ Add a product bundle to the shopping cart. Adds a pre-configured bundle of products to the cart as a single unit. Bundles have special pricing and configuration rules that are applied automatically. Possible errors: - CART_NOT_FOUND_ERROR: Cart with the specified ID does not exist - CART_ITEM_ADD_ERROR: Failed to add the bundle to the cart - BUNDLE_NOT_FOUND_ERROR: Specified bundle does not exist - BUNDLE_INVALID_ERROR: Bundle is not valid or available for purchase - BUNDLE_INVALID_CONFIGURATION_ERROR: Bundle configuration is invalid """ cartAddBundle( """ Unique identifier of the cart to add the bundle to. Must be a valid UUID format representing an existing cart. """ id: String! """ Bundle information to add to the cart. Contains bundle ID, quantity, and any bundle-specific configuration options. """ input: CartAddBundleInput! ): Cart! """ Update an existing item in the shopping cart. Modifies cart item properties such as quantity, configuration, or custom pricing. Cart totals are automatically recalculated after the update. Possible errors: - CART_NOT_FOUND_ERROR: Cart with the specified ID does not exist - CART_ITEM_NOT_FOUND_ERROR: Cart item with the specified ID does not exist - CART_ITEM_UPDATE_ERROR: Failed to update the cart item - CART_ITEM_NOT_UPDATABLE_ERROR: Cart item cannot be updated in its current state """ cartUpdateItem( """ Unique identifier of the cart containing the item. Must be a valid UUID format representing an existing cart. """ id: String! """ Unique identifier of the cart item to update. Must be a valid UUID format representing an existing item in the specified cart. """ itemId: String! """ Updated item information. Contains the item properties to update such as quantity, configuration, or pricing. Only provided fields will be changed. """ input: CartUpdateItemInput! ): Cart! """ Perform bulk operations on multiple cart items. Allows adding, updating, or removing multiple cart items in a single operation. This is more efficient than individual item operations and ensures consistency across all changes. Possible errors: - CART_NOT_FOUND_ERROR: One or more carts do not exist - CART_ITEM_BULK_ERROR: Failed to perform bulk operations - PRODUCT_NOT_FOUND_ERROR: One or more products do not exist - CART_ITEM_NOT_FOUND_ERROR: One or more cart items do not exist """ cartItemBulk( """ Bulk cart item operations configuration. Contains arrays of items to add, update, or remove across one or more carts. Each operation is validated and applied atomically. """ input: CartItemsBulkUpsertInput! ): BulkResponseData! """ Remove an item from the shopping cart. Permanently removes the specified item from the cart and recalculates cart totals. This action cannot be undone. Possible errors: - CART_NOT_FOUND_ERROR: Cart with the specified ID does not exist - CART_ITEM_NOT_FOUND_ERROR: Cart item with the specified ID does not exist - CART_ITEM_DELETE_ERROR: Failed to remove the item from the cart - CART_ITEM_NOT_DELETABLE_ERROR: Cart item cannot be deleted in its current state """ cartDeleteItem( """ Unique identifier of the cart containing the item. Must be a valid UUID format representing an existing cart. """ id: String! """ Item deletion information. Contains the identifier of the cart item to be removed. """ input: CartDeleteItemInput! ): Cart! """ Invalidate cache for a specific cart or all carts if no id is provided. Administrative operation to clear cached cart data. Requires base role permissions. Possible errors: - CART_NOT_FOUND_ERROR: Cart with the specified ID does not exist (when ID is provided) """ cartInvalidateCache( """Cart unique identifier""" id: String ): Boolean! """ Creates a new channel within the current tenant. Errors: CHANNEL_CREATE_ERROR if creation fails due to system issues. AUTH: Role=[configuration.OWNER] """ channelCreate( """Channel configuration data for the new channel.""" input: ChannelCreateInput! ): Channel! """ Updates an existing channel with new configuration data. Errors: CHANNEL_UPDATE_ERROR, CHANNEL_NOT_FOUND_ERROR if channel doesn't exist. AUTH: Role=[configuration.OWNER,configuration.EDITOR] """ channelUpdate( """ Unique identifier of the channel to update. Must be a valid channel ID that exists in the system. """ id: Int! """ Updated channel configuration data. Only provided fields will be updated, others remain unchanged. """ input: ChannelUpdateInput! ): Channel! """ Permanently deletes a channel from the system. Errors: CHANNEL_DELETE_ERROR, CHANNEL_NOT_FOUND_ERROR if channel doesn't exist. AUTH: Role=[configuration.OWNER] """ channelDelete( """ Unique identifier of the channel to delete. Must be a valid channel ID that exists in the system. """ id: Int! ): Boolean! """ Creates a new tenant with its default channel and configuration. Requires admin permissions due to system-wide impact. Errors: TENANT_CREATE_ERROR if creation fails due to validation or system issues. """ tenantCreate( """Complete tenant configuration including default channel setup.""" input: TenantCreateInput! ): Tenant! """ Updates an existing tenant with new configuration data. Requires admin permissions and tenant must exist. Errors: TENANT_UPDATE_ERROR, TENANT_NOT_FOUND_ERROR if tenant doesn't exist. """ tenantUpdate( """ Updated tenant configuration data. Only provided fields will be updated, others remain unchanged. """ input: TenantUpdateInput! """ Unique identifier of the tenant to update. If not provided, uses current user's tenant context. """ id: String ): Tenant! """ Permanently deletes a tenant and all its associated data. Requires admin permissions due to destructive nature. Errors: TENANT_DELETE_ERROR, TENANT_NOT_FOUND_ERROR if tenant doesn't exist. """ tenantDelete( """ Unique identifier of the tenant to delete. If not provided, uses current user's tenant context. """ id: String ): Boolean! """ Creates a new GraphQL API key. Generates a new API key value that is shown only once. The key is encrypted and stored in the database. Errors: GQL_API_KEY_CREATE_ERROR if creation fails. AUTH: Role=[apikey.OWNER] """ gqlApiKeyCreate( """GraphQL API key configuration data.""" input: GqlApiKeyCreateInput! ): GqlApiKey! """ Updates an existing GraphQL API key. Errors: GQL_API_KEY_UPDATE_ERROR, GQL_API_KEY_NOT_FOUND_ERROR if API key doesn't exist. AUTH: Role=[apikey.OWNER,apikey.EDITOR] """ gqlApiKeyUpdate( """Unique identifier of the GraphQL API key to update.""" id: String! """Updated GraphQL API key configuration data.""" input: GqlApiKeyUpdateInput! ): GqlApiKey! """ Permanently deletes a GraphQL API key from the system. Errors: GQL_API_KEY_DELETE_ERROR, GQL_API_KEY_NOT_FOUND_ERROR if API key doesn't exist. AUTH: Role=[apikey.OWNER] """ gqlApiKeyDelete( """Unique identifier of the GraphQL API key to delete.""" id: String! ): Boolean! """ Creates a new REST API key. Errors: REST_API_KEY_CREATE_ERROR if creation fails. AUTH: Role=[apikey.OWNER] """ restApiKeyCreate( """REST API key configuration data.""" input: RestApiKeyCreateInput! ): RestApiKey! """ Updates an existing REST API key. Errors: REST_API_KEY_UPDATE_ERROR, REST_API_KEY_NOT_FOUND_ERROR if API key doesn't exist. AUTH: Role=[apikey.OWNER,apikey.EDITOR] """ restApiKeyUpdate( """Unique identifier of the REST API key to update.""" id: String! """Updated REST API key configuration data.""" input: RestApiKeyUpdateInput! ): RestApiKey! """ Permanently deletes a REST API key from the system. Errors: REST_API_KEY_DELETE_ERROR, REST_API_KEY_NOT_FOUND_ERROR if API key doesn't exist. AUTH: Role=[apikey.OWNER] """ restApiKeyDelete( """Unique identifier of the REST API key to delete.""" id: String! ): Boolean! """ Create a new payment record in the system. Establishes a new payment entry with transaction details, payment method information, and processing status. The payment will be available for order processing and financial tracking immediately. Optionally creates an associated transaction record for atomic payment and transaction creation. Possible errors: - CREATE_PAYMENT_ERROR: Failed to create the payment due to system error - PAYMENT_ALREADY_EXISTS_ERROR: Payment with the same identifier already exists - CREATE_TRANSACTION_ERROR: Failed to create associated transaction when provided - TRANSACTION_ALREADY_EXISTS_ERROR: Associated transaction with same identifier already exists - FORBIDDEN: Insufficient permissions to create payments AUTH: Role=[order.OWNER] """ paymentCreate( """ Payment creation data including transaction details and payment method information. Contains all necessary information to create a payment record including amounts, payment method, and optional transaction data. """ input: CreatePaymentInput! ): Payment! """ Update an existing payment's information. Modifies payment details including status, amounts, transaction information, and processing details. Only provided fields will be updated, others remain unchanged. Supports partial updates for flexible payment management throughout the payment lifecycle. Possible errors: - UPDATE_PAYMENT_ERROR: Failed to update the payment due to system error - PAYMENT_NOT_FOUND_ERROR: Payment with the specified search criteria does not exist - PAYMENT_ALREADY_EXISTS_ERROR: Updated payment data conflicts with existing payment - FORBIDDEN: Insufficient permissions to update payments AUTH: Role=[order.OWNER,order.EDITOR] """ paymentUpdate( """ Search criteria for finding the payment to update. Specifies how to identify the payment (by ID, payment ID, or order ID) for modification. """ searchBy: SearchByInput! """ Updated payment information. Contains the payment properties to update. Only provided fields will be changed, others remain unchanged. """ input: UpdatePaymentInput! ): Payment! """ Permanently delete a payment from the system. Removes the payment record and all associated transaction data. This action cannot be undone and will affect any orders or financial reports that depend on this payment. Use with caution as this permanently removes financial records from the system. Possible errors: - DELETE_PAYMENT_ERROR: Failed to delete the payment due to system error - PAYMENT_NOT_FOUND_ERROR: Payment with the specified search criteria does not exist - FORBIDDEN: Insufficient permissions to delete payments AUTH: Role=[order.OWNER] """ paymentDelete( """ Search criteria for finding the payment to delete. Specifies how to identify the payment (by ID, payment ID, or order ID) for removal. """ searchBy: SearchByInput! ): Payment! """ Update Elasticsearch index mapping configuration. Updates the search index mapping with strict settings to improve search performance and data consistency. This is a system-level operation that affects how company data is indexed and searched. """ companySearchIndexUpdateMapping( """ Index mapping configuration including field definitions and search settings. Contains the new mapping configuration that defines how company data fields are indexed and made searchable. """ input: CompanySearchIndexUpdateMappingInput! ): Boolean! @deprecated(reason: "This mutation is deprecated and will be removed in a future version.") """ Reindex company data to a new search index. Migrates all company data from the current index to a new index with updated configuration. This is typically used during system upgrades or when changing search index structure. Possible errors: - COMPANY_SEARCH_REINDEX_ERROR: Failed to reindex company data """ companySearchReindex( """ Reindex configuration including source and target index settings. Specifies the reindexing parameters and target index configuration for the data migration process. """ input: CompanySearchReindexInput! ): Boolean! @deprecated(reason: "This mutation is deprecated and will be removed in a future version.") """ Fix Elasticsearch alias write index configuration issues. Resolves problems with index aliases that prevent proper write operations to the search index. This is a maintenance operation for search infrastructure. """ companySearchFixAliasWriteIndex( """ Alias configuration for fixing write index issues. Contains the alias and index information needed to resolve write index problems. """ input: CompanySearchReindexInput! ): Boolean! @deprecated(reason: "This mutation is deprecated and will be removed in a future version.") """ Clean up orphaned search indices from failed operations. Removes unused or corrupted indices that were left behind from failed reindex operations, helping maintain search infrastructure health and performance. Possible errors: - COMPANIES_CLEANUP_ERROR: Failed to clean up orphaned indices """ companySearchCleanupOrphanedIndices( """ Cleanup configuration for identifying and removing orphaned indices. Specifies the criteria for identifying orphaned indices and the cleanup parameters. """ input: CompanySearchReindexInput! ): Boolean! @deprecated(reason: "This mutation is deprecated and will be removed in a future version.") """ Permanently delete an event action configuration from the automation system. Removes the event action and all associated configuration. This action cannot be undone and will affect any workflows or processes that depend on this event action. Possible errors: - EVENT_ACTION_CONFIG_NOT_FOUND: Event action configuration with the specified ID not found - EVENT_ACTION_CONFIG_UNKNOWN_ERROR: Unexpected error occurred while fetching the configuration - EVENT_ACTION_CONFIG_DELETE_ERROR: Failed to delete the event action configuration """ eventActionConfigDelete( """ Unique identifier for the event action configuration. Uses UUID v7 format for chronological ordering and global uniqueness across the system. """ id: String! ): Boolean! """ Execute custom event actions with dynamic payload data. Triggers all event action configurations that match the provided custom event code. The payload data is passed to each matching configuration for processing, enabling flexible business automation workflows. Possible errors: - TRIGGER_CUSTOM_EVENT_ERROR: Failed to trigger the custom event - EVENT_ACTION_CONFIG_NOT_FOUND: Event action configuration not found for the specified code - TRIGGER_SEND_EMAIL_EVENT_ERROR: Failed to send email for email action configurations - TRIGGER_POST_TO_WEBHOOK_EVENT_ERROR: Failed to post to webhook for webhook action configurations """ triggerCustomEvent( """Custom event trigger data including code and payload information.""" input: TriggerCustomEventInput! ): Boolean! """ Create a new email event action configuration. Establishes a new event-to-email automation that triggers email sending based on system events. The configuration will be active for event processing immediately. Possible errors: - EVENT_ACTION_CONFIG_ALREADY_EXISTS: Configuration with the same trigger and email template ID already exists - EVENT_ACTION_CONFIG_CREATE_ERROR: Failed to create the event action configuration """ eventToEmailConfigCreate( """ Email event action creation data including trigger conditions and email template configuration. Contains all necessary information to create a functional email automation including event triggers, template references, and recipient settings. """ input: EventToEmailConfigCreateInput! ): EventToEmailConfig! """ Update an existing email event action configuration. Modifies email automation details including trigger conditions, template references, and recipient settings. Only provided fields will be updated, others remain unchanged. Possible errors: - EVENT_ACTION_CONFIG_NOT_FOUND: Event action configuration with the specified ID not found - EVENT_ACTION_CONFIG_UNKNOWN_ERROR: Unexpected error occurred while fetching the configuration - EVENT_ACTION_CONFIG_ALREADY_EXISTS: Configuration with the same trigger and email template ID already exists - EVENT_ACTION_CONFIG_UPDATE_ERROR: Failed to update the event action configuration """ eventToEmailConfigUpdate( """ Unique identifier for the event action configuration. Uses UUID v7 format for chronological ordering and global uniqueness across the system. """ id: String! """ Updated email event action information. Contains the email automation properties to update. Only provided fields will be changed, others remain unchanged. """ input: EventToEmailConfigUpdateInput! ): EventToEmailConfig! """ Create a new webhook event action configuration. Establishes a new event-to-webhook automation that triggers HTTP requests based on system events. The configuration will be active for event processing immediately. Possible errors: - EVENT_ACTION_CONFIG_ALREADY_EXISTS: Configuration with the same trigger and webhook URL already exists - EVENT_ACTION_CONFIG_CREATE_ERROR: Failed to create the event action configuration """ eventToWebHookConfigCreate( """ Webhook event action creation data including trigger conditions and HTTP request configuration. Contains all necessary information to create a functional webhook automation including event triggers, URL endpoints, authentication, and payload settings. """ input: EventToWebHookConfigCreateInput! ): EventToWebHookConfig! """ Update an existing webhook event action configuration. Modifies webhook automation details including trigger conditions, URL endpoints, authentication, and payload settings. Only provided fields will be updated, others remain unchanged. Possible errors: - EVENT_ACTION_CONFIG_NOT_FOUND: Event action configuration with the specified ID not found - EVENT_ACTION_CONFIG_UNKNOWN_ERROR: Unexpected error occurred while fetching the configuration - EVENT_ACTION_CONFIG_ALREADY_EXISTS: Configuration with the same trigger and webhook URL already exists - EVENT_ACTION_CONFIG_UPDATE_ERROR: Failed to update the event action configuration """ eventToWebHookConfigUpdate( """ Unique identifier for the event action configuration. Uses UUID v7 format for chronological ordering and global uniqueness across the system. """ id: String! """ Updated webhook event action information. Contains the webhook automation properties to update. Only provided fields will be changed, others remain unchanged. """ input: EventToWebHookConfigUpdateInput! ): EventToWebHookConfig! """ Create a new favorite list for a customer or contact. Establishes a new favorite list with name and owner association. The list will be available for adding products and clusters immediately after creation. Creation process includes: - Name validation and uniqueness checking within owner scope - Automatic slug generation from the provided name - Owner association validation (company, contact, or customer - mutually exclusive) - Initial content setup (products and clusters if provided) - Default status configuration The created list is immediately available for item management operations and can be retrieved through search or direct access. Validation constraints: - Name is required with maximum length of 64 characters - Only one ownership type allowed (company OR contact OR customer) - Product and cluster IDs must reference existing entities - Array fields must contain unique values - External source references must have valid name and ID format Possible errors: - FAVORITE_LISTS_CREATE_ERROR: Failed to create the favorite list due to system error - FAVORITE_LISTS_INVALID_INPUT_ERROR: Favorite list data validation failed or invalid input format - FAVORITE_LISTS_UNKNOWN_ERROR: Unexpected system error during creation AUTH: Role=[shop.OWNER] OR (('user is authenticated') AND ('undefined')) """ favoriteListCreate( """ Favorite list creation data including name and owner information. Contains all necessary information to create a functional favorite list including owner association and initial configuration. Required fields: - name: Descriptive name for the list (maximum 64 characters) Optional fields: - Owner association: One of company, contact, or customer (ID or source format) - Content: Initial products and/or clusters (ID or source format) - isDefault: Whether this should be marked as a default list Validation rules: - Name cannot be empty and must be unique within the owner's scope - Only one ownership type can be specified - All referenced entities (products, clusters, owners) must exist - Array fields automatically remove duplicates """ input: FavoriteListsCreateInput! ): FavoriteList! """ Update an existing favorite list's configuration. Modifies favorite list details including name and content. Only provided fields will be updated, others remain unchanged. This operation supports partial updates, allowing selective modification of list properties. Update capabilities include: - Name modification (automatically regenerates slug) - Content updates (products and clusters using ID or source format) - Default status changes - Ownership cannot be changed after creation The update operation preserves existing data for fields not included in the input, making it safe for partial updates. All validation rules from creation apply to the updated values. Validation constraints: - Name must be unique within the owner's scope if provided (maximum 64 characters) - Product and cluster references must exist if provided - Array fields must contain unique values - External source references must have valid format Possible errors: - FAVORITE_LISTS_NOT_FOUND_ERROR: Favorite list with the specified ID does not exist - FAVORITE_LISTS_UPDATE_ERROR: Failed to update the favorite list due to system error - FAVORITE_LISTS_INVALID_INPUT_ERROR: Updated favorite list data validation failed - FAVORITE_LISTS_UNKNOWN_ERROR: Unexpected system error during update operation AUTH: Role=[system] OR ('user is authenticated') """ favoriteListUpdate( """ Unique identifier of the favorite list to update. Must be a valid MongoDB ObjectId string with length of 12 or 24 characters representing an existing favorite list. The ObjectId format is validated automatically and will return an error for invalid formats. Validation constraints: - Required field (cannot be null or empty) - Must be valid ObjectId format (hexadecimal string) - Must reference an existing favorite list in the system """ id: String! """ Updated favorite list information. Contains the favorite list properties to update. All fields are optional for partial updates. Only provided fields will be changed, others remain unchanged. Updatable fields: - name: New descriptive name (maximum 64 characters, must be unique within owner scope) - productIds/productSources: Replace current product associations - clusterIds/clusterSources: Replace current cluster associations - isDefault: Change default status Note: Ownership (company, contact, customer) cannot be modified after creation. """ input: FavoriteListsUpdateInput! ): FavoriteList! """ Permanently delete a favorite list from the system. Removes the favorite list and all associated data from the system. This is a destructive operation that cannot be undone. Deletion process includes: - Complete removal of the favorite list record - Cleanup of all associated item references - Removal from any cached data structures - Audit trail logging for compliance This operation will affect any external references to this favorite list, so it should be used with caution. The operation returns true on successful deletion. Warning: This is a permanent operation that cannot be reversed. Ensure the list is no longer needed before deletion. Possible errors: - FAVORITE_LISTS_NOT_FOUND_ERROR: Favorite list with the specified ID does not exist - FAVORITE_LISTS_DELETE_ERROR: Failed to delete the favorite list due to system error - FAVORITE_LISTS_UNKNOWN_ERROR: Unexpected system error during deletion operation AUTH: Role=[system] OR ('user is authenticated') """ favoriteListDelete( """ Unique identifier of the favorite list to delete. Must be a valid MongoDB ObjectId string with length of 12 or 24 characters representing an existing favorite list. The ObjectId format is validated automatically and will return an error for invalid formats. Validation constraints: - Required field (cannot be null or empty) - Must be valid ObjectId format (hexadecimal string) - Must reference an existing favorite list in the system Warning: This operation permanently removes the favorite list and cannot be undone. """ id: String! ): Boolean! """ Add products and clusters to a favorite list. Associates individual products and/or product clusters with the specified favorite list, enabling users to save items for later reference or purchase. Addition process includes: - Validation of all provided product and cluster references - Duplicate detection and prevention within the list - Atomic operation ensuring data consistency - Automatic deduplication of existing items Items can be specified using either internal IDs or external source references, but not both formats simultaneously. The operation is additive - existing items in the list remain unchanged. Supported item types: - Products: Individual product entities referenced by ID or external source - Clusters: Product cluster entities referenced by ID or external source - Mixed: Both products and clusters can be added in the same operation Validation constraints: - All product IDs must reference existing products in the system - All cluster IDs must reference existing clusters in the system - Array fields must contain unique values (duplicates are automatically removed) - External source references must have valid name and ID format Possible errors: - FAVORITE_LISTS_NOT_FOUND_ERROR: Favorite list with the specified ID does not exist - FAVORITE_LISTS_INVALID_INPUT_ERROR: Invalid item references or validation failure - FAVORITE_LISTS_UNKNOWN_ERROR: Unexpected system error during item addition AUTH: Role=[system] OR ('user is authenticated') """ favoriteListAddItems( """ Unique identifier of the favorite list to modify. Must be a valid MongoDB ObjectId string with length of 12 or 24 characters representing an existing favorite list. The ObjectId format is validated automatically and will return an error for invalid formats. Validation constraints: - Required field (cannot be null or empty) - Must be valid ObjectId format (hexadecimal string) - Must reference an existing favorite list in the system """ id: String! """ Items to add to the favorite list. Contains arrays of product IDs and/or cluster IDs to associate with the favorite list. All fields are optional, but at least one item type should be provided for meaningful operation. Supported formats: - productIds: Array of internal product identifiers - productSources: Array of external product source references - clusterIds: Array of internal cluster identifiers - clusterSources: Array of external cluster source references Validation rules: - Cannot mix ID and source formats for the same item type - All referenced entities must exist in the system - Duplicate values within arrays are automatically removed - Empty arrays are ignored """ input: FavoriteListsItemsInput! ): FavoriteList! """ Remove products and clusters from a favorite list. Disassociates individual products and/or product clusters from the specified favorite list, removing them from the user's saved items. Removal process includes: - Validation of all provided product and cluster references - Safe removal of specified items from the list - Atomic operation ensuring data consistency - Preservation of items not specified in the removal request Items can be specified using either internal IDs or external source references, but not both formats simultaneously. The operation only removes explicitly specified items - all other items in the list remain unchanged. Non-existent items in the removal request are silently ignored, making the operation safe for bulk removals. The operation is idempotent - removing the same item multiple times has no additional effect. Supported item types: - Products: Individual product entities referenced by ID or external source - Clusters: Product cluster entities referenced by ID or external source - Mixed: Both products and clusters can be removed in the same operation Validation constraints: - Array fields must contain unique values (duplicates are automatically removed) - External source references must have valid name and ID format - Items not present in the list are silently ignored Possible errors: - FAVORITE_LISTS_NOT_FOUND_ERROR: Favorite list with the specified ID does not exist - FAVORITE_LISTS_INVALID_INPUT_ERROR: Invalid item references or validation failure - FAVORITE_LISTS_UNKNOWN_ERROR: Unexpected system error during item removal AUTH: Role=[system] OR ('user is authenticated') """ favoriteListRemoveItems( """ Unique identifier of the favorite list to modify. Must be a valid MongoDB ObjectId string with length of 12 or 24 characters representing an existing favorite list. The ObjectId format is validated automatically and will return an error for invalid formats. Validation constraints: - Required field (cannot be null or empty) - Must be valid ObjectId format (hexadecimal string) - Must reference an existing favorite list in the system """ id: String! """ Items to remove from the favorite list. Contains arrays of product IDs and/or cluster IDs to disassociate from the favorite list. All fields are optional, but at least one item type should be provided for meaningful operation. Supported formats: - productIds: Array of internal product identifiers to remove - productSources: Array of external product source references to remove - clusterIds: Array of internal cluster identifiers to remove - clusterSources: Array of external cluster source references to remove Validation rules: - Cannot mix ID and source formats for the same item type - Items not present in the list are silently ignored - Duplicate values within arrays are automatically removed - Empty arrays are ignored """ input: FavoriteListsItemsInput! ): FavoriteList! """ Clear all or specific types of items from a favorite list. Removes all products and/or clusters from the favorite list based on the specified parameters. This is a bulk operation useful for cleanup or resetting list contents. Clearing process includes: - Selective removal based on item type flags - Atomic operation ensuring data consistency - Preservation of list metadata and ownership - Complete removal of specified item types The operation provides granular control over what gets cleared: - Clear products only: Set products=true, clusters=false/omitted - Clear clusters only: Set clusters=true, products=false/omitted - Clear everything: Set both products=true and clusters=true - Clear nothing: Set both to false or omit both (no-op) Default behavior when both parameters are omitted is to preserve all items (no clearing occurs). This prevents accidental data loss from unintentional calls. The operation is irreversible for the cleared items, but the list structure and metadata remain intact. Items can be re-added after clearing using the add items operation. Validation constraints: - At least one parameter should be true for meaningful operation - Boolean values are parsed and validated automatically Possible errors: - FAVORITE_LISTS_NOT_FOUND_ERROR: Favorite list with the specified ID does not exist - FAVORITE_LISTS_INVALID_INPUT_ERROR: Invalid parameter values or validation failure - FAVORITE_LISTS_UNKNOWN_ERROR: Unexpected system error during clearing operation AUTH: Role=[system] OR ('user is authenticated') """ favoriteListClearItems( """ Unique identifier of the favorite list to modify. Must be a valid MongoDB ObjectId string with length of 12 or 24 characters representing an existing favorite list. The ObjectId format is validated automatically and will return an error for invalid formats. Validation constraints: - Required field (cannot be null or empty) - Must be valid ObjectId format (hexadecimal string) - Must reference an existing favorite list in the system """ id: String! """ Controls whether to clear all products from the favorite list. When set to true, removes all individual products from the list completely. When set to false or omitted, products are preserved and remain in the list. Default behavior: false (products are preserved) """ products: Boolean """ Controls whether to clear all product clusters from the favorite list. When set to true, removes all product clusters from the list completely. When set to false or omitted, clusters are preserved and remain in the list. Default behavior: false (clusters are preserved) """ clusters: Boolean ): FavoriteList! """ Create a new inventory record in the system. Establishes a new inventory entry with stock levels, location details, and product associations. The inventory record will be available for stock management and availability calculations immediately. Possible errors: - INVENTORY_CREATE_ERROR: Failed to create the inventory record - INVENTORY_ALREADY_EXISTS_ERROR: Inventory record already exists for this product and location - INVENTORY_PRODUCT_NOT_FOUND_ERROR: Specified product does not exist - INVENTORY_WAREHOUSE_NOT_FOUND_ERROR: Specified warehouse does not exist - FORBIDDEN: Insufficient permissions to create inventory records AUTH: Role=[logistics.OWNER] """ inventoryCreate( """ Inventory creation data including stock levels and location details. Contains product associations, stock quantities, location information, and all data needed to create a complete inventory record. """ input: CreateInventoryInput! ): InventoryResponse! """ Import inventory records from a CSV file. Processes a CSV file containing inventory data and creates multiple inventory records in batch. Provides detailed feedback on successful imports and any errors encountered during processing. Possible errors: - INVENTORY_BULK_CREATE_ERROR: Failed to process the CSV file or create inventory records - INVENTORY_ALREADY_EXISTS_ERROR: One or more inventory records already exist - INVENTORY_PRODUCT_NOT_FOUND_ERROR: One or more products do not exist - INVENTORY_WAREHOUSE_NOT_FOUND_ERROR: One or more warehouses do not exist - FORBIDDEN: Insufficient permissions to import inventory records AUTH: Role=[logistics.OWNER] """ inventoryCsvImport( """ CSV file and mapping configuration for inventory import. Contains the CSV file data and field mappings to define how CSV columns correspond to inventory properties. """ input: InventoryCsvInput! ): CsvImportResponse! """ Update an existing inventory record's information. Modifies inventory details including stock levels, location assignments, product associations, and availability status. Only provided fields will be updated, others remain unchanged. Possible errors: - INVENTORY_NOT_FOUND_ERROR: Inventory record with the specified ID does not exist - INVENTORY_UPDATE_ERROR: Failed to update the inventory record - FORBIDDEN: Insufficient permissions to update inventory records AUTH: Role=[logistics.OWNER,logistics.EDITOR] """ inventoryUpdate( """ Unique identifier of the inventory record to update. Must be a positive integer representing a valid inventory ID in the system. """ id: Int! """ Updated inventory information. Contains the inventory properties to update. Only provided fields will be changed, others remain unchanged. """ input: UpdateInventoryInput! ): InventoryResponse! """ Permanently delete an inventory record from the system. Removes the inventory record and all associated data. This action cannot be undone and will affect stock availability calculations and inventory reporting. Possible errors: - INVENTORY_NOT_FOUND_ERROR: Inventory record with the specified ID does not exist - INVENTORY_DELETE_ERROR: Failed to delete the inventory record - FORBIDDEN: Insufficient permissions to delete inventory records AUTH: Role=[logistics.OWNER] """ inventoryDelete( """ Unique identifier of the inventory record to delete. Must be a positive integer representing a valid inventory ID in the system. """ id: Int! ): InventoryDeleteResponse! """AUTH: Role=[product.OWNER]""" mediaImageCreate( """ Image creation data including metadata, file uploads, and entity associations """ input: MediaImageInput! ): MediaImage! """AUTH: Role=[product.OWNER,product.EDITOR]""" mediaImageUpdate( """Image update data including modified metadata and entity associations""" input: UpdateMediaImageInput! ): MediaImage! """AUTH: Role=[product.OWNER]""" mediaImageDelete( """Unique identifier of the image to delete permanently""" mediaId: String! ): DeleteMediaImageResponse! """AUTH: Role=[product.OWNER]""" mediaImageCsvImport( """CSV file and field mapping configuration for bulk image import""" input: ImageCsvInput! ): CsvImportResponse! """AUTH: Role=[product.OWNER]""" mediaVideoCreate(input: MediaVideoInput!): MediaVideo! """AUTH: Role=[product.OWNER,product.EDITOR]""" mediaVideoUpdate(input: UpdateMediaVideoInput!): MediaVideo! """AUTH: Role=[product.OWNER]""" mediaVideoDelete(mediaId: String!): DeleteMediaVideoResponse! """AUTH: Role=[product.OWNER]""" mediaVideoCsvImport(input: VideoCsvInput!): CsvImportResponse! """AUTH: Role=[product.OWNER]""" mediaDocumentCreate(input: MediaDocumentInput!): MediaDocument! """AUTH: Role=[product.OWNER,product.EDITOR]""" mediaDocumentUpdate(input: UpdateMediaDocumentInput!): MediaDocument! """AUTH: Role=[product.OWNER]""" mediaDocumentDelete(mediaId: String!): DeleteMediaDocumentResponse! """AUTH: Role=[product.OWNER]""" mediaDocumentCsvImport(input: DocumentCsvInput!): CsvImportResponse! """ AUTH: Role=[order.OWNER,product.OWNER] OR (('user is authenticated') AND ('customerId or companyId if present in input matches JWT')) """ mediaAttachmentCreate(input: MediaAttachmentInput!): MediaAttachment! """AUTH: Role=[order.OWNER,order.EDITOR,product.OWNER,product.EDITOR]""" mediaAttachmentUpdate(id: String!, input: UpdateMediaAttachmentInput!): MediaAttachment! """AUTH: Role=[order.OWNER,product.OWNER]""" mediaAttachmentDelete(id: String!): DeleteMediaAttachmentResponse! """ Trigger email processing through event-driven architecture. Publishes an email trigger event to the message queue containing abstract event data that will be processed by the template engine. The event will be enriched with template data and rendered before sending. Possible errors: - PUBSUB_TOPIC_PUBLISH_FAILED_ERROR: Failed to publish the email event to the message queue AUTH: Role=[system] """ publishEmailEvent( """ Email event data for template processing. Contains event information, recipient details, and template context that will be used to generate and send the email through the messaging pipeline. """ input: EmailEventInput! ): PublishEmailEventResponse! """ Send pre-processed email directly through messaging system. Publishes a ready-to-send email event containing all processed fields needed to send a single email immediately. Bypasses template processing and sends the email with provided content. Possible errors: - PUBSUB_TOPIC_PUBLISH_FAILED_ERROR: Failed to publish the email send event to the message queue AUTH: Role=[system] """ publishEmailSendEvent( """ Complete email data ready for immediate sending. Contains all processed email information including recipients, subject, content, and attachments that can be sent directly without template processing. """ input: EmailSendEventInput! ): PublishEmailEventResponse! """ Send password reset email with reset link (deprecated). Publishes an email trigger event containing user data and password reset link for account recovery. This method is deprecated and should not be used for new implementations. Possible errors: - GET_PASSWORD_RESET_LINK_ERROR: Failed to retrieve password reset link from auth service - PUBSUB_TOPIC_PUBLISH_FAILED_ERROR: Failed to publish password reset email event to message queue - PASSWORD_RESET_LINK_EMAIL_ERROR: Unknown error occurred during password reset email processing """ publishPasswordResetEmailEvent( """ Password reset email data including user information and reset link. Contains user account details and generated password reset link for account recovery email. """ input: PasswordResetLinkEmailInput! ): PublishEmailEventResponse! @deprecated(reason: "Deprecated in favor of using the triggerPasswordSendResetEmailEvent that utilizes the event-action-manager and template-engine") """ Create a new email template for messaging campaigns. Establishes a new email template with content, localization, recipients, and configuration for automated email communications and marketing campaigns. Possible errors: - TEMPLATE_CREATE_ERROR: Failed to create template due to system issues - HANDLEBARS_PRECOMPILE_ERROR: Template precompilation failed due to syntax errorsAUTH: Role=[configuration.OWNER] """ emailTemplateCreate( """ Email template creation data. Complete configuration for creating a new email template including content, localization, recipients, sender information, and integration settings. """ input: EmailTemplateCreateInput! ): EmailTemplate! """ Update an existing email template's configuration. Modifies email template details including content, localization, recipients, and settings while preserving template history and references. Possible errors: - TEMPLATE_NOT_FOUND: Template with specified ID does not exist - TEMPLATE_UPDATE_ERROR: Failed to update template due to system issues - HANDLEBARS_PRECOMPILE_ERROR: Template precompilation failed due to syntax errorsAUTH: Role=[configuration.OWNER,configuration.EDITOR] """ emailTemplateUpdate( """ Unique identifier for the email template to update. UUID that uniquely identifies the email template in the system, used for targeting the specific template for modification. """ id: String! """ Email template update data. Partial configuration for updating an existing email template, all fields are optional for selective modifications of content, recipients, and settings. """ input: EmailTemplateUpdateInput! ): EmailTemplate! """ Create a new document template for PDF generation. Establishes a new document template with layout, content, and formatting for automated document generation like invoices, reports, and certificates. Possible errors: - TEMPLATE_CREATE_ERROR: Failed to create template due to system issues - HANDLEBARS_PRECOMPILE_ERROR: Template precompilation failed due to syntax errorsAUTH: Role=[configuration.OWNER] """ documentTemplateCreate( """ Document template creation data. Complete configuration for creating a new document template including content, localization, file naming patterns, and default template designations. """ input: DocumentTemplateCreateInput! ): DocumentTemplate! """ Update an existing document template's configuration. Modifies document template details including layout, content, formatting, and generation settings while maintaining template integrity. Possible errors: - TEMPLATE_NOT_FOUND: Template with specified ID does not exist - TEMPLATE_UPDATE_ERROR: Failed to update template due to system issues - HANDLEBARS_PRECOMPILE_ERROR: Template precompilation failed due to syntax errorsAUTH: Role=[configuration.OWNER,configuration.EDITOR] """ documentTemplateUpdate( """ Unique identifier for the document template to update. UUID that uniquely identifies the document template in the system, used for targeting the specific template for modification. """ id: String! """ Document template update data. Partial configuration for updating an existing document template, all fields are optional for selective modifications of content, file naming, and default designations. """ input: DocumentTemplateUpdateInput! ): DocumentTemplate! """ Permanently delete a message template from the system. Removes the template and all associated data, affecting any processes that depend on this template for message generation. Possible errors: - TEMPLATE_NOT_FOUND: Template with specified ID does not exist - TEMPLATE_DELETE_ERROR: Failed to delete template due to system constraints or dependenciesAUTH: Role=[configuration.OWNER] """ templateDelete( """ Unique identifier for the template to delete. UUID that uniquely identifies the template in the system, used for targeting the specific template for permanent removal. """ id: String! ): Boolean! """ Add a document attachment to an email template. Attaches a document template to the email template, enabling automatic document generation and attachment to emails sent using this template. Possible errors: - TEMPLATE_NOT_FOUND: Email template or document template with specified ID does not exist - TEMPLATE_UPDATE_ERROR: Failed to add attachment due to system issues """ emailTemplateAddAttachment( """ Unique identifier for the email template. UUID that uniquely identifies the email template to which the attachment will be added. """ id: String! """ Unique identifier for the document template attachment. UUID that uniquely identifies the document template that will be attached to the email template. """ documentTemplateId: String! ): EmailTemplate! """ Remove a document attachment from an email template. Detaches a specified document template from the email template, reducing the email size and removing the attachment from future email sends. Possible errors: - TEMPLATE_NOT_FOUND: Email template with specified ID does not exist - TEMPLATE_UPDATE_ERROR: Failed to remove attachment due to system issues """ emailTemplateRemoveAttachment( """ Unique identifier for the email template. UUID that uniquely identifies the email template from which the attachment will be removed. """ id: String! """ Unique identifier for the document template attachment. UUID that uniquely identifies the document template attachment that will be removed from the email template. """ documentTemplateId: String! ): EmailTemplate! """ Preview template output as HTML with provided data. Renders the template using the provided payload data and returns HTML output for template testing, debugging, and preview purposes. Possible errors: - TEMPLATE_NOT_FOUND: Template with specified ID does not exist - HANDLEBARS_RENDER_ERROR: Template rendering failed due to syntax or data issues - HANDLEBARS_PRECOMPILE_ERROR: Precompiled template rendering failed - HANDLEBARS_RENDER_VARIABLES_ERROR: Query variables rendering failed - TEMPLATE_DO_CUSTOM_QUERY_ERROR: Custom query execution failedAUTH: Role=[configuration.OWNER,configuration.EDITOR,configuration.VIEWER] """ templateRenderToHTML( """ Unique identifier for the template to render. UUID that uniquely identifies the template in the system, used for retrieving the template content for HTML rendering. """ id: String! """ Template rendering data payload. Contains the dynamic data that will be merged with the template content to generate the final HTML output with personalized content. """ input: TemplateRenderInput! ): String! """ Render email template with data and send immediately. Processes the specified email template with the provided data payload and sends the resulting email directly, bypassing the event queue for immediate delivery. Possible errors: - TEMPLATE_NOT_FOUND: Template with specified ID does not exist - HANDLEBARS_RENDER_ERROR: Template rendering failed due to syntax or data issues - HANDLEBARS_PRECOMPILE_ERROR: Precompiled template rendering failed - HANDLEBARS_RENDER_VARIABLES_ERROR: Query variables rendering failed - TEMPLATE_DO_CUSTOM_QUERY_ERROR: Custom query execution failed - PUBSUB_TOPIC_PUBLISH_FAILED_ERROR: Failed to publish email send event to message queueAUTH: Role=[configuration.OWNER,configuration.EDITOR,configuration.VIEWER] """ emailTemplateRenderAndSend( """ Unique identifier for the email template to render and send. UUID that uniquely identifies the email template in the system, used for retrieving the template content for rendering and sending. """ id: String! """ Template rendering data payload for email generation. Contains the dynamic data that will be merged with the email template content to generate personalized email content before sending. """ input: TemplateRenderInput! ): Boolean! """ Generate PDF document from template with provided data. Renders the document template using the provided payload data and returns a Base64-encoded PDF file for download or further processing. Possible errors: - TEMPLATE_NOT_FOUND: Template with specified ID does not exist - HANDLEBARS_RENDER_ERROR: Template rendering failed due to syntax or data issues - HANDLEBARS_PRECOMPILE_ERROR: Precompiled template rendering failed - HANDLEBARS_RENDER_VARIABLES_ERROR: Query variables rendering failed - TEMPLATE_DO_CUSTOM_QUERY_ERROR: Custom query execution failed - PDF_GENERATE_ERROR: PDF generation failedAUTH: Role=[configuration.OWNER,configuration.EDITOR,configuration.VIEWER] """ documentTemplateRenderToPDF( """ Unique identifier for the message template. Used to reference and manage specific templates throughout the messaging system for emails, documents, and notifications. """ id: String! input: TemplateRenderInput! ): Base64File! """ Create a new agent with the specified configuration. Possible errors: - AGENT_CREATE_ERROR: Failed to create agent due to system issuesAUTH: Role=[configuration.OWNER] """ agentCreate( """ Agent creation data including webhook configuration and behavioral settings. """ input: AgentCreateInput! ): Agent! """ Update an existing agent's configuration. Possible errors: - AGENT_NOT_FOUND_ERROR: Agent with specified ID does not exist - AGENT_UPDATE_ERROR: Failed to update agent due to system issuesAUTH: Role=[configuration.OWNER,configuration.EDITOR] """ agentUpdate( """Unique identifier for the agent to update.""" id: ID! """Agent update data with optional fields for selective modification.""" input: AgentUpdateInput! ): Agent! """ Delete an agent by its unique identifier. Possible errors: - AGENT_NOT_FOUND_ERROR: Agent with specified ID does not exist - AGENT_DELETE_ERROR: Failed to delete agent due to system issuesAUTH: Role=[configuration.OWNER] """ agentDelete( """Unique identifier for the agent to delete.""" id: ID! ): Boolean! """ Send a message to an agent. Possible errors: - AGENT_NOT_FOUND_ERROR: Agent with specified ID does not exist - AGENT_INACTIVE_ERROR: Agent is not currently active - AGENT_TYPE_ERROR: Provided type is not in the agent's configured types - AGENT_MESSAGE_CREATE_ERROR: Failed to send message due to webhook or system issues - AGENT_MULTI_TURN_ERROR: Agent is not multi turn and cannot continue conversation - AGENT_WEBHOOK_REQUEST_ERROR: Webhook request failed - AGENT_WEBHOOK_TIMEOUT_ERROR: Webhook request timed out - AGENT_WEBHOOK_RESPONSE_ERROR: Invalid response from webhook AUTH: Role=[configuration.OWNER,configuration.EDITOR] OR ('user is authenticated') """ agentMessageCreate( """Message creation data""" input: AgentMessageCreateInput! ): AgentMessage! """ Start a new conversation with an agent. Possible errors: - AGENT_NOT_FOUND_ERROR: Agent with specified ID does not exist - AGENT_INACTIVE_ERROR: Agent is not currently active - AGENT_TYPE_ERROR: Provided type is not in the agent's configured types - AGENT_CONVERSATION_CREATE_ERROR: Failed to start conversation due to webhook or system issues - AGENT_TRIGGER_CHAT_ERROR: Request message is required for chat trigger agent - AGENT_WEBHOOK_REQUEST_ERROR: Webhook request failed - AGENT_WEBHOOK_TIMEOUT_ERROR: Webhook request timed out - AGENT_WEBHOOK_RESPONSE_ERROR: Invalid response from webhook AUTH: Role=[configuration.OWNER,configuration.EDITOR] OR ('user is authenticated') """ agentConversationCreate( """Conversation creation data""" input: AgentConversationCreateInput! ): AgentConversation! """ Create a new order status in the workflow system. Establishes a new order status with workflow position, transitions, and configuration. The status will be available for order lifecycle management immediately. AUTH: Role=[order.OWNER] """ orderStatusCreate( """ Order status creation data including workflow position and configuration. Contains all necessary information to create a functional order status including name, description, workflow transitions, and status set associations. """ input: CreateOrderStatusInput! ): OrderStatus! """ Update an existing order status configuration. Modifies order status details including workflow position, transitions, descriptions, and settings. Only provided fields will be updated, others remain unchanged. Possible errors: - ORDER_STATUS_NOT_FOUND_ERROR: Order status with the specified ID does not exist AUTH: Role=[order.OWNER,order.EDITOR] """ orderStatusUpdate( """ Unique identifier of the order status to update. Must be a positive integer representing a valid order status ID in the system. """ id: Int! """ Updated order status information. Contains the order status properties to update. Only provided fields will be changed, others remain unchanged. """ input: UpdateOrderStatusInput! ): OrderStatus! """ Permanently delete an order status from the workflow system. Removes the order status and all associated configuration. This action cannot be undone and will affect any orders or workflows that depend on this status. Possible errors: - ORDER_STATUS_NOT_FOUND_ERROR: Order status with the specified ID does not exist AUTH: Role=[order.OWNER] """ orderStatusDelete( """ Unique identifier of the order status to delete. Must be a positive integer representing a valid order status ID in the system. """ id: Int! ): Boolean! """ Create a new order status set for workflow organization. Establishes a new order status set to group related order statuses for workflow management. The set will be available for organizing statuses by business process, workflow type, or operational requirements. AUTH: Role=[order.OWNER] """ orderStatusSetCreate( """ Order status set creation data including name, description, and initial status configuration. Contains all necessary information to create a functional order status set including name, description, and optional initial status associations. """ input: CreateOrderStatusSetInput! ): OrderStatusSet! """ Update an existing order status set configuration. Modifies order status set details including name, description, and workflow configuration. Only provided fields will be updated, others remain unchanged. Possible errors: - ORDER_STATUS_SET_NOT_FOUND_ERROR: Order status set with the specified ID does not exist AUTH: Role=[order.OWNER,order.EDITOR] """ orderStatusSetUpdate( """ Unique identifier of the order status set to update. Must be a positive integer representing a valid order status set ID in the system. """ id: Int! """ Updated order status set information. Contains the order status set properties to update. Only provided fields will be changed, others remain unchanged. """ input: UpdateOrderStatusSetInput! ): OrderStatusSet! """ Add order statuses to an existing order status set. Associates additional order statuses with the specified status set for workflow organization. The statuses will be immediately available as part of the set's workflow configuration. Possible errors: - ORDER_STATUS_SET_NOT_FOUND_ERROR: Order status set with the specified ID does not exist - ORDER_STATUS_NOT_FOUND_ERROR: One or more specified order statuses do not exist AUTH: Role=[order.OWNER,order.EDITOR] """ orderStatusSetAddOrderStatuses( """ Unique identifier of the order status set to modify. Must be a positive integer representing a valid order status set ID in the system. """ id: Int! """ List of order status IDs to add to the set. Contains the identifiers of order statuses that should be associated with this status set. """ input: AddOrderStatusesToOrderStatusSetInput! ): OrderStatusSet! """ Remove order statuses from an existing order status set. Disassociates specified order statuses from the status set while preserving the statuses themselves. The removed statuses will no longer be part of this set's workflow configuration. Possible errors: - ORDER_STATUS_SET_NOT_FOUND_ERROR: Order status set with the specified ID does not exist - ORDER_STATUS_NOT_FOUND_ERROR: One or more specified order statuses do not exist AUTH: Role=[order.OWNER] """ orderStatusSetRemoveOrderStatuses( """ Unique identifier of the order status set to modify. Must be a positive integer representing a valid order status set ID in the system. """ id: Int! """ List of order status IDs to remove from the set. Contains the identifiers of order statuses that should be disassociated from this status set. """ input: RemoveOrderStatusesFromOrderStatusSetInput! ): OrderStatusSet! """ Permanently delete an order status set from the workflow system. Removes the order status set and all associated workflow configuration. This action cannot be undone and will affect any workflows that depend on this status set. The contained order statuses themselves are not deleted. Possible errors: - ORDER_STATUS_SET_NOT_FOUND_ERROR: Order status set with the specified ID does not exist AUTH: Role=[order.OWNER] """ orderStatusSetDelete( """ Unique identifier of the order status set to delete. Must be a positive integer representing a valid order status set ID in the system. """ id: Int! ): Boolean! """ Create a new order with comprehensive order data and associated entities. Establishes a complete order in the system including all necessary components for order processing and fulfillment. This operation creates the order record along with all associated entities in a single transaction to ensure data consistency. The order creation process includes: - Order header with customer and business information - Order items with product details, quantities, and pricing - Billing and delivery addresses (exactly 2 addresses required: 1 invoice, 1 delivery) - Payment information including totals, taxes, and payment method details - Shipping/postage information with carrier and service details - Initial order status and audit trail creation Validation requirements: - Addresses must include exactly one invoice and one delivery address - Order items must have valid product references and positive quantities - Financial totals must be consistent across payment, postage, and total sections - All required fields must be provided according to business rules The created order will be assigned a unique ID and UUID, and will trigger order creation events for downstream systems. Possible errors: - ORDER_CREATE_ERROR: Failed to create the order due to system error - ORDER_ITEM_CREATE_ERROR: Failed to create one or more order items - ORDER_ADDRESS_CREATE_ERROR: Failed to create order addresses - VALIDATION_ERROR: Input validation failed (invalid data format, missing required fields, invalid references) - FORBIDDEN: Insufficient permissions to create orders AUTH: Role=[order.OWNER] OR (('user is authenticated') AND ('userId if present in input matches JWT' AND 'companyId(s) if present in input matches JWT')) """ orderCreate( """ Complete order creation data including all necessary information for order establishment. Contains comprehensive order information required to create a fully functional order: Required components: - Order items: Array of products with quantities, pricing, and product details - Addresses: Exactly 2 addresses (1 invoice address, 1 delivery address) - Payment data: Financial totals including net, gross, tax amounts and payment method - Postage data: Shipping costs and carrier information - Total data: Consolidated financial summary with currency information Optional components: - Cart ID: Reference to shopping cart if order originates from cart - Customer information: User ID and customer details - External references: Integration with external systems - Custom fields: Additional metadata for business-specific requirements All financial amounts must be consistent and properly calculated. Addresses must include complete contact information. Order items must reference valid products with positive quantities. """ order: OrderCreateInput! ): Order! """ Update an existing order's information. Modifies order details including status, customer information, addresses, payment data, and shipping information. Only provided fields will be updated, others remain unchanged. Possible errors: - ORDER_NOT_FOUND: Order with the specified ID does not exist - ORDER_UPDATE_ERROR: Failed to update the order due to system error - ORDER_STATUS_TRANSITION_NOT_ALLOWED: Invalid status transition attempted - VALIDATION_ERROR: Input validation failed (invalid data format, missing required fields) - FORBIDDEN: Insufficient permissions to update this order AUTH: Role=[order.OWNER,order.EDITOR] """ orderUpdate( """ Unique identifier of the order to update. Must be a positive integer representing a valid order ID in the system. """ orderId: Int! """ Updated order information. Only provided fields will be updated, others remain unchanged. Can include status changes, customer details, and metadata updates. """ order: OrderUpdateInput! ): Order! """ Permanently delete an order from the system. Removes the order and all associated data including items, addresses, and shipments. This action cannot be undone and should be used with caution. Possible errors: - ORDER_NOT_FOUND: Order with the specified ID does not exist - ORDER_DELETE_ERROR: Failed to delete the order due to system error - VALIDATION_ERROR: Invalid order ID provided - FORBIDDEN: Insufficient permissions to delete orders AUTH: Role=[order.OWNER] """ orderDelete( """ Unique identifier of the order to delete. Must be a positive integer representing a valid order ID in the system. """ orderId: Int! ): Boolean! """ Deprecated in favor of using triggerOrderSendConfirm Triggers order confirmation email sending for the specified order. Possible errors: - ORDER_NOT_FOUND: Order with the specified ID does not exist - VALIDATION_ERROR: Invalid order ID provided - FORBIDDEN: Insufficient permissions to send order confirmation """ orderSendConfirmationEmail( """Unique identifier of the order to send confirmation for""" orderId: Int! """Optional attachments to include with the confirmation email""" attachments: [Base64FileInput!] ): SendOrderConfirmResponseType! """ Trigger order confirmation email sending event. Initiates the process to send order confirmation email to the customer with order details and attachments. Possible errors: - ORDER_NOT_FOUND: Order with the specified ID does not exist - VALIDATION_ERROR: Invalid input data provided - FORBIDDEN: Insufficient permissions to trigger order confirmation AUTH: Role=[order.OWNER,order.EDITOR,order.VIEWER] """ triggerOrderSendConfirm( """Input data for triggering order confirmation email""" input: TriggerOrderSendConfirmEventInput! ): Boolean! """ Trigger quote send request event. Initiates the process to send quote request to the customer with quote details and information. Possible errors: - ORDER_NOT_FOUND: Order with the specified ID does not exist - VALIDATION_ERROR: Invalid input data provided - FORBIDDEN: Insufficient permissions to trigger quote send request AUTH: Role=[order.OWNER,order.EDITOR,order.VIEWER] """ triggerQuoteSendRequest( """Input data for triggering quote send request""" input: TriggerQuoteSendRequestEventInput! ): Boolean! """ Trigger quote send validation event. Initiates the process to validate and send quote to the customer with validation checks and quote details. Possible errors: - ORDER_NOT_FOUND: Order with the specified ID does not exist - VALIDATION_ERROR: Invalid input data provided or quote validation failed - FORBIDDEN: Insufficient permissions to trigger quote send validation AUTH: Role=[order.OWNER,order.EDITOR,order.VIEWER] """ triggerQuoteSendValidation( """Input data for triggering quote send validation""" input: TriggerQuoteSendValidationEventInput! ): Boolean! """ Trigger quote send event. Initiates the process to send quote to the customer with quote details and information. Possible errors: - ORDER_NOT_FOUND: Order with the specified ID does not exist - VALIDATION_ERROR: Invalid input data provided - FORBIDDEN: Insufficient permissions to trigger quote send AUTH: Role=[order.OWNER,order.EDITOR,order.VIEWER] """ triggerQuoteSend( """Input data for triggering quote send""" input: TriggerQuoteSendEventInput! ): Boolean! """ Set the status of an order. Updates the order status to the specified value with proper validation and business logic checks. Possible errors: - ORDER_NOT_FOUND: Order with the specified ID does not exist - ORDER_STATUS_TRANSITION_NOT_ALLOWED: Invalid status transition attempted - ORDER_STATUS_ERROR: General order status related error - VALIDATION_ERROR: Invalid status or input data provided - FORBIDDEN: Insufficient permissions to change order status AUTH: Role=[order.OWNER,order.EDITOR] """ orderSetStatus( """Input data containing order ID and new status""" input: OrderSetStatusInput! ): Order! """ Add a new item to an existing order. Creates a new order item with specified product, quantity, and pricing information. The item will be added to the order and order totals will be recalculated automatically. Possible errors: - ORDER_NOT_FOUND: Order with the specified ID does not exist - ORDER_ITEM_CREATE_ERROR: Failed to create the order item due to system error - VALIDATION_ERROR: Input validation failed (invalid product reference, negative quantity, missing required fields) - FORBIDDEN: Insufficient permissions to modify orders AUTH: Role=[order.OWNER,order.EDITOR] """ orderItemCreate( """ Unique identifier of the order to add the item to. Must be a valid order ID that exists in the system. """ orderId: Int! """ Order item creation data including product, quantity, and pricing. Contains all necessary information to create a new order item including product reference, quantity, and any item-specific configurations. """ orderItem: OrderItemCreateInput! ): OrderItem! """ Update an existing order item's information. Modifies order item details such as quantity, pricing, or product configuration. Order totals will be recalculated automatically after the update. Possible errors: - ORDER_NOT_FOUND: Order with the specified ID does not exist - ORDER_ITEM_NOT_FOUND: Order item does not exist - ORDER_ITEM_UPDATE_ERROR: Failed to update the order item due to system error - VALIDATION_ERROR: Input validation failed (invalid item ID, negative quantity, missing required fields) - FORBIDDEN: Insufficient permissions to modify orders AUTH: Role=[order.OWNER,order.EDITOR] """ orderItemUpdate( """ Unique identifier of the order containing the item. Must be a valid order ID that exists in the system. """ orderId: Int! """ Updated order item information. Contains the item ID and updated fields. Only provided fields will be changed, others remain unchanged. """ orderItem: OrderItemUpdateInput! ): OrderItem! """ Remove an order item from an order. Permanently deletes the specified order item and recalculates order totals. This action cannot be undone. Possible errors: - ORDER_NOT_FOUND: Order with the specified ID does not exist - ORDER_ITEM_NOT_FOUND: Order item does not exist - ORDER_ITEM_DELETE_ERROR: Failed to delete the order item due to system error - VALIDATION_ERROR: Invalid order ID or order item ID provided - FORBIDDEN: Insufficient permissions to modify orders AUTH: Role=[order.OWNER,order.EDITOR] """ orderItemDelete( """ Unique identifier of the order containing the item. Must be a valid order ID that exists in the system. """ orderId: Int! """ Unique identifier of the order item to delete. Must be a valid order item ID that belongs to the specified order. """ orderItemId: Int! ): Boolean! """ Update an existing order address with new information. Modifies order address details such as contact information, address lines, postal codes, and other address-related data. Possible errors: - ORDER_ADDRESS_NOT_FOUND_ERROR: Order address with specified ID does not exist for the given order - ORDER_NOT_FOUND: Order with the specified ID does not exist - ORDER_ADDRESS_UPDATE_ERROR: Failed to update the order address due to system error - ORDER_ADDRESS_HOME_NOT_ALLOWED_ERROR: Creating or updating home type addresses is not allowed - VALIDATION_ERROR: Input validation failed (invalid address data, missing required fields) - FORBIDDEN: Insufficient permissions to update order addresses AUTH: Role=[order.OWNER,order.EDITOR] """ orderAddressUpdate( """Unique identifier for this address""" id: Int! """ID of the order this address belongs to""" orderId: Int! """Updated address information including contact details and address data""" input: OrderAddressUpdateInput! ): OrderAddress! """ Update an order address (deprecated - use orderAddressUpdate instead). Updates address information for the specified order and address ID. Possible errors: - ORDER_ADDRESS_NOT_FOUND_ERROR: Order address with specified ID does not exist for the given order - ORDER_NOT_FOUND: Order with the specified ID does not exist - ORDER_ADDRESS_UPDATE_ERROR: Failed to update the order address due to system error - ORDER_ADDRESS_HOME_NOT_ALLOWED_ERROR: Creating or updating home type addresses is not allowed - VALIDATION_ERROR: Input validation failed (invalid address data, missing required fields) - FORBIDDEN: Insufficient permissions to update order addresses AUTH: Role=[order.OWNER,order.EDITOR] """ orderUpdateAddress( """ID of the order this address belongs to""" id: Int! """Unique identifier of the address to update""" addressId: Int! """Updated address information""" input: OrderUpdateAddressInput! ): Boolean! @deprecated(reason: "Use orderAddressUpdate") """ Create a new shipment for order fulfillment with items and tracking information. Establishes a new shipment record for fulfilling part or all of an order. The shipment can include specific order items with quantities, expected delivery information, and initial tracking data. This operation is essential for warehouse operations and order fulfillment workflows. The shipment creation process includes: - Shipment header with order reference and delivery expectations - Shipment items linking to specific order items with fulfillment quantities - Initial tracking information with carrier details - Status initialization for shipment lifecycle management Validation requirements: - Order ID must reference an existing, accessible order - Shipment items must reference valid order items from the specified order - Item quantities must not exceed remaining unfulfilled quantities - Expected delivery date must be in the future if provided - Tracking information must include valid carrier references The created shipment will be assigned a unique UUID and will trigger shipment creation events for downstream systems including inventory management and customer notifications. Possible errors: - SHIPMENT_CREATE_ERROR: Failed to create the shipment due to system error - ORDER_NOT_FOUND: Referenced order does not exist or is not accessible - ORDER_ITEM_NOT_FOUND: Referenced order items do not exist - VALIDATION_ERROR: Input validation failed (invalid quantities, dates, or references) - FORBIDDEN: Insufficient permissions to create shipments AUTH: Role=[order.OWNER,order.EDITOR] """ shipmentCreate( """ Complete shipment creation data including order reference, items, and tracking information. Required components: - Order ID: Valid order identifier that the shipment will fulfill - Expected delivery date: Estimated delivery date for customer communication (optional) Optional components: - Shipment items: Specific order items and quantities to include in this shipment - Tracking information: Initial carrier and tracking details for shipment monitoring If no items are specified, the shipment will be created without specific item allocations. Items can be added later through separate operations. """ input: ShipmentCreateInput! ): Shipment! """ Update an existing shipment with new information and status changes. Modifies shipment details such as expected delivery dates, status updates, and other shipment metadata. This operation supports partial updates where only provided fields are modified, preserving existing values for omitted fields. Essential for tracking shipment progress and updating delivery expectations. Update capabilities include: - Expected delivery date modifications - Status transitions (processing, shipped, delivered, etc.) - Carrier and tracking information updates - Delivery address corrections Validation requirements: - Shipment ID must reference an existing, accessible shipment - Status transitions must follow valid shipment lifecycle rules - Expected delivery dates must be reasonable and in the future - Only authorized users can perform status transitions The update operation maintains audit trail and triggers appropriate events for downstream systems including customer notifications and inventory updates. Possible errors: - SHIPMENT_UPDATE_ERROR: Failed to update the shipment due to system error - SHIPMENT_NOT_FOUND_ERROR: Shipment with specified ID does not exist - VALIDATION_ERROR: Input validation failed (invalid dates, status, or references) - FORBIDDEN: Insufficient permissions to update shipments AUTH: Role=[order.OWNER,order.EDITOR] """ shipmentUpdate( """ Unique UUID identifier of the shipment to update. Must reference an existing shipment that is accessible to the current user. """ id: String! """ Shipment update data with fields to modify. Only provided fields will be updated - omitted fields remain unchanged. Supports partial updates for flexible shipment management including status changes, delivery date adjustments, and tracking information updates. """ input: ShipmentUpdateInput! ): Shipment! """ Delete a shipment and all associated data permanently. Removes a shipment record and all related entities including shipment items and tracking information. This operation is irreversible and should be used with caution. Typically used for correcting errors or canceling shipments that were created in error. Deletion process includes: - Removal of shipment record and metadata - Deletion of all associated shipment items - Removal of tracking and trace information Validation requirements: - Shipment ID must reference an existing, accessible shipment - User must have appropriate permissions for destructive operations Possible errors: - SHIPMENT_DELETE_ERROR: Failed to delete the shipment due to system error - SHIPMENT_NOT_FOUND_ERROR: Shipment with specified ID does not exist - VALIDATION_ERROR: Invalid shipment ID provided or shipment cannot be deleted in current status - FORBIDDEN: Insufficient permissions to delete shipments AUTH: Role=[order.OWNER,order.EDITOR] """ shipmentDelete( """ Unique UUID identifier of the shipment to delete. Must reference an existing shipment that is accessible to the current user and in a deletable status. This operation is irreversible and will permanently remove all shipment data. """ id: String! ): Boolean! """AUTH: Role=[order.OWNER,order.EDITOR]""" shipmentItemCreate(input: ShipmentItemCreateInput!): ShipmentItem! """AUTH: Role=[order.OWNER,order.EDITOR]""" shipmentItemUpdate(id: String!, input: ShipmentItemUpdateInput!): ShipmentItem! """AUTH: Role=[order.OWNER,order.EDITOR]""" shipmentItemDelete(id: String!): Boolean! """ Create new tracking information for a shipment with carrier details and tracking codes. Establishes a new tracking record for monitoring shipment progress through the delivery network. This operation is essential for providing customers with tracking capabilities and maintaining visibility into shipment status throughout the delivery process. The tracking creation process includes: - Tracking record initialization with unique identifier - Carrier association and tracking code assignment - Shipment linkage for order context Validation requirements: - Shipment ID must reference an existing, accessible shipment - Tracking code must be provided and unique within the carrier system - Carrier ID must reference a valid carrier if provided - All required tracking information must be complete Possible errors: - TRACK_AND_TRACE_CREATE_ERROR: Failed to create tracking record due to system error - SHIPMENT_NOT_FOUND_ERROR: Referenced shipment does not exist or is not accessible - VALIDATION_ERROR: Input validation failed (missing required fields, invalid format, duplicate tracking code) - FORBIDDEN: Insufficient permissions to create tracking information AUTH: Role=[order.OWNER,order.EDITOR] """ trackAndTraceCreate( """ Complete tracking information for creating a new tracking record. Required components: - Shipment ID: Valid shipment identifier that this tracking information relates to - Tracking code: Carrier-provided tracking number or reference code Optional components: - Carrier ID: Identifier of the shipping carrier handling the package - Status information: Initial tracking status and location data - Delivery details: Expected delivery dates and recipient information All tracking codes must be unique within the carrier system to prevent conflicts. """ input: TrackAndTraceCreateInput! ): TrackAndTrace! """ Update existing tracking information with new status, location, or delivery details. Modifies tracking record details such as status updates, location information, delivery confirmations, and other tracking-related data. Possible errors: - TRACK_AND_TRACE_NOT_FOUND_ERROR: Tracking record with specified ID does not exist - TRACK_AND_TRACE_UPDATE_ERROR: Failed to update tracking record due to system error - VALIDATION_ERROR: Input validation failed (invalid status, dates, or tracking data) - FORBIDDEN: Insufficient permissions to update tracking information AUTH: Role=[order.OWNER,order.EDITOR] """ trackAndTraceUpdate( """Unique UUID identifier of the tracking record to update""" id: String! """ Updated tracking information including status, location, and delivery details """ input: TrackAndTraceUpdateInput! ): TrackAndTrace! """ Delete a tracking record permanently. Removes tracking information and all associated data. This operation is irreversible and should be used with caution. Possible errors: - TRACK_AND_TRACE_NOT_FOUND_ERROR: Tracking record with specified ID does not exist - TRACK_AND_TRACE_DELETE_ERROR: Failed to delete tracking record due to system error - VALIDATION_ERROR: Invalid tracking record ID provided - FORBIDDEN: Insufficient permissions to delete tracking information AUTH: Role=[order.OWNER,order.EDITOR] """ trackAndTraceDelete( """Unique UUID identifier of the tracking record to delete""" id: String! ): Boolean! """ Invalidate multiple order revisions based on specified criteria. Marks order revisions as invalid, preventing them from being used for restoration or reference. This operation is typically used for data cleanup or when revisions contain incorrect information. Possible errors: - ORDER_REVISIONS_INVALIDATE_ERROR: Failed to invalidate order revisions due to system error - ORDER_NOT_FOUND: One or more specified orders do not exist - VALIDATION_ERROR: Invalid input parameters or revision criteria provided - FORBIDDEN: Insufficient permissions to invalidate order revisions AUTH: Role=[order.OWNER,order.EDITOR] """ orderRevisionsInvalidate( """Criteria for selecting which order revisions to invalidate""" input: OrderRevisionsInvalidateInput! ): Boolean! """ Restore an order to a specific revision state. Reverts the order to the state it was in at the specified revision number, effectively undoing changes made after that revision. This creates a new revision with the restored data. Possible errors: - ORDER_NOT_FOUND: Order with the specified ID does not exist - ORDER_REVISION_NOT_FOUND_ERROR: Order revision with specified parameters does not exist - ORDER_REVISION_INVALID_RESTORE_ERROR: Cannot restore the specified revision (invalid state, already current) - ORDER_UPDATE_ERROR: Failed to restore order due to system error - VALIDATION_ERROR: Invalid order ID or revision number provided - FORBIDDEN: Insufficient permissions to restore order revisions AUTH: Role=[order.OWNER,order.EDITOR] OR ('user is authenticated') """ orderRevisionRestore( """Unique identifier of the order to restore""" orderId: Int! """Revision number to restore the order to""" revisionNumber: Int! ): Order! """ Create a new order list for bulk ordering operations with comprehensive configuration. Establishes a new order list with complete configuration including descriptions, product assignments, user permissions, company associations, and operational settings. The order list becomes immediately available for bulk ordering operations upon successful creation. Creation process includes: - Validation of all input data and constraints - Verification of referenced products, clusters, users, and companies - Assignment of permissions and associations - Configuration of ordering behavior (positive/negative type) - Setting up validity periods and activation status The newly created order list will be fully functional and accessible to assigned users and companies according to the specified configuration. Possible errors: - ORDERLIST_VALIDATION_ERROR: Input data validation failed (invalid types, missing required fields, constraint violations) - ORDERLIST_CROSS_SERVICE_ERROR: Referenced entities don't exist (invalid product IDs, user IDs, company IDs, cluster IDs) - ORDERLIST_UKNOWN_ERROR: Unexpected system error during creation process - FORBIDDEN: Insufficient permissions to create order lists AUTH: Role=[shop.OWNER] OR ('user is authenticated') """ orderlistCreate( """ Complete order list configuration data for creation. Comprehensive input object containing all necessary information to create a functional order list: - Basic information (type, descriptions, code, validity dates) - Product and cluster assignments for ordering scope - User and company permissions for access control - Operational settings (active status, partner entity) - External system integrations (source references) All fields are validated for correctness and consistency before creation. Referenced entities (products, users, companies, clusters) must exist in the system. Validation: All input data is validated according to business rules and system constraints. """ input: OrderlistCreateInput! ): Orderlist! """ Update an existing order list's configuration. Modifies order list details including name, description, and settings. Only provided fields will be updated, others remain unchanged. Possible errors: - ORDERLIST_NOT_FOUND_ERROR: Order list with the specified ID does not exist - ORDERLIST_UPDATE_ERROR: Failed to update the order list - ORDERLIST_VALIDATION_ERROR: Updated order list data validation failed - ORDERLIST_NAME_EXISTS_ERROR: Updated name conflicts with existing order list - FORBIDDEN: Insufficient permissions to update order lists AUTH: Role=[shop.OWNER,shop.EDITOR] """ orderlistUpdate( """ Unique identifier of the order list to update. Must be a positive integer representing a valid order list ID in the system. """ id: Int! """ Updated order list information. Contains the order list properties to update. Only provided fields will be changed, others remain unchanged. """ input: OrderlistUpdateInput! ): Orderlist! """ Add products and clusters to an order list. Associates individual products and/or product clusters with the specified order list, enabling bulk ordering and streamlined purchasing processes. Possible errors: - ORDERLIST_NOT_FOUND_ERROR: Order list with the specified ID does not exist - PRODUCT_NOT_FOUND_ERROR: One or more specified products do not exist - ORDERLIST_ADD_ITEMS_ERROR: Failed to add items to order list - FORBIDDEN: Insufficient permissions to update order lists AUTH: Role=[shop.OWNER,shop.EDITOR] """ orderlistAddItems( """ Unique identifier of the order list to modify. Must be a positive integer representing a valid order list ID in the system. """ id: Int! """ Items to add to the order list. Contains arrays of product IDs and/or cluster IDs to associate with the order list for bulk ordering. """ input: OrderlistItemsInput! ): Orderlist! """ Remove products and clusters from an order list. Disassociates individual products and/or product clusters from the specified order list, removing them from bulk ordering operations. Possible errors: - ORDERLIST_NOT_FOUND_ERROR: Order list with the specified ID does not exist - PRODUCT_NOT_FOUND_ERROR: One or more specified products do not exist - ORDERLIST_REMOVE_ITEMS_ERROR: Failed to remove items from order list - FORBIDDEN: Insufficient permissions to modify order lists AUTH: Role=[shop.OWNER,shop.EDITOR] """ orderlistRemoveItems( """ Unique identifier of the order list to modify. Must be a positive integer representing a valid order list ID in the system. """ id: Int! """ Items to remove from the order list. Contains arrays of product IDs and/or cluster IDs to disassociate from the order list. """ input: OrderlistItemsInput! ): Orderlist! """AUTH: Role=[shop.OWNER,shop.EDITOR]""" orderlistAssignUsers(id: Int!, input: OrderlistUsersInput!): Orderlist! """AUTH: Role=[shop.OWNER,shop.EDITOR]""" orderlistUnassignUsers(id: Int!, input: OrderlistUsersInput!): Orderlist! """AUTH: Role=[shop.OWNER,shop.EDITOR]""" orderlistAssignCompanies(id: Int!, input: OrderlistCompaniesInput!): Orderlist! """AUTH: Role=[shop.OWNER,shop.EDITOR]""" orderlistUnassignCompanies(id: Int!, input: OrderlistCompaniesInput!): Orderlist! """ Permanently delete an order list and all its associations from the system. Removes the order list completely including all product assignments, user permissions, company associations, and configuration data. This operation cannot be undone and will immediately make the order list inaccessible to all users. Deletion process includes: - Verification of order list existence and permissions - Removal of all product and cluster associations - Removal of all user and company assignments - Complete deletion of order list configuration and metadata Use with caution as this operation is irreversible. Consider deactivating the order list instead if temporary removal is needed. Possible errors: - ORDERLIST_NOT_FOUND_ERROR: Order list with the specified ID does not exist - ORDERLIST_UKNOWN_ERROR: Unexpected system error during deletion process - FORBIDDEN: Insufficient permissions to delete order lists AUTH: Role=[shop.OWNER] """ orderlistDelete( """ Unique identifier of the order list to permanently delete. Must be a valid positive integer representing an existing order list ID in the system. The order list must be accessible to the authenticated user and deletion must be authorized. Validation: Must be a positive integer, order list must exist and be deletable by the authenticated user. """ id: Int! ): Boolean! """ Create a new payment method in the system. Establishes a new payment method with localized names, external integration codes, and branding elements. The payment method becomes immediately available for checkout processes and payment workflows. Validation requirements: - Names array must contain at least one localized string with unique languages - External code must follow SCREAMING_SNAKE_CASE format and be unique - Logo URL must be valid if provided (maximum 255 characters) Possible errors: - PAY_METHOD_EXTERNAL_CODE_ALREADY_EXISTS: External code already exists for another payment method - PAY_METHOD_UNKNOWN_ERROR: Unknown error occurred during payment method creation - UNAUTHENTICATED: Invalid or missing authentication - FORBIDDEN: Insufficient permissions to create payment methods AUTH: Role=[configuration.OWNER] """ payMethodCreate( """ Payment method creation data including configuration and processing settings. Contains payment method details, integration configuration, and all information needed to create a functional payment method. """ input: PayMethodCreateInput! ): PayMethod! """ Update an existing payment method's configuration. Modifies payment method details including localized names, external integration codes, and branding elements. Only provided fields will be updated, others remain unchanged. Supports partial updates for flexible payment method management. Validation requirements: - Names array must contain unique languages if provided - External code must follow SCREAMING_SNAKE_CASE format and be unique if provided - Logo URL must be valid if provided (maximum 255 characters) Possible errors: - PAY_METHOD_NOT_FOUND_ERROR: Payment method with the specified ID does not exist - PAY_METHOD_EXTERNAL_CODE_ALREADY_EXISTS: Updated external code already exists for another payment method - PAY_METHOD_UNKNOWN_ERROR: Unknown error occurred during payment method update - UNAUTHENTICATED: Invalid or missing authentication - FORBIDDEN: Insufficient permissions to update payment methods AUTH: Role=[configuration.OWNER,configuration.EDITOR] """ payMethodUpdate( """ Unique identifier of the payment method to update. Must be a positive integer representing a valid payment method ID in the system. """ id: Int! """ Updated payment method information. Contains the payment method properties to update. Only provided fields will be changed, others remain unchanged. """ input: PayMethodUpdateInput! ): PayMethod! """ Permanently delete a payment method from the system. Removes the payment method and all associated configuration including localized names, external integration codes, and branding elements. This action cannot be undone and will affect any checkout processes that depend on this payment method. Possible errors: - PAY_METHOD_NOT_FOUND_ERROR: Payment method with the specified ID does not exist - PAY_METHOD_UNKNOWN_ERROR: Unknown error occurred during payment method deletion - UNAUTHENTICATED: Invalid or missing authentication - FORBIDDEN: Insufficient permissions to delete payment methods AUTH: Role=[configuration.OWNER] """ payMethodDelete( """ Unique identifier of the payment method to delete. Must be a positive integer representing a valid payment method ID in the system. """ id: Int! ): Boolean! """ Create a new price record in the system. Establishes a new price with all associated data including base pricing, cost information, volume discounts, and pricesheet assignments. The price will be available for use in pricing calculations immediately. Possible errors: - PRICE_CREATE_ERROR: Failed to create the price - PRODUCT_NOT_FOUND_ERROR: Specified product does not exist - PRICESHEET_NOT_FOUND_ERROR: Specified pricesheet does not exist - PRICE_VALIDATION_ERROR: Price data validation failed - UNAUTHENTICATED: Invalid or missing authentication - FORBIDDEN: Insufficient permissions to create prices AUTH: Role=[pricing.OWNER] """ priceCreate( """ Price creation data including all pricing components. Contains base price, cost information, volume discounts, effective dates, and pricesheet associations required to create a complete price record. """ input: PriceCreateInput! ): Price! """ Import price records from a CSV file. Processes a CSV file containing price data and creates multiple price records in batch. Provides detailed feedback on successful imports and any errors encountered during processing. Possible errors: - PRICE_CSV_IMPORT_ERROR: Failed to process the CSV file - PRICE_VALIDATION_ERROR: One or more price records failed validation - PRODUCT_NOT_FOUND_ERROR: One or more products do not exist - PRICESHEET_NOT_FOUND_ERROR: One or more pricesheets do not exist - UNAUTHENTICATED: Invalid or missing authentication - FORBIDDEN: Insufficient permissions to import prices AUTH: Role=[pricing.OWNER] """ priceCsvImport( """ CSV file and mapping configuration for price import. Contains the CSV file data and field mappings to define how CSV columns correspond to price properties. """ input: PriceCsvInput! ): CsvImportResponse! """ Update an existing price record's information. Modifies price details including base pricing, cost information, volume discounts, effective dates, and pricesheet assignments. Only provided fields will be updated, others remain unchanged. Possible errors: - PRICE_NOT_FOUND_ERROR: Price with the specified ID does not exist - PRICE_UPDATE_ERROR: Failed to update the price - PRICE_VALIDATION_ERROR: Updated price data validation failed - PRODUCT_NOT_FOUND_ERROR: Specified product does not exist - PRICESHEET_NOT_FOUND_ERROR: Specified pricesheet does not exist - UNAUTHENTICATED: Invalid or missing authentication - FORBIDDEN: Insufficient permissions to update prices AUTH: Role=[pricing.OWNER,pricing.EDITOR] """ priceUpdate( """ Unique identifier of the price record to update. Must be a valid UUID format representing an existing price in the system. """ id: String! """ Updated price information. Contains the price properties to update. Only provided fields will be changed, others remain unchanged. """ input: PriceUpdateInput! ): Price! """ Permanently delete a price record from the system. Removes the price and all associated data. This action cannot be undone and will affect any pricing calculations that depend on this price record. Possible errors: - PRICE_NOT_FOUND_ERROR: Price with the specified ID does not exist - PRICE_DELETE_ERROR: Failed to delete the price - PRICE_IN_USE_ERROR: Price is currently being used and cannot be deleted - UNAUTHENTICATED: Invalid or missing authentication - FORBIDDEN: Insufficient permissions to delete prices AUTH: Role=[pricing.OWNER] """ priceDelete( """ Unique identifier of the price record to delete. Must be a valid UUID format representing an existing price in the system. """ id: String! ): Boolean! """ Create a new cost price record in the system. Establishes cost pricing for specific quantity tiers and products. Cost prices are used for margin calculations and pricing analysis. Possible errors: - COST_PRICE_CREATE_ERROR: Failed to create the cost price record - COST_PRICE_ALREADY_EXISTS_ERROR: Cost price with the same criteria already exists - PRICE_NOT_FOUND_ERROR: Associated price record does not exist AUTH: Role=[pricing.OWNER] """ costPriceCreate( """ Cost price configuration data including price association, cost value, and quantity thresholds. All required fields must be provided to establish proper cost pricing structure. """ input: CostPriceCreateInput! ): CostPrice! """ Update an existing cost price record. Modifies cost values, quantity thresholds, or other cost price settings. Changes will affect margin calculations and pricing analysis. Possible errors: - COST_PRICE_NOT_FOUND_ERROR: Cost price with the specified ID does not exist - COST_PRICE_UPDATE_ERROR: Failed to update the cost price record AUTH: Role=[pricing.OWNER,pricing.EDITOR] """ costPriceUpdate( """ Unique identifier of the cost price record to update. Must be a valid UUID format representing an existing cost price in the system. """ id: String! """ Updated cost price configuration data. Only provided fields will be updated, others remain unchanged. """ input: CostPriceUpdateInput! ): CostPrice! """ Permanently delete a cost price record from the system. Removes the cost price configuration and all associated data. This action cannot be undone and will affect margin calculations that depend on this cost price. Possible errors: - COST_PRICE_NOT_FOUND_ERROR: Cost price with the specified ID does not exist - COST_PRICE_DELETE_ERROR: Failed to delete the cost price record AUTH: Role=[pricing.OWNER] """ costPriceDelete( """ Unique identifier of the cost price record to delete. Must be a valid UUID format representing an existing cost price in the system. """ id: String! ): Boolean! """ Create multiple cost price records in a single operation. Efficiently processes multiple cost price configurations simultaneously. Provides detailed results including success counts, error information, and processing status for each record. Possible errors: - COST_PRICE_CREATE_ERROR: Failed to create one or more cost price records - COST_PRICE_ALREADY_EXISTS_ERROR: One or more cost prices with the same criteria already exist - PRICE_NOT_FOUND_ERROR: One or more associated price records do not exist AUTH: Role=[pricing.OWNER] """ costPricesBulk( """ Array of cost price configuration data for bulk creation. Each item must contain complete cost price information including price association, cost value, and quantity thresholds. """ input: [CostPriceCreateInput!]! ): BulkResponseData! """ Delete all cost price records associated with a specific price. Removes all cost price configurations linked to the specified price ID. This action cannot be undone and will affect margin calculations that depend on these cost prices. Possible errors: - PRICE_NOT_FOUND_ERROR: Price with the specified ID does not exist - COST_PRICE_DELETE_ERROR: Failed to delete cost price records AUTH: Role=[pricing.OWNER] """ costPricesDelete( """ Unique identifier of the price whose cost prices should be deleted. Must be a valid UUID format representing an existing price in the system. """ priceId: String! ): Boolean! """ Create a new pricesheet in the system. Establishes a new pricesheet with pricing rules, customer assignments, and effective dates. Pricesheets define how prices are calculated for different customer segments and can include complex pricing strategies. Possible errors: - PRICESHEET_CREATE_ERROR: Failed to create the pricesheet - PRICESHEET_NAME_EXISTS_ERROR: Pricesheet with the same name already exists - PRICESHEET_VALIDATION_ERROR: Pricesheet data validation failed - UNAUTHENTICATED: Invalid or missing authentication - FORBIDDEN: Insufficient permissions to create pricesheets AUTH: Role=[pricing.OWNER] """ pricesheetCreate( """ Pricesheet creation data including pricing rules and assignments. Contains pricesheet name, type, pricing strategy, customer assignments, effective dates, and all configuration needed to create a functional pricesheet. """ input: PricesheetCreateInput! ): Pricesheet! """AUTH: Role=[pricing.OWNER,pricing.EDITOR]""" pricesheetUpdate(id: String!, input: PricesheetUpdateInput!): Pricesheet! """AUTH: Role=[pricing.OWNER]""" pricesheetCsvImport(input: PricesheetCsvInput!): CsvImportResponse! """AUTH: Role=[pricing.OWNER]""" pricesheetDelete(id: String!): Boolean! """AUTH: Role=[pricing.OWNER,pricing.EDITOR]""" pricesheetAssign(id: String!, input: PricesheetAssignInput!): Pricesheet! """AUTH: Role=[pricing.OWNER,pricing.EDITOR]""" pricesheetUnassign(id: String!, input: PricesheetUnassignInput!): Pricesheet! """ Create a new discount record with percentage-based pricing reductions. Establishes discount rules for specific categories or products within pricesheets, enabling promotional pricing and customer-specific discounts. Used for marketing campaigns and pricing strategies. Possible errors: - DISCOUNT_CREATE_ERROR: Failed to create discount record - DISCOUNT_VALIDATION_ERROR: Invalid discount data provided - DISCOUNT_ALREADY_EXISTS_ERROR: Discount with similar criteria already exists - UNAUTHENTICATED: Invalid or missing authentication - FORBIDDEN: Insufficient permissions to create discounts AUTH: Role=[pricing.OWNER] """ discountCreate( """ Discount creation data including percentage values, category associations, pricesheet assignments, and effective dates. Contains all necessary information to create a complete discount record with proper validation and business rules. """ input: DiscountCreateInput! ): Discount! """ Update an existing discount record with new values and settings. Allows modification of discount percentages, category associations, effective dates, and other discount attributes. Used for maintaining accurate promotional pricing and discount strategies. Possible errors: - DISCOUNT_NOT_FOUND_ERROR: Discount with the specified ID does not exist - DISCOUNT_UPDATE_ERROR: Failed to update discount record - DISCOUNT_VALIDATION_ERROR: Invalid discount data provided - UNAUTHENTICATED: Invalid or missing authentication - FORBIDDEN: Insufficient permissions to update discounts AUTH: Role=[pricing.OWNER,pricing.EDITOR] """ discountUpdate( """ Unique identifier of the discount record to update. Must be a valid UUID format representing an existing discount in the system. """ id: String! """ Updated discount data including percentage values, category associations, and effective dates. Only provided fields will be updated, others remain unchanged. All validation rules apply to the updated values. """ input: DiscountUpdateInput! ): Discount! """ Permanently remove a specific discount record from the system. This action cannot be undone. The discount record will no longer be available for pricing calculations or promotional campaigns. Possible errors: - DISCOUNT_NOT_FOUND_ERROR: Discount with the specified ID does not exist - DISCOUNT_DELETE_ERROR: Failed to delete discount record - UNAUTHENTICATED: Invalid or missing authentication - FORBIDDEN: Insufficient permissions to delete discounts AUTH: Role=[pricing.OWNER] """ discountDelete( """ Unique identifier of the discount record to delete. Must be a valid UUID format representing an existing discount in the system. """ id: String! ): Boolean! """ Remove all discount records associated with a specific pricesheet. This bulk operation permanently deletes all discounts linked to the specified pricesheet, effectively removing all promotional pricing for that pricesheet. Possible errors: - PRICESHEET_NOT_FOUND_ERROR: Pricesheet with the specified ID does not exist - DISCOUNT_DELETE_ERROR: Failed to delete discount records - UNAUTHENTICATED: Invalid or missing authentication - FORBIDDEN: Insufficient permissions to delete discounts AUTH: Role=[pricing.OWNER] """ discountsDeleteByPricesheetId( """ Unique identifier of the pricesheet whose discounts should be deleted. Must be a valid UUID format representing an existing pricesheet in the system. """ pricesheetId: String! ): Boolean! """ Import discount records from a CSV file with comprehensive validation and mapping. Processes CSV data to create multiple discount records efficiently. Supports field mapping, validation, and error reporting for bulk discount management operations. Possible errors: - CSV_IMPORT_ERROR: Failed to process CSV file - DISCOUNT_VALIDATION_ERROR: Invalid discount data in CSV - DISCOUNT_CREATE_ERROR: Failed to create discount records - UNAUTHENTICATED: Invalid or missing authentication - FORBIDDEN: Insufficient permissions to import discounts AUTH: Role=[pricing.OWNER] """ discountCsvImport( """ CSV import configuration including file data and field mappings. Contains the CSV file and mapping instructions for converting CSV columns to discount fields with proper validation. """ input: DiscountCsvInput! ): CsvImportResponse! """ Create a new bulk price record for quantity-based pricing. Establishes volume pricing tiers for products with specific quantity thresholds and price values. Used for implementing quantity discounts and volume pricing strategies. Possible errors: - BULK_PRICE_CREATE_ERROR: Failed to create the bulk price record - BULK_PRICE_ALREADY_EXISTS_ERROR: Bulk price with the same criteria already exists - PRICE_NOT_FOUND_ERROR: Associated price record does not exist AUTH: Role=[pricing.OWNER] """ bulkPriceCreate( """ Bulk price configuration data including price association, quantity thresholds, and price values. All required fields must be provided to establish proper volume pricing structure. """ input: BulkPriceCreateInput! ): BulkPrice! """ Update an existing bulk price record. Modifies quantity thresholds, price values, effective dates, or other bulk pricing settings. Changes will affect volume pricing calculations and quantity discounts. Possible errors: - BULK_PRICE_NOT_FOUND_ERROR: Bulk price with the specified ID does not exist - BULK_PRICE_UPDATE_ERROR: Failed to update the bulk price record AUTH: Role=[pricing.OWNER,pricing.EDITOR] """ bulkPriceUpdate( """ Unique identifier of the bulk price record to update. Must be a valid UUID format representing an existing bulk price in the system. """ id: String! """ Updated bulk price configuration data. Only provided fields will be updated, others remain unchanged. """ input: BulkPriceUpdateInput! ): BulkPrice! """ Import bulk price data from CSV file format. Processes CSV data to create or update multiple bulk price records efficiently. Provides detailed import results including success counts, validation errors, and processing status. Possible errors: - BULK_PRICE_CSV_IMPORT_ERROR: Failed to process CSV import - PRICE_NOT_FOUND_ERROR: One or more associated price records do not exist AUTH: Role=[pricing.OWNER] """ bulkPriceCsvImport( """ CSV import configuration including file data and processing options. Must contain valid CSV data with proper column mapping for bulk price fields. """ input: BulkPriceCsvInput! ): CsvImportResponse! """ Permanently delete a bulk price record from the system. Removes the bulk price configuration and all associated data. This action cannot be undone and will affect volume pricing calculations that depend on this bulk price. Possible errors: - BULK_PRICE_NOT_FOUND_ERROR: Bulk price with the specified ID does not exist - BULK_PRICE_DELETE_ERROR: Failed to delete the bulk price record AUTH: Role=[pricing.OWNER] """ bulkPriceDelete( """ Unique identifier of the bulk price record to delete. Must be a valid UUID format representing an existing bulk price in the system. """ id: String! ): Boolean! """ Create multiple bulk price records in a single operation. Efficiently processes multiple bulk price configurations simultaneously. Provides detailed results including success counts, error information, and processing status for each record. Possible errors: - BULK_PRICE_CREATE_ERROR: Failed to create one or more bulk price records - BULK_PRICE_ALREADY_EXISTS_ERROR: One or more bulk prices with the same criteria already exist - PRICE_NOT_FOUND_ERROR: One or more associated price records do not exist AUTH: Role=[pricing.OWNER] """ bulkPricesCreate( """ Array of bulk price configuration data for bulk creation. Each item must contain complete bulk price information including price association, quantity thresholds, and price values. """ input: [BulkPriceCreateInput!]! ): BulkResponseData! """ Delete all bulk price records associated with a specific price. Removes all bulk price configurations linked to the specified price ID. This action cannot be undone and will affect volume pricing calculations that depend on these bulk prices. Possible errors: - PRICE_NOT_FOUND_ERROR: Price with the specified ID does not exist - BULK_PRICE_DELETE_ERROR: Failed to delete bulk price records AUTH: Role=[pricing.OWNER] """ bulkPricesDelete( """ Unique identifier of the price whose bulk prices should be deleted. Must be a valid UUID format representing an existing price in the system. """ priceId: String! ): Boolean! """ Create a new bulk cost price record for quantity-based cost pricing. Establishes volume cost pricing tiers for products with specific quantity thresholds and cost values. Used for implementing quantity-based cost calculations and margin analysis. Possible errors: - BULK_COST_PRICE_CREATE_ERROR: Failed to create the bulk cost price record - BULK_COST_PRICE_ALREADY_EXISTS_ERROR: Bulk cost price with the same criteria already exists - PRICE_NOT_FOUND_ERROR: Associated price record does not exist AUTH: Role=[pricing.OWNER] """ bulkCostPriceCreate( """ Bulk cost price configuration data including price association, quantity thresholds, and cost values. All required fields must be provided to establish proper volume cost pricing structure. """ input: BulkCostPriceCreateInput! ): BulkCostPrice! """ Update an existing bulk cost price record. Modifies quantity thresholds, cost values, effective dates, or other bulk cost pricing settings. Changes will affect volume cost calculations and margin analysis. Possible errors: - BULK_COST_PRICE_NOT_FOUND_ERROR: Bulk cost price with the specified ID does not exist - BULK_COST_PRICE_UPDATE_ERROR: Failed to update the bulk cost price record AUTH: Role=[pricing.OWNER,pricing.EDITOR] """ bulkCostPriceUpdate( """ Unique identifier of the bulk cost price record to update. Must be a valid UUID format representing an existing bulk cost price in the system. """ id: String! """ Updated bulk cost price configuration data. Only provided fields will be updated, others remain unchanged. """ input: BulkCostPriceUpdateInput! ): BulkCostPrice! """ Import bulk cost price data from CSV file format. Processes CSV data to create or update multiple bulk cost price records efficiently. Provides detailed import results including success counts, validation errors, and processing status. Possible errors: - BULK_COST_PRICE_CSV_IMPORT_ERROR: Failed to process CSV import - PRICE_NOT_FOUND_ERROR: One or more associated price records do not exist AUTH: Role=[pricing.OWNER] """ bulkCostPriceCsvImport( """ CSV import configuration including file data and processing options. Must contain valid CSV data with proper column mapping for bulk cost price fields. """ input: BulkCostPriceCsvInput! ): CsvImportResponse! """ Permanently delete a bulk cost price record from the system. Removes the bulk cost price configuration and all associated data. This action cannot be undone and will affect volume cost calculations that depend on this bulk cost price. Possible errors: - BULK_COST_PRICE_NOT_FOUND_ERROR: Bulk cost price with the specified ID does not exist - BULK_COST_PRICE_DELETE_ERROR: Failed to delete the bulk cost price record AUTH: Role=[pricing.OWNER] """ bulkCostPriceDelete( """ Unique identifier of the bulk cost price record to delete. Must be a valid UUID format representing an existing bulk cost price in the system. """ id: String! ): Boolean! """ Create multiple bulk cost price records in a single operation. Efficiently processes multiple bulk cost price configurations simultaneously. Provides detailed results including success counts, error information, and processing status for each record. Possible errors: - BULK_COST_PRICE_CREATE_ERROR: Failed to create one or more bulk cost price records - BULK_COST_PRICE_ALREADY_EXISTS_ERROR: One or more bulk cost prices with the same criteria already exist - PRICE_NOT_FOUND_ERROR: One or more associated price records do not exist AUTH: Role=[pricing.OWNER] """ bulkCostPricesBulk( """ Array of bulk cost price configuration data for bulk creation. Each item must contain complete bulk cost price information including price association, quantity thresholds, and cost values. """ input: [BulkCostPriceCreateInput!]! ): BulkResponseData! """ Delete all bulk cost price records associated with a specific price. Removes all bulk cost price configurations linked to the specified price ID. This action cannot be undone and will affect volume cost calculations that depend on these bulk cost prices. Possible errors: - PRICE_NOT_FOUND_ERROR: Price with the specified ID does not exist - BULK_COST_PRICE_DELETE_ERROR: Failed to delete bulk cost price records AUTH: Role=[pricing.OWNER] """ bulkCostPricesDelete( """ Unique identifier of the price whose bulk cost prices should be deleted. Must be a valid UUID format representing an existing price in the system. """ priceId: String! ): Boolean! """ Create a new zone tax code record with geographic and tax associations. Establishes tax code mappings for specific geographic zones and products, enabling location-specific tax calculations and compliance. Used for regional tax management and product-specific tax rules. Possible errors: - ZONE_TAX_CODE_CREATE_ERROR: Failed to create zone tax code record - ZONE_TAX_CODE_VALIDATION_ERROR: Invalid zone tax code data provided - ZONE_TAX_CODE_ALREADY_EXISTS_ERROR: Zone tax code with similar criteria already exists AUTH: Role=[pricing.OWNER] """ zoneTaxCodeCreate( """ Zone tax code creation data including geographic zones, tax codes, product associations, and effective dates. Contains all necessary information to create a complete zone tax code record with proper validation and business rules. """ input: ZoneTaxCodeCreateInput! ): ZoneTaxCode! """ Update an existing zone tax code record with new values and settings. Allows modification of geographic zones, tax codes, product associations, effective dates, and other zone tax code attributes. Used for maintaining accurate regional tax rules and compliance. Possible errors: - ZONE_TAX_CODE_NOT_FOUND_ERROR: Zone tax code with the specified ID does not exist - ZONE_TAX_CODE_UPDATE_ERROR: Failed to update zone tax code record - ZONE_TAX_CODE_VALIDATION_ERROR: Invalid zone tax code data provided AUTH: Role=[pricing.OWNER,pricing.EDITOR] """ zoneTaxCodeUpdate( """ Unique identifier of the zone tax code record to update. Must be a valid UUID format representing an existing zone tax code in the system. """ id: String! """ Updated zone tax code data including geographic zones, tax codes, and effective dates. Only provided fields will be updated, others remain unchanged. All validation rules apply to the updated values. """ input: ZoneTaxCodeUpdateInput! ): ZoneTaxCode! """ Permanently remove a specific zone tax code record from the system. This action cannot be undone. The zone tax code record will no longer be available for tax calculations or regional compliance operations. Possible errors: - ZONE_TAX_CODE_NOT_FOUND_ERROR: Zone tax code with the specified ID does not exist - ZONE_TAX_CODE_DELETE_ERROR: Failed to delete zone tax code record AUTH: Role=[pricing.OWNER] """ zoneTaxCodeDelete( """ Unique identifier of the zone tax code record to delete. Must be a valid UUID format representing an existing zone tax code in the system. """ id: String! ): Boolean! """ Create multiple zone tax code records in a single operation. Efficiently creates multiple zone tax code records with comprehensive validation and error handling. Used for bulk setup of regional tax rules and product-specific tax mappings. Possible errors: - ZONE_TAX_CODE_CREATE_ERROR: Failed to create zone tax code records - ZONE_TAX_CODE_VALIDATION_ERROR: Invalid zone tax code data provided - ZONE_TAX_CODE_ALREADY_EXISTS_ERROR: One or more zone tax codes with similar criteria already exist AUTH: Role=[pricing.OWNER] """ zoneTaxCodesCreate( """ Array of zone tax code creation data for bulk operations. Each element contains complete zone tax code information including geographic zones, tax codes, product associations, and effective dates. All records are validated before creation. """ input: [ZoneTaxCodeCreateInput!]! ): [ZoneTaxCode!]! """ Remove all zone tax code records associated with a specific price. This bulk operation permanently deletes all zone tax codes linked to the specified price, effectively removing all regional tax mappings for that price record. Possible errors: - PRICE_NOT_FOUND_ERROR: Price with the specified ID does not exist - ZONE_TAX_CODE_DELETE_ERROR: Failed to delete zone tax code records AUTH: Role=[pricing.OWNER] """ zoneTaxCodesDelete( """ Unique identifier of the price record whose zone tax codes should be deleted. Must be a valid UUID format representing an existing price in the system. """ priceId: String! ): Boolean! """ Create a new tax configuration in the system. Establishes a new tax rule with rates and zones. The combination of tax code and zone must be unique to prevent conflicts in tax calculations. Possible errors: - TAX_CREATE_ERROR: Failed to create the tax configuration - TAX_ALREADY_EXISTS_ERROR: Tax configuration with the same code, and zone already exists AUTH: Role=[pricing.OWNER] """ taxCreate( """ Tax configuration data including rates and zones. The combination of tax code, and zone must be unique across the system to ensure proper tax calculation. """ input: TaxCreateInput! ): Tax! """ Update an existing tax configuration. Modifies tax rates, zones, or other tax settings. Changes will affect all future tax calculations using this configuration. Possible errors: - TAX_NOT_FOUND_ERROR: Tax configuration with the specified ID does not exist - TAX_UPDATE_ERROR: Failed to update the tax configuration - TAX_ALREADY_EXISTS_ERROR: Tax configuration with the same code, and zone already exists AUTH: Role=[pricing.OWNER,pricing.EDITOR] """ taxUpdate( """ Unique identifier of the tax configuration to update. Must be a valid UUID format representing an existing tax configuration. """ id: String! """ Updated tax configuration data. Only provided fields will be updated, others remain unchanged. """ input: TaxUpdateInput! ): Tax! """ Permanently delete a tax configuration from the system. Removes the tax configuration and all associated data. This action cannot be undone and will affect tax calculations that depend on this configuration. Possible errors: - TAX_NOT_FOUND_ERROR: Tax configuration with the specified ID does not exist - TAX_DELETE_ERROR: Failed to delete the tax configuration AUTH: Role=[pricing.OWNER] """ taxDelete( """ Unique identifier of the tax configuration to delete. Must be a valid UUID format representing an existing tax configuration. """ id: String! ): Boolean! """Start a full reindex for the current tenant""" productSearchFullReindexStart(skipNegativeCache: Boolean = false): StartReindexResponse! """Force release a reindex lock for the current tenant (admin operation)""" productSearchReindexLockForceRelease: ForceReleaseLockResponse! """Cancel a running reindex by its ID""" productSearchFullReindexCancel(reindexId: String!): CancelReindexResponse! """Queue one or more products for indexing""" productSearchProductsIndex(input: IndexProductsInput!): IndexEntitiesResponse! """Queue one or more clusters for indexing""" productSearchClustersIndex(input: IndexClustersInput!): IndexEntitiesResponse! """Queue one or more categories for indexing""" productSearchCategoriesIndex(input: IndexCategoriesInput!): IndexEntitiesResponse! """ Create a product in the catalogue. External system integrators can supply a source / source identifier pair so the catalogue can resolve the product later without needing the internal identifier. The catalogue's default language must be present in the localized name list. Possible errors: - PRODUCT_EXISTS: A product with the supplied SKU or source identifier already exists. - CATEGORY_NOT_FOUND: The supplied default category does not exist. - SCHEMA_VALIDATION: One or more input fields failed validation. AUTH: Role=[product.OWNER] """ productCreate( """ Product creation data including localized content, SKU, status, category assignment and metadata. """ input: CreateProductInput! ): Product! """ Apply a partial update to an existing product. Only the fields supplied in the input are modified; omitted fields are left untouched. The catalogue's default language must remain present in the localized name list after the update. Possible errors: - PRODUCT_NOT_FOUND: The supplied identifier did not match any product. - PAYLOAD_VALIDATION: The combination of inputs violates a catalogue business rule. - SCHEMA_VALIDATION: One or more input fields failed validation. AUTH: Role=[product.OWNER,product.EDITOR] """ productUpdate( """ Numeric identifier of the product to update. Must be a valid product identifier that exists in the catalogue. """ productId: Int! """ Fields to update on the product. Omitted fields keep their current value. """ input: UpdateProductInput! ): Product! """ Remove a product from the catalogue. Cross- and up-sell relationships pointing to the product are detached automatically. Possible errors: - PRODUCT_NOT_FOUND: The supplied identifier did not match any product. AUTH: Role=[product.OWNER] """ productDelete( """Numeric identifier of the product to delete.""" productId: Int! ): Boolean! """ Attach an existing product to a cluster. The product becomes selectable through the cluster's options. A product can only belong to one cluster at a time; reassigning detaches the product from its previous cluster. Possible errors: - PRODUCT_NOT_FOUND: The supplied product identifier did not match any product. - CLUSTER_NOT_FOUND: The supplied cluster identifier did not match any cluster. - CLUSTER_PRODUCT_EXISTS: The product is already attached to the cluster. AUTH: Role=[product.OWNER,product.EDITOR] """ productAssignToCluster( """Numeric identifier of the product to attach to the cluster.""" productId: Int! """Numeric identifier of the cluster the product should be attached to.""" clusterId: Int! ): Product! """ Detach a product from its current cluster. The product remains in the catalogue but is no longer selectable through the cluster's options. Possible errors: - PRODUCT_NOT_FOUND: The supplied product identifier did not match any product. - CLUSTER_PRODUCT_NOT_FOUND: The product is not currently attached to a cluster. AUTH: Role=[product.OWNER,product.EDITOR] """ productUnassignFromCluster( """Numeric identifier of the product to detach from its current cluster.""" productId: Int! ): Product! """ Import products from a CSV file with validation and bulk processing. Each row in the CSV is treated as a single product. Existing products are matched by internal identifier, source identifier, SKU or supplier code based on which fields the row contains; rows that do not match are created. Possible errors: - SCHEMA_VALIDATION: One or more rows or mappings failed validation. AUTH: Role=[product.OWNER] """ productCsvImport( """ CSV file and column-to-field mappings. The mappings tell the importer how each CSV column maps to a product field. """ input: ProductCsvInput! ): CsvImportResponse! """ Create a product within the supplied cluster. The product is created in the catalogue and automatically attached to the cluster so it becomes selectable through the cluster's options. Possible errors: - CLUSTER_NOT_FOUND: The supplied cluster identifier did not match any cluster. - PRODUCT_EXISTS: A product with the supplied SKU or source identifier already exists. - SCHEMA_VALIDATION: One or more input fields failed validation. AUTH: Role=[product.OWNER] """ clusterProductCreate( """ Numeric identifier of the cluster the new product should be attached to. """ id: Int! """Product creation data including localized content, SKU and status.""" input: CreateProductInput! ): Product! """ Apply a partial update to a product attached to the supplied cluster. Only the fields supplied in the input are modified; omitted fields are left untouched. The product is also re-attached to the cluster to repair drift. Possible errors: - CLUSTER_NOT_FOUND: The supplied cluster identifier did not match any cluster. - PRODUCT_NOT_FOUND: The supplied product identifier did not match any product. - SCHEMA_VALIDATION: One or more input fields failed validation. AUTH: Role=[product.OWNER,product.EDITOR] """ clusterProductUpdate( """Numeric identifier of the cluster the product is attached to.""" id: Int! """Numeric identifier of the product to update.""" productId: Int! """ Fields to update on the product. Omitted fields keep their current value. """ input: UpdateProductInput! ): Product! """ Remove a product that is attached to a cluster from the catalogue. The product is detached from the cluster and deleted. Cross- and up-sell relationships pointing to the product are detached automatically. Possible errors: - CLUSTER_NOT_FOUND: The supplied cluster identifier did not match any cluster. - PRODUCT_NOT_FOUND: The supplied product identifier did not match any product. AUTH: Role=[product.OWNER] """ clusterProductDelete( """Numeric identifier of the cluster the product is attached to.""" id: Int! """Numeric identifier of the product to delete.""" productId: Int! ): Boolean! """ Create a cluster in the catalogue, optionally attaching it to a parent category. Clusters group related products and expose them through configurable options. A cluster must reference an existing cluster configuration. The catalogue's default language must be present in the localized name list. Possible errors: - CLUSTER_EXISTS: A cluster with the supplied SKU, code or source identifier already exists. - CLUSTER_CONFIG_NOT_FOUND: The supplied cluster configuration identifier did not match any configuration. - CATEGORY_NOT_FOUND: The supplied parent category does not exist. - SCHEMA_VALIDATION: One or more input fields failed validation. AUTH: Role=[product.OWNER] """ clusterCreate( """ Cluster creation data including localized content, SKU or code, configuration reference, and parent category. """ input: ClusterCreateInput! ): Cluster! """ Apply a partial update to an existing cluster. Only the fields supplied in the input are modified; omitted fields are left untouched. The catalogue's default language must remain present in the localized name list after the update. Possible errors: - CLUSTER_NOT_FOUND: The supplied identifier did not match any cluster. - SCHEMA_VALIDATION: One or more input fields failed validation. AUTH: Role=[product.OWNER,product.EDITOR] """ clusterUpdate( """Numeric identifier of the cluster to update.""" id: Int! """ Fields to update on the cluster. Omitted fields keep their current value. """ input: ClusterUpdateInput! ): Cluster! """ Remove a cluster from the catalogue. Products attached to the cluster are detached automatically. Cluster options that exist only inside the cluster are removed alongside it. Possible errors: - CLUSTER_NOT_FOUND: The supplied identifier did not match any cluster. AUTH: Role=[product.OWNER] """ clusterDelete( """Numeric identifier of the cluster to delete.""" id: Int! ): Boolean! """ Attach a list of existing products to a cluster. Each product becomes selectable through the cluster's options. Per-item outcomes are returned so callers can detect partial successes. Possible errors: - CLUSTER_NOT_FOUND: The supplied cluster identifier did not match any cluster. - PRODUCT_NOT_FOUND: One or more of the supplied product identifiers did not match any product. AUTH: Role=[product.OWNER,product.EDITOR] """ clusterAssignProducts( """Numeric identifier of the cluster the products should be attached to.""" clusterId: Int! """Identifiers of the products to attach to the cluster.""" input: ClusterAssignProductsInput! ): ClusterAssignProductsResponse! """ Detach a list of products from a cluster, optionally moving them to a category or another cluster. Each detached product remains in the catalogue. Per-item outcomes are returned so callers can detect partial successes. Possible errors: - CLUSTER_NOT_FOUND: The supplied cluster identifier did not match any cluster. - PRODUCT_NOT_FOUND: One or more of the supplied product identifiers did not match any product. - CATEGORY_NOT_FOUND: The supplied target category does not exist. AUTH: Role=[product.OWNER,product.EDITOR] """ clusterUnassignProducts( """ Numeric identifier of the cluster the products are currently attached to. """ clusterId: Int! """ Identifiers of the products to detach and the optional destination they should be moved to. """ input: ClusterUnassignProductsInput! ): ClusterUnassignProductsResponse! """ Attach a single existing product to a cluster. The product will be detached from a category or another cluster. Use `clusterAssignProducts` to attach multiple products in a single request. Possible errors: - CLUSTER_NOT_FOUND: The supplied cluster identifier did not match any cluster. - PRODUCT_NOT_FOUND: The supplied product identifier did not match any product. AUTH: Role=[product.OWNER,product.EDITOR] """ clusterAssignProduct( """Numeric identifier of the cluster the product should be attached to.""" clusterId: Int! """Numeric identifier of the product to attach.""" productId: Int! ): Cluster! """ Detach a single product from its current cluster. The product remains in the catalogue. Use `clusterUnassignProducts` to detach multiple products in a single request. Possible errors: - CLUSTER_NOT_FOUND: The supplied cluster identifier did not match any cluster. - PRODUCT_NOT_FOUND: The supplied product identifier did not match any product. AUTH: Role=[product.OWNER,product.EDITOR] """ clusterUnassignProduct( """ Numeric identifier of the cluster the product is currently attached to. """ clusterId: Int! """Numeric identifier of the product to detach.""" productId: Int! ): Cluster! """ Import clusters from a CSV file with validation and bulk processing. Each row in the CSV is treated as a single cluster. Existing clusters are matched by internal identifier, source identifier or SKU based on which fields the row contains; rows that do not match are created. Possible errors: - SCHEMA_VALIDATION: One or more rows or mappings failed validation. AUTH: Role=[product.OWNER] """ clusterCsvImport( """CSV file and column-to-field mappings for the cluster import.""" input: ClusterCsvInput! ): CsvImportResponse! """ Reorder a cluster within its category so it appears immediately before another cluster. Both relationships must belong to the same category. The full list of cluster relationships in that category after the move is returned so callers can update their UI in a single round trip. Possible errors: - CATEGORY_ITEM_NOT_FOUND: One of the supplied relationship identifiers did not match any cluster-to-category relationship. AUTH: Role=[product.OWNER,product.EDITOR] """ clusterCategoryMoveAbove( """Global identifier of the cluster-to-category relationship to move.""" relationshipUuid: String! """ Global identifier of the relationship the moved relationship should appear immediately before. """ targetRelationshipUuid: String! ): [BaseProductCategoryRelationship!]! """ Reorder a cluster within its category so it appears immediately after another cluster. Both relationships must belong to the same category. The full list of cluster relationships in that category after the move is returned so callers can update their UI in a single round trip. Possible errors: - CATEGORY_ITEM_NOT_FOUND: One of the supplied relationship identifiers did not match any cluster-to-category relationship. AUTH: Role=[product.OWNER,product.EDITOR] """ clusterCategoryMoveBelow( """Global identifier of the cluster-to-category relationship to move.""" relationshipUuid: String! """ Global identifier of the relationship the moved relationship should appear immediately after. """ targetRelationshipUuid: String! ): [BaseProductCategoryRelationship!]! """ Reorder a product within its cluster so it appears immediately before another product. Both relationships must belong to the same cluster. The full list of product relationships in that cluster after the move is returned so callers can update their UI in a single round trip. Possible errors: - CLUSTER_PRODUCT_NOT_FOUND: One of the supplied relationship identifiers did not match any product-to-cluster relationship. AUTH: Role=[product.OWNER,product.EDITOR] """ productClusterMoveAbove( """Global identifier of the product-to-cluster relationship to move.""" relationshipUuid: String! """ Global identifier of the relationship the moved relationship should appear immediately before. """ targetRelationshipUuid: String! ): [BaseProductClusterRelationship!]! """ Reorder a product within its cluster so it appears immediately after another product. Both relationships must belong to the same cluster. The full list of product relationships in that cluster after the move is returned so callers can update their UI in a single round trip. Possible errors: - CLUSTER_PRODUCT_NOT_FOUND: One of the supplied relationship identifiers did not match any product-to-cluster relationship. AUTH: Role=[product.OWNER,product.EDITOR] """ productClusterMoveBelow( """Global identifier of the product-to-cluster relationship to move.""" relationshipUuid: String! """ Global identifier of the relationship the moved relationship should appear immediately after. """ targetRelationshipUuid: String! ): [BaseProductClusterRelationship!]! baseProductCategoryMoveAbove(relationshipUuid: ID!, targetRelationshipUuid: ID!): [BaseProductCategoryRelationship!]! baseProductCategoryMoveBelow(relationshipUuid: ID!, targetRelationshipUuid: ID!): [BaseProductCategoryRelationship!]! baseProductCategoryMoveToTop(relationshipUuid: ID!): [BaseProductCategoryRelationship!]! baseProductCategoryMoveToBottom(relationshipUuid: ID!): [BaseProductCategoryRelationship!]! productAddToCategory(productId: Int!, categoryId: Int!, sortOrder: Int, makeDefault: Boolean! = false): ProductCategoryRelationship! productRemoveFromCategory(productId: Int!, categoryId: Int!): Boolean! productSetDefaultCategory(productId: Int!, categoryId: Int!): Product! productCategoryMoveAbove(relationshipUuid: ID!, targetRelationshipUuid: ID!): [ProductCategoryRelationship!]! productCategoryMoveBelow(relationshipUuid: ID!, targetRelationshipUuid: ID!): [ProductCategoryRelationship!]! productCategoryMoveToTop(relationshipUuid: ID!): [ProductCategoryRelationship!]! productCategoryMoveToBottom(relationshipUuid: ID!): [ProductCategoryRelationship!]! productsBulkAddToCategory(productIds: [Int!]!, categoryId: Int!, startingSortOrder: Int! = 1000): [ProductCategoryRelationship!]! productsBulkRemoveFromCategory(productIds: [Int!]!, categoryId: Int!): Boolean! clusterAddToCategory(clusterId: Int!, categoryId: Int!, sortOrder: Int, makeDefault: Boolean! = false): BaseProductCategoryRelationship! clusterRemoveFromCategory(clusterId: Int!, categoryId: Int!): Boolean! clusterSetDefaultCategory(clusterId: Int!, categoryId: Int!): Cluster! clustersBulkAddToCategory(clusterIds: [Int!]!, categoryId: Int!, startingSortOrder: Int! = 1000): [BaseProductCategoryRelationship!]! clustersBulkRemoveFromCategory(clusterIds: [Int!]!, categoryId: Int!): Boolean! baseProductCategoryMoveAboveByUuids(categoryUuid: ID!, productUuid: ID!, targetProductUuid: ID!): [BaseProductCategoryRelationship!]! baseProductCategoryMoveBelowByUuids(categoryUuid: ID!, productUuid: ID!, targetProductUuid: ID!): [BaseProductCategoryRelationship!]! baseProductCategoryMoveToTopByUuids(categoryUuid: ID!, productUuid: ID!): [BaseProductCategoryRelationship!]! baseProductCategoryMoveToBottomByUuids(categoryUuid: ID!, productUuid: ID!): [BaseProductCategoryRelationship!]! productBulkMove(input: ProductBulkMoveInput!): ProductBulkMoveResponse! clusterBulkMove(input: ClusterBulkMoveInput!): ClusterBulkMoveResponse! """ Create a category and place it within the hierarchy. When no parent is supplied the category becomes a root category. The catalogue's default language must be present in the localized name list. External system integrators can supply a source / source identifier pair so the catalogue can resolve the category later without needing the internal identifier. Possible errors: - PARENT_CATEGORY_NOT_FOUND: The supplied parent reference did not match any category. - CATEGORY_ALREADY_EXISTS: A category with the supplied source / source identifier or slug already exists. - CATEGORY_NOT_ALLOWED: The combination of inputs violates a catalogue business rule. - SCHEMA_VALIDATION: One or more input fields failed validation. AUTH: Role=[product.OWNER] """ categoryCreate( """ Category creation data including localized content, parent reference, SEO metadata, and visibility flag. Contains the information needed to place a new category in the catalogue tree. """ input: CreateCategoryInput! ): Category! """ Apply a partial update to a category. Only the fields supplied in the input are modified; omitted fields are left untouched. The catalogue's default language must remain present in the localized name list after the update. Possible errors: - CATEGORY_NOT_FOUND: The supplied identifier did not match any category. - PARENT_CATEGORY_NOT_FOUND: The supplied parent reference did not match any category. - CATEGORY_CROSS_ROOT_MOVE_ERROR: A category cannot be moved across catalogue roots. - CATEGORY_NOT_ALLOWED: The update violates a catalogue business rule. - SCHEMA_VALIDATION: One or more input fields failed validation. AUTH: Role=[product.OWNER,product.EDITOR] """ categoryUpdate( """ Numeric identifier of the category to update. Must be a valid category identifier that exists in the catalogue. """ categoryId: Float! """ Fields to update on the category. Omitted fields keep their current value. """ input: UpdateCategoryInput! ): Category! """ Remove a category from the catalogue. A category can only be deleted when it has no child categories and no products or clusters assigned to it. Possible errors: - CATEGORY_NOT_FOUND: The supplied identifier did not match any category. - CATEGORY_NOT_EMPTY: The category still has child categories or assigned products and clusters. - CATEGORY_CHANNEL_ROOT: A channel-root category cannot be deleted. AUTH: Role=[product.OWNER] """ categoryDelete( """Numeric identifier of the category to delete.""" categoryId: Float! ): Boolean! """ Import categories from a CSV file with validation and bulk processing. Each row in the CSV is treated as a single category. Existing categories are matched by internal identifier or by external source identifier, based on which fields the row contains; rows that do not match are created. Possible errors: - CATEGORY_BULK_OPERATION_FAILED: The bulk import could not be applied to the catalogue. - SCHEMA_VALIDATION: One or more rows or mappings failed validation. AUTH: Role=[product.OWNER] """ categoryCsvImport( """ CSV file and column-to-field mappings. The mappings tell the importer how each CSV column maps to a category field. """ input: CategoryCsvInput! ): CsvImportResponse! """ Attach products and clusters to a category in a single operation. Each item can be referenced by internal identifier or by external source / source identifier pair. Items already attached to the category are reported as conflicts; the rest of the request continues to process. Possible errors: - CATEGORY_NOT_FOUND: The supplied category identifier did not match any category. - CATEGORY_ITEM_NOT_FOUND: One of the referenced products or clusters could not be located. - CATEGORY_ITEM_ALREADY_EXISTS: An item is already attached to the category. - CATEGORY_ADD_PRODUCTS_CLUSTERS_FAILED: The bulk attachment could not be applied. - CATEGORY_OPERATION_INVALID: The combination of inputs violates a catalogue business rule. AUTH: Role=[product.OWNER,product.EDITOR] """ categoryAddProductsClusters( """Numeric identifier of the category to attach items to.""" id: Int! """ Lists of products and clusters to attach to the category, referenced by identifier or by external source. """ input: CategoryAddProductsClustersInput! ): CategoryAddProductsClustersResponse! """ Detach products and clusters from a category in a single operation. Each item can be referenced by internal identifier or by external source / source identifier pair. Items cannot be detached from the category that was assigned as their original category. Possible errors: - CATEGORY_NOT_FOUND: The supplied category identifier did not match any category. - CATEGORY_ITEM_NOT_IN_CATEGORY: One of the referenced products or clusters is not currently attached to the category. - CATEGORY_ORIGINAL_CATEGORY_PROTECTION: An item cannot be removed from the category that was assigned as its original category. - CATEGORY_REMOVE_PRODUCTS_CLUSTERS_FAILED: The bulk detachment could not be applied. - CATEGORY_OPERATION_INVALID: The combination of inputs violates a catalogue business rule. AUTH: Role=[product.OWNER,product.EDITOR] """ categoryRemoveProductsClusters( """Numeric identifier of the category to detach items from.""" id: Int! """ Lists of products and clusters to detach from the category, referenced by identifier or by external source. """ input: CategoryRemoveProductsClustersInput! ): CategoryRemoveProductsClustersResponse! """ Reorder a category so it appears immediately before another category within the same parent. Both categories must share the same parent. The full list of siblings after the move is returned so callers can update their UI in a single round trip. Possible errors: - CATEGORY_NOT_FOUND: One of the supplied identifiers did not match any category. - CATEGORY_CROSS_ROOT_MOVE_ERROR: The two categories belong to different parents and cannot be reordered relative to each other. AUTH: Role=[product.OWNER,product.EDITOR] """ categoryMoveAbove( """Global identifier of the category to move.""" categoryUuid: String! """ Global identifier of the sibling category the moved category should appear immediately before. """ targetCategoryUuid: String! ): [Category!]! """ Reorder a category so it appears immediately after another category within the same parent. Both categories must share the same parent. The full list of siblings after the move is returned so callers can update their UI in a single round trip. Possible errors: - CATEGORY_NOT_FOUND: One of the supplied identifiers did not match any category. - CATEGORY_CROSS_ROOT_MOVE_ERROR: The two categories belong to different parents and cannot be reordered relative to each other. AUTH: Role=[product.OWNER,product.EDITOR] """ categoryMoveBelow( """Global identifier of the category to move.""" categoryUuid: String! """ Global identifier of the sibling category the moved category should appear immediately after. """ targetCategoryUuid: String! ): [Category!]! """ Create a cluster configuration template, optionally seeding it with the initial set of configurable settings. The configuration name must be unique within the catalogue. Settings can be added later through the dedicated setting mutations. Possible errors: - SCHEMA_VALIDATION: One or more input fields failed validation. AUTH: Role=[product.OWNER] """ clusterConfigCreate( """ Definition of the cluster configuration to create, including name and any initial settings. """ input: ClusterConfigCreateInput! ): ClusterConfigResponse! """ Apply a partial update to an existing cluster configuration. Only the fields supplied in the input are modified; omitted fields are left untouched. Possible errors: - CLUSTER_CONFIG_NOT_FOUND: The supplied identifier did not match any cluster configuration. - SCHEMA_VALIDATION: One or more input fields failed validation. AUTH: Role=[product.OWNER,product.EDITOR] """ clusterConfigUpdate( """ Fields to update on the cluster configuration. Omitted fields keep their current value. """ input: ClusterConfigUpdateInput! """Numeric identifier of the cluster configuration to update.""" clusterConfigId: Int ): ClusterConfig! """ Remove a cluster configuration template from the catalogue. A configuration cannot be deleted while it is still bound to one or more clusters. Possible errors: - CLUSTER_CONFIG_NOT_FOUND: The supplied identifier did not match any cluster configuration. - CLUSTER_CONFIG_IN_USE: The cluster configuration is still bound to one or more clusters and cannot be deleted. AUTH: Role=[product.OWNER] """ clusterConfigDelete( """Numeric identifier of the cluster configuration to delete.""" id: Int! ): Boolean! """ Create a new setting on the cluster configuration identified by the supplied global identifier. Use `clusterConfigAddSetting` when matching the configuration by numeric identifier instead. Possible errors: - CLUSTER_CONFIG_NOT_FOUND: The supplied configuration identifier did not match any cluster configuration. - SCHEMA_VALIDATION: One or more input fields failed validation. AUTH: Role=[product.OWNER] """ clusterConfigSettingCreate( """ Global identifier of the cluster configuration the setting should be added to. """ configUuid: String! """Definition of the setting to create on the cluster configuration.""" input: ClusterConfigSettingCreateInput! ): ClusterConfigSetting! """ Apply a partial update to a cluster configuration setting identified by global identifier. Only the fields supplied in the input are modified; omitted fields are left untouched. Possible errors: - CLUSTER_CONFIG_NOT_FOUND: The setting or its parent configuration could not be located. - SCHEMA_VALIDATION: One or more input fields failed validation. AUTH: Role=[product.OWNER] """ clusterConfigSettingUpdate( """Global identifier of the setting to update.""" uuid: String! """ Fields to update on the setting. Omitted fields keep their current value. """ input: ClusterConfigSettingUpdateInput! ): ClusterConfigSetting! """ Remove a cluster configuration setting identified by global identifier. Possible errors: - CLUSTER_CONFIG_NOT_FOUND: The setting or its parent configuration could not be located. AUTH: Role=[product.OWNER] """ clusterConfigSettingDelete( """Global identifier of the setting to delete.""" uuid: String! ): Boolean! """ Create a new setting on the cluster configuration identified by numeric identifier. Use `clusterConfigSettingCreate` when matching the configuration by global identifier instead. Possible errors: - CLUSTER_CONFIG_NOT_FOUND: The supplied configuration identifier did not match any cluster configuration. - SCHEMA_VALIDATION: One or more input fields failed validation. AUTH: Role=[product.OWNER] """ clusterConfigAddSetting( """ Numeric identifier of the cluster configuration the setting should be added to. """ clusterConfigId: Int! """Definition of the setting to add to the cluster configuration.""" input: ClusterConfigSettingInput! ): ClusterConfigSettingResponse! """ Apply a partial update to a cluster configuration setting identified by numeric configuration identifier and setting identifier. Only the fields supplied in the input are modified; omitted fields are left untouched. Possible errors: - CLUSTER_CONFIG_NOT_FOUND: The supplied configuration identifier did not match any cluster configuration. - SCHEMA_VALIDATION: One or more input fields failed validation. AUTH: Role=[product.OWNER] """ clusterConfigUpdateSetting( """Numeric identifier of the cluster configuration that owns the setting.""" clusterConfigId: Int! """Numeric identifier of the setting to update.""" settingId: Int! """ Fields to update on the setting. Omitted fields keep their current value. """ input: ClusterConfigSettingUpdateInput! ): UpdateClusterConfigSettingResponse! """ Remove a cluster configuration setting identified by numeric configuration identifier and setting identifier. Possible errors: - CLUSTER_CONFIG_NOT_FOUND: The supplied configuration identifier did not match any cluster configuration. AUTH: Role=[product.OWNER] """ clusterConfigRemoveSetting( """Numeric identifier of the cluster configuration that owns the setting.""" clusterConfigId: Int! """Numeric identifier of the setting to remove.""" settingId: Int! ): Boolean! """ Create a product directly within a cluster option. The product is created in the catalogue and automatically attached to the cluster option so it becomes selectable for the option. Possible errors: - CLUSTER_OPTION_NOT_FOUND: The supplied cluster option identifier did not match any option. - PRODUCT_EXISTS: A product with the supplied SKU or source identifier already exists. - SCHEMA_VALIDATION: One or more input fields failed validation. AUTH: Role=[product.OWNER] """ clusterOptionProductCreate( """ Numeric identifier of the cluster option the new product should be attached to. """ id: Int! """Product creation data including localized content, SKU and status.""" input: CreateProductInput! ): Product! """ Apply a partial update to a product attached to a cluster option. Only the fields supplied in the input are modified; omitted fields are left untouched. The product is also re-attached to the cluster option to repair drift. Possible errors: - CLUSTER_OPTION_NOT_FOUND: The supplied cluster option identifier did not match any option. - PRODUCT_NOT_FOUND: The supplied product identifier did not match any product. - SCHEMA_VALIDATION: One or more input fields failed validation. AUTH: Role=[product.OWNER,product.EDITOR] """ clusterOptionProductUpdate( """Numeric identifier of the cluster option the product is attached to.""" id: Int! """Numeric identifier of the product to update.""" productId: Int! """ Fields to update on the product. Omitted fields keep their current value. """ input: UpdateProductInput! ): Product! """ Remove a product attached to a cluster option from the catalogue. The product is detached from the cluster option and deleted. Cross- and up-sell relationships pointing to the product are detached automatically. Possible errors: - CLUSTER_OPTION_NOT_FOUND: The supplied cluster option identifier did not match any option. - PRODUCT_NOT_FOUND: The supplied product identifier did not match any product. AUTH: Role=[product.OWNER] """ clusterOptionProductDelete( """Numeric identifier of the cluster option the product is attached to.""" id: Int! """Numeric identifier of the product to delete.""" productId: Int! ): Boolean! """ Create a configurable option on a cluster. The catalogue's default language must be present in the localized name list. Products selectable for the option can either be supplied at creation time through the productIds list or attached later through the dedicated assignment mutations. Possible errors: - CLUSTER_NOT_FOUND: The supplied cluster identifier did not match any cluster. - SCHEMA_VALIDATION: One or more input fields failed validation. AUTH: Role=[product.OWNER] """ clusterOptionCreate( """Numeric identifier of the cluster the option should be added to.""" clusterId: Int! """Definition of the cluster option to create.""" input: ClusterOptionCreateInput! ): ClusterOption! """ Apply a partial update to a cluster option. Only the fields supplied in the input are modified; omitted fields are left untouched. The option must belong to the supplied cluster. Possible errors: - CLUSTER_OPTION_NOT_FOUND: The supplied option identifier did not match any cluster option, or the option does not belong to the supplied cluster. - SCHEMA_VALIDATION: One or more input fields failed validation. AUTH: Role=[product.OWNER,product.EDITOR] """ clusterOptionUpdate( """Numeric identifier of the cluster the option belongs to.""" clusterId: Int! """Numeric identifier of the cluster option to update.""" optionId: Int! """ Fields to update on the cluster option. Omitted fields keep their current value. """ input: ClusterOptionUpdateInput! ): ClusterOption! """ Remove a cluster option from a cluster. The option must belong to the supplied cluster. The products selectable for the option are detached automatically but remain in the catalogue. Possible errors: - CLUSTER_OPTION_NOT_FOUND: The supplied option identifier did not match any cluster option, or the option does not belong to the supplied cluster. AUTH: Role=[product.OWNER] """ clusterOptionDelete( """Numeric identifier of the cluster the option belongs to.""" clusterId: Int! """Numeric identifier of the cluster option to delete.""" optionId: Int! ): Boolean! """ Attach existing products to a cluster option so they become selectable for it. Per-item outcomes are returned through the updated cluster option. Possible errors: - CLUSTER_OPTION_NOT_FOUND: The supplied cluster option identifier did not match any option. - PRODUCT_NOT_FOUND: One or more of the supplied product identifiers did not match any product. AUTH: Role=[product.OWNER,product.EDITOR] """ clusterOptionAssignProducts( """Global identifier of the cluster option to attach products to.""" uuid: String! """Identifiers of the products to attach to the cluster option.""" productIds: [Float!]! ): ClusterOption! """ Detach products from a cluster option. The products remain in the catalogue and remain selectable for other options. Possible errors: - CLUSTER_OPTION_NOT_FOUND: The supplied cluster option identifier did not match any option. - PRODUCT_NOT_FOUND: One or more of the supplied product identifiers did not match any product. AUTH: Role=[product.OWNER,product.EDITOR] """ clusterOptionRemoveProducts( """Global identifier of the cluster option to detach products from.""" uuid: String! """Identifiers of the products to detach from the cluster option.""" productIds: [Float!]! ): ClusterOption! """ Reorder a product within its cluster option so it appears immediately before another product. Both products must belong to the same cluster option. The full list of product relationships in that option after the move is returned so callers can update their UI in a single round trip. Possible errors: - CLUSTER_OPTION_NOT_FOUND: One or both of the supplied product identifiers do not belong to the same cluster option. AUTH: Role=[product.OWNER,product.EDITOR] """ productClusterOptionMoveAbove( """Global identifier of the product to move.""" productUuid: String! """ Global identifier of the product the moved product should appear immediately before. """ targetProductUuid: String! ): [ProductClusterOptionRelationship!]! """ Reorder a product within its cluster option so it appears immediately after another product. Both products must belong to the same cluster option. The full list of product relationships in that option after the move is returned so callers can update their UI in a single round trip. Possible errors: - CLUSTER_OPTION_NOT_FOUND: One or both of the supplied product identifiers do not belong to the same cluster option. AUTH: Role=[product.OWNER,product.EDITOR] """ productClusterOptionMoveBelow( """Global identifier of the product to move.""" productUuid: String! """ Global identifier of the product the moved product should appear immediately after. """ targetProductUuid: String! ): [ProductClusterOptionRelationship!]! """ Reorder a cluster option within its cluster so it appears immediately before another option. Both options must belong to the same cluster. The full list of options in that cluster after the move is returned so callers can update their UI in a single round trip. Possible errors: - CLUSTER_OPTION_NOT_FOUND: One or both of the supplied option identifiers do not belong to the same cluster. AUTH: Role=[product.OWNER,product.EDITOR] """ clusterOptionMoveAbove( """Global identifier of the cluster option to move.""" clusterOptionUuid: String! """ Global identifier of the option the moved option should appear immediately before. """ targetClusterOptionUuid: String! ): [ClusterOption!]! """ Reorder a cluster option within its cluster so it appears immediately after another option. Both options must belong to the same cluster. The full list of options in that cluster after the move is returned so callers can update their UI in a single round trip. Possible errors: - CLUSTER_OPTION_NOT_FOUND: One or both of the supplied option identifiers do not belong to the same cluster. AUTH: Role=[product.OWNER,product.EDITOR] """ clusterOptionMoveBelow( """Global identifier of the cluster option to move.""" clusterOptionUuid: String! """ Global identifier of the option the moved option should appear immediately after. """ targetClusterOptionUuid: String! ): [ClusterOption!]! """ Create a cross- or up-sell relationship between two catalogue records. The source and target can each be a product or a cluster. Duplicate relationships are rejected. Possible errors: - CROSS_UPSELL_DUPLICATE: A relationship of the same type already exists between the supplied source and target. - BASE_PRODUCT_NOT_FOUND: The supplied source or target record could not be located. - SCHEMA_VALIDATION: One or more input fields failed validation. AUTH: Role=[product.OWNER] """ crossupsellCreate( """ Cross-upsell creation data including source, target, type and sub-type. """ input: CrossupsellCreateInput! ): Crossupsell! """ Apply a partial update to a cross- or up-sell relationship. Only the fields supplied in the input are modified; omitted fields are left untouched. Possible errors: - CROSS_UPSELL_NOT_FOUND: The supplied identifier did not match any cross-upsell relationship. - SCHEMA_VALIDATION: One or more input fields failed validation. AUTH: Role=[product.OWNER,product.EDITOR] """ crossupsellUpdate( """Global identifier of the cross-upsell relationship to update.""" id: String! """ Fields to update on the cross-upsell relationship. Omitted fields keep their current value. """ input: CrossupsellUpdateInput! ): Crossupsell! """ Remove a cross- or up-sell relationship from the catalogue. The source and target records themselves are left untouched; only the relationship is deleted. Possible errors: - CROSS_UPSELL_NOT_FOUND: The supplied identifier did not match any cross-upsell relationship. AUTH: Role=[product.OWNER] """ crossupsellDelete( """Global identifier of the cross-upsell relationship to delete.""" id: String! ): Boolean! """ Create a new role definition in the authorization system. Establishes a new role definition with specified permissions and configuration. Role definitions serve as templates for creating roles and define the available permissions in the system. Possible errors: - ROLE_DEFINITION_CREATE_ERROR: Failed to create the role definition - ROLE_DEFINITION_ALREADY_EXISTS_ERROR: Role definition with the same name already exists """ roleDefinitionCreate( """ Role definition creation data including name, permissions, and configuration. Contains all necessary information to create a functional role definition including permission specifications and metadata. """ input: RoleDefinitionCreateInput! ): RoleDefinition! """ Update an existing role definition's configuration. Modifies role definition details including permissions, metadata, and configuration. Only provided fields will be updated, others remain unchanged. Possible errors: - ROLE_DEFINITION_NOT_FOUND_ERROR: Role definition with the specified ID does not exist - ROLE_DEFINITION_UPDATE_ERROR: Failed to update the role definition """ roleDefinitionUpdate( """ Unique identifier of the role definition to update. Must be a valid UUID format representing an existing role definition in the system. """ id: ID! """ Updated role definition information. Contains the role definition properties to update. Only provided fields will be changed, others remain unchanged. """ input: RoleDefinitionUpdateInput! ): RoleDefinition! """ Permanently delete a role definition from the authorization system. Removes the role definition and all associated configuration. This action cannot be undone and will affect any roles that depend on this definition. Possible errors: - ROLE_DEFINITION_NOT_FOUND_ERROR: Role definition with the specified ID does not exist - ROLE_DEFINITION_DELETE_ERROR: Failed to delete the role definition """ roleDefinitionDelete( """ Unique identifier of the role definition to delete. Must be a valid UUID format representing an existing role definition in the system. """ id: ID! ): Boolean! """ Create a new role in the authorization system. Establishes a new role with specified permissions and role definitions. The role will be available for assignment to users and can be used for access control throughout the system. Possible errors: - ROLE_CREATE_ERROR: Failed to create the role - ROLE_ALREADY_EXISTS_ERROR: Role with the same name already exists AUTH: Role=[role.OWNER] """ roleCreate( """ Role creation data including name, permissions, and configuration. Contains all necessary information to create a functional role including role definitions and access permissions. """ input: RoleCreateInput! ): Role! """ Update an existing role's configuration. Modifies role details including permissions, role definitions, and metadata. Only provided fields will be updated, others remain unchanged. Possible errors: - ROLE_NOT_FOUND_ERROR: Role with the specified ID does not exist - ROLE_UPDATE_ERROR: Failed to update the role AUTH: Role=[role.OWNER,role.EDITOR] """ roleUpdate( """ Unique identifier of the role to update. Must be a valid UUID format representing an existing role in the system. """ id: ID! """ Updated role information. Contains the role properties to update. Only provided fields will be changed, others remain unchanged. """ input: RoleUpdateInput! ): Role! """ Permanently delete a role from the authorization system. Removes the role and all associated permissions. This action cannot be undone and will affect any users or systems that depend on this role for access control. Possible errors: - ROLE_NOT_FOUND_ERROR: Role with the specified ID does not exist - ROLE_DELETE_ERROR: Failed to delete the role AUTH: Role=[role.OWNER] """ roleDelete( """ Unique identifier of the role to delete. Must be a valid UUID format representing an existing role in the system. """ id: ID! ): Boolean! """DEPRECATED: This mutation will be removed in a future version""" shopInvalidateCache: Boolean! @deprecated(reason: "This mutation will be removed in a future version") """ Create a new spare parts machine. Registers a new machine in the system with all associated spare parts, hierarchical relationships, and external references. Supports complex nested machine structures and multilingual content. Possible errors: - SPARE_PARTS_EXTERNAL_REFERENCE_KEY_ALREADY_EXISTS_ERROR: External reference already exists in the system - SPARE_PARTS_EXTERNAL_REFERENCE_KEY_DUPLICATES_FOUND_ERROR: Duplicate external references found in the payload - SPARE_PARTS_EXTERNAL_REFERENCE_CREATE_ERROR: Failed to create external reference - SPARE_PARTS_UNKNOWN_ERROR: Unexpected error during machine creation AUTH: Role=[product.OWNER] """ machineCreate( """ Machine creation data. Complete specification for the new machine including external references, localized content, spare parts, and hierarchical relationships. """ input: CreateSparePartsMachineInput! ): SparePartsMachine! """ Delete a spare parts machine and all its child machines. Permanently removes the specified machine and all its nested sub-machines from the system. This operation cannot be undone. Possible errors: - SPARE_PARTS_DELETE_MACHINE_NOT_FOUND_ERROR: Machine with the specified ID does not exist - SPARE_PARTS_DELETE_MACHINE_ERROR: Failed to delete the machine AUTH: Role=[product.OWNER] """ machineDelete( """ Unique identifier of the machine to delete. Must be a valid machine ID. All child machines will also be deleted as part of this operation. """ id: String! ): Boolean! """ Create or update a spare parts machine. Creates a new machine if it doesn't exist, or updates an existing machine based on external reference matching. Supports partial updates and maintains data integrity across operations. Possible errors: - SPARE_PARTS_EXTERNAL_REFERENCE_KEY_ALREADY_EXISTS_ERROR: External reference conflicts with existing machine - SPARE_PARTS_EXTERNAL_REFERENCE_KEY_DUPLICATES_FOUND_ERROR: Duplicate external references found in the payload - SPARE_PARTS_EXTERNAL_REFERENCE_CREATE_ERROR: Failed to create or update external reference - SPARE_PARTS_UNKNOWN_ERROR: Unexpected error during machine upsert operation AUTH: Role=[product.OWNER,product.EDITOR] """ machineUpsert( """ Machine upsert data. Complete specification for creating or updating the machine including external references, localized content, spare parts, and hierarchical relationships. """ input: UpsertSparePartsMachineInput! ): SparePartsMachine! """ Create a new surcharge in the pricing system. Establishes a new surcharge with calculation rules, amounts, and configuration. The surcharge will be available for product pricing and order calculations immediately. Possible errors: - FORBIDDEN: Insufficient permissions to create surcharges - CREATE_SURCHARGE_ERROR: Database insertion failures or general errors while creating the surcharge AUTH: Role=[pricing.OWNER] """ surchargeCreate( """ Surcharge creation data including amounts, calculation rules, and configuration. Contains all necessary information to create a functional surcharge including pricing rules, product associations, and calculation parameters. """ input: CreateSurchargeInput! ): Surcharge! """ Update an existing surcharge's configuration. Modifies surcharge details including amounts, calculation rules, and settings. Only provided fields will be updated, others remain unchanged. Possible errors: - FORBIDDEN: Insufficient permissions to update surcharges - UPDATE_SURCHARGE_INPUT_VALIDATION_ERROR: No parameters provided for update - NOT_FOUND_SURCHARGE_ERROR: Surcharge with the provided ID was not found - GET_SURCHARGE_ERROR: Database access errors while fetching the surcharge to update - UPDATE_SURCHARGE_ERROR: Database update failures or general errors while updating the surcharge AUTH: Role=[pricing.OWNER,pricing.EDITOR] """ surchargeUpdate( """ Unique identifier of the surcharge to update. Must be a valid string representing an existing surcharge in the system. """ id: String! """ Updated surcharge information. Contains the surcharge properties to update. Only provided fields will be changed, others remain unchanged. """ input: UpdateSurchargeInput! ): Surcharge! """ Permanently delete a surcharge from the pricing system. Removes the surcharge and all associated configuration. This action cannot be undone and will affect any pricing calculations that depend on this surcharge. Possible errors: - FORBIDDEN: Insufficient permissions to delete surcharges - NOT_FOUND_SURCHARGE_ERROR: Surcharge with the provided ID was not found - GET_SURCHARGE_ERROR: Database access errors while fetching the surcharge to delete - DELETE_SURCHARGE_ERROR: Database deletion failures or general errors while deleting the surcharge AUTH: Role=[pricing.OWNER] """ surchargeDelete( """ Unique identifier of the surcharge to delete. Must be a valid string representing an existing surcharge in the system. """ id: String! ): Surcharge! """ Associate surcharges with a specific product. Links one or more surcharges to a product, enabling additional fees to be applied during pricing calculations and order processing. The associations take effect immediately. Possible errors: - FORBIDDEN: Insufficient permissions to modify product surcharges - NOT_FOUND_SURCHARGE_ERROR: One or more surcharges with the provided IDs were not found - ADD_SURCHARGE_TO_PRODUCT_ERROR: Database insertion failures or general errors while creating product-surcharge associations AUTH: Role=[pricing.OWNER,pricing.EDITOR] """ addSurchargesToProduct( """ Product and surcharge association data. Contains the product ID and list of surcharge IDs to associate with the product for pricing calculations. """ input: AddSurchargesToProductInput! ): ConfirmationResponse! """ Remove surcharge associations from a specific product. Unlinks one or more surcharges from a product, removing additional fees from pricing calculations and order processing. The changes take effect immediately. Possible errors: - FORBIDDEN: Insufficient permissions to modify product surcharges - NOT_FOUND_SURCHARGE_ERROR: One or more surcharge-product associations were not found - REMOVE_SURCHARGE_FROM_PRODUCT_ERROR: Database deletion failures or general errors while removing product-surcharge associations AUTH: Role=[pricing.OWNER,pricing.EDITOR] """ removeSurchargesFromProduct( """ Product and surcharge disassociation data. Contains the product ID and list of surcharge IDs to remove from the product's pricing calculations. """ input: RemoveSurchargesFromProductInput! ): ConfirmationResponse! """ Create a new tender in the system. Establishes a new tender with initial configuration, items, and customer information. The tender will be available for modification and processing immediately. Possible errors: - TENDER_START_ERROR: Failed to create the tender - TENDER_ORDER_NOT_FOUND: Order with the specified ID does not exist - TENDER_GET_ORDER_ERROR: Failed to retrieve order information - FORBIDDEN: Insufficient permissions to create tenders AUTH: Role=[order.OWNER] """ tenderStart( """ Tender creation data including customer information, initial items, and configuration. Contains all necessary information to create a functional tender including customer details, product items, and initial pricing settings. """ input: TenderStartInput! ): Tender! """ Update address information for an existing tender. Modifies billing and shipping addresses associated with the tender. Changes take effect immediately and may affect pricing calculations based on location. Possible errors: - TENDER_NOT_FOUND: Tender with the specified ID does not exist - TENDER_ADDRESS_UPDATE_ERROR: Failed to update tender address - TENDER_ORDER_ADDRESSES_NOT_FOUND: Address data not found - FORBIDDEN: Insufficient permissions to update tenders AUTH: Role=[order.OWNER,order.EDITOR] """ tenderUpdateAddress( """ Unique identifier of the tender to update. Must be a valid string representing an existing tender in the system. """ id: String! """ Updated address information for the tender. Contains billing and shipping address details to be updated on the tender. """ input: TenderUpdateAddressInput! ): Tender! """ Add new items to an existing tender. Adds one or more products to the tender with specified quantities and configurations. Automatically recalculates pricing, taxes, and totals based on the new items. Possible errors: - TENDER_NOT_FOUND: Tender with the specified ID does not exist - TENDERITEM_PRODUCT_NOT_FOUND: One or more specified products do not exist - TENDER_ADD_ITEMS_ERROR: Failed to add items to tender - FORBIDDEN: Insufficient permissions to update tenders AUTH: Role=[order.OWNER,order.EDITOR] """ tenderAddItems( """ Unique identifier of the tender to add items to. Must be a valid string representing an existing tender in the system. """ id: String! """ Items to add to the tender including product IDs, quantities, and configurations. Contains product information and quantities to be added to the tender for pricing and processing. """ input: TenderAddItemsInput! ): TenderResponse! """ Update an existing item in a tender. Modifies quantity, pricing, or configuration of a specific item within the tender. Automatically recalculates tender totals, taxes, and pricing based on the updated item information. Possible errors: - TENDER_NOT_FOUND: Tender with the specified ID does not exist - TENDERITEM_NOT_FOUND: Item with the specified ID does not exist in the tender - TENDER_UPDATE_ITEM_ERROR: Failed to update the tender item - FORBIDDEN: Insufficient permissions to update tenders AUTH: Role=[order.OWNER,order.EDITOR] """ tenderUpdateItem( """ Unique identifier of the tender containing the item to update. Must be a valid string representing an existing tender in the system. """ id: String! """ Unique identifier of the specific item to update within the tender. Must be a valid string representing an existing item in the specified tender. """ itemId: String! """ Updated item information including quantity, pricing, or configuration changes. Contains the modifications to be applied to the tender item. """ input: TenderUpdateItemInput! ): Tender! """ Remove an item from an existing tender. Permanently removes a specific item from the tender and automatically recalculates tender totals, taxes, and pricing. The item cannot be recovered after deletion. Possible errors: - TENDER_NOT_FOUND: Tender with the specified ID does not exist - TENDERITEM_NOT_FOUND: Item with the specified ID does not exist in the tender - TENDER_DELETE_ITEM_ERROR: Failed to delete the tender item - FORBIDDEN: Insufficient permissions to update tenders AUTH: Role=[order.OWNER,order.EDITOR] """ tenderDeleteItem( """ Unique identifier of the tender containing the item to delete. Must be a valid string representing an existing tender in the system. """ id: String! """ Unique identifier of the specific item to remove from the tender. Must be a valid string representing an existing item in the specified tender. """ itemId: String! ): Tender! """ Remove a bonus item from an existing tender. Permanently removes a specific bonus item from the tender and automatically recalculates tender totals, taxes, and pricing. The bonus item cannot be recovered after deletion. Possible errors: - TENDER_NOT_FOUND: Tender with the specified ID does not exist - TENDER_BONUS_ITEM_NOT_FOUND: Bonus item with the specified ID does not exist in the tender - TENDER_DELETE_BONUS_ITEM_ERROR: Failed to delete the tender bonus item - FORBIDDEN: Insufficient permissions to update tenders AUTH: Role=[order.OWNER,order.EDITOR] """ tenderDeleteBonusItem( """ Unique identifier of the tender containing the bonus item to delete. Must be a valid string representing an existing tender in the system. """ id: String! """ Unique identifier of the specific bonus item to remove from the tender. Must be a valid string representing an existing bonus item in the specified tender. """ itemId: String! ): Tender! """ Update the invoice user for an existing tender. Changes the user who will receive the invoice for this tender. This affects billing and notification settings for the tender processing. Possible errors: - TENDER_NOT_FOUND: Tender with the specified ID does not exist - TENDER_USER_NOT_FOUND: User with the specified ID does not exist - TENDER_UPDATE_INVOICE_USER_ERROR: Failed to update the invoice user - FORBIDDEN: Insufficient permissions to update tenders AUTH: Role=[order.OWNER,order.EDITOR] """ tenderUpdateInvoiceUser( """ Unique identifier of the tender to update. Must be a valid string representing an existing tender in the system. """ id: String! """ Unique identifier of the user who should receive the invoice. Must be a positive integer representing a valid user ID in the system. """ userId: Int! ): Tender! """ Update general information for an existing tender. Modifies tender metadata such as status, reference number, remarks, email, or validity period. At least one field must be provided for the update to proceed. Possible errors: - TENDER_NOT_FOUND: Tender with the specified ID does not exist - TENDER_UPDATE_ERROR: Failed to update the tender - TENDER_VALIDATION_ERROR: No update fields provided or validation failed - FORBIDDEN: Insufficient permissions to update tenders AUTH: Role=[order.OWNER,order.EDITOR] """ tenderUpdate( """ Unique identifier of the tender to update. Must be a valid string representing an existing tender in the system. """ id: String! """ Updated tender information including status, reference, remarks, email, or validity period. At least one field must be provided. Contains the modifications to be applied to the tender. """ input: TenderUpdateInput! ): Tender! """ Update discount information for an existing tender. Applies or modifies discounts on the tender, which can be percentage-based or fixed amounts. Automatically recalculates tender totals and pricing based on the discount changes. Possible errors: - TENDER_NOT_FOUND: Tender with the specified ID does not exist - TENDER_UPDATE_DISCOUNT_ERROR: Failed to update the tender discount - FORBIDDEN: Insufficient permissions to update tenders AUTH: Role=[order.OWNER,order.EDITOR] """ tenderUpdateDiscount( """ Unique identifier of the tender to update discount for. Must be a valid string representing an existing tender in the system. """ id: String! """ Discount information including type, amount, and applicable conditions. Contains discount details to be applied to the tender for pricing calculations. """ input: TenderDiscountInput! ): Tender! """ Update shipping and postage information for an existing tender. Modifies shipping methods, costs, and delivery options for the tender. Changes may affect total pricing and delivery timeframes based on the selected shipping configuration. Possible errors: - TENDER_NOT_FOUND: Tender with the specified ID does not exist - TENDER_UPDATE_POSTAGE_ERROR: Failed to update the tender postage - TENDER_INVALID_PICKUPLOCATION_ERROR: Invalid pickup location configuration - TENDER_PICKUP_LOCATION_NOT_FOUND_ERROR: Pickup location not found - FORBIDDEN: Insufficient permissions to update tenders AUTH: Role=[order.OWNER,order.EDITOR] """ tenderUpdatePostage( """ Unique identifier of the tender to update postage for. Must be a valid string representing an existing tender in the system. """ id: String! """ Shipping and postage information including method, cost, and delivery options. Contains shipping details to be applied to the tender for delivery and pricing calculations. """ input: TenderPostageInput! ): Tender! """ Update payment information for an existing tender. Modifies payment methods, terms, and processing details for the tender. Changes affect how the tender will be paid for when processed into an order. Possible errors: - TENDER_NOT_FOUND: Tender with the specified ID does not exist - TENDER_UPDATE_PAYMENT_ERROR: Failed to update the tender payment - TENDER_PAYMENT_STATUS_UPDATE_ERROR: Failed to update payment status - FORBIDDEN: Insufficient permissions to update tenders AUTH: Role=[order.OWNER,order.EDITOR] """ tenderUpdatePayment( """ Unique identifier of the tender to update payment for. Must be a valid string representing an existing tender in the system. """ id: String! """ Payment information including method, terms, and processing details. Contains payment configuration to be applied to the tender for order processing. """ input: TenderPaymentInput! ): Tender! """ Apply available incentives to an existing tender. Automatically calculates and applies all eligible incentives, promotions, and special offers to the tender. This can include volume discounts, customer-specific promotions, or seasonal offers. Possible errors: - TENDER_NOT_FOUND: Tender with the specified ID does not exist - TENDER_APPLY_INCENTIVES_ERROR: Failed to apply incentives to the tender - FORBIDDEN: Insufficient permissions to update tenders AUTH: Role=[order.OWNER,order.EDITOR] """ tenderApplyIncentives( """ Unique identifier of the tender to apply incentives to. Must be a valid string representing an existing tender in the system. """ id: String! ): Tender! """ Process a tender to convert it into a confirmed order. Finalizes the tender by validating all information, calculating final pricing, and converting it to an order. This action completes the tender workflow and creates an order for fulfillment. Possible errors: - TENDER_NOT_FOUND: Tender with the specified ID does not exist - TENDER_PROCESS_ERROR: Failed to process the tender - FORBIDDEN: Insufficient permissions to process tenders AUTH: Role=[order.OWNER,order.EDITOR] """ tenderProcess( """ Unique identifier of the tender to process. Must be a valid string representing an existing tender ready for processing. """ id: String! ): TenderProcessResponse! """ Permanently delete an existing tender from the system. Removes the tender and all associated data including items, pricing, and configuration. This action cannot be undone and the tender will no longer be accessible. Possible errors: - TENDER_NOT_FOUND: Tender with the specified ID does not exist - TENDER_DELETE_ERROR: Failed to delete the tender - FORBIDDEN: Insufficient permissions to delete tenders AUTH: Role=[order.OWNER] """ tenderDelete( """ Unique identifier of the tender to delete. Must be a valid string representing an existing tender in the system. """ id: String! ): Boolean! """ Create a new company with complete business information and organizational structure. Key Features: - Comprehensive company profile creation with validation - Automatic assignment of unique identifiers and system relationships - Support for hierarchical organizational structures - Integration with external systems and data sources Business Rules: - Company name must be unique within the organization - Required fields must be provided and validated - Tax numbers and legal identifiers are verified for uniqueness - Parent-child relationships are established automatically Error Scenarios: - COMPANY_ALREADY_EXISTS_ERROR: When company with same name/tax number exists - VALIDATION_ERROR: When required fields are missing or invalid - PARENT_COMPANY_NOT_FOUND_ERROR: When specified parent company doesn't exist - CREATE_ERROR: When system fails to create company record Use Cases: - New business onboarding - Subsidiary and branch creation - Partner and vendor registration - Organizational restructuring AUTH: Role=[user.OWNER] """ companyCreate(input: CreateCompanyInput!): Company! """ Update an existing company with partial or complete business information modifications. Key Features: - Partial updates preserve existing data while updating specified fields - Comprehensive validation ensures data integrity - Audit trail tracking for compliance and change management - Support for bulk operations and batch updates Business Rules: - Only provided fields are updated, others remain unchanged - Validation rules apply to all modified fields - Parent-child relationships can be updated with proper validation - Historical data is preserved for audit purposes Error Scenarios: - COMPANY_NOT_FOUND_ERROR: When company with specified ID doesn't exist - VALIDATION_ERROR: When updated data fails validation rules - UPDATE_ERROR: When system fails to update company record - ACCESS_DENIED_ERROR: When user lacks permission to update company Use Cases: - Company profile maintenance - Business information updates - Organizational structure changes - Compliance and regulatory updates AUTH: Role=[user.OWNER,user.EDITOR] OR (('user is authenticated') AND ('companyId(s) if present in input matches JWT')) """ companyUpdate( """ Unique internal identifier for the company used for system operations and data relationships """ id: Int! """ Partial company information for updating existing company records with validation """ input: UpdateCompanyInput! ): Company! """ Permanently delete a company and all associated business relationships. Key Features: - Complete removal of company record and all related data - Cascading deletion of dependent relationships and references - Irreversible operation with comprehensive cleanup - Integration with external systems for data synchronization Business Rules: - Company must not have active business relationships - All child companies must be deleted or reassigned first - Financial and legal dependencies must be resolved - Audit trail is maintained for compliance purposes Error Scenarios: - COMPANY_NOT_FOUND_ERROR: When company with specified ID doesn't exist - DEPENDENCY_ERROR: When company has active business relationships - DELETE_ERROR: When system fails to delete company record - ACCESS_DENIED_ERROR: When user lacks permission to delete company Use Cases: - Business closure and liquidation - Data cleanup and archival - Mergers and acquisitions - System maintenance and cleanup AUTH: Role=[user.OWNER] """ companyDelete( """ Unique internal identifier for the company used for system operations and data relationships """ id: Int! ): Boolean! """ Import companies from CSV file with bulk processing and validation capabilities. Key Features: - Bulk import of multiple companies with comprehensive validation - Support for various CSV formats and data structures - Detailed error reporting and success tracking - Integration with existing company data and relationships Business Rules: - CSV format must match expected structure and field requirements - Duplicate detection prevents creation of existing companies - Validation rules apply to all imported records - Import process can be resumed after errors are corrected Error Scenarios: - CSV_FORMAT_ERROR: When CSV file format is invalid or malformed - VALIDATION_ERROR: When imported data fails validation rules - IMPORT_ERROR: When system fails to process import operation - DUPLICATE_ERROR: When imported companies already exist in system Use Cases: - Bulk company onboarding - Data migration and integration - System setup and initialization - Regular data imports from external sources AUTH: Role=[user.OWNER] """ companyCsvImport( """CSV import data including file content and mapping configuration""" input: CompanyCsvInput! ): CsvImportResponse! """ Creates a new contact with complete validation and business rule enforcement. Supports bulk operations and handles company relationships automatically. **Authentication Required**: Customer authentication or user management roles **Authorization**: Contact editor or owner roles **Error Codes**: CONTACT_ALREADY_EXISTS_ERROR, VALIDATION_ERROR, UNAUTHORIZED_ERROR AUTH: Role=[user.OWNER] """ contactCreate(input: CreateContactInput!): Contact! """ Registers a new contact with an associated user account for system access. Creates both contact record and user authentication credentials. **Authentication Required**: Customer authentication or user management roles **Authorization**: Contact editor or owner roles **Error Codes**: CONTACT_ALREADY_EXISTS_ERROR, VALIDATION_ERROR, UNAUTHORIZED_ERROR AUTH: Role=[user.OWNER] """ contactRegister(input: RegisterContactInput!): RegisterContactResponse! """ Updates an existing contact with partial information. Only provided fields will be updated while preserving existing data. **Authentication Required**: Customer authentication or user management roles **Authorization**: Contact editor or owner roles **Error Codes**: CONTACT_NOT_FOUND_ERROR, VALIDATION_ERROR, UNAUTHORIZED_ERROR AUTH: Role=[user.OWNER,user.EDITOR] OR (('user is authenticated') AND ('contactId if present in input matches JWT')) """ contactUpdate( """Contact unique identifier""" id: Int! """Partial contact data for update with validation""" input: UpdateContactInput! ): Contact! """ Adds an existing contact to one or more companies, establishing business relationships. **Authentication Required**: Customer authentication or user management roles **Authorization**: Contact editor or owner roles **Error Codes**: CONTACT_NOT_FOUND_ERROR, COMPANY_NOT_FOUND_ERROR, VALIDATION_ERROR, UNAUTHORIZED_ERROR AUTH: Role=[user.OWNER,user.EDITOR] OR (('user is authenticated') AND ('contactId if present in input matches JWT')) """ contactAddToCompanies( """Contact unique identifier""" id: Int! """Company IDs to associate with the contact""" input: ContactAddToCompaniesInput! ): ContactAddToCompaniesResponse! """ Removes an existing contact from one or more companies, dissolving business relationships. **Authentication Required**: Customer authentication or user management roles **Authorization**: Contact editor or owner roles **Error Codes**: CONTACT_NOT_FOUND_ERROR, COMPANY_NOT_FOUND_ERROR, VALIDATION_ERROR, UNAUTHORIZED_ERROR AUTH: Role=[user.OWNER,user.EDITOR] OR (('user is authenticated') AND ('contactId if present in input matches JWT')) """ contactRemoveFromCompanies( """Contact unique identifier""" id: Int! """Company IDs to disassociate from the contact""" input: ContactRemoveFromCompaniesInput! ): ContactRemoveFromCompaniesResponse! """ Deletes a contact and all associated data permanently. This operation cannot be undone. **Authentication Required**: Customer authentication or user management roles **Authorization**: Contact owner roles only **Error Codes**: CONTACT_NOT_FOUND_ERROR, UNAUTHORIZED_ERROR AUTH: Role=[user.OWNER] """ contactDelete( """Contact unique identifier""" id: Int! ): Boolean! """ Creates a user account for an existing contact, enabling system access and authentication. **Authentication Required**: Customer authentication or user management roles **Authorization**: Contact editor or owner roles **Error Codes**: CONTACT_NOT_FOUND_ERROR, ACCOUNT_ALREADY_EXISTS_ERROR, VALIDATION_ERROR, UNAUTHORIZED_ERROR AUTH: Role=[user.OWNER] """ contactCreateAccount( """Contact unique identifier""" id: Int! """Optional account creation parameters""" input: CreateAccountInput ): RegisterContactResponse! """ Deletes the user account associated with a contact, removing system access. **Authentication Required**: Customer authentication or user management roles **Authorization**: Contact editor or owner roles **Error Codes**: CONTACT_NOT_FOUND_ERROR, ACCOUNT_NOT_FOUND_ERROR, UNAUTHORIZED_ERROR AUTH: Role=[user.OWNER] """ contactDeleteAccount( """Contact unique identifier""" id: Int! ): Boolean! """ Imports multiple contacts from CSV data with validation and error handling. Supports bulk creation and updates. **Authentication Required**: Customer authentication or user management roles **Authorization**: Contact editor or owner roles **Error Codes**: CSV_VALIDATION_ERROR, IMPORT_ERROR, UNAUTHORIZED_ERROR AUTH: Role=[user.OWNER] """ contactCsvImport( """CSV import configuration and data""" input: ContactCsvInput! ): CsvImportResponse! """ Triggers a welcome email event for a contact, typically used after account creation or registration. **Authentication Required**: Customer authentication or user management roles **Authorization**: Contact editor or owner roles **Error Codes**: CONTACT_NOT_FOUND_ERROR, EMAIL_SEND_ERROR, UNAUTHORIZED_ERROR AUTH: Role=[user.OWNER,user.EDITOR,user.VIEWER] OR (('user is authenticated') AND ('contactId if present in input matches JWT')) """ triggerContactSendWelcomeEmailEvent( """Welcome email event configuration""" input: TriggerContactSendWelcomeEmailEventInput! ): Boolean! """ Create a new customer account with complete validation and business rule enforcement. ## Key Features - **Complete Validation**: Validates all customer data including email format, field lengths, and business rules - **Unique Constraints**: Ensures email and debtor ID uniqueness across the system - **Source Tracking**: Supports external system integration with source identification - **Address Management**: Allows creation of multiple addresses during customer setup ## Business Rules - Email address must be unique across all customers - Debtor ID must be unique if provided - First name and last name are required fields - Email format validation is enforced - Field length limits are enforced (firstName: 30 chars, lastName: 50 chars, etc.) ## Validation Rules - **firstName**: Maximum 30 characters, HTML tags removed - **lastName**: Maximum 50 characters, HTML tags removed - **middleName**: Maximum 20 characters, HTML tags removed - **email**: Valid email format, maximum 150 characters, HTML tags removed - **phone/mobile**: Maximum 30 characters, HTML tags removed - **debtorId**: Maximum 30 characters - **primaryLanguage**: Exactly 2 characters (ISO language code) - **dateOfBirth**: Valid date string in YYYY-MM-DD format ## Error Scenarios - **CUSTOMER_ALREADY_EXISTS_ERROR**: Customer with the same email or debtor ID already exists - **CUSTOMER_CREATE_ERROR**: System error occurred during customer creation - **CUSTOMER_BULK_VALIDATION_ERROR**: Validation errors in customer data ## Use Cases - New customer onboarding - Customer data import from external systems - Administrative customer creation - Customer account setup without login credentials Note: For customers that need login access, use customerRegister instead. AUTH: Role=[user.OWNER] """ customerCreate( """Complete customer creation data with validation and business rules""" input: CustomerInput! ): Customer! """ Create a new customer account with login credentials and authentication setup. ## Key Features - **Customer Creation**: Creates a new customer with complete profile information - **Account Setup**: Automatically creates login credentials for the customer - **Authentication Ready**: Customer can immediately log in to the system - **Password Management**: Supports custom password or automatic password generation ## Business Rules - Email address must be unique across all customers and users - Password must meet security requirements (minimum 8 characters) - Customer profile validation follows standard customer creation rules - Login credentials are created automatically if not provided ## Validation Rules - **email**: Required field, valid email format, maximum 150 characters, HTML tags removed - **password**: Optional, minimum 8 characters if provided - All standard customer validation rules apply (firstName, lastName, field lengths, etc.) ## Error Scenarios - **CUSTOMER_ALREADY_EXISTS_ERROR**: Customer with the same email already exists - **CUSTOMER_REGISTER_ERROR**: System error occurred during customer registration - **EMAIL_ALREADY_IN_USE_ERROR**: Email address is already in use by another user - **CUSTOMER_CREATE_ERROR**: Error occurred during customer profile creation ## Use Cases - Customer self-registration - Administrative customer onboarding with login access - Customer account creation with immediate system access - Integration with external authentication systems AUTH: Role=[user.OWNER] """ customerRegister( """ Customer registration data including login credentials for account creation """ input: RegisterCustomerInput! ): RegisterCustomerResponse! """ Update an existing customer's information with partial or complete data modification. ## Key Features - **Partial Updates**: Update only the fields provided in the input, leaving others unchanged - **Validation Enforcement**: All updated fields are validated according to business rules - **Unique Constraints**: Ensures email and debtor ID uniqueness if being updated - **Data Integrity**: Maintains referential integrity and data consistency ## Business Rules - Customer must exist before update - Email uniqueness is enforced if email is being updated - Debtor ID uniqueness is enforced if debtor ID is being updated - Only provided fields are updated, others remain unchanged - Field length limits apply to updated fields ## Validation Rules - **firstName**: Maximum 30 characters, HTML tags removed - **lastName**: Maximum 50 characters, HTML tags removed - **middleName**: Maximum 20 characters, HTML tags removed - **email**: Valid email format, maximum 150 characters, HTML tags removed - **phone/mobile**: Maximum 30 characters, HTML tags removed - **debtorId**: Maximum 30 characters - **primaryLanguage**: Exactly 2 characters (ISO language code) - **dateOfBirth**: Valid date string in YYYY-MM-DD format ## Error Scenarios - **CUSTOMER_NOT_FOUND_ERROR**: Customer with the specified ID does not exist - **CUSTOMER_UPDATE_ERROR**: System error occurred during customer update - **CUSTOMER_ALREADY_EXISTS_ERROR**: Updated email or debtor ID conflicts with existing customer - **CUSTOMER_BULK_VALIDATION_ERROR**: Validation errors in updated customer data ## Use Cases - Customer profile updates - Data correction and maintenance - Customer information synchronization - Administrative customer management AUTH: Role=[user.OWNER,user.EDITOR] OR (('user is authenticated') AND ('customerId if present in input matches JWT')) """ customerUpdate( """ Unique internal identifier for the customer used for system operations and data relationships """ id: Int! """ Partial customer data to update - only provided fields will be modified """ input: UpdateCustomerInput! ): Customer! """ Permanently delete a customer and all associated data from the system. ## Key Features - **Complete Removal**: Deletes customer record and all associated data - **Cascade Operations**: Removes related addresses, sources, and attributes - **Account Cleanup**: Removes associated login account if it exists - **Data Integrity**: Ensures clean removal without orphaned records ## Business Rules - Customer must exist before deletion - Deletion is permanent and cannot be undone - All associated addresses are removed - Login account is deleted if it exists - Related data in other systems may be affected ## Error Scenarios - **CUSTOMER_NOT_FOUND_ERROR**: Customer with the specified ID does not exist - **CUSTOMER_DELETE_ERROR**: System error occurred during customer deletion - **CUSTOMER_DELETE_ACCOUNT_ERROR**: Error occurred while deleting associated login account ## Use Cases - Customer data cleanup and maintenance - GDPR compliance and data removal requests - Customer account closure - Data migration and system cleanup Warning: This operation is irreversible and will permanently remove all customer data. AUTH: Role=[user.OWNER] """ customerDelete( """ Unique internal identifier for the customer used for system operations and data relationships """ id: Int! ): Boolean! """ Create login credentials for an existing customer who doesn't have an account. ## Key Features - **Account Creation**: Creates login credentials for existing customer - **Password Management**: Supports custom password or automatic password generation - **Authentication Setup**: Customer can immediately log in to the system - **Email Integration**: Uses customer's existing email address for login ## Business Rules - Customer must exist and not already have login credentials - Customer's email address is used as the login identifier - Password must meet security requirements if provided - Login credentials are created automatically if not specified ## Validation Rules - **password**: Optional, minimum 8 characters if provided - Customer must have a valid email address - Customer must not already have login credentials ## Error Scenarios - **CUSTOMER_NOT_FOUND_ERROR**: Customer with the specified ID does not exist - **CUSTOMER_CREATE_ACCOUNT_ERROR**: System error occurred during account creation - **CUSTOMER_ACCOUNT_ALREADY_EXISTS_ERROR**: Customer already has login credentials - **EMAIL_ALREADY_IN_USE_ERROR**: Customer's email is already in use by another user ## Use Cases - Adding login access to existing customers - Customer account activation - Administrative account setup - Integration with authentication systems AUTH: Role=[user.OWNER] """ customerCreateAccount( """ Unique internal identifier for the customer used for system operations and data relationships """ id: Int! """Optional account creation data including password""" input: CreateAccountInput ): RegisterCustomerResponse! """ Remove login credentials from an existing customer while preserving their profile data. ## Key Features - **Account Removal**: Removes login credentials from customer - **Profile Preservation**: Customer profile data remains intact - **Access Revocation**: Customer can no longer log in to the system - **Clean Deactivation**: Gracefully handles account deactivation ## Business Rules - Customer must exist and have login credentials - Customer profile data is preserved - Login access is immediately revoked - Customer can be reactivated by creating new account ## Error Scenarios - **CUSTOMER_NOT_FOUND_ERROR**: Customer with the specified ID does not exist - **CUSTOMER_DELETE_ACCOUNT_ERROR**: System error occurred during account deletion - **CUSTOMER_FETCH_ERROR**: Error occurred while retrieving customer data ## Use Cases - Customer account deactivation - Temporary access suspension - Account security management - Customer service operations Note: Customer profile data remains intact and can be reactivated later. AUTH: Role=[user.OWNER] """ customerDeleteAccount( """ Unique internal identifier for the customer used for system operations and data relationships """ id: Int! ): Boolean! """ Trigger a welcome email event for a specific customer. ## Key Features - **Email Triggering**: Initiates welcome email sending process - **Event Processing**: Handles email event asynchronously - **Customer Validation**: Ensures customer exists before triggering event - **Email Integration**: Integrates with email service for delivery ## Business Rules - Customer must exist in the system - Email event is processed asynchronously - Welcome email content is generated based on customer data - Event processing may be delayed based on system load ## Error Scenarios - **CUSTOMER_NOT_FOUND_ERROR**: Customer with the specified ID does not exist - **TRIGGER_CUSTOMER_SEND_WELCOME_EMAIL_EVENT_ERROR**: System error occurred while triggering email event - **CUSTOMER_FETCH_ERROR**: Error occurred while retrieving customer data ## Use Cases - Customer onboarding automation - Welcome email campaigns - Customer communication workflows - Marketing automation triggers AUTH: Role=[user.OWNER,user.EDITOR,user.VIEWER] OR (('user is authenticated') AND ('customerId if present in input matches JWT')) """ triggerCustomerSendWelcomeEmailEvent( """Customer welcome email event trigger data""" input: TriggerCustomerSendWelcomeEmailEventInput! ): Boolean! """ Import multiple customers from CSV data with validation and error handling. ## Key Features - **Bulk Import**: Process multiple customers from CSV data in a single operation - **Data Validation**: Validates all customer data according to business rules - **Error Handling**: Provides detailed results for successful and failed imports - **Transaction Safety**: Ensures data integrity during bulk operations ## Business Rules - CSV data must conform to expected format and structure - All customer validation rules apply to imported data - Email uniqueness is enforced across all imported customers - Debtor ID uniqueness is enforced if provided - Import is processed in batches for performance ## Validation Rules - All standard customer validation rules apply - CSV format validation is enforced - Required fields must be present in CSV data - Field length limits are enforced - Email format validation is applied ## Error Scenarios - **CUSTOMER_CSV_IMPORT_ERROR**: System error occurred during CSV import - **CUSTOMER_BULK_VALIDATION_ERROR**: Validation errors in CSV data - **CUSTOMER_BULK_CREATE_ERROR**: Error occurred during bulk customer creation - **CUSTOMER_ALREADY_EXISTS_ERROR**: Imported customer conflicts with existing data ## Use Cases - Customer data migration - Bulk customer onboarding - Data import from external systems - Customer database population AUTH: Role=[user.OWNER] """ customerCsvImport( """CSV import data including file content and mapping configuration""" input: CustomerCsvInput! ): CsvImportResponse! """Deprecated and will be removed in a future version""" addCompanyManager( """The unique identifier of the user.""" userId: Int! """ Unique internal identifier for the company used for system operations and data relationships """ companyId: Int! ): String! """Deprecated and will be removed in a future version""" removeCompanyManager( """Account manager user ID""" userId: Int! """ Unique internal identifier for the company used for system operations and data relationships """ companyId: Int! ): String! """ Creates a PurchaseAuthorizationConfig for a contact within a company. AUTH: Role=[user.OWNER] OR (('user is authenticated') AND ('companyId(s) if present in input matches JWT')), """ purchaseAuthorizationConfigCreate( """Input for creating a PurchaseAuthorizationConfig.""" input: PurchaseAuthorizationConfigCreateInput ): PurchaseAuthorizationConfig! """ Updates a PurchaseAuthorizationConfig by ID. AUTH: Role=[user.OWNER,user.EDITOR] OR ('user is authenticated'), """ purchaseAuthorizationConfigUpdate( """The primary ID of the purchase authorization config, uuid v7 format""" id: String! """Input for updating a PurchaseAuthorizationConfig.""" input: PurchaseAuthorizationConfigUpdateInput ): PurchaseAuthorizationConfig! """ Deletes a PurchaseAuthorizationConfig by ID. AUTH: Role=[user.OWNER] OR ('user is authenticated'), """ purchaseAuthorizationConfigDelete( """The primary ID of the purchase authorization config, uuid v7 format""" id: String! ): Boolean! """ AUTH: Role=[user.OWNER] OR (('user is authenticated') AND ('customerId if present in input matches JWT')) """ customerAddressCreate(input: CustomerAddressCreateInput!): Address! """ AUTH: Role=[user.OWNER,user.EDITOR] OR (('user is authenticated') AND ('customerId if present in input matches JWT')) """ customerAddressUpdate(input: CustomerAddressUpdateInput!): Address! """ AUTH: Role=[user.OWNER] OR (('user is authenticated') AND ('customerId if present in input matches JWT')) """ customerAddressDelete(input: CustomerAddressDeleteInput!): Boolean! """ AUTH: Role=[user.OWNER] OR (('user is authenticated') AND ('companyId(s) if present in input matches JWT')) """ companyAddressCreate(input: CompanyAddressCreateInput!): Address! """ AUTH: Role=[user.OWNER,user.EDITOR] OR (('user is authenticated') AND ('companyId(s) if present in input matches JWT')) """ companyAddressUpdate(input: CompanyAddressUpdateInput!): Address! """ AUTH: Role=[user.OWNER] OR (('user is authenticated') AND ('companyId(s) if present in input matches JWT')) """ companyAddressDelete(input: CompanyAddressDeleteInput!): Boolean! """ Create a new value set in the configuration system. Establishes a new value set with localized descriptions for use throughout the system. The value set will be available for dropdown lists, validation, and configuration immediately after creation. Requirements: • Name must be unique across all value sets (maximum 64 characters) • Only CUSTOM type value sets can be created via API • At least one description is required for proper internationalization • Descriptions support multiple languages with 2-character language codes Use this mutation to: • Create custom dropdown lists for business-specific needs • Establish validation sets for data entry forms • Set up configuration options for system features Possible errors: - VALUESET_CREATE_ERROR: Failed to create the value set due to system error - VALUESET_ALREADY_EXISTS_ERROR: Value set with the specified name already exists - VALUESET_NOT_ALLOWED_TO_MODIFY_ERROR: Attempt to create restricted value set type AUTH: Role=[configuration.OWNER] """ valuesetCreate( """ Value set creation data including name, type, and localized descriptions. Contains all necessary information to create a functional value set. Name must be unique and descriptions should include at least one language for proper system integration. Validation constraints: • Name: 1-64 characters, unique across system • Type: Must be CUSTOM for user-created value sets • Descriptions: At least one entry with valid language code """ input: ValuesetCreateInput! ): Valueset! """ Update an existing value set's configuration and metadata. Modifies value set details including name and localized descriptions. Only provided fields will be updated, others remain unchanged. The type field cannot be modified after creation for data integrity reasons. Restrictions: • SYSTEM type value sets cannot be modified • Name changes must maintain uniqueness across all value sets • Type field is immutable after creation • Name must not exceed 64 characters if provided Use this mutation to: • Update value set names for better organization • Add or modify localized descriptions • Maintain value set metadata without affecting items Possible errors: - VALUESET_NOT_FOUND_ERROR: Value set with the specified ID does not exist - VALUESET_UPDATE_ERROR: Failed to update the value set due to system error - VALUESET_ALREADY_EXISTS_ERROR: Updated name conflicts with existing value set - VALUESET_NOT_ALLOWED_TO_MODIFY_ERROR: Attempt to modify SYSTEM type value set AUTH: Role=[configuration.OWNER,configuration.EDITOR] """ valuesetUpdate( """ Unique identifier of the value set to update. Must be a positive integer representing a valid, existing value set ID in the system. The value set must be of CUSTOM type to allow modifications. """ id: Int! """ Updated value set information with partial field updates. Contains the value set properties to update. All fields are optional - only provided fields will be changed, others remain unchanged. Validation constraints: • Name: 1-64 characters if provided, must be unique • Descriptions: Valid language codes with meaningful descriptions """ input: ValuesetUpdateInput! ): Valueset! """ Permanently delete a value set and all its items from the system. Removes the value set and all associated items in a cascading delete operation. This action cannot be undone and will affect any system components that depend on this value set. Restrictions: • SYSTEM type value sets cannot be deleted • All associated items will be permanently removed • Operation cannot be reversed once completed • May affect dependent configurations and dropdown lists Use this mutation with caution when: • Removing obsolete value sets that are no longer needed • Cleaning up test or development configurations • Consolidating duplicate value sets Possible errors: - VALUESET_NOT_FOUND_ERROR: Value set with the specified ID does not exist - VALUESET_DELETE_ERROR: Failed to delete the value set due to system error - VALUESET_NOT_ALLOWED_TO_MODIFY_ERROR: Attempt to delete SYSTEM type value set AUTH: Role=[configuration.OWNER] """ valuesetDelete( """ Unique identifier of the value set to delete. Must be a positive integer representing a valid, existing value set ID in the system. The value set must be of CUSTOM type to allow deletion. """ id: Int! ): Boolean! """ Create a new item within an existing value set. Adds a new selectable option to a value set with localized descriptions and optional metadata. The item will be immediately available for use in dropdown lists and validation throughout the system. Requirements: • Parent value set must exist and be accessible • Value must be unique within the parent value set (maximum 512 characters) • At least one description is required for proper internationalization • Only CUSTOM type value sets can have items added via API Use this mutation to: • Add new options to existing dropdown lists • Expand configuration choices for business needs • Create localized selection options for international users • Populate value sets with additional metadata Possible errors: - VALUESET_ITEM_CREATE_ERROR: Failed to create the value set item due to system error - VALUESET_NOT_FOUND_ERROR: Parent value set with specified ID does not exist - VALUESET_ALREADY_EXISTS_ERROR: Item with the specified value already exists in the value set - VALUESET_NOT_ALLOWED_TO_MODIFY_ERROR: Attempt to add item to SYSTEM type value set AUTH: Role=[configuration.OWNER] """ valuesetItemCreate( """ Value set item creation data including parent value set, value, descriptions, and optional metadata. Contains all necessary information to create a functional value set item. Value must be unique within the parent value set and descriptions should include at least one language. Validation constraints: • valuesetId: Must reference an existing CUSTOM type value set • value: 1-512 characters, unique within parent value set • descriptions: At least one entry with valid language code • extra: Optional metadata up to 512 characters """ input: ValuesetItemCreateInput! ): ValuesetItem! """ Update an existing value set item's data and metadata. Modifies item details including value, localized descriptions, and extra metadata. Only provided fields will be updated, others remain unchanged. The parent value set association cannot be changed after creation. Restrictions: • Items in SYSTEM type value sets cannot be modified • Value changes must maintain uniqueness within the parent value set • Parent value set association is immutable • Value must not exceed 512 characters if provided Use this mutation to: • Update item values for better clarity or accuracy • Add or modify localized descriptions for internationalization • Update additional metadata stored in the extra field • Maintain item data without affecting parent value set Possible errors: - VALUESET_ITEM_UPDATE_ERROR: Failed to update the value set item due to system error - VALUESET_ITEM_NOT_FOUND_ERROR: Value set item with the specified ID does not exist - VALUESET_ALREADY_EXISTS_ERROR: Updated value conflicts with another item in the same value set - VALUESET_NOT_ALLOWED_TO_MODIFY_ERROR: Attempt to modify item in SYSTEM type value set AUTH: Role=[configuration.OWNER,configuration.EDITOR] """ valuesetItemUpdate( """ Unique identifier of the value set item to update. Must be a positive integer representing a valid, existing value set item ID. The item must belong to a CUSTOM type value set to allow modifications. """ id: Int! """ Updated value set item information with partial field updates. Contains the item properties to update. All fields are optional - only provided fields will be changed, others remain unchanged. Validation constraints: • value: 1-512 characters if provided, must be unique within parent value set • descriptions: Valid language codes with meaningful descriptions • extra: Optional metadata up to 512 characters """ input: ValuesetItemUpdateInput! ): ValuesetItem! """ Permanently delete a value set item from its parent value set. Removes the item from the value set and any configurations that reference it. This action cannot be undone and may affect dropdown lists or validation rules that depend on this item. Restrictions: • Items in SYSTEM type value sets cannot be deleted • Operation cannot be reversed once completed • May affect dependent configurations and dropdown lists Use this mutation with caution when: • Removing obsolete options that are no longer needed • Cleaning up test or development configurations • Consolidating duplicate items within value sets Possible errors: - VALUESET_ITEM_DELETE_ERROR: Failed to delete the value set item due to system error - VALUESET_ITEM_NOT_FOUND_ERROR: Value set item with the specified ID does not exist - VALUESET_NOT_ALLOWED_TO_MODIFY_ERROR: Attempt to delete item from SYSTEM type value set AUTH: Role=[configuration.OWNER] """ valuesetItemDelete( """ Unique identifier of the value set item to delete. Must be a positive integer representing a valid, existing value set item ID. The item must belong to a CUSTOM type value set to allow deletion. """ id: Int! ): Boolean! """ Create a new warehouse in the system. Establishes a new warehouse facility with location details, operational settings, and capacity information. The warehouse will be available for inventory management and logistics operations immediately. Possible errors: - WAREHOUSE_CREATE_ERROR: Failed to create the warehouse - FORBIDDEN: Insufficient permissions to create warehouses AUTH: Role=[logistics.OWNER] """ warehouseCreate( """ Warehouse creation data including location and operational details. Contains warehouse name, address information, operational settings, and capacity details needed to create a functional warehouse facility. """ input: CreateWarehouseInput! ): Warehouse! """ Update an existing warehouse's information. Modifies warehouse details including location information, operational settings, capacity limits, and address data. Only provided fields will be updated, others remain unchanged. Possible errors: - WAREHOUSE_NOT_FOUND_ERROR: Warehouse with the specified ID does not exist - WAREHOUSE_UPDATE_ERROR: Failed to update the warehouse - FORBIDDEN: Insufficient permissions to update warehouses AUTH: Role=[logistics.OWNER,logistics.EDITOR] """ warehouseUpdate( """ Unique identifier of the warehouse to update. Must be a positive integer representing a valid warehouse ID in the system. """ id: Float! """ Updated warehouse information. Contains the warehouse properties to update. Only provided fields will be changed, others remain unchanged. """ input: UpdateWarehouseInput! ): Warehouse! """ Permanently delete a warehouse from the system. Removes the warehouse and all associated data. This action cannot be undone and will affect inventory management and logistics operations that depend on this warehouse. Possible errors: - WAREHOUSE_NOT_FOUND_ERROR: Warehouse with the specified ID does not exist - WAREHOUSE_DELETE_ERROR: Failed to delete the warehouse - FORBIDDEN: Insufficient permissions to delete warehouses AUTH: Role=[logistics.OWNER] """ warehouseDelete( """ Unique identifier of the warehouse to delete. Must be a positive integer representing a valid warehouse ID in the system. """ id: Float! ): Warehouse! """ Create a new address for a warehouse. Adds a new address entry to a warehouse, supporting multiple address types such as shipping, billing, or contact addresses. Each warehouse can have multiple addresses for different operational purposes. Possible errors: - WAREHOUSE_NOT_FOUND_ERROR: Warehouse with the specified ID does not exist - WAREHOUSE_ADDRESS_CREATE_ERROR: Failed to create the warehouse address - FORBIDDEN: Insufficient permissions to create warehouse addresses AUTH: Role=[logistics.OWNER] """ warehouseAddressCreate( """ Unique identifier of the warehouse to add the address to. Must be a positive integer representing a valid warehouse ID in the system. """ id: Float! """ Address creation data including location and contact details. Contains address information, contact details, and address type needed to create a functional warehouse address. """ input: CreateWarehouseAddressInput! ): WarehouseAddress! """ Update an existing warehouse address. Modifies address details including location information, contact details, and address type. Only provided fields will be updated, others remain unchanged. Possible errors: - WAREHOUSE_NOT_FOUND_ERROR: Warehouse with the specified ID does not exist - WAREHOUSE_ADDRESS_NOT_FOUND_ERROR: Warehouse address does not exist - WAREHOUSE_ADDRESS_GET_ERROR: Failed to retrieve warehouse address due to database or system error - WAREHOUSE_ADDRESS_UPDATE_ERROR: Failed to update the warehouse address - FORBIDDEN: Insufficient permissions to update warehouse addresses AUTH: Role=[logistics.OWNER,logistics.EDITOR] """ warehouseAddressUpdate( """ Unique identifier of the warehouse containing the address. Must be a positive integer representing a valid warehouse ID in the system. """ id: Float! """ Updated address information including address ID and modified fields. Contains the address identifier and updated address properties. Only provided fields will be changed, others remain unchanged. """ input: UpdateWarehouseAddressInput! ): WarehouseAddress! """ Permanently delete a warehouse address. Removes the specified address from the warehouse. This action cannot be undone and will affect any operations that depend on this address. Possible errors: - WAREHOUSE_NOT_FOUND_ERROR: Warehouse with the specified ID does not exist - WAREHOUSE_ADDRESS_NOT_FOUND_ERROR: Warehouse address does not exist - WAREHOUSE_ADDRESS_GET_ERROR: Failed to retrieve warehouse address due to database or system error - WAREHOUSE_ADDRESS_DELETE_ERROR: Failed to delete the warehouse address - FORBIDDEN: Insufficient permissions to delete warehouse addresses AUTH: Role=[logistics.OWNER] """ warehouseAddressDelete( """ Unique identifier of the warehouse containing the address. Must be a positive integer representing a valid warehouse ID in the system. """ id: Float! """ Address deletion data containing the address ID to remove. Specifies which address should be deleted from the warehouse. """ input: DeleteWarehouseAddressInput! ): Boolean! } """Expressions for number fields""" enum NumberExpressionOperator { EQUALS NOT_EQUALS LOWER_THAN GREATER_THAN LOWER_THAN_OR_EQUAL_TO GREATER_THAN_OR_EQUAL_TO } input NumberSearchInput { """greater than or equal""" greaterThan: Int """less than or equal""" lessThan: Int """equal to""" equal: Int } input ObjectMediaSearchInput { """ Search within media item descriptions. Performs text search against the description field in the specified language. Supports partial matching and is case-insensitive. """ description: MediaLocalizedStringInput """ Search within media item tags. Finds media items that have tags matching the specified value in the given language. Useful for content categorization and discovery. """ tag: MediaLocalizedStringInput """ Sort order for search results. Controls whether results are returned in ascending or descending order. Sorting is typically applied to the priority field or creation date. """ sort: Sort """ Page number for pagination. Specifies which page of results to return. Pages start at 1. """ page: Int = 1 """ Number of items per page. Controls how many media items are returned in each page of results. Maximum recommended value is 50 for performance. """ offset: Int = 12 } """ The optimize parameter automatically applies optimal quality compression to produce an output image with as much visual fidelity as possible, while minimizing the file size. NOTE: 1. Optimize is currently supported by the following output formats: JPEG, WebP. 2. If the quality parameter is also provided, quality overrides optimize because it is more precise. 3. Because optimize attempts to produce an output image with as much visual quality as possible while minimizing the file size, the operations applied are subject to change. """ enum Optimize { """Output image quality will be similar to the input image quality.""" LOW """ More optimization is allowed. We attempt to preserve the visual quality of the input image. """ MEDIUM """ Minor visual artifacts may be visible. This produces the smallest file. """ HIGH } type Order { """ Unique numeric identifier for the order. This is the primary key used to reference the order throughout the system and serves as the main identifier for order operations. """ id: Int! media: OrderMedia """ Current processing status of the order. Indicates the order's position in the fulfillment workflow, such as 'pending', 'processing', 'shipped', or 'delivered'. """ status: String! """ Retrieve the current status of the order. Returns the order status configuration that represents the current state of the order in the workflow. """ orderStatus: OrderStatus """ Identifier of the user who placed the order. References the customer account that initiated this order. Can be null for guest orders or orders placed on behalf of customers. """ userId: Int """ Identifier of the account manager responsible for this order. References the staff member or owner who will handle order processing, customer communication, and order fulfillment coordination. """ accountManagerId: Int """ Identifier of the cart that generated this order. Links the order back to the original cart session, useful for tracking conversion and cart abandonment analysis. """ cartId: String """ Sales channel identifier where the order originated. Distinguishes between different sales channels like webshop, mobile app, marketplace, or point-of-sale systems for reporting and processing rules. """ channelId: Int! """ [DEPRECATED] Shop is deprecated and will be removed in a future version. Use channelId instead. """ shopId: Int! @deprecated(reason: "Use channelId instead") """ Universally unique identifier for the order. Provides a globally unique reference that can be safely shared externally and used for order tracking across different systems. """ uuid: String! """ [DEPRECATED] External system identifier for order integration. Used to link this order with records in external systems like ERP, accounting software, or third-party marketplaces for synchronization purposes. """ externalId: String @deprecated(reason: "Use sources instead") """ Financial identifier of the customer or company responsible for payment. Used in accounting and billing systems to identify the party responsible for payment and invoice generation. """ debtorId: String """ Classification of the order type. Defines the order's business purpose and processing requirements. """ type: OrderType! """ Origin source of the order. Identifies how the order was created in the system. """ source: String """ Primary email address for order communications. Used for sending order confirmations, shipping notifications, and other transactional emails related to this order. """ email: String! """ Timestamp of the last transactional email sent. Tracks when the most recent order-related email was sent, useful for communication history and follow-up scheduling. """ emailDate: DateTime """ Customer-provided comments about the order. Free-form text where customers can add special instructions, delivery preferences, or other notes relevant to order fulfillment. """ remarks: String """ Customer reference number or identifier. Allows customers to associate their own reference numbers or project codes with the order for their internal tracking purposes. """ reference: String """ Custom metadata field for order extensions. Open text field for storing additional order information that can be used in frontend displays or system integrations. Not visible to system administrators but available for custom implementations. """ extra3: String """ Additional custom metadata field for order extensions. Second open text field for storing supplementary order information for frontend customization or integration purposes. Provides flexibility for custom order data requirements. """ extra4: String """ Currency code used for order pricing. ISO 4217 currency code (e.g., 'EUR', 'USD', 'GBP') that determines the monetary unit for all order amounts and pricing calculations. """ currency: String! """ Exchange rate applied at order creation. The conversion rate between the order currency and the system's base currency at the time the order was placed, used for multi-currency reporting and calculations. """ currencyRatio: Float! """ Language preference for order communications. ISO 639-1 language code (e.g., 'en', 'nl', 'de') selected during order placement, used for localized emails, documents, and customer communications. """ language: String! """ Order placement timestamp (deprecated). Legacy field for order creation date and time. This field is deprecated and 'createdAt' should be used instead for current implementations. """ date: DateTime! @deprecated(reason: "Deprecated in favour of createdAt") """ Order creation timestamp. Precise date and time when the order was initially created in the system, used for order sequencing, reporting, and audit trails. """ createdAt: DateTime! """ Status change timestamp. Date and time when the order status was last modified, useful for tracking order progression and processing times. """ statusDate: DateTime """ Shipping and delivery information. Comprehensive shipping details including method, costs, carrier information, delivery preferences, and shipping addresses. """ postageData: OrderPostageData! """ Payment processing information. Complete payment details including method, status, transaction costs, tax calculations, and payment processing metadata. """ paymentData: OrderPaymentData! """ Order financial totals and calculations. Comprehensive breakdown of order amounts including subtotals, taxes, discounts, shipping costs, and final totals. """ total: OrderTotals! """ Products and services included in the order. Complete list of order items with quantities, pricing, product details, and item-specific configurations. """ items: [OrderItem!]! """ Shipping and fulfillment records. Tracking information for all shipments associated with this order, including carrier details, tracking numbers, and delivery status. """ shipments: [Shipment!] """ Delivery and billing address information. Collection of addresses associated with the order including delivery, billing, and any additional address types required for fulfillment. """ addresses(type: AddressType): [Address!] """ Invoice recipient identifier. Specifies the user, contact, or customer who should receive the invoice for this order, which may differ from the person who placed the order. """ invoiceUserId: Int """ Order validity expiration. Date and time until which the order remains valid, particularly relevant for quotations and orders with time-sensitive pricing or availability. """ validUntil: DateTime """ Company identifier for business orders. References the company account that placed this order, used for B2B transactions and company-specific pricing and terms. """ companyId: Int """ Last modification timestamp. Date and time when any aspect of the order was last updated, including status changes, item modifications, or address updates. """ lastModifiedAt: DateTime! """ Source order reference for related orders. Links to the original order when this order is a modification, return, or related transaction, maintaining order relationship history. """ originalOrderId: Int """ External system export timestamp. Date and time when the order was last exported to external systems like ERP, accounting software, or fulfillment systems. """ exportedAt: DateTime """ External system synchronization status. Indicates the current state of order export to external systems, tracking successful exports, failures, or pending synchronization.. One of: [, exported, finished, failed] """ exportStatus: OrderExportStatus! """ Export process status message. Detailed message about the export process, including success confirmations or error descriptions for troubleshooting integration issues. """ exportMessage: String """ Customer visibility flag for order versions. Indicates whether this specific version of the order is visible to customers, particularly important for quotations and order revisions. """ public: Boolean! """Revision number""" revisionNumber: Int! """ Customer-facing version number. Sequential version number shown to customers for quotes and quote requests, providing clear version tracking while maintaining internal revision control. """ publicVersionNumber: Int """ Whether this order revision has been invalidated and cannot become an order """ invalid: Boolean! """Reason why this order revision was invalidated""" invalidationReason: String """ List of order sources Identifies how the order was created in the system. """ sources: [Source!]! orderAddresses: [OrderAddress!]! """All revisions of this order""" revisions(input: OrderRevisionByOrderSearchInput): OrderRevisionResponse! """The current revision of this order""" revision: OrderRevision company: Company } """ Address information associated with an order including billing and delivery addresses with complete contact details """ type OrderAddress { """Unique identifier for this address""" id: Int! """ID of the order this address belongs to""" orderId: Int! """Date and time when this address was created""" createdAt: DateTime! """Date and time when this address was last modified""" lastModifiedAt: DateTime! """First name of the person at this address""" firstName: String """Middle name of the person at this address""" middleName: String """Last name of the person at this address""" lastName: String """Gender of the person at this address""" gender: Gender! """Company name at this address""" company: String """Street name and number""" street: String! """House or building number""" number: String """Extension to the house number (e.g., apartment, suite)""" numberExtension: String """Postal or ZIP code""" postalCode: String! """City name""" city: String! """State, province, or region code""" region: String """Country code (ISO 2-letter)""" country: String! """Phone number""" phone: String """Mobile phone number""" mobile: String """Email address for this contact""" email: String """Internal code or reference for this address""" code: String """Additional notes about this address""" notes: String """Type of address (billing, shipping, etc.)""" type: AddressType! """ICP (Pickup) indicator""" icp: YesNo! """Website URL if applicable""" url: String """Display name for this address""" name: String } input OrderAddressBulkInput { """First name of the person at this address""" firstName: String """Middle name of the person at this address""" middleName: String """Last name of the person at this address""" lastName: String """Gender of the person at this address""" gender: Gender = U """Company name at this address""" company: String """Street name and number""" street: String """House or building number""" number: String """Extension to the house number (e.g., apartment, suite)""" numberExtension: String """Postal or ZIP code""" postalCode: String """City name""" city: String """State, province, or region code""" region: String """Country code (ISO 2-letter)""" country: String """Fixed phone number that applies to this address [min: 6, max: 30]""" phone: String """Mobile phone number that applies to this address [min: 6, max: 30]""" mobile: String """Email that applies to this address [valid email format needed]""" email: String """Internal code or reference for this address""" code: String """Additional notes about this address""" notes: String """ ICP address field defines whether tax should be applied to an order if the address is selected as a delivery address. Used when shipping b2b order abroad """ icp: YesNo """Website URL if applicable""" url: String """Display name for this address""" name: String """Address type [one of: delivery, invoice, home]""" type: AddressType! } """ Order address update data for modifying existing address information. Supports partial updates where only provided fields are modified, preserving existing values for omitted fields. Excludes address type which cannot be changed after creation to maintain order integrity. All fields from address creation are available except: - type: Address type (delivery, invoice, home) is immutable after creation Commonly updated fields include: - Contact information (name, phone, email corrections) - Address details (street, city, postal code updates) - Company information (business name, notes) - Geographic data (region, country corrections) Validation ensures address completeness and format compliance for shipping and billing purposes. """ input OrderAddressUpdateInput { """First name of the person at this address""" firstName: String """Middle name of the person at this address""" middleName: String """Last name of the person at this address""" lastName: String """Gender of the person at this address""" gender: Gender = U """Company name at this address""" company: String """Street name and number""" street: String """House or building number""" number: String """Extension to the house number (e.g., apartment, suite)""" numberExtension: String """Postal or ZIP code""" postalCode: String """City name""" city: String """State, province, or region code""" region: String """Country code (ISO 2-letter)""" country: String """Fixed phone number that applies to this address [min: 6, max: 30]""" phone: String """Mobile phone number that applies to this address [min: 6, max: 30]""" mobile: String """Email that applies to this address [valid email format needed]""" email: String """Internal code or reference for this address""" code: String """Additional notes about this address""" notes: String """ ICP address field defines whether tax should be applied to an order if the address is selected as a delivery address. Used when shipping b2b order abroad """ icp: YesNo """Website URL if applicable""" url: String """Display name for this address""" name: String } input OrderCreateAddressInput { """First name of the person at this address""" firstName: String """Middle name of the person at this address""" middleName: String """Last name of the person at this address""" lastName: String """Gender of the person at this address""" gender: Gender! = U """Company name at this address""" company: String """Street name and number""" street: String! """House or building number""" number: String """Extension to the house number (e.g., apartment, suite)""" numberExtension: String """Postal or ZIP code""" postalCode: String! """City name""" city: String! """State, province, or region code""" region: String """Country code (ISO 2-letter)""" country: String! """Fixed phone number that applies to this address [min: 6, max: 30]""" phone: String """Mobile phone number that applies to this address [min: 6, max: 30]""" mobile: String """Email that applies to this address [valid email format needed]""" email: String """Internal code or reference for this address""" code: String """Additional notes about this address""" notes: String """Address type [one of: delivery, invoice, home]""" type: AddressType! """ ICP address field defines whether tax should be applied to an order if the address is selected as a delivery address. Used when shipping b2b order abroad """ icp: YesNo! """Website URL if applicable""" url: String """Display name for this address""" name: String } input OrderCreateInput { """ Identifier of the user who placed the order. References the customer account that initiated this order. Can be null for guest orders or orders placed on behalf of customers. """ userId: Int! """ Identifier of the account manager responsible for this order. References the staff member or owner who will handle order processing, customer communication, and order fulfillment coordination. """ accountManagerId: Int """ Sales channel identifier where the order originated. Distinguishes between different sales channels like webshop, mobile app, marketplace, or point-of-sale systems for reporting and processing rules. """ channelId: Int """ Financial identifier of the customer or company responsible for payment. Used in accounting and billing systems to identify the party responsible for payment and invoice generation. """ debtorId: String """First name of the Debtor [USED FOR ORDER SEARCH ONLY]""" debtorFirstName: String """Last name of the Debtor [USED FOR ORDER SEARCH ONLY]""" debtorLastName: String """Company name of the Debtor [USED FOR ORDER SEARCH ONLY]""" debtorCompany: String """First name of the Recipient [USED FOR ORDER SEARCH ONLY]""" recipientFirstName: String """Last name of the Recipient [USED FOR ORDER SEARCH ONLY]""" recipientLastName: String """Company name of the Recipient [USED FOR ORDER SEARCH ONLY]""" recipientCompany: String """[DEPRECATED] ID of the Order in an external system""" externalId: String """Status of the Order""" status: String! """Type of the Order""" type: OrderType! """Source of the Order""" source: String """Email address used for communication about this Order""" email: String! """Remarks by the customer""" remarks: String """Reference by the customer""" reference: String """ Custom metadata field for order extensions. Open text field for storing additional order information that can be used in frontend displays or system integrations. Not visible to system administrators but available for custom implementations. """ extra3: String """ Additional custom metadata field for order extensions. Second open text field for storing supplementary order information for frontend customization or integration purposes. Provides flexibility for custom order data requirements. """ extra4: String """ Order currency - ISO 4217 currency code => https://www.xe.com/iso4217.php """ currency: String! """Currency conversion ratio compared the Order's base currency""" currencyRatio: Float = 1 """ Order language - ISO 639-1 language code => https://localizely.com/iso-639-1-list/ """ language: String! """Active actioncode that was applied to this Order """ actionCode: String """ Invoice recipient identifier. Specifies the user, contact, or customer who should receive the invoice for this order, which may differ from the person who placed the order. """ invoiceUserId: Int """ Order validity expiration. Date and time until which the order remains valid, particularly relevant for quotations and orders with time-sensitive pricing or availability. """ validUntil: String """ID of the Company of the Order""" companyId: Int """A company source""" companySource: SourceInput """ Source order reference for related orders. Links to the original order when this order is a modification, return, or related transaction, maintaining order relationship history. """ originalOrderId: Int """ External system export timestamp. Date and time when the order was last exported to external systems like ERP, accounting software, or fulfillment systems. """ exportedAt: String """ External system synchronization status. Indicates the current state of order export to external systems, tracking successful exports, failures, or pending synchronization. """ exportStatus: OrderExportStatus """ Export process status message. Detailed message about the export process, including success confirmations or error descriptions for troubleshooting integration issues. """ exportMessage: String """ List of order sources Identifies how the order was created in the system. """ sources: [SourceInput!] """ [DEPRECATED] Shop is deprecated and will be removed in a future version. Use channelId instead. """ shopId: Int """The ID of the Cart the Order belongs to""" cartId: String """The OrderItem to create with the Order as a single bulk request""" items: [OrderItemCreateInput!]! = [] """Order's payment data""" paymentData: OrderPaymentInput! """Order's postage data""" postageData: OrderPostageInput! """Order's totals, tax and global discount""" total: OrderTotalInput! """ Order Addresses. Expected exactly 1 invoice and 1 delivery type of address. Default empty addresses will be created if not provided """ addresses: [OrderCreateAddressInput!] = [{gender: U, street: "", postalCode: "", city: "", country: "NL", type: invoice, icp: N}, {gender: U, street: "", postalCode: "", city: "", country: "NL", type: delivery, icp: N}] } """Order discount types""" enum OrderDiscountType { """No discount""" N """Percentage discount""" P """Absolute discount""" A } """Available order export statuses""" enum OrderExportStatus { """No export status available""" EMPTY """Order exported""" EXPORTED """Order finished""" FINISHED """Order export failed""" FAILED } type OrderItem { """The autoincrement ID for the OrderItem""" id: Int! """The ID of the Order the OrderItem belongs to""" orderId: Int! """The UUID for the OrderItem""" uuid: String! """ The class of the orderItem. Either product, incentive, surcharge, postage, payment """ class: OrderItemClass! """The productId of the OrderItem""" productId: Int """The ID of the parent OrderItem""" parentOrderItemId: Int """The quantity of the product for the OrderItem""" quantity: Int! """Product SKU""" sku: String! """Additional notes about this item""" notes: String """Display name of the item""" name: String! """The supplier of the product of the OrderItem""" supplier: String """The supplierCode of the product of the OrderItem""" supplierCode: String """The manufacturer of the product of the OrderItem""" manufacturer: String """The manufacturerCode of the product of the OrderItem""" manufacturerCode: String """The eanCode of the product of the OrderItem""" eanCode: String """The original price of the OrderItem, before applying any discounts""" originalPrice: Float """The calculated price per unit excluding tax""" price: Float! """The total price of the OrderItem excluding tax""" priceTotal: Float! """The calculated price per unit including tax""" priceNet: Float """The total price of the OrderItem including tax""" priceTotalNet: Float """ The calculated customerPrice of the OrderItem at the time the order was placed """ customerPrice: Float """The cost price of the OrderItem at the time the order was placed""" costPrice: Float """The discount of the OrderItem""" discount: Float """The total tax of the OrderItem""" tax: Float """The tax percentage of the OrderItem""" taxPercentage: Int! """The tax code of the OrderItem""" taxCode: Taxcode! """Is the OrderItem a bonusItem?""" isBonus: YesNo! """The minimum quantity of the product of the OrderItem""" minimumQuantity: Int """The unit of the product of the OrderItem""" unit: Int """The package of the product of the OrderItem""" package: String """The package unit of the product of the OrderItem""" packageUnit: String """The package unit quantity of the product of the OrderItem""" packageUnitQuantity: String """The purchase unit of the product of the OrderItem""" purchaseUnit: Int """The purchase minimum quantity of the product of the OrderItem""" purchaseMinimumQuantity: Int """The requested delivery date for this orderline""" requestDate: DateTime sources: [Source!] """ The priority of the order item within its order. Auto-assigned in increments of 100 if not provided. Lower numbers are considered higher priority. Must be unique per order. When setting a priority that conflicts with an existing item, other items are automatically shifted to make room. """ priority: Int product(hidden: Boolean): Product } """Class of the order item""" enum OrderItemClass { """Product order item""" product """Incentive order item""" incentive """Surcharge order item""" surcharge """Postage order item""" postage @deprecated(reason: "Unused. To be removed in a future version") """Payment order item""" payment @deprecated(reason: "Unused. To be removed in a future version") } input OrderItemCreateInput { """ The class of the orderItem. Either product, incentive, surcharge, postage, payment """ class: OrderItemClass! """The UUID for the OrderItem""" uuid: String """The productId of the OrderItem""" productId: Int """Product source""" productSource: SourceInput """The ID of the parent OrderItem""" parentOrderItemId: Int """ The UUID of the parent OrderItem, this can be used in bulk operations where the auto-increment ID's are not known """ parentOrderItemUUID: String """The quantity of the product for the OrderItem""" quantity: Int! """Product SKU""" sku: String! """Additional notes about this item""" notes: String """Display name of the item""" name: String! = "" """The supplier of the product of the OrderItem""" supplier: String """The supplierCode of the product of the OrderItem""" supplierCode: String """The manufacturer of the product of the OrderItem""" manufacturer: String """The manufacturerCode of the product of the OrderItem""" manufacturerCode: String """The eanCode of the product of the OrderItem""" eanCode: String """The original price of the OrderItem, before applying any discounts""" originalPrice: Float! """ The calculated customerPrice of the OrderItem at the time the order was placed """ customerPrice: Float """The calculated price per unit excluding tax""" price: Float! """The total price of the OrderItem excluding tax""" priceTotal: Float! """The calculated price per unit including tax""" priceNet: Float """The total price of the OrderItem including tax""" priceTotalNet: Float """The cost price of the OrderItem at the time the order was placed""" costPrice: Float """The discount of the OrderItem""" discount: Float """The total tax of the OrderItem""" tax: Float """The tax percentage of the OrderItem""" taxPercentage: Int! """The tax code of the OrderItem""" taxCode: Taxcode! """Is the OrderItem a bonusItem?""" isBonus: YesNo! """The minimum quantity of the product of the OrderItem""" minimumQuantity: Int """The unit of the product of the OrderItem""" unit: Int """The package of the product of the OrderItem""" package: String """The package unit of the product of the OrderItem""" packageUnit: String """The package unit quantity of the product of the OrderItem""" packageUnitQuantity: String """The purchase unit of the product of the OrderItem""" purchaseUnit: Int """The purchase minimum quantity of the product of the OrderItem""" purchaseMinimumQuantity: Int """The requested delivery date for this orderline""" requestDate: String """ The priority of the order item within its order. Auto-assigned in increments of 100 if not provided. Lower numbers are considered higher priority. Must be unique per order. When setting a priority that conflicts with an existing item, other items are automatically shifted to make room. """ priority: Int } input OrderItemDeleteInput { """The autoincrement ID for the OrderItem""" id: Int! } """Order item incentive calculation types""" enum OrderItemIncentiveCode { FREE DISCOUNT DISCOUNT_PERCENTAGE COSTPRICE_PLUS SALEPRICE_MINUS SET_PRICE } input OrderItemUpdateInput { """The ID of the orderitem to update.""" id: Int! """The quantity of the orderitem""" quantity: Int! """Additional notes about this item""" notes: String """The calculated price per unit including tax""" priceNet: Float """The gross price per unit excluding tax""" price: Float! """The total price of the orderitem excluding tax""" priceTotal: Float! """The total price of the OrderItem including tax""" priceTotalNet: Float """The discount of the OrderItem""" discount: Float! """The total tax of the OrderItem""" tax: Float! """The tax percentage of the OrderItem""" taxPercentage: Int! """The original price of the OrderItem, before applying any discounts""" originalPrice: Float! """The tax code of the OrderItem""" taxCode: Taxcode! """ The calculated user specific price of the orderitem, before applying any additional discounts """ customerPrice: Float """The costprice of the orderitem""" costPrice: Float """The requested delivery date for this orderline""" requestDate: String """ The priority of the order item within its order. Auto-assigned in increments of 100 if not provided. Lower numbers are considered higher priority. Must be unique per order. When setting a priority that conflicts with an existing item, other items are automatically shifted to make room. """ priority: Int """The supplier of the product of the OrderItem""" supplier: String } type Orderlist { """ Unique system-generated identifier for the order list. This primary key is used for all order list operations, references, and relationships. It remains constant throughout the order list's lifecycle. """ id: Int! """ Timestamp when the order list was first created in the system. This date is automatically set when the order list is created and never changes. Useful for tracking order list age and creation patterns. """ createdAt: DateTime! """ Timestamp when the order list was last modified. This date is automatically updated whenever any property of the order list changes. Useful for tracking recent changes and synchronization purposes. """ lastModifiedAt: DateTime! """ Localized descriptions of the order list in multiple languages. Each entry contains a language code and corresponding description text. Provides clear, descriptive names that help users understand the purpose and contents of the order list. Essential for international organizations with multi-language support requirements. """ descriptions: [LocalizedString!]! """ Additional metadata or supplementary information in multiple languages. Use for ordering instructions, special terms, category details, discount information, or other contextual data. Each entry contains a language code and corresponding text value. Helps provide comprehensive information to users in their preferred language. """ extras: [LocalizedString!] """ Unique reference code for easy identification and integration. Alphanumeric identifier that provides a user-friendly way to reference the order list. Useful for reporting, API integrations, and human-readable references. Maximum length of 64 characters. """ code: String """ Date and time when this order list automatically becomes effective and starts enforcing its product restrictions. Before this date: - Assigned users/companies maintain their default product visibility and ordering permissions - The order list configuration and user assignments exist but are not enforced - Similar to setting active=N, but activation happens automatically at the specified time If not specified, the order list rules are enforced immediately upon creation (if active=Y). Useful for scheduling future product access changes such as new catalog launches, contract start dates, or planned promotional periods. """ validFrom: DateTime """ Date and time when this order list automatically expires and stops enforcing its product restrictions. After expiration: - Assigned users/companies revert to their default product visibility and ordering permissions - The order list configuration and user assignments are preserved but not enforced - Similar to setting active=N, but happens automatically at the specified time If not specified, the order list remains enforceable indefinitely (controlled only by the active field). Useful for time-limited product access such as promotional periods, seasonal catalogs, or temporary supplier agreements. """ validTo: DateTime """ Order list behavior type that determines how products are handled. POSITIVE: Include only specified products for ordering - users can order from products explicitly added to this list. NEGATIVE: Exclude specified products from ordering - users can order from all products except those explicitly added to this list. This fundamental property determines the order list's filtering behavior in bulk ordering operations. """ type: OrderlistType! """ Associated partner or organizational entity responsible for this order list. Identifies the business partner, department, or organizational unit that manages this order list. Helps with organization, reporting, responsibility tracking, and access control. Useful for multi-partner or multi-department environments. """ partnerEntity: String """ Activation status that controls whether this order list's rules are currently enforced. Y (Yes): Order list rules are active. Assigned users/companies are subject to the product visibility and ordering restrictions defined by this list. N (No): Order list rules are suspended. Assigned users/companies revert to their default product access as if they were not assigned to this list. Useful for temporarily disabling restrictions without losing the list configuration or user assignments (e.g., seasonal promotions, maintenance periods, testing). """ active: YesNo! products(input: ProductSearchInput): ProductsResponse clusters(input: ProductSearchInput): ProductsResponse """Use usersPaginated.""" users: [IBaseUser!]! @deprecated(reason: "Use usersPaginated.") usersPaginated(input: OrderlistUserSearchInput): UsersResponse! """Use companiesPaginated.""" companies: [Company!]! @deprecated(reason: "Use companiesPaginated.") companiesPaginated(input: OrderlistCompanySearchInput): CompaniesResponse! } input OrderlistCompaniesInput { """ Company identifiers to assign to or unassign from the order list. Specify which companies should have permission to access and order from this order list. These companies will be able to see the order list in their available ordering options. Validation: Each ID must be a valid integer, array must contain unique values, companies must exist in the system. Possible errors: ORDERLIST_CROSS_SERVICE_ERROR if company IDs don't exist. """ companyIds: [Int!]! = [] """ External company sources to assign to or unassign from the order list. Reference companies from external systems using their source identifiers and system names. This allows integration with external company management systems like CRM or ERP systems. Validation: Each source must have valid id and name fields, array must contain unique combinations. """ companySources: [SourceInput!] } input OrderlistCompanySearchInput { """Company name""" name: String sources: [SourceSearchInput!] """ Company tax identification number for legal compliance, billing, and financial reporting """ taxNumber: String """ Chamber of Commerce registration number for business verification and legal compliance """ cocNumber: String """Search by debtor IDs""" debtorIds: [String!] """ Primary business email address for company communication and notifications """ email: String """ Primary business phone number for company communication and contact purposes """ phone: String """Managed companies only""" managedCompaniesOnly: Boolean = false """Page number for pagination (default: 1)""" page: Int! = 1 """Number of items per page (default: 12, max: 100)""" offset: Int! = 12 """ Array of sorting criteria for organizing search results by various attributes """ sort: [CompanySortInput!] """Date range filter for entities modified within a specific time period""" lastModifiedAt: DateSearchInput """Date range filter for entities created within a specific time period""" createdAt: DateSearchInput } input OrderlistCreateInput { """ Product identifiers to include in or remove from the order list. Specify individual products that should be associated with this order list. These products will be available for bulk ordering operations. Validation: Each ID must be a valid integer, array must contain unique values, products must exist in the system. Possible errors: ORDERLIST_CROSS_SERVICE_ERROR if product IDs don't exist. """ productIds: [Int!] """ External product sources to include in or remove from the order list. Reference products from external systems using their source identifiers and system names. This allows integration with external product catalogs and inventory systems. Validation: Each source must have valid id and name fields, array must contain unique combinations. """ productSources: [SourceInput!] """ Product cluster identifiers to include in or remove from the order list. Clusters group related products together for convenient bulk ordering operations. Adding a cluster makes all products within that cluster available for ordering. Validation: Each ID must be a valid integer, array must contain unique values, clusters must exist in the system. Possible errors: ORDERLIST_CROSS_SERVICE_ERROR if cluster IDs don't exist. """ clusterIds: [Int!] """ External cluster sources to include in or remove from the order list. Reference product clusters from external systems using their source identifiers and system names. This allows integration with external categorization and clustering systems. Validation: Each source must have valid id and name fields, array must contain unique combinations. """ clusterSources: [SourceInput!] """ Order list behavior type that controls product visibility and ordering permissions for assigned users/companies. POSITIVE: Users/companies assigned to this list can ONLY see and order the products included in the list. All other products are hidden from them. NEGATIVE: Users/companies assigned to this list CANNOT see or order the products included in the list. These products are hidden from them. """ type: OrderlistType! """ Localized descriptions for the order list in multiple languages. Provide clear, descriptive names that help users understand the purpose and contents of the order list. Each entry must have a unique language code. Validation: Array must contain unique language codes, each description is validated for proper structure. """ descriptions: [LocalizedStringInput!] """ Additional metadata or supplementary information in multiple languages. Use for ordering instructions, special terms, category details, or other contextual information. Each entry must have a unique language code. Validation: Array must contain unique language codes, each entry is validated for proper structure. """ extras: [LocalizedStringInput!] """ Unique reference code for easy identification and integration. Use alphanumeric codes that are meaningful for your organization and external system integrations. This code can be used for reporting, API integrations, and user-friendly references. Validation: No specific length restrictions, but should be meaningful and unique within your organization. """ code: String """ Date and time when the order list becomes active and accessible to users. Users cannot access or order from the list before this date. If not specified, the order list is immediately available upon creation. Validation: Must be a valid ISO 8601 date-time string. """ validFrom: String """ Date and time when the order list expires and becomes inaccessible to users. Users cannot access or order from the list after this date. If not specified, the order list remains active indefinitely. Validation: Must be a valid ISO 8601 date-time string and should be after validFrom if both are specified. """ validTo: String """ User identifiers who are authorized to access and order from this list. Specify individual users who should have permission to view and order from this order list. These users will be able to see the order list in their available ordering options. Validation: Each ID must be a valid integer, array must contain unique values, users must exist in the system. Possible errors: ORDERLIST_CROSS_SERVICE_ERROR if user IDs don't exist. """ userIds: [Int!] """ External user sources who are authorized to access this order list. Reference users from external systems using their source identifiers and system names. This allows integration with external user management systems. Validation: Each source must have valid id and name fields, array must contain unique combinations. """ userSources: [SourceInput!] """ Associated partner or organizational entity responsible for this order list. Specify the business partner, department, or organizational unit that manages this order list. This helps with organization, reporting, and responsibility tracking. Validation: No specific restrictions, but should be meaningful for organizational purposes. """ partnerEntity: String """ Order list availability status that controls user access. Y (Yes): Order list is active and accessible to assigned users. N (No): Order list is inactive and not accessible for ordering. Defaults to Y (active) if not specified. Validation: Must be either Y or N. """ active: YesNo = Y """ Company identifiers that are authorized to access and order from this list. Specify which companies should have permission to view and order from this order list. These companies will be able to see the order list in their available ordering options. Validation: Each ID must be a valid integer, array must contain unique values, companies must exist in the system. Possible errors: ORDERLIST_CROSS_SERVICE_ERROR if company IDs don't exist. """ companyIds: [Int!] """ External company sources that are authorized to access this order list. Reference companies from external systems using their source identifiers and system names. This allows integration with external company management systems. Validation: Each source must have valid id and name fields, array must contain unique combinations. """ companySources: [SourceInput!] } input OrderlistItemsInput { """ Product identifiers to include in or remove from the order list. Specify individual products that should be associated with this order list. These products will be available for bulk ordering operations. Validation: Each ID must be a valid integer, array must contain unique values, products must exist in the system. Possible errors: ORDERLIST_CROSS_SERVICE_ERROR if product IDs don't exist. """ productIds: [Int!] """ External product sources to include in or remove from the order list. Reference products from external systems using their source identifiers and system names. This allows integration with external product catalogs and inventory systems. Validation: Each source must have valid id and name fields, array must contain unique combinations. """ productSources: [SourceInput!] """ Product cluster identifiers to include in or remove from the order list. Clusters group related products together for convenient bulk ordering operations. Adding a cluster makes all products within that cluster available for ordering. Validation: Each ID must be a valid integer, array must contain unique values, clusters must exist in the system. Possible errors: ORDERLIST_CROSS_SERVICE_ERROR if cluster IDs don't exist. """ clusterIds: [Int!] """ External cluster sources to include in or remove from the order list. Reference product clusters from external systems using their source identifiers and system names. This allows integration with external categorization and clustering systems. Validation: Each source must have valid id and name fields, array must contain unique combinations. """ clusterSources: [SourceInput!] } input OrderlistSearchInput { """Page number for pagination""" page: Int = 1 """Number of items per page""" offset: Int = 12 """Filter by creation date range""" createdAt: DateSearchInput """Filter by last modification date range""" lastModifiedAt: DateSearchInput """Filter by specific order list identifiers""" ids: [Int!] """Filter by order list codes""" codes: [String!] """Filter by validity end date range""" validTo: DateSearchInput """Filter by validity start date range""" validFrom: DateSearchInput """Filter by order list behavior type""" type: OrderlistType """Partner entity""" partnerEntities: [String!] """Shows if the orderlist is active""" active: YesNo """Filter by assigned user identifiers""" userIds: [Int!] """Filter by assigned user sources""" userSources: [SourceInput!] """Filter by assigned company identifiers""" companyIds: [Int!] """Filter by assigned company sources""" companySources: [SourceInput!] """Filter by included product identifiers""" productIds: [Int!] """Filter by included product sources""" productSources: [SourceInput!] """Filter by included cluster identifiers""" clusterIds: [Int!] """Filter by included cluster sources""" clusterSources: [SourceInput!] """Sort criteria for result ordering""" sortInputs: [OrderlistSortInput!] } """ Available fields for sorting order list results in search and retrieval operations """ enum OrderlistSortField { """ Sort by order list unique identifier. Provides consistent ordering based on system-generated IDs. """ ID """ Sort by order list description text. Enables alphabetical ordering based on descriptive content. """ DESCRIPTIONS """ Sort by associated partner entity. Groups order lists by their organizational or partner associations. """ PARTNER_ENTITY """ Sort by active status. Groups active and inactive order lists for better management visibility. """ ACTIVE """ Sort by last modification timestamp. Shows most recently updated order lists first for tracking changes. """ LAST_MODIFIED_AT """ Sort by creation timestamp. Shows newest or oldest order lists first based on when they were created. """ CREATED_AT } input OrderlistSortInput { """ Field to sort order list results by. Choose from available order list properties to establish consistent result ordering. Different fields provide different sorting behaviors based on their data types. Validation: Must be one of the defined OrderlistSortField enum values. """ field: OrderlistSortField! """ Sort direction for the selected field. ASC: Ascending order (A-Z, 0-9, oldest to newest) DESC: Descending order (Z-A, 9-0, newest to oldest) Defaults to ascending order if not specified. Validation: Must be either ASC or DESC. """ order: SortOrder! = ASC } type OrderlistsResponse { """List of items of type Orderlist""" items: [Orderlist!]! """Total number of items found""" itemsFound: Int! """The amount of items to show per page""" offset: Int! """The current page""" page: Int! """Total amount of pages""" pages: Int! """Start position of the current page""" start: Int! """End position of the current page""" end: Int! } """ Order list types that control product visibility and ordering permissions for assigned users/companies """ enum OrderlistType { """ Restricts assigned users/companies to ONLY see and order products included in this list. All other products are hidden. Used for limiting access to specific product catalogs (e.g., approved items for new accounts, region-specific products). """ POSITIVE """ Prevents assigned users/companies from seeing or ordering products included in this list. These products are hidden while all others remain available. Used for excluding products (e.g., hazardous materials from certain customers, competitive products from dealers). """ NEGATIVE } input OrderlistUpdateInput { """ Product identifiers to include in or remove from the order list. Specify individual products that should be associated with this order list. These products will be available for bulk ordering operations. Validation: Each ID must be a valid integer, array must contain unique values, products must exist in the system. Possible errors: ORDERLIST_CROSS_SERVICE_ERROR if product IDs don't exist. """ productIds: [Int!] """ External product sources to include in or remove from the order list. Reference products from external systems using their source identifiers and system names. This allows integration with external product catalogs and inventory systems. Validation: Each source must have valid id and name fields, array must contain unique combinations. """ productSources: [SourceInput!] """ Product cluster identifiers to include in or remove from the order list. Clusters group related products together for convenient bulk ordering operations. Adding a cluster makes all products within that cluster available for ordering. Validation: Each ID must be a valid integer, array must contain unique values, clusters must exist in the system. Possible errors: ORDERLIST_CROSS_SERVICE_ERROR if cluster IDs don't exist. """ clusterIds: [Int!] """ External cluster sources to include in or remove from the order list. Reference product clusters from external systems using their source identifiers and system names. This allows integration with external categorization and clustering systems. Validation: Each source must have valid id and name fields, array must contain unique combinations. """ clusterSources: [SourceInput!] """ Order list behavior type that controls product visibility and ordering permissions for assigned users/companies. POSITIVE: Users/companies assigned to this list can ONLY see and order the products included in the list. All other products are hidden from them. NEGATIVE: Users/companies assigned to this list CANNOT see or order the products included in the list. These products are hidden from them. """ type: OrderlistType """ Localized descriptions for the order list in multiple languages. Provide clear, descriptive names that help users understand the purpose and contents of the order list. Each entry must have a unique language code. Validation: Array must contain unique language codes, each description is validated for proper structure. """ descriptions: [LocalizedStringInput!] """ Additional metadata or supplementary information in multiple languages. Use for ordering instructions, special terms, category details, or other contextual information. Each entry must have a unique language code. Validation: Array must contain unique language codes, each entry is validated for proper structure. """ extras: [LocalizedStringInput!] """ Unique reference code for easy identification and integration. Use alphanumeric codes that are meaningful for your organization and external system integrations. This code can be used for reporting, API integrations, and user-friendly references. Validation: No specific length restrictions, but should be meaningful and unique within your organization. """ code: String """ Date and time when the order list becomes active and accessible to users. Users cannot access or order from the list before this date. If not specified, the order list is immediately available upon creation. Validation: Must be a valid ISO 8601 date-time string. """ validFrom: String """ Date and time when the order list expires and becomes inaccessible to users. Users cannot access or order from the list after this date. If not specified, the order list remains active indefinitely. Validation: Must be a valid ISO 8601 date-time string and should be after validFrom if both are specified. """ validTo: String """ User identifiers who are authorized to access and order from this list. Specify individual users who should have permission to view and order from this order list. These users will be able to see the order list in their available ordering options. Validation: Each ID must be a valid integer, array must contain unique values, users must exist in the system. Possible errors: ORDERLIST_CROSS_SERVICE_ERROR if user IDs don't exist. """ userIds: [Int!] """ External user sources who are authorized to access this order list. Reference users from external systems using their source identifiers and system names. This allows integration with external user management systems. Validation: Each source must have valid id and name fields, array must contain unique combinations. """ userSources: [SourceInput!] """ Associated partner or organizational entity responsible for this order list. Specify the business partner, department, or organizational unit that manages this order list. This helps with organization, reporting, and responsibility tracking. Validation: No specific restrictions, but should be meaningful for organizational purposes. """ partnerEntity: String """ Order list availability status that controls user access. Y (Yes): Order list is active and accessible to assigned users. N (No): Order list is inactive and not accessible for ordering. This field allows you to activate or deactivate an order list without changing other properties. Validation: Must be either Y or N. """ active: YesNo """ Company identifiers that are authorized to access and order from this list. Specify which companies should have permission to view and order from this order list. These companies will be able to see the order list in their available ordering options. Validation: Each ID must be a valid integer, array must contain unique values, companies must exist in the system. Possible errors: ORDERLIST_CROSS_SERVICE_ERROR if company IDs don't exist. """ companyIds: [Int!] """ External company sources that are authorized to access this order list. Reference companies from external systems using their source identifiers and system names. This allows integration with external company management systems. Validation: Each source must have valid id and name fields, array must contain unique combinations. """ companySources: [SourceInput!] } input OrderlistUserSearchInput { page: Int! = 1 offset: Int! = 12 } input OrderlistUsersInput { """ User identifiers to assign to or unassign from the order list. Specify which users should have permission to access and order from this order list. These users will be able to see the order list in their available ordering options. Validation: Each ID must be a valid integer, array must contain unique values, users must exist in the system. Possible errors: ORDERLIST_CROSS_SERVICE_ERROR if user IDs don't exist. """ userIds: [Int!] = [] """ External user sources to assign to or unassign from the order list. Reference users from external systems using their source identifiers and system names. This allows integration with external user management systems like LDAP, Active Directory, or HR systems. Validation: Each source must have valid id and name fields, array must contain unique combinations. """ userSources: [SourceInput!] } type OrderMedia { """Media attachments""" attachments( """Order media attachments search options""" input: ObjectMediaSearchInput = {page: 1, offset: 12} ): PaginatedMediaAttachmentResponse } type OrderPaymentData { """The transaction cost including tax""" net: Float! """The transaction cost excluding tax""" gross: Float! """The tax on the transaction costs""" tax: Float! """The transaction costs tax percentage""" taxPercentage: Float! """The paymethod for this Order""" method: String! """The transaction status""" status: String """Last time the transaction status was changed""" statusDate: DateTime """The accountingId that belongs to this order""" accountingId: String """ Whether the transaction costs for this order are overruled, if N, the shipping costs will be recalculated on every mutation """ overruled: YesNo } input OrderPaymentInput { """The transaction cost including tax""" net: Float! """The transaction cost excluding tax""" gross: Float! """The transaction cost tax""" tax: Float! """The transaction costs tax percentage""" taxPercentage: Float! """The paymethod for this Order""" method: String! """The transaction status""" status: String = "UNKNOWN" """Last time the transaction status was changed""" statusDate: String """The accountingId that belongs to this order""" accountingId: String """ Whether the transaction costs for this order are overruled, if N, the shipping costs will be recalculated on every mutation """ overruled: YesNo } input OrderPaymentUpdateInput { """The transaction cost including tax""" net: Float """The transaction cost excluding tax""" gross: Float """The transaction cost tax""" tax: Float """The transaction costs tax percentage""" taxPercentage: Float """The paymethod for this Order""" method: String """The transaction status""" status: String """Last time the transaction status was changed""" statusDate: String """The accountingId that belongs to this order""" accountingId: String """ Whether the transaction costs for this order are overruled, if N, the shipping costs will be recalculated on every mutation """ overruled: YesNo } """ Order shipping and pickup location information. Contains postage and pickup details for order fulfillment including warehouse pickup locations. Used for order processing, shipping calculations, and customer pickup coordination. """ type OrderPostageData { """The chosen shipping method""" method: String! """The shipping costs tax percentage""" taxPercentage: Float! """The preferred delivery date for the Order""" requestDate: DateTime """The shipping costs excluding tax""" gross: Float! """The shipping costs including tax""" net: Float! """The tax on the shipping costs""" tax: Float! """Is partial delivery allowed for this Order""" partialDeliveryAllowed: YesNo """ID of the pick up location when the Order's shipping method is PICKUP""" pickUpLocationId: Int """The selected carrier for this Order""" carrier: String """ Whether the shipping costs for this order are overruled, if N, the shipping costs will be recalculated on every mutation """ overruled: YesNo """ Complete warehouse information for the order pickup location. Detailed warehouse object including address, business hours, and contact information for the customer order pickup location. """ warehouse: Warehouse } input OrderPostageInput { """The chosen shipping method""" method: String! """The shipping costs tax percentage""" taxPercentage: Float! """The preferred delivery date for the Order""" requestDate: String """The shipping costs excluding tax""" gross: Float! """The shipping costs including tax""" net: Float! """The shipping costs tax""" tax: Float! """Is partial delivery allowed for this Order""" partialDeliveryAllowed: YesNo """ID of the pick up location when the Order's shipping method is PICKUP""" pickUpLocationId: Int """The selected carrier for this Order""" carrier: String """ Whether the shipping costs for this order are overruled, if N, the shipping costs will be recalculated on every mutation """ overruled: YesNo } input OrderPostageUpdateInput { """The chosen shipping method""" method: String """The shipping costs tax percentage""" taxPercentage: Float """The preferred delivery date for the Order""" requestDate: String """The shipping costs excluding tax""" gross: Float """The shipping costs including tax""" net: Float """The shipping costs tax""" tax: Float """Is partial delivery allowed for this Order""" partialDeliveryAllowed: YesNo """ID of the pick up location when the Order's shipping method is PICKUP""" pickUpLocationId: Int """The selected carrier for this Order""" carrier: String """ Whether the shipping costs for this order are overruled, if N, the shipping costs will be recalculated on every mutation """ overruled: YesNo } type OrderResponse { """List of items of type Order""" items: [Order!]! """Total number of items found""" itemsFound: Int! """The amount of items to show per page""" offset: Int! """The current page""" page: Int! """Total amount of pages""" pages: Int! """Start position of the current page""" start: Int! """End position of the current page""" end: Int! } type OrderRevision { """ID of the order this revision belongs to""" orderId: Int! """Revision number""" revisionNumber: Int! """ID of the contact who created this revision""" createdByContactId: Int """ID of the customer who created this revision""" createdByCustomerId: Int """ID of the admin user who created this revision""" createdByAdminUserId: Int """ID of the admin user who last modified this revision""" lastModifiedByAdminUserId: Int """ID of the contact who last modified this revision""" lastModifiedByContactId: Int """ID of the customer who last modified this revision""" lastModifiedByCustomerId: Int """Admin user that created the revision""" createdByAdminUser: AdminUser """Admin user that last modified the revision""" lastModifiedByAdminUser: AdminUser """Date and time when this revision was created""" createdAt: DateTime! """Date and time when this revision was last modified""" lastModifiedAt: DateTime! """The revision this was created from""" createdFromRevisionNumber: Int """ Complete snapshot of the order data at the time this revision was created """ snapshot: Order! """Contact that created the revision""" createdByContact: Contact """Customer that created the revision""" createdByCustomer: Customer """Contact that last modified the revision""" lastModifiedByContact: Contact """Customer that last modified the revision""" lastModifiedByCustomer: Customer } input OrderRevisionByOrderSearchInput { """Pagination page number""" page: Int! = 1 """Pagination offset number""" offset: Int! = 12 """Search by date created""" createdAt: DateSearchInput """Search by date changed""" lastModifiedAt: DateSearchInput """Inputs to sort by""" sortInputs: [OrderRevisionSortInput!] """Filter by specific revision numbers""" revisionNumbers: [Int!] """Filter by public status""" public: Boolean """Filter by invalid status""" invalid: Boolean """Search by channel ids""" channelIds: [Int!] } type OrderRevisionResponse { """List of items of type OrderRevision""" items: [OrderRevision!]! """Total number of items found""" itemsFound: Int! """The amount of items to show per page""" offset: Int! """The current page""" page: Int! """Total amount of pages""" pages: Int! """Start position of the current page""" start: Int! """End position of the current page""" end: Int! } input OrderRevisionSearchInput { """Pagination page number""" page: Int! = 1 """Pagination offset number""" offset: Int! = 12 """Search by date created""" createdAt: DateSearchInput """Search by date changed""" lastModifiedAt: DateSearchInput """Inputs to sort by""" sortInputs: [OrderRevisionSortInput!] """Filter by specific order IDs""" orderIds: [Int!] """Filter by specific revision numbers""" revisionNumbers: [Int!] """Filter by public status""" public: Boolean """Filter by invalid status""" invalid: Boolean """Search by channel ids""" channelIds: [Int!] } input OrderRevisionsInvalidateInput { """ID of the order whose revisions should be invalidated""" orderId: Int! """List of revision numbers to invalidate for this order""" revisionNumbers: [Int!]! """Reason for invalidation""" reason: String } """ Available fields for sorting order revision results in search operations """ enum OrderRevisionSortField { """Sort by revision number numerically (ascending shows oldest first)""" REVISION_NUMBER """ Sort by the date when revision was created (ascending shows oldest first) """ CREATED_AT } input OrderRevisionSortInput { """Field to sort by""" field: OrderRevisionSortField! """Sort direction""" order: SortOrder! = DESC } """ Comprehensive search criteria for filtering orders. Supports filtering by customer information, order status, financial details, date ranges, and more. Extends pagination and sorting capabilities for flexible order retrieval. """ input OrderSearchArguments { """Pagination page number""" page: Int! = 1 """Pagination offset number""" offset: Int! = 12 """Search by date created""" createdAt: DateSearchInput """Search by date changed""" lastModifiedAt: DateSearchInput """Inputs to sort by""" sortInputs: [OrderSortInput!] """ Filter by user identifiers who placed orders. Returns orders placed by any of the specified user IDs. Useful for customer-specific order retrieval and account management. """ userId: [Int!] """ Filter by order processing statuses. Returns orders matching any of the specified status values. Common statuses include 'pending', 'processing', 'shipped', 'delivered', 'cancelled'. """ status: [String!] """ Filter by order type classifications. Returns orders matching any of the specified types: 'dropshipment' for supplier-direct shipping, 'purchase' for standard orders, or 'quotation' for price requests. """ type: [OrderType!] """ General search term for text-based filtering. Performs text search across multiple order fields including customer names, company names, email addresses, and reference numbers. Use with searchFields to specify which fields to search. """ term: String """List of specific fields to search in""" termFields: [OrderSearchFields!] """Search by price range""" price: DecimalSearchInput """Search by company ids""" companyIds: [Int!] """List of company sources""" companySources: [SourceInput!] """Search by original order ids""" originalOrderIds: [Int!] """Only search for orders with export status""" exportStatuses: [OrderExportStatus!] """Search by export date""" exportedAt: DateSearchInput """ List of order sources Identifies how the order was created in the system. """ sources: [SourceSearchInput!] """Search by channel ids""" channelIds: [Int!] } """Available fields to search for in an order""" enum OrderSearchFields { ID """Accounting Unique Identifier""" ACCOUNTING_ID """Debtor Unique Identifier""" DEBTOR_ID """[DEPRECATED] External Order Unique Identifier""" EXTERNAL_ORDER_ID """Extra field 3""" EXTRA3 """Extra field 4""" EXTRA4 """Debtor Company [From Invoice Address]""" INVOICE_ADDRESS_COMPANY """Debtor First Name [From Invoice Address]""" INVOICE_ADDRESS_FIRST_NAME """Debtor Last Name [From Invoice Address]""" INVOICE_ADDRESS_LAST_NAME """Recipient Company [From Delivery Address]""" RECIPIENT_COMPANY """Recipient Email [From Delivery Address]""" RECIPIENT_EMAIL """Recipient First Name [From Delivery Address]""" RECIPIENT_FIRST_NAME """Recipient Last Name [From Delivery Address]""" RECIPIENT_LAST_NAME """Reference""" REFERENCE """Remarks""" REMARKS """Item EAN Code""" ITEM_EAN_CODE """Item Manufacturer""" ITEM_MANUFACTURER """Item Manufacturer Code""" ITEM_MANUFACTURER_CODE """Item Name""" ITEM_NAME """Item Notes""" ITEM_NOTES """Item SKU""" ITEM_SKU """Item Supplier""" ITEM_SUPPLIER """Item Supplier Code""" ITEM_SUPPLIER_CODE } input OrderSetStatusInput { """The id of the order to set the status for""" orderId: Int! """The status of the order""" status: String """The payment status of the order""" payStatus: String """Send the order confirmation email when the status is changed""" sendOrderConfirmationEmail: Boolean = false """Add the order overview as attached PDF to the order confirmation email""" addPDFAttachment: Boolean = false """ Triggers the ORDER_SEND_CONFIRMATION event when the status is changed, which can be subscribed to via the Event Action Manager """ triggerOrderSendConfirmEvent: Boolean = false """Delete the cart that created this order if the cart is still available""" deleteCart: Boolean = false } """Available fields for sorting order search results""" enum OrderSortField { """Sort by order ID numerically""" ID """Sort by the date when the order was last modified""" LAST_MODIFIED_AT """Sort by the date when the order was created""" CREATED_AT """Sort by order status alphabetically""" STATUS """Sort by debtor company name alphabetically""" COMPANY """Sort by order total amount (excluding tax)""" TOTAL_GROSS """Sort by order validity expiration date""" VALID_UNTIL } input OrderSortInput { """Field to sort by""" field: OrderSortField! """Option to sort by""" order: SortOrder! = ASC } """Order status entity representing a state in the order workflow system""" type OrderStatus { """ Unique identifier for the order status. Used for referencing this status in API calls, workflow configurations, and order assignments. """ id: Int! """ Human-readable name for the order status. Used for display purposes in user interfaces and reports. Provides clear identification of the status for business users. """ name: String! """ Unique code identifier for the order status. Uppercase alphanumeric code used for system integration, API references, and programmatic status identification. """ code: String! """ Classification of order status origin and management level. SYSTEM types are built-in platform statuses that cannot be modified, while CUSTOM types are user-defined statuses for specific business workflows. """ type: OrderStatusType! """ Type of orders this status applies to. Determines which business processes can use this status: quotations for price quotes, orders for confirmed purchases, or requests for special inquiries. """ orderType: OrderStatusOrderType! """ Detailed description of the order status purpose and usage. Provides additional context about when and how this status should be used in the order workflow. """ description: String """ Priority value for workflow ordering and sequence. Lower numbers indicate higher priority. Used to determine the order of statuses in workflow displays and processing sequences. """ priority: Int """ Indicates whether this status is the default for new orders. When true, this status will be automatically assigned to new orders when no specific status is provided during creation. Only one status per order type should be marked as default. """ isDefault: Boolean """ Controls visibility of orders with this status to external systems and users. """ isPublic: Boolean """ Determines whether this status can be modified after creation. Orders with editable statuses allow updates to their properties, while non-editable statuses are locked to prevent accidental changes to critical workflow states. """ isEditable: Boolean """ Controls whether orders with this status can be permanently removed from the system. Orders with deletable statuses can be removed when no longer needed, while non-deletable statuses are protected from deletion to maintain workflow integrity. """ isDeletable: Boolean """Marks if the order is exportable""" isExportable: Boolean @deprecated(reason: "Unused. To be removed in a future version") """Marks if the order is confirmable""" isConfirmable: Boolean @deprecated(reason: "Unused. To be removed in a future version") """Marks if the order can be archived""" isArchivable: Boolean @deprecated(reason: "Unused. To be removed in a future version") """ Timestamp when the order status was first created. Automatically set when the status is created and never changes, useful for tracking status lifecycle and audit purposes. """ createdAt: DateTime! """ Timestamp when the order status was last modified. Automatically updated whenever any property of the status is changed, enabling change tracking and audit trails. """ lastModifiedAt: DateTime! """ The order status set that contains this status. Status sets group related statuses together for workflow organization and management. This relationship enables logical grouping of statuses by business process or workflow type. """ statusSet: OrderStatusSet """ Retrieve the next possible statuses in the workflow. Returns all order statuses that can follow the current status in the workflow, enabling proper order progression and status transition validation. """ nextStatuses( """ Search criteria for filtering next statuses. If not provided, returns all possible next statuses with default pagination settings. """ input: OrderStatusesSearchInput ): OrderStatusesResponse! """ Retrieve the previous possible statuses in the workflow. Returns all order statuses that can precede the current status in the workflow, useful for understanding workflow history and reverse transitions. """ previousStatuses( """ Search criteria for filtering previous statuses. If not provided, returns all possible previous statuses with default pagination settings. """ input: OrderStatusesSearchInput ): OrderStatusesResponse! } """ Paginated response containing order statuses with metadata for navigation and filtering """ type OrderStatusesResponse { """List of items of type OrderStatus""" items: [OrderStatus!]! """Total number of items found""" itemsFound: Int! """The amount of items to show per page""" offset: Int! """The current page""" page: Int! """Total amount of pages""" pages: Int! """Start position of the current page""" start: Int! """End position of the current page""" end: Int! } """ Search criteria and filters for retrieving order statuses with pagination support """ input OrderStatusesSearchInput { """ Page number for pagination, starting from 1. Used to navigate through multiple pages of results when the total number of order statuses exceeds the offset limit. Defaults to 1. """ page: Int = 1 """ Number of order statuses to return per page. Controls the size of each page in the paginated response to manage data volume and performance. Must be between 1 and 100. Defaults to 12. """ offset: Int = 12 """List of order status ids""" ids: [Int!] """List of order status codes""" codes: [String!] """ Filter by order status name using partial text matching. Supports case-insensitive search to find order statuses with names containing the specified text, useful for finding specific workflow states. """ name: String """ Filter by priority value for workflow ordering. Searches for order statuses with the specified priority level. Lower numbers indicate higher priority in workflow displays and processing sequences. """ priority: Int """ Filter by order status type classification. SYSTEM types are built-in platform statuses that cannot be modified, while CUSTOM types are user-defined statuses for specific business workflows. """ type: String """ Filter by the type of orders this status applies to. Determines which business processes can use this status: quotations for price quotes, orders for confirmed purchases, or requests for special inquiries. """ orderType: String """ Filter by creation date range. Allows searching for order statuses created within a specific date range using greater than, less than, or between date criteria. """ createdAt: DateSearchInput """ Filter by last modification date range. Allows searching for order statuses modified within a specific date range using greater than, less than, or between date criteria. """ lastModifiedAt: DateSearchInput """ Filter by default status flag. When true, returns only statuses marked as default for new orders. When false, returns only non-default statuses. """ isDefault: Boolean """Filter by public visibility flag.""" isPublic: Boolean """ Filter by editable flag. When true, returns only statuses that can be modified. When false, returns only locked statuses that cannot be changed. """ isEditable: Boolean """ Filter by deletable flag. When true, returns only statuses that can be removed. When false, returns only protected statuses that cannot be deleted. """ isDeletable: Boolean """ Sorting configuration for the search results. Allows multiple sort criteria to be applied in order of priority. Each sort input specifies a field and direction for ordering the results. """ sortInputs: [OrderStatusSortInput!] } """ Classification of order types that determine which workflow statuses are applicable for different business processes """ enum OrderStatusOrderType { """ Order status applicable to quotation processes. Used for managing price quotes, estimates, and preliminary order proposals before final confirmation. """ QUOTATION """ Order status applicable to confirmed orders. Used for managing the complete order lifecycle from confirmation through fulfillment and delivery. """ ORDER """ Order status applicable to request processes. Used for managing special requests, custom orders, or inquiry-based transactions that require additional processing. """ REQUEST } """ Search criteria for finding a specific order status by unique identifiers """ input OrderStatusSearchByInput { """ Unique identifier of the order status to retrieve. Must be a positive integer representing an existing order status in the system. """ id: Int """ Unique code identifier of the order status to retrieve. Must be an uppercase alphanumeric code representing an existing order status in the system. """ code: String } """ Order status set entity for organizing related order statuses into logical workflow groups and business process containers """ type OrderStatusSet { """ Unique identifier for the order status set. Used for referencing this status set in API calls, workflow configurations, and order status assignments. """ id: Int! """ Human-readable name for the order status set. Used for display purposes in user interfaces and workflow management. Provides clear identification of the status set for business users. """ name: String! """ Detailed description of the order status set purpose and usage. Provides additional context about the workflow this set represents and when it should be used for order management. """ description: String """ Collection of order statuses contained within this set. Represents all the possible statuses that orders can have when using this workflow configuration. The order and relationships between these statuses define the complete workflow process. """ orderStatuses: [OrderStatus!] } """ Search criteria for finding a specific order status set by unique identifiers """ input OrderStatusSetSearchByInput { """ Unique identifier of the order status set to retrieve. Must be a positive integer representing an existing order status set in the system. """ id: Int """ Unique name of the order status set to retrieve. Must be an exact match for an existing order status set name in the system. Maximum length is 64 characters. """ name: String } """Available fields for sorting order status set search results""" enum OrderStatusSetSortField { """Sort by unique identifier in ascending or descending order""" ID """Sort alphabetically by order status set name""" NAME } """Sorting configuration for order status set search results""" input OrderStatusSetSortInput { """ Field to sort the order status set results by. Determines which property of the order status set will be used for ordering the search results. Available options include ID and name. """ field: OrderStatusSetSortField! """ Sort direction for the specified field. Controls whether results are ordered in ascending (ASC) or descending (DESC) order. Defaults to ascending order. """ order: SortOrder! = asc } """ Paginated response containing order status sets with metadata for navigation and filtering """ type OrderStatusSetsResponse { """List of items of type OrderStatusSet""" items: [OrderStatusSet!]! """Total number of items found""" itemsFound: Int! """The amount of items to show per page""" offset: Int! """The current page""" page: Int! """Total amount of pages""" pages: Int! """Start position of the current page""" start: Int! """End position of the current page""" end: Int! } """ Search criteria and filters for retrieving order status sets with pagination support """ input OrderStatusSetsSearchInput { """ Page number for pagination, starting from 1. Used to navigate through multiple pages of results when the total number of order status sets exceeds the offset limit. Defaults to 1. """ page: Int = 1 """ Number of order status sets to return per page. Controls the size of each page in the paginated response to manage data volume and performance. Must be between 1 and 100. Defaults to 12. """ offset: Int = 12 """ Filter by order status set name using partial text matching. Supports case-insensitive search to find status sets with names containing the specified text. """ name: String """ Filter by specific order status set identifiers. Comma-separated list of numeric IDs to retrieve multiple specific status sets in a single request. Each ID must be unique and represent a valid status set. """ ids: [Int!] """Inputs to sort by""" sortInputs: [OrderStatusSetSortInput!] } """Available fields for sorting order status search results""" enum OrderStatusSortField { """Sort by unique identifier in ascending or descending order""" ID """Sort alphabetically by order status name""" NAME """Sort alphabetically by order status code""" CODE """Sort by priority value, with lower numbers indicating higher priority""" PRIORITY """Sort by last modification timestamp, most recent first or last""" LAST_MODIFIED_AT """Sort by creation timestamp, newest first or oldest first""" CREATED_AT } """Sorting configuration for order status search results""" input OrderStatusSortInput { """ Field to sort the order status results by. Determines which property of the order status will be used for ordering the search results. Available options include ID, name, code, priority, and timestamps. """ field: OrderStatusSortField! """ Sort direction for the specified field. Controls whether results are ordered in ascending (ASC) or descending (DESC) order. Defaults to ascending order. """ order: SortOrder! = asc } """ Classification of order status origin and management level within the workflow system """ enum OrderStatusType { """ System-defined order status that is built into the platform. These statuses are managed by the system and typically cannot be modified or deleted by users. """ SYSTEM """ User-defined order status created for specific business workflows. These statuses can be customized, modified, and deleted according to business requirements. """ CUSTOM } input OrderTotalInput { """The total of this Order excluding tax""" gross: Float! """The total of this Order including tax""" net: Float! """The total amount of tax for this Order""" tax: Float! """The type of global discount""" discountType: OrderDiscountType! """ The discount value, can be absolute or a percentage depending on the discountType """ discountValue: Float! } type OrderTotals { """The orderId of this Order""" orderId: Int! @deprecated(reason: "Use the parent Order.id instead") """The total of this Order excluding tax""" gross: Float! """The total of this Order including tax""" net: Float! """The total amount of tax for this Order""" tax: Float! """The type of global discount""" discountType: OrderDiscountType! """ The discount value, can be absolute or a percentage depending on the discountType """ discountValue: Float! """The totals per tax percentage""" taxPercentages: [OrderTotalTaxPercentage!]! } type OrderTotalTaxPercentage { """The tax percentage""" percentage: Int! """The total for the tax percentage""" total: Float! } input OrderTotalUpdateInput { """The total of this Order excluding tax""" gross: Float """The total of this Order including tax""" net: Float """The total amount of tax for this Order""" tax: Float """The type of global discount""" discountType: OrderDiscountType """ The discount value, can be absolute or a percentage depending on the discountType """ discountValue: Float } """Available order types""" enum OrderType { """Dropshipment order""" dropshipment """Purchase order""" purchase """Quotation order""" quotation """Stock order""" stock } input OrderUpdateAddressInput { """User first name the address applies to""" firstName: String """User middle name the address applies to""" middleName: String """User last name the address applies to""" lastName: String """User gender the address applies to""" gender: Gender """User company the address applies to""" company: String """User street address""" street: String """User street number""" number: String """User street number extension""" numberExtension: String """Postal or ZIP code""" postalCode: String """City name""" city: String """State, province, or region code""" region: String """Country code (ISO 2-letter)""" country: String """Address fixed phone number [min: 6, max: 20]""" phone: String """Address mobile number [min: 6, max: 20]""" mobile: String """Address email [valid email format required]""" email: String """Internal code or reference for this address""" code: String """Additional notes about this address""" notes: String """ ICP address field defines whether tax should be applied to an order if the address is selected as a delivery address. Used when shipping b2b order abroad """ icp: YesNo } input OrderUpdateInput { """ Identifier of the user who placed the order. References the customer account that initiated this order. Can be null for guest orders or orders placed on behalf of customers. """ userId: Int """ Identifier of the account manager responsible for this order. References the staff member or owner who will handle order processing, customer communication, and order fulfillment coordination. """ accountManagerId: Int """ Sales channel identifier where the order originated. Distinguishes between different sales channels like webshop, mobile app, marketplace, or point-of-sale systems for reporting and processing rules. """ channelId: Int """ Financial identifier of the customer or company responsible for payment. Used in accounting and billing systems to identify the party responsible for payment and invoice generation. """ debtorId: String """First name of the Debtor [USED FOR ORDER SEARCH ONLY]""" debtorFirstName: String """Last name of the Debtor [USED FOR ORDER SEARCH ONLY]""" debtorLastName: String """Company name of the Debtor [USED FOR ORDER SEARCH ONLY]""" debtorCompany: String """First name of the Recipient [USED FOR ORDER SEARCH ONLY]""" recipientFirstName: String """Last name of the Recipient [USED FOR ORDER SEARCH ONLY]""" recipientLastName: String """Company name of the Recipient [USED FOR ORDER SEARCH ONLY]""" recipientCompany: String """[DEPRECATED] ID of the Order in an external system""" externalId: String """Status of the Order""" status: String """Type of the Order""" type: OrderType """Source of the Order""" source: String """Email address used for communication about this Order""" email: String """Remarks by the customer""" remarks: String """Reference by the customer""" reference: String """ Custom metadata field for order extensions. Open text field for storing additional order information that can be used in frontend displays or system integrations. Not visible to system administrators but available for custom implementations. """ extra3: String """ Additional custom metadata field for order extensions. Second open text field for storing supplementary order information for frontend customization or integration purposes. Provides flexibility for custom order data requirements. """ extra4: String """ Order currency - ISO 4217 currency code => https://www.xe.com/iso4217.php """ currency: String """Currency conversion ratio compared the Order's base currency""" currencyRatio: Float """ Order language - ISO 639-1 language code => https://localizely.com/iso-639-1-list/ """ language: String """Active actioncode that was applied to this Order """ actionCode: String """ Invoice recipient identifier. Specifies the user, contact, or customer who should receive the invoice for this order, which may differ from the person who placed the order. """ invoiceUserId: Int """ Order validity expiration. Date and time until which the order remains valid, particularly relevant for quotations and orders with time-sensitive pricing or availability. """ validUntil: String """ID of the Company of the Order""" companyId: Int """A company source""" companySource: SourceInput """ Source order reference for related orders. Links to the original order when this order is a modification, return, or related transaction, maintaining order relationship history. """ originalOrderId: Int """ External system export timestamp. Date and time when the order was last exported to external systems like ERP, accounting software, or fulfillment systems. """ exportedAt: String """ External system synchronization status. Indicates the current state of order export to external systems, tracking successful exports, failures, or pending synchronization. """ exportStatus: OrderExportStatus """ Export process status message. Detailed message about the export process, including success confirmations or error descriptions for troubleshooting integration issues. """ exportMessage: String """ List of order sources Identifies how the order was created in the system. """ sources: [SourceInput!] """ The OrderItem to create or update with the Order as a single bulk request """ items: [CreateOrUpdateOrderItemInput!] """Order's payment data""" paymentData: OrderPaymentUpdateInput """Order's postage data""" postageData: OrderPostageUpdateInput """Order's totals, tax and global discount""" total: OrderTotalUpdateInput """Expected 1 invoice and/or 1 delivery type of address""" addresses: [OrderAddressBulkInput!] } """ The orient parameter controls the cardinal orientation of the image. NOTE: - By default, if the source image contains orientation information stored within its metadata, that orientation will be applied to the image data and the orientation override removed from metadata. - The numerical values are the same as EXIF rotation numbers. """ enum Orient { """Orient the image right.""" RIGHT """Orient the image left.""" LEFT """Flip the image horizontally.""" HORIZONTAL_FLIP """Flip the image horizontally.""" VERTICAL_FLIP """Flip the image both horizontally and vertically (also vh).""" HV_FLIP """Default - don't do anything...""" ONE """Flip the image horizontally.""" TWO """Flip the image horizontally and vertically.""" THREE """Flip the image vertically.""" FOUR """ Flip the image horizontally, then orient the image left (also rv or vr). """ FIVE """Orient the image right.""" SIX """ Flip the image horizontally, then orient the image right (also lv or vl). """ SEVEN """Orient the image left.""" EIGHT } """ Add pixels to the edge of an image. Notes - By default padding applies a background color of white. See bg-color to change that. - If the source image contains a transparent background and the output image also contains transparency, the padding will be made up of transparent pixels. - When using pad and canvas at the same time, pad will be ignored. - Values can be specified using CSS style shorthand values. (see CSS Margin or CSS Padding for more examples). - CSS shorthand allows for all edges to be specified in one property. - Any fractional pixel measurements will be rounded to the nearest whole pixel. """ input PadInput { """Top - Pixels or Percentage - Default=0""" top: Int = 0 """Right - Pixels or Percentage - Default=0""" right: Int = 0 """Bottom - Pixels or Percentage - Default=0""" bottom: Int = 0 """Left - Pixels or Percentage - Default=0""" left: Int = 0 } """ Paginated response containing private attachment files with navigation metadata """ type PaginatedMediaAttachmentResponse { """ Collection of items returned for the current page. Contains the actual data items matching the search criteria, limited by the pagination settings. The array will be empty if no items match the search criteria. """ items: [MediaAttachment!]! """ Total number of items matching the search criteria. Represents the complete count of items that match the search filters, regardless of pagination. Used to calculate total pages and display result counts. """ itemsFound: Int! """ Number of items displayed per page. Controls how many items are returned in each page of results. Used for pagination calculations and determining page boundaries. """ offset: Int! """ Current page number being displayed. Indicates which page of results is currently being shown. Pages start at 1 and increment based on the offset size. """ page: Int! """ Total number of pages available. Calculated based on the total items found divided by the items per page. Used for pagination navigation and determining if there are more pages available. """ pages: Int! """ Starting position number for items on the current page. Indicates the position of the first item displayed on this page within the complete result set. Useful for displaying "Showing X-Y of Z results" information. """ start: Int! """ Ending position number for items on the current page. Indicates the position of the last item displayed on this page within the complete result set. Will not exceed the total number of items found. """ end: Int! } """ Paginated response containing document media items with navigation metadata """ type PaginatedMediaDocumentResponse { """ Collection of items returned for the current page. Contains the actual data items matching the search criteria, limited by the pagination settings. The array will be empty if no items match the search criteria. """ items: [MediaDocument!]! """ Total number of items matching the search criteria. Represents the complete count of items that match the search filters, regardless of pagination. Used to calculate total pages and display result counts. """ itemsFound: Int! """ Number of items displayed per page. Controls how many items are returned in each page of results. Used for pagination calculations and determining page boundaries. """ offset: Int! """ Current page number being displayed. Indicates which page of results is currently being shown. Pages start at 1 and increment based on the offset size. """ page: Int! """ Total number of pages available. Calculated based on the total items found divided by the items per page. Used for pagination navigation and determining if there are more pages available. """ pages: Int! """ Starting position number for items on the current page. Indicates the position of the first item displayed on this page within the complete result set. Useful for displaying "Showing X-Y of Z results" information. """ start: Int! """ Ending position number for items on the current page. Indicates the position of the last item displayed on this page within the complete result set. Will not exceed the total number of items found. """ end: Int! } """ Paginated response containing image media items with navigation metadata """ type PaginatedMediaImageResponse { """ Collection of items returned for the current page. Contains the actual data items matching the search criteria, limited by the pagination settings. The array will be empty if no items match the search criteria. """ items: [MediaImage!]! """ Total number of items matching the search criteria. Represents the complete count of items that match the search filters, regardless of pagination. Used to calculate total pages and display result counts. """ itemsFound: Int! """ Number of items displayed per page. Controls how many items are returned in each page of results. Used for pagination calculations and determining page boundaries. """ offset: Int! """ Current page number being displayed. Indicates which page of results is currently being shown. Pages start at 1 and increment based on the offset size. """ page: Int! """ Total number of pages available. Calculated based on the total items found divided by the items per page. Used for pagination navigation and determining if there are more pages available. """ pages: Int! """ Starting position number for items on the current page. Indicates the position of the first item displayed on this page within the complete result set. Useful for displaying "Showing X-Y of Z results" information. """ start: Int! """ Ending position number for items on the current page. Indicates the position of the last item displayed on this page within the complete result set. Will not exceed the total number of items found. """ end: Int! } """ Paginated response containing video media items with navigation metadata """ type PaginatedMediaVideoResponse { """ Collection of items returned for the current page. Contains the actual data items matching the search criteria, limited by the pagination settings. The array will be empty if no items match the search criteria. """ items: [MediaVideo!]! """ Total number of items matching the search criteria. Represents the complete count of items that match the search filters, regardless of pagination. Used to calculate total pages and display result counts. """ itemsFound: Int! """ Number of items displayed per page. Controls how many items are returned in each page of results. Used for pagination calculations and determining page boundaries. """ offset: Int! """ Current page number being displayed. Indicates which page of results is currently being shown. Pages start at 1 and increment based on the offset size. """ page: Int! """ Total number of pages available. Calculated based on the total items found divided by the items per page. Used for pagination navigation and determining if there are more pages available. """ pages: Int! """ Starting position number for items on the current page. Indicates the position of the first item displayed on this page within the complete result set. Useful for displaying "Showing X-Y of Z results" information. """ start: Int! """ Ending position number for items on the current page. Indicates the position of the last item displayed on this page within the complete result set. Will not exceed the total number of items found. """ end: Int! } """ Parameters for generating password recovery links and sending password reset emails. Contains user identification and customization options for the password recovery process. """ input PasswordRecoveryLinkInput { """ Email address of the user requesting password recovery. Must be a valid email address associated with an existing user account in the system. """ email: String! """ URL to redirect the user after successful password reset. The user will be redirected to this URL after completing the password reset process. If not provided, a default redirect will be used. """ redirectUrl: String """ Language code for localized password recovery communications. Two-character language code (ISO 639-1) used to determine the language for password recovery emails and interfaces. Must be exactly 2 characters long. """ language: String = "nl" """ The channel id to send the password reset email to. If not provided, the email will be sent to the default channel. """ channelId: Int } """ Password reset email configuration for user account recovery. Extends email event input with specific fields needed for password reset functionality, including user identification, redirect handling, and localization options. """ input PasswordResetLinkEmailInput { """ Classification of the email event being triggered. Determines the purpose and context of the email, enabling appropriate template selection and content personalization based on the business scenario. """ type: EmailEventType! """ Legacy site identifier for email context. Previously used to determine site-specific email configuration, now deprecated as site context is derived from other inputs automatically. """ siteId: Int """ The id of the order to use when triggering an event of type orderconfirm """ orderId: Int """ User identifier for recipient determination. Used to identify the email recipient when the user cannot be derived from other context inputs like order or contact information. """ userId: Int """ Campaign letter identifier for marketing emails. Required when triggering campaign-type events, references the specific marketing letter or campaign content to be sent. """ letterId: String """ Custom email subject line override. Provides a specific subject line when it cannot be derived from template configuration or other context inputs, enabling dynamic subject customization. """ subject: String """ Custom email content override. Provides specific email content when it cannot be derived from template configuration or other context inputs, enabling dynamic content customization. """ content: String """ Email sender information override. Specifies the email sender when it cannot be derived from template configuration or other context inputs, enabling flexible sender customization. """ from: EmailSendContactInput """ File attachments for the email. Base64-encoded files that will be attached to the email message, supporting various file types for comprehensive communication needs. """ attachments: [Base64FileInput!] """ Template variable data for dynamic content. JSON object containing key-value pairs that will be used for Handlebars variable substitution in the email template, enabling personalized and context-specific content generation. Validation: Must be valid JSON format. """ variables: JSONObject """ Language code for email localization. ISO 639-1 language code determining which language version of the password reset email template to use. Validation: Must be exactly 2 characters long. """ language: String = "nl" """ User email address for password reset. Valid email address of the user account that requires password reset, must match an existing user account in the system. Validation: Must be a valid email format. """ email: String! """ Post-reset redirect destination URL. The page URL where the user will be redirected after successfully changing their password, enabling seamless user experience and proper application flow. """ redirectUrl: String """ Custom link text for the reset button. Text that will be displayed on the password reset link or button in the email, allowing customization of the call-to-action message. """ linkText: String } """ Payment record representing a financial transaction for order processing. Manages payment lifecycle from creation through completion, including amount tracking, currency handling, and payment method processing. Supports multiple payment states and transaction history for comprehensive financial management. """ type Payment { """ Unique system identifier for the payment record. Primary key used to reference this payment throughout the system and for payment tracking operations. """ id: ID! """ Authenticated user identifier for the payment. References the logged-in user who initiated this payment. Used for user-specific payment history and account management. Must be a positive integer when provided. """ userId: Int """ Anonymous user identifier for guest payments. References the guest user session for payments made without authentication. Used for guest checkout tracking and order management. Must be a positive integer when provided. """ anonymousId: Int """ External payment service provider identifier. Unique payment reference provided by the Payment Service Provider (PSP) for tracking and reconciliation. Used for payment status updates and transaction matching. Maximum length of 255 characters. Must be unique across all payments. """ paymentId: String """ Order identifier associated with this payment. References the specific order that this payment is intended to fulfill. Used for order-payment relationship tracking and fulfillment processing. Must be a positive integer. """ orderId: Int! """ Payment amount in smallest currency unit (cents). The total amount to be paid expressed in the smallest denomination of the currency (e.g., cents for USD, pence for GBP). Used for precise financial calculations. Must be a positive integer. """ amount: Int! """ Payment currency code in ISO 4217 format. Three-letter currency code (e.g., USD, EUR, GBP) following ISO 4217 standard. Used for currency conversion and financial reporting. Must be exactly 3 uppercase letters. """ currency: String! """ Payment method identifier used by the payment processor. Specific payment method code used by the Payment Service Provider for processing this transaction (e.g., 'credit_card', 'paypal', 'bank_transfer'). Maximum length of 100 characters. """ method: String! """Current payment processing status""" status: PaymentStatuses! """ Collection of transactions associated with this payment for detailed financial tracking """ transactions: [Transaction!] """Timestamp when the payment record was initially created""" createdAt: DateTime! """Identifier of the user who created the payment record""" createdBy: String """Timestamp when the payment record was last modified""" lastModifiedAt: DateTime! """Identifier of the user who last modified the payment record""" lastModifiedBy: String } """ Paginated response containing payment records with navigation metadata. Includes payment data along with pagination controls for efficient data browsing and client-side state management. Supports response expansion to include related transaction details. """ type PaymentsResponse { """List of items of type Payment""" items: [Payment!]! """Total number of items found""" itemsFound: Int! """The amount of items to show per page""" offset: Int! """The current page""" page: Int! """Total amount of pages""" pages: Int! """Start position of the current page""" start: Int! """End position of the current page""" end: Int! } """ Search and pagination parameters for retrieving payment records. Controls the pagination behavior and response expansion options for payment queries. Provides efficient data retrieval with configurable page sizes and optional related data inclusion. """ input PaymentsSearchInput { """ Page number for pagination navigation starting from 1. Specifies which page of results to retrieve when the total number of payments exceeds the offset limit. Minimum value is 1. Defaults to 1 if not specified. """ page: Int = 1 """ Number of items per page for controlling response size. Controls the size of each page in the paginated response to manage data volume and performance. Minimum value is 1, maximum value is 100. Defaults to 12 if not specified. """ offset: Int = 12 } """ Payment processing status indicating the current stage of payment lifecycle and available business actions """ enum PaymentStatuses { """ Payment created but not yet processed by payment service provider - awaiting initial processing """ OPEN """ Payment submitted to payment service provider and awaiting processing response """ PENDING """ Payment authorized but funds not yet captured - authorization can be captured or cancelled """ AUTHORIZED """Payment cancelled before completion - no funds were processed""" CANCELLED """ Payment authorization expired without capture - funds are no longer reserved """ EXPIRED """ Payment processing failed due to insufficient funds, declined card, or other payment issues """ FAILED """ Payment successfully completed and funds captured - order can be fulfilled """ PAID """ Payment refunded partially or fully to customer - funds returned to original payment method """ REFUNDED """ Payment disputed and charged back by customer's financial institution - funds forcibly reversed """ CHARGEBACK } """ Payment method configuration for checkout and payment processing. Represents a payment option available to customers during checkout including configuration details, branding, and integration settings. Used for payment processing, checkout flows, and financial transaction management. """ type PayMethod { """ Unique identifier for the payment method. Primary key used to reference this payment method throughout the system for payment processing operations and checkout workflows. """ id: Int! """ Payment method creation timestamp. Date and time when this payment method was initially created in the system, used for auditing and payment method lifecycle tracking. """ createdAt: DateTime! """ Payment method last modification timestamp. Date and time when any payment method configuration was last updated, used for change tracking and synchronization purposes. """ lastModifiedAt: DateTime! """ Localized payment method names for different languages. Collection of payment method names in various languages for international checkout experiences and multilingual storefronts. Each language must be unique within the collection. """ names: [LocalizedString!]! """ External system identifier for payment processing integration. Unique code used to identify this payment method in external payment processors, gateways, and financial systems. Must follow SCREAMING_SNAKE_CASE format and be unique across all payment methods. Maximum 64 characters. """ externalCode: String! """ Payment method logo URL for checkout display. URL pointing to the payment method's logo or icon, used for visual identification in checkout interfaces and payment selection screens. Maximum 255 characters. """ logo: String } """ Input for creating a new payment method. Contains all necessary information to establish a new payment method including localized names, external system integration codes, and branding elements. Used for setting up new payment options in checkout flows. """ input PayMethodCreateInput { """ Localized payment method names for different languages. Collection of payment method names in various languages for international checkout experiences. Each language must be unique and follow ISO 639-1 format. At least one localized name is required. """ names: [LocalizedStringInput!]! = [] """ External system identifier in SCREAMING_SNAKE_CASE format. Unique code used to identify this payment method in external payment processors and gateways. Must follow SCREAMING_SNAKE_CASE convention and be unique across all payment methods. Maximum 64 characters. """ externalCode: String! """ Payment method logo URL for checkout display. Optional URL pointing to the payment method's logo or icon for visual identification in checkout interfaces. Must be a valid URL format with maximum 255 characters. """ logo: String } """ Search criteria for filtering payment methods with comprehensive options. Provides flexible search capabilities for payment method discovery including date range filtering, identifier-based searches, and custom sorting. Supports pagination for large payment method catalogs. """ input PayMethodSearchInput { """ Page number for pagination. Specifies which page of results to return. Must be a positive integer (minimum value: 1). Default is page 1. """ page: Int = 1 """ Number of items per page. Controls how many payment methods are returned in each page. Must be a positive integer (minimum value: 1). Default is 12 payment methods per page. """ offset: Int = 12 """ Filter by payment method creation date range. Allows filtering payment methods based on when they were originally created in the system. Useful for finding recently added payment methods. """ createdAt: DateSearchInput """ Filter by payment method last modification date range. Allows filtering payment methods based on when they were last updated. Useful for finding recently modified payment methods or tracking changes. """ lastModifiedAt: DateSearchInput """ Filter by specific payment method identifiers. Returns only payment methods whose IDs match the provided list. Each ID must be a positive integer (minimum value: 1) and unique within the array. Useful for retrieving specific payment methods or bulk operations. """ ids: [Int!] """ Filter by external system codes. Returns payment methods matching any of the specified external codes used for payment processor integration. Each code must follow SCREAMING_SNAKE_CASE format (pattern: ^([A-Z]*_?[A-Z]*)*$), have maximum length of 64 characters, and be unique within the array. """ externalCodes: [String!] """ Sorting configuration for result ordering. Defines how the payment method results should be sorted, supporting multiple sort criteria with different directions (ascending/descending). Each sort input must be unique within the array. """ sortInputs: [PayMethodSortInput!] } """Available fields for sorting payment method results""" enum PayMethodSortField { """Sort by payment method unique identifier""" ID """Sort by external system integration code""" EXTERNAL_CODE """Sort by last modification timestamp""" LAST_MODIFIED_AT """Sort by creation timestamp""" CREATED_AT } """ Sorting configuration for payment method results. Defines a single sort criterion with field and direction for ordering payment method query results. """ input PayMethodSortInput { """ Field to sort payment methods by. Specifies which payment method property to use for sorting the results. """ field: PayMethodSortField! """ Sort order direction. Specifies whether to sort in ascending or descending order. Defaults to ascending order. """ order: SortOrder! = asc } """ Paginated response containing payment methods and pagination metadata. Provides a structured response for payment method queries including the matching results and comprehensive pagination information for efficient data navigation. """ type PayMethodsResponse { """List of items of type PayMethod""" items: [PayMethod!]! """Total number of items found""" itemsFound: Int! """The amount of items to show per page""" offset: Int! """The current page""" page: Int! """Total amount of pages""" pages: Int! """Start position of the current page""" start: Int! """End position of the current page""" end: Int! } """ Input for updating an existing payment method with partial data. Allows partial updates of payment method properties including localized names, external integration codes, and branding elements. Only provided fields will be updated, others remain unchanged. Validation constraints: - Names array must contain unique languages if provided (minimum 1 item) - External code must follow SCREAMING_SNAKE_CASE format and be unique (maximum 64 characters) - Logo URL must be valid if provided (maximum 255 characters) """ input PayMethodUpdateInput { """ Localized payment method names for different languages. Collection of payment method names in various languages for international checkout experiences. Each language must be unique and follow ISO 639-1 format. At least one localized name is required. """ names: [LocalizedStringInput!] = [] """ External system identifier in SCREAMING_SNAKE_CASE format. Unique code used to identify this payment method in external payment processors and gateways. Must follow SCREAMING_SNAKE_CASE convention and be unique across all payment methods. Maximum 64 characters. """ externalCode: String """ Payment method logo URL for checkout display. Optional URL pointing to the payment method's logo or icon for visual identification in checkout interfaces. Must be a valid URL format with maximum 255 characters. """ logo: String } type Price { """Unique identifier for the price record""" id: String! """Timestamp when the price record was initially created""" createdAt: DateTime! """Timestamp when the price record was last updated""" lastModifiedAt: DateTime! """Product identifier for price association""" productId: Int! """ Unit quantity for the listed price. Defines how many units of the product are included in the listed price. For example, a value of 1 means the price is per single unit, while 12 might indicate the price is per dozen. """ per: Int! """ Base selling price for the product. This is the standard price used for pricing calculations before applying customer-specific discounts, volume pricing, or promotional offers. Serves as the foundation for all pricing logic. """ list: Float! costPrices: [CostPrice!] """ Manufacturer's recommended retail price (RRP). The price recommended by the manufacturer or supplier for retail sales. Used as a reference point for pricing decisions and can be displayed to customers as a comparison price. """ suggested: Float """ Physical store selling price. The price at which the product is sold in brick-and-mortar stores. May differ from online prices due to store-specific costs, regional pricing strategies, or channel-specific promotions. """ store: Float """ Volume discount calculation method. Defines how bulk discounts are applied: as a percentage reduction from the base price or as a fixed discounted price per unit. Determines the calculation logic for volume pricing. """ bulkPriceDiscountType: PriceDiscountType! """Default tax code""" defaultTaxCode: Taxcode! """ Frontend price display configuration. Controls how the price should be presented in user interfaces. Options include standard display, promotional formatting, or special pricing indicators. Default value is 'DEFAULT'. """ display: PriceDisplay cost: Float @deprecated(reason: "Deprecated in favor of using costPrices (quantity 1)") } input PriceCalculateDefaultInput { """Product id""" productIds: [Int!]! """Tax zone""" taxZone: String! = "NL" } """ Price calculation parameters for comprehensive product pricing with customer context. Contains all necessary information to determine the appropriate pricing including customer identification, product details, quantity, and geographic context. Used for real-time price calculations and pricing displays. """ input PriceCalculateInput { """ Unique identifier of the product for price calculation. Must be a valid product ID that exists in the system. Used to retrieve base pricing, cost information, and applicable discounts for the specified product. """ productId: Int! """ Quantity of the product for price calculation. Minimum value is 1. Used to determine volume discounts, bulk pricing tiers, and quantity-based promotional offers. Higher quantities may result in better pricing. """ quantity: Int! = 1 """ Geographic tax zone for tax calculations and regional pricing. Must be a valid 2-character country code. Used to determine applicable tax rates, regional pricing rules, and zone-specific discounts. Defaults to "NL" if not specified. """ taxZone: String! = "NL" """ Contact identifier for personalized pricing calculations. When provided, enables contact-specific pricing, pricesheet assignments, and personalized discounts. Cannot be used together with customerId. Use 0 or omit for anonymous pricing. """ contactId: Int = 0 """Customer id to calculate the price for""" customerId: Int = 0 """Company id to calculate the price for""" companyId: Int = 0 } input PriceCalculateProductInput { """ Geographic tax zone for tax calculations and regional pricing. Must be a valid 2-character country code. Used to determine applicable tax rates, regional pricing rules, and zone-specific discounts. Defaults to "NL" if not specified. """ taxZone: String = "NL" """ Contact identifier for personalized pricing calculations. When provided, enables contact-specific pricing, pricesheet assignments, and personalized discounts. Cannot be used together with customerId. Use 0 or omit for anonymous pricing. """ contactId: Int = 0 """Customer id to calculate the price for""" customerId: Int = 0 """Company id to calculate the price for""" companyId: Int = 0 } input PriceCreateInput { """Product identifier for price association""" productId: Int! """ Unit quantity for the listed price. Defines how many units of the product are included in the listed price. For example, a value of 1 means the price is per single unit, while 12 might indicate the price is per dozen. """ per: Int """ Base selling price for the product. This is the standard price used for pricing calculations before applying customer-specific discounts, volume pricing, or promotional offers. Serves as the foundation for all pricing logic. """ list: Float! """ Physical store selling price. The price at which the product is sold in brick-and-mortar stores. May differ from online prices due to store-specific costs, regional pricing strategies, or channel-specific promotions. """ store: Float """ Manufacturer's recommended retail price (RRP). The price recommended by the manufacturer or supplier for retail sales. Used as a reference point for pricing decisions and can be displayed to customers as a comparison price. """ suggested: Float """ Product acquisition cost for margin calculations. The cost incurred to acquire or produce the product, used for profit margin analysis, pricing decisions, and financial reporting. Essential for maintaining profitable pricing strategies. """ cost: Float """ Volume discount calculation method. Defines how bulk discounts are applied: as a percentage reduction from the base price or as a fixed discounted price per unit. Determines the calculation logic for volume pricing. One of: [costpriceplus, listpricemin, netprice] """ bulkDiscountType: PriceDiscountType """ Standard tax classification for the product. The default tax code applied to this product for tax calculations. Can be overridden by zone-specific tax codes or customer-specific tax settings. One of: [H, L, N, M, CUST] """ defaultTaxCode: Taxcode! """ Frontend price display configuration. Controls how the price should be presented in user interfaces. Options include standard display, promotional formatting, or special pricing indicators. Default value is 'DEFAULT'. """ display: PriceDisplay! = DEFAULT } input PriceCsvInput { """CSV file""" file: Upload! """List of Price mappings""" mappings: [PriceCsvMapping!] } input PriceCsvMapping { """The name of the column in the CSV file""" csvHeader: String! """The name of the field in Propeller eCommerce Platform""" fieldName: PriceFieldName! } """ The type of discount calculation used to calculate the price for a product """ enum PriceDiscountType { """Cost price plus a percentage""" COST_PRICE_PLUS """List price minus a percentage""" LIST_PRICE_MIN """Fixed amount""" NET_PRICE } """ Frontend price display configuration options for user interface presentation. Defines how prices should be formatted and displayed in customer-facing interfaces. Each option provides specific formatting rules for different pricing scenarios and promotional displays. """ enum PriceDisplay { """ Display starting price format. Shows "Price from [Cheapest price]" format, typically used for products with multiple pricing tiers or volume discounts to indicate the lowest available price. """ FROM """ Display promotional pricing format with old and new prices. Shows "Old price [Suggested price] new price [Sale price]" format, used for promotional displays to highlight savings and price reductions. """ FROM_FOR """ Display comparative pricing format. Shows "List price [Suggested price] our price [Sale price]" format, used to compare manufacturer's suggested price with the actual selling price. """ LISTPRICE_OURPRICE """ Display package-based pricing format. Shows "Price [Sale price/Order unit] per [Order UOM]" format, used for products sold in packages or bulk quantities to show per-unit pricing. """ PACKAGE """ Display unit of measure pricing format. Shows "Price from [Cheapest price/Package unit] per [Package UOM]" format, used to display pricing per unit of measure for comparison shopping. """ PER_UOM """ Display price on request format. Shows "Price on request" message instead of actual pricing, used for custom products, high-value items, or when pricing requires consultation. """ ON_REQUEST """ Standard price display format. Uses the default pricing display without special formatting. Shows the standard price information as configured in the base price settings. """ DEFAULT } """ Classification of price elements used in pricing calculations and display logic. Defines the type of pricing component being processed, enabling proper handling of different price sources and calculation methods in the pricing engine. """ enum PriceElementType { """ Volume-based cost pricing tier. Represents cost prices that apply to specific quantity ranges, enabling volume purchasing advantages and margin calculations based on purchase quantities. """ BULK_COST_PRICE """ Volume-based sales pricing tier. Represents sales prices that apply to specific quantity ranges, enabling volume discounts and tiered pricing strategies for customer purchases. """ BULK_SALES_PRICE """ Pricesheet-based pricing context. Represents pricing derived from pricesheet assignments, enabling customer-specific pricing and channel-based pricing strategies. """ PRICESHEET """ Default base pricing. Represents standard pricing without special conditions, used as fallback when no specific pricing rules apply or as base price for calculations. """ DEFAULT } """Price field name""" enum PriceFieldName { """ [Optional][Integer] An id of a product. Use this or the combination of SOURCE_ID and SOURCE_NAME. """ PRODUCT_ID """ [Optional][Integer] Unit quantity for the listed price. Defines how many units of the product are included in the listed price. For example, a value of 1 means the price is per single unit, while 12 might indicate the price is per dozen. """ PER """ [Required][Number][5 Decimal Places] Base selling price for the product. This is the standard price used for pricing calculations before applying customer-specific discounts, volume pricing, or promotional offers. Serves as the foundation for all pricing logic. """ LIST """ [Optional][Number][5 Decimal Places] Physical store selling price. The price at which the product is sold in brick-and-mortar stores. May differ from online prices due to store-specific costs, regional pricing strategies, or channel-specific promotions. """ STORE """ [Optional][Number][5 Decimal Places] Product acquisition cost for margin calculations. The cost incurred to acquire or produce the product, used for profit margin analysis, pricing decisions, and financial reporting. Essential for maintaining profitable pricing strategies. """ COST """ [Optional][Number][5 Decimal Places] Manufacturer's recommended retail price (RRP). The price recommended by the manufacturer or supplier for retail sales. Used as a reference point for pricing decisions and can be displayed to customers as a comparison price. """ SUGGESTED """ [Optional][Enum][costpriceplus, listpricemin, netprice]. Volume discount calculation method. Defines how bulk discounts are applied: as a percentage reduction from the base price or as a fixed discounted price per unit. Determines the calculation logic for volume pricing. Default is listpricemin """ BULK_DISCOUNT_TYPE """ [Required][Enum][H, L, N, M, CUST]. Standard tax classification for the product. The default tax code applied to this product for tax calculations. Can be overridden by zone-specific tax codes or customer-specific tax settings. Default is H """ DEFAULT_TAX_CODE """ [Optional][Enum][FROM, FROM_FOR, LISTPRICE_OURPRICE, PACKAGE, PER_UOM, ON_REQUEST, DEFAULT]. Frontend price display configuration. Controls how the price should be presented in user interfaces. Options include standard display, promotional formatting, or special pricing indicators. Default value is 'DEFAULT'. """ DISPLAY """ [Optional][String] The id of the source. Use in combination with SOURCE_NAME, or alternatively use PRODUCT_ID. """ SOURCE_ID """ [Optional][String] The name of the source. Use in combination with SOURCE_ID, or alternatively use PRODUCT_ID. """ SOURCE_NAME } """Indicates where the price is calculated.""" enum PriceMode { """ Price is calculated based on product price/postage rules set in Propeller. """ PLATFORM """Price is set externally""" EXTERNAL } type PriceResponse { """List of items of type Price""" items: [Price!]! """Total number of items found""" itemsFound: Int! """The amount of items to show per page""" offset: Int! """The current page""" page: Int! """Total amount of pages""" pages: Int! """Start position of the current page""" start: Int! """End position of the current page""" end: Int! } """ Search criteria for filtering price records. Provides comprehensive filtering options for price searches including product associations, price ranges, effective dates, and pricesheet assignments. Supports pagination and sorting for efficient data management. """ input PriceSearchInput { """ Page number for pagination. Specifies which page of results to return. Must be 1 or greater. """ page: Int = 1 """ Number of items per page. Controls how many price records are returned in each page. Must be 1 or greater. """ offset: Int = 12 """ Filter by price creation date range. Allows filtering prices based on when they were originally created. Useful for finding prices created within specific time periods. """ createdAt: DateSearchInput """ Filter by last modification date range. Allows filtering prices based on when they were last updated. Useful for finding recently modified prices or tracking pricing changes. """ lastModifiedAt: DateSearchInput """ Filter by specific price record identifiers. Allows searching for specific price records using their unique UUID identifiers. Useful for retrieving multiple known price records in a single query. """ ids: [String!] """ Filter by product identifiers. Allows searching for price records associated with specific products. Useful for retrieving pricing information for multiple products in a single query. """ productIds: [Int!] """ Filter by unit quantity for pricing. Searches for prices with a specific 'per' value, which defines how many units are included in the listed price. For example, searching for 'per: 12' finds prices that are set per dozen. """ per: Int """ Filter by list price range. Searches for prices within specified list price ranges. List price is the base selling price used for pricing calculations before applying discounts or promotions. """ list: DecimalSearchInput """ Filter by cost price range. Searches for prices within specified cost price ranges. Cost price represents the acquisition cost for margin calculations and pricing decisions. """ cost: DecimalSearchInput """ Filter by suggested price range. Searches for prices within specified suggested price ranges. Suggested price is the manufacturer's recommended retail price (RRP) used as a reference point for pricing decisions. """ suggested: DecimalSearchInput """ Filter by store price range. Searches for prices within specified store price ranges. Store price is the selling price in physical stores, which may differ from online prices due to channel-specific strategies. """ store: DecimalSearchInput """ Filter by bulk discount calculation method. Searches for prices with a specific bulk discount type. Determines how volume discounts are calculated and applied to bulk purchases. """ bulkDiscountType: PriceDiscountType """ Sorting configuration for search results. Defines how the returned price records should be ordered. Multiple sort criteria can be specified to create complex sorting logic. """ sortInputs: [PriceSortInput!] } """ Pricesheet entity for customer-specific pricing strategies and discount management. Represents a collection of pricing rules, discounts, and customer assignments that define how products are priced for specific customer segments, regions, or business scenarios. """ type Pricesheet { """ Unique identifier for the pricesheet record. Primary key used for pricesheet management and customer assignment operations. """ id: String! """ Timestamp when the pricesheet record was initially created. Used for audit trails and pricesheet lifecycle management. """ createdAt: DateTime! """ Timestamp when the pricesheet record was last updated. Essential for tracking pricesheet changes and synchronization. """ lastModifiedAt: DateTime! """ Unique pricesheet code for identification and reference. Human-readable identifier used for pricesheet management and integration with external systems. Must be unique within the tenant. Maximum length is 64 characters. """ code: String! """ Localized display names for the pricesheet. Multi-language support for pricesheet names, allowing different names for different locales. Used for user interface display and customer-facing documentation. """ names: [LocalizedString!] """ Localized descriptions for the pricesheet. Multi-language support for detailed pricesheet descriptions, providing context and usage information in different locales. Used for documentation and customer communication. """ descriptions: [LocalizedString!] """ Pricesheet priority for conflict resolution. Numeric priority used when multiple pricesheets apply to the same customer or scenario. Higher numbers indicate higher priority. Default value is 1. Minimum value is 1. """ priority: Int! """ Read-only status preventing modifications. When true, the pricesheet cannot be modified through standard operations. Used for protecting system-generated or finalized pricesheets from accidental changes. """ readonly: Boolean! usergroups: [String!]! """Use contactsPaginated.""" contacts: [Contact!]! @deprecated(reason: "Use contactsPaginated.") contactsPaginated(input: PricesheetContactsSearchInput): ContactsResponse! """Use customersPaginated.""" customers: [Customer!]! @deprecated(reason: "Use customersPaginated.") customersPaginated(input: PricesheetCustomersSearchInput): CustomersResponse! """Use companiesPaginated.""" companies: [Company!]! @deprecated(reason: "Use companiesPaginated.") companiesPaginated(input: PricesheetCompaniesSearchInput): CompaniesResponse! } input PricesheetAssignInput { """Company ids""" companyIds: [Int!] """Contact ids""" contactIds: [Int!] """Customer ids""" customerIds: [Int!] """Usergroups""" usergroups: [String!] } input PricesheetCompaniesSearchInput { page: Int! = 1 offset: Int! = 12 } input PricesheetContactsSearchInput { page: Int! = 1 offset: Int! = 12 } """ Pricesheet creation data for establishing pricing strategies and customer segment management. Contains essential information to create pricesheet records including identification codes, localized names and descriptions, priority settings, and access controls. Pricesheets define pricing rules and customer assignments for targeted pricing strategies. """ input PricesheetCreateInput { """ Unique identifier code for the pricesheet. Alphanumeric code used to identify and reference the pricesheet across the system. Must be unique and is used for pricesheet management and customer assignments. """ code: String! """ Localized display names for the pricesheet in multiple languages. Array of language-specific names that provide user-friendly display text for the pricesheet. Each entry must have a unique language code and corresponding display value. """ names: [LocalizedStringInput!] """ Localized descriptions for the pricesheet in multiple languages. Array of language-specific descriptions that provide detailed information about the pricesheet's purpose and usage. Each entry must have a unique language code and corresponding description text. """ descriptions: [LocalizedStringInput!] """ Priority level for pricesheet application order. Integer value determining the order in which pricesheets are evaluated when multiple pricesheets apply to the same customer. Higher values indicate higher priority. """ priority: Int! = 1 """ Read-only access control flag for pricesheet protection. When set to true, allows front-end to prevent modification or deletion of the pricesheet. Used to protect critical pricing configurations from accidental changes. """ readonly: Boolean! = false } input PricesheetCsvInput { """CSV file""" file: Upload! """List of Pricesheet mappings""" mappings: [PricesheetCsvMapping!] } input PricesheetCsvMapping { """The name of the column in the CSV file""" csvHeader: String! """The name of the field in Propeller eCommerce Platform""" fieldName: PricesheetFieldName! } input PricesheetCustomersSearchInput { page: Int! = 1 offset: Int! = 12 } """ Field names for pricesheet data import and validation operations. Defines the available field identifiers for pricesheet creation and update operations, enabling structured data import and field-level validation for pricesheet configurations. """ enum PricesheetFieldName { """[Required][String] Pricesheet code.""" CODE """ [Optional][String] The language of the pricesheet's name and/or description """ LANGUAGE """[Optional][String] Pricesheet name.""" NAME """[Optional][String] Pricesheet description.""" DESCRIPTION """[Optional][Integer] Pricesheet priority. Default value is: 1""" PRIORITY """[Optional][Boolean] Pricesheet readonly. Default value is: false""" READONLY } type PricesheetResponse { """List of items of type Pricesheet""" items: [Pricesheet!]! """Total number of items found""" itemsFound: Int! """The amount of items to show per page""" offset: Int! """The current page""" page: Int! """Total amount of pages""" pages: Int! """Start position of the current page""" start: Int! """End position of the current page""" end: Int! } input PricesheetSearchInput { """Pagination page number""" page: Int = 1 """Pagination offset number""" offset: Int = 12 """Search by date created""" createdAt: DateSearchInput """Search by date changed""" lastModifiedAt: DateSearchInput """Search by ids""" ids: [String!] """Search by contact ids""" contactIds: [Int!] """Search by customer ids""" customerIds: [Int!] """Search by company ids""" companyIds: [Int!] """Search by pricesheet code""" codes: [String!] """Search by pricesheet name""" names: [String!] """Search by pricesheet priority""" priority: NumberSearchInput """Search by pricesheet readonly""" readonly: Boolean """Inputs to sort by""" sortInputs: [PricesheetSortInput!] } """ Input parameters for retrieving effective pricesheets for a customer or contact. Retrieves all pricesheets that apply to a specific user, including directly assigned pricesheets and pricesheets linked via usergroups, ordered by priority. """ input PricesheetsEffectiveInput { """ Contact identifier to retrieve effective pricesheets for. Cannot be used together with customerId. When provided, retrieves all pricesheets assigned to this contact, their company (if companyId is specified or default company), and their usergroups. """ contactId: Int """ Company identifier to retrieve company-specific pricesheets. Must be used together with contactId. When omitted, the contact's default company will be used. This parameter is ignored when customerId is provided. """ companyId: Int """ Customer identifier to retrieve effective pricesheets for. Cannot be used together with contactId or companyId. When provided, retrieves all pricesheets assigned to this customer and their usergroups. """ customerId: Int """ Number of pricesheet records to return per page. Minimum value is 1. Controls the size of each page in paginated results for efficient data loading. """ offset: Int = 12 """ Page number for pagination results. Minimum value is 1. Used with offset to control result pagination for large pricesheet datasets. """ page: Int = 1 } """ Pagination and filtering parameters for field resolver effective pricesheets. """ input PricesheetsEffectivePaginationInput { """ Company identifier to retrieve company-specific pricesheets. Only used with Contact field resolver. When omitted, the contact's default company will be used. """ companyId: Int """ Number of pricesheet records to return per page. Minimum value is 1. Controls the size of each page in paginated results for efficient data loading. """ offset: Int = 12 """ Page number for pagination results. Minimum value is 1. Used with offset to control result pagination for large pricesheet datasets. """ page: Int = 1 } """Available fields for sorting pricesheet search results""" enum PricesheetSortField { """Sort by pricesheet record ID""" ID """Sort by pricesheet code alphabetically""" CODE """Sort by pricesheet name alphabetically""" NAME """Sort by pricesheet description alphabetically""" DESCRIPTION """Sort by pricesheet priority numerically""" PRIORITY """Sort by pricesheet type""" TYPE """Sort by read-only status""" READONLY """Sort by the date when the pricesheet was last modified""" LAST_MODIFIED_AT """Sort by the date when the pricesheet was created""" CREATED_AT } """Defines the sorting options for pricesheet queries.""" input PricesheetSortInput { """The field to sort the pricesheets by.""" field: PricesheetSortField! """The direction to sort the results (ascending or descending).""" order: SortOrder! = ASC } input PricesheetUnassignInput { """Company ids""" companyIds: [Int!] """Contact ids""" contactIds: [Int!] """Customer ids""" customerIds: [Int!] """Usergroups""" usergroups: [String!] } """ Pricesheet update data for modifying existing pricesheet configurations. Contains optional fields for updating pricesheet information including codes, names, descriptions, priority settings, and access controls. All fields are optional for partial updates and maintain existing values when not provided. """ input PricesheetUpdateInput { """ Unique identifier code for the pricesheet. Alphanumeric code used to identify and reference the pricesheet across the system. Must be unique and is used for pricesheet management and customer assignments. """ code: String """ Localized display names for the pricesheet in multiple languages. Array of language-specific names that provide user-friendly display text for the pricesheet. Each entry must have a unique language code and corresponding display value. """ names: [LocalizedStringInput!] """ Localized descriptions for the pricesheet in multiple languages. Array of language-specific descriptions that provide detailed information about the pricesheet's purpose and usage. Each entry must have a unique language code and corresponding description text. """ descriptions: [LocalizedStringInput!] """ Priority level for pricesheet application order. Integer value determining the order in which pricesheets are evaluated when multiple pricesheets apply to the same customer. Higher values indicate higher priority. """ priority: Int = 1 """ Read-only access control flag for pricesheet protection. When set to true, allows front-end to prevent modification or deletion of the pricesheet. Used to protect critical pricing configurations from accidental changes. """ readonly: Boolean = false } """Available fields for sorting price search results""" enum PriceSortField { """Sort by price record ID""" ID """Sort by associated product ID numerically""" PRODUCT_ID """Sort by unit quantity for the price""" PRICE_PER """Sort by base list price amount""" PRICE """Sort by manufacturer's suggested retail price""" SUGGESTED_PRICE """Sort by physical store price""" STORE_PRICE """Sort by bulk discount calculation method""" BULK_PRICE_DISCOUNT_TYPE """Sort by default tax classification""" DEFAULT_TAX_CODE """Sort by the date when the price was last modified""" LAST_MODIFIED_AT """Sort by the date when the price was created""" CREATED_AT """Sort by cost price (deprecated)""" COST_PRICE @deprecated(reason: "Deprecated in favor of price.costPrices. Price query itself can't be sorted on price.cost. Input will be ignored.") } """Defines the sorting options for price queries.""" input PriceSortInput { """The field to sort the prices by.""" field: PriceSortField! """The direction to sort the results (ascending or descending).""" order: SortOrder! = ASC } """ Price update data for modifying existing price records. Contains optional fields for updating price information including pricing values, discount types, tax codes, and display settings. Product ID cannot be changed after creation. All fields are optional for partial updates. """ input PriceUpdateInput { """ Unit quantity for the listed price. Defines how many units of the product are included in the listed price. For example, a value of 1 means the price is per single unit, while 12 might indicate the price is per dozen. """ per: Int """ Base selling price for the product. This is the standard price used for pricing calculations before applying customer-specific discounts, volume pricing, or promotional offers. Serves as the foundation for all pricing logic. """ list: Float """ Physical store selling price. The price at which the product is sold in brick-and-mortar stores. May differ from online prices due to store-specific costs, regional pricing strategies, or channel-specific promotions. """ store: Float """ Manufacturer's recommended retail price (RRP). The price recommended by the manufacturer or supplier for retail sales. Used as a reference point for pricing decisions and can be displayed to customers as a comparison price. """ suggested: Float """ Product acquisition cost for margin calculations. The cost incurred to acquire or produce the product, used for profit margin analysis, pricing decisions, and financial reporting. Essential for maintaining profitable pricing strategies. """ cost: Float """ Volume discount calculation method. Defines how bulk discounts are applied: as a percentage reduction from the base price or as a fixed discounted price per unit. Determines the calculation logic for volume pricing. One of: [costpriceplus, listpricemin, netprice] """ bulkDiscountType: PriceDiscountType """ Standard tax classification for the product. The default tax code applied to this product for tax calculations. Can be overridden by zone-specific tax codes or customer-specific tax settings. One of: [H, L, N, M, CUST] """ defaultTaxCode: Taxcode """ Frontend price display configuration. Controls how the price should be presented in user interfaces. Options include standard display, promotional formatting, or special pricing indicators. Default value is 'DEFAULT'. """ display: PriceDisplay = DEFAULT } """ Product entity representing items in the product catalog. External entity from the product service that provides basic product identification and categorization. Used as a reference for product-specific attributes and relationships within the attribute system. """ type Product implements IResource & IBaseProduct & IProduct { """Legacy ID (same as entityId)""" id: Int! """ Numeric product identifier retained for compatibility with legacy integrations. """ productId: Int! """Default category ID for federation""" categoryId: Int! """Lists attributes for this product based on the search input.""" attributes(input: AttributeResultSearchInput): AttributeResultResponse """Class ID for federation compatibility (same as productId)""" classId: Int! """ Bundles that contain this product. List of all bundles where this product is included as an item, useful for cross-selling and bundle recommendations. """ bundles( """ Tax zone for pricing calculations. Geographic tax zone code used to calculate accurate bundle pricing including applicable taxes. Must be exactly 2 characters representing a country code. Defaults to 'NL' if not specified. """ taxZone: String = "NL" ): [Bundle!] """ Indicates whether this product serves as a leader item in any bundle. Returns YesNo.Y if the product is designated as the leader item in at least one bundle, YesNo.N otherwise. Leader items typically drive bundle pricing and discount calculations. """ isBundleLeader: YesNo! """ Indicates whether this product is included in any bundle. Returns YesNo.Y if the product is part of at least one bundle (either as a leader or regular item), YesNo.N otherwise. Useful for showing bundle availability indicators on product pages. """ hasBundle: YesNo! """ Collection of favorite lists that contain this product. Returns paginated results of all favorite lists where this product has been added. Useful for understanding product popularity and usage patterns. **Response Structure**: - Paginated list of favorite lists containing this product - Complete favorite list metadata - Owner information (company, contact, or customer) - Creation and modification timestamps **Analytics Capabilities**: - Product popularity tracking - Usage pattern analysis - Cross-list product relationships - Owner preference insights **Use Cases**: - Product recommendation systems - Popular item identification - Cross-selling opportunities - Inventory demand forecasting """ favoriteLists(input: FavoriteListsSearchInput): FavoriteListsResponse """ Product inventory information including stock levels and availability. Returns comprehensive inventory data for the product including stock balances across all locations, availability status, and inventory movement history. Used for stock management and availability calculations. """ inventory: ProductInventory! """Product media images""" mediaImages( """Product media images search options""" search: MediaImageProductSearchInput = {page: 1, offset: 12} ): PaginatedMediaImageResponse @deprecated(reason: "Deprecated in favor of `media.images`") """Product media videos""" mediaVideos( """Product media videos search options""" search: MediaVideoProductSearchInput = {page: 1, offset: 12} ): PaginatedMediaVideoResponse @deprecated(reason: "Deprecated in favor of `media.videos`") """Product media documents""" mediaDocuments( """Product media documents search options""" search: MediaDocumentProductSearchInput = {page: 1, offset: 12} ): PaginatedMediaDocumentResponse @deprecated(reason: "Deprecated in favor of `media.documents`") """Product media images""" media: ProductMedia """ Order lists that include this product for bulk ordering operations. Returns a paginated collection of order lists where this product has been assigned. For POSITIVE order lists: Users/companies assigned to these lists can see and order this product. For NEGATIVE order lists: Users/companies assigned to these lists cannot see or order this product. Results can be filtered using the input parameter for more specific queries. """ orderlists( """ Search and filtering criteria for order lists that include this product. Filters the results to show only order lists where this specific product has been assigned. For POSITIVE order lists: Users assigned to these lists can see and order this product. For NEGATIVE order lists: Users assigned to these lists cannot see or order this product. All standard search criteria can be applied in addition to the product-specific filtering. If not provided, returns all order lists that include this product with default pagination settings. Validation: All provided search criteria must be valid according to their respective field requirements. """ input: OrderlistSearchInput ): OrderlistsResponse! price(input: PriceCalculateProductInput): ProductPrice priceData: Price bulkPrices(input: UserBulkPriceProductInput = {taxZone: "NL", contactId: 0, customerId: 0, companyId: 0}): [ProductPrice!] """ Legacy single-language hint retained for backward compatibility; use the localized fields instead. """ language: String @deprecated(reason: "No longer used, defaults to 'NL'") """ Deprecated: classification of the record. Use the `type` field instead. """ class: ProductClass! @deprecated(reason: "Use 'type' field instead. This field will be removed in a future version.") """Hides the record from public catalog and search surfaces when set.""" hidden: YesNo! """Globally unique identifier for the product or cluster.""" uuid: ID! """ Discriminator that distinguishes between a product and a cluster within the shared catalogue. """ type: ProductClass! """ Stock keeping unit. Uniquely identifies a product within the catalogue. """ sku: String! """ Relative ranking used when ordering records; higher values surface first. """ priority: Int """Identifiers of every category the product belongs to.""" categoryIds: [Int!]! """ The default language for this product or cluster, this is the language to fall back too, when there is no translation available in a specific language. """ defaultLanguage: String! @deprecated(reason: "No longer used, defaults to 'NL'") """ Localized names shown to end users in catalog and search surfaces. The catalogue's default language must be present. """ names( """Two-letter ISO 639-1 language code that filters the localized names.""" language: String ): [LocalizedString!]! """Localized long-form descriptions shown on product detail surfaces.""" descriptions( """ Two-letter ISO 639-1 language code that filters the localized descriptions. """ language: String ): [LocalizedString!]! """Localized short descriptions surfaced in listings and tiles.""" shortDescriptions( """ Two-letter ISO 639-1 language code that filters the localized short descriptions. """ language: String ): [LocalizedString!]! """ URL-friendly identifiers, one per language, used in human-readable links. """ slugs( """Two-letter ISO 639-1 language code that filters the localized slugs.""" language: String ): [LocalizedString!]! """Localized short labels shown when the full name is too long.""" shortNames( """ Two-letter ISO 639-1 language code that filters the localized short labels. """ language: String ): [LocalizedString!]! """Localized titles surfaced in search engine result pages.""" metadataTitles( """ Two-letter ISO 639-1 language code that filters the localized metadata titles. """ language: String ): [LocalizedString!]! """Localized descriptive snippets surfaced in search engine result pages.""" metadataDescriptions( """ Two-letter ISO 639-1 language code that filters the localized metadata descriptions. """ language: String ): [LocalizedString!]! """ Localized keyword lists used by search engines, supplied as comma-separated values. """ metadataKeywords( """ Two-letter ISO 639-1 language code that filters the localized metadata keywords. """ language: String ): [LocalizedString!]! """ Localized canonical URLs that search engines should treat as the authoritative location. """ metadataCanonicalUrls( """ Two-letter ISO 639-1 language code that filters the localized canonical URLs. """ language: String ): [LocalizedString!]! """ Pairs of external system names and the identifiers each system assigned to the record. """ sources: [Source!]! """Timestamp marking when the record was created, in UTC ISO 8601 format.""" createdAt: DateTime! """ Timestamp marking the last modification of the record, in UTC ISO 8601 format. """ lastModifiedAt: DateTime! """ Single-language short label shown when the full name is too long. Superseded by the localized short names field. """ shortName: String! @deprecated(reason: "Use shortNames instead") """ Localized keywords used by search ranking. Supplied as comma-separated lists per language. """ keywords( """ Two-letter ISO 639-1 language code that filters the localized keywords. """ language: String ): [LocalizedString!]! """ Localized custom keywords appended to the search index in addition to the standard keywords. """ customKeywords( """ Two-letter ISO 639-1 language code that filters the localized custom keywords. """ language: String ): [LocalizedString!]! """Localized descriptions of the product packaging.""" packageDescriptions( """ Two-letter ISO 639-1 language code that filters the localized packaging descriptions. """ language: String ): [LocalizedString!]! """Lifecycle status of the product within the catalogue.""" status: ProductStatus! """Name of the manufacturer that produced the product.""" manufacturer: String! """Name of the supplier that delivers the product.""" supplier: String! """Code assigned to the product by its manufacturer.""" manufacturerCode: String! """European Article Number barcode value.""" eanCode: String! """Code assigned to the product by its supplier.""" supplierCode: String! """ General-purpose barcode value for warehouse and point-of-sale scanning. """ barCode: String """Free-text status note that complements the structured status field.""" statusExtra: String """Indicates whether the product can currently be added to an order.""" orderable: YesNo! """ Indicates whether the product can be returned by the customer after purchase. """ returnable: YesNo! """ Distinguishes physical goods from digital ones for shipping and tax handling. """ physical: YesNo! """Type of packaging used to ship the product.""" package: String! """Unit of measurement for the contents of a single package.""" packageUnit: String! """Quantity of the package unit contained in a single package.""" packageUnitQuantity: String! """Smallest quantity a customer may add to a single order line.""" minimumQuantity: Float! """Unit of measurement used when ordering and pricing the product.""" unit: Int! """Unit used by buyers when placing purchase orders.""" purchaseUnit: Int! """Smallest quantity that can be placed on a purchase order.""" purchaseMinimumQuantity: Int! """ Quantity that minimises ordering and holding costs for purchase orders. """ economicOrderQuantity: Int! """Classification used for turnover analysis and financial reporting.""" turnoverGroup: String """ Taxonomy code used to slot the product into external classification systems. """ taxonomy: String """Group used to apply shared pricing rules and discounts to the product.""" priceGroup: String """Earliest moment from which the product may be ordered.""" orderableFrom: DateTime """Latest moment until which the product may be ordered.""" orderableTo: DateTime """Date on which the product is released to the market.""" releaseDate: DateTime """Identifier of the cluster the product is assigned to, if any.""" clusterId: Int """Product width in cm""" width: Float """Product height in cm""" height: Float """Product depth in cm""" depth: Float """Product weight in kg""" weight: Float """Container class - whether product is in category or cluster""" containerClass: ProductContainerClass! """Offers attached to the product.""" offers: [ProductOffer!] @deprecated(reason: "Pricing and availability are managed through different fields; this field is preserved for federation compatibility and currently returns an empty list.") """ Default category assigned to the product. Returns null when the product has no default category or the default category does not match the supplied visibility filter. """ category( """ Restricts the default category to one matching the supplied visibility flag. """ hidden: YesNo ): Category """ Categories the product belongs to, with filtering, sorting and pagination support. """ categories( """ Filtering, sorting and pagination criteria for the product's categories. """ input: ProductCategorySearchInput ): CategoryResponse! """ Ancestor chain of the product's default category, from the root down to the category itself. """ categoryPath( """ Restricts the ancestor chain to categories matching the supplied visibility flag. """ hidden: YesNo ): [Category!]! """ Cross- and up-sell relationships in which the product participates, in either direction. """ crossUpsells( """Filtering and pagination criteria for the cross-upsell relationships.""" input: CrossupsellSearchInput ): CrossupsellsResponse! """ Cross- and up-sell relationships originating from the product. AUTH: Role=[product.OWNER,product.EDITOR,product.VIEWER] OR (('user is authenticated') AND ('userId if present in input matches JWT' AND 'companyId(s) if present in input matches JWT')) """ crossupsellsFrom( """Filtering and pagination criteria for the cross-upsell relationships.""" input: CrossupsellSearchInput ): CrossupsellsResponse! """ Cross- and up-sell relationships targeting the product. AUTH: Role=[product.OWNER,product.EDITOR,product.VIEWER] OR (('user is authenticated') AND ('userId if present in input matches JWT' AND 'companyId(s) if present in input matches JWT')) """ crossupsellsTo( """Filtering and pagination criteria for the cross-upsell relationships.""" input: CrossupsellSearchInput ): CrossupsellsResponse! """Cluster the product is attached to, if any.""" cluster( """Restricts the cluster to one matching the supplied visibility flag.""" hidden: Boolean ): Cluster """ Relationships that link the product to its categories, including the default-category flag. """ categoryRelations: [BaseProductCategoryRelationship!]! """ Retrieve all surcharges associated with this product. Returns a list of surcharges linked to the product with optional filtering capabilities. Used for determining additional fees applicable to the product during pricing calculations. Possible errors: - SURCHARGE_LIST_ERROR: Internal server error during surcharge retrieval - SURCHARGE_NOT_FOUND_ERROR: Product has no associated surcharges """ surcharges( """ Optional search criteria for filtering surcharges. Allows filtering by type, tax codes, activation status, and other criteria. If not provided, returns all surcharges associated with the product. """ input: SurchargeSearchInput ): [Surcharge!]! } """ Product-specific attribute containing custom properties and metadata for individual products. Extends the base product interface with attribute functionality. Used to store additional product information such as specifications, features, and custom properties that are not part of the standard product schema. """ type ProductAttribute implements Attribute { """ Unique identifier for this attribute instance. Auto-generated UUID that serves as the primary key for this specific attribute. Used to reference and manage individual attribute instances. """ id: String! """ The actual value data stored in this attribute. Contains the attribute value in the appropriate format based on the attribute description's type definition. The value structure varies depending on the attribute type (text, enum, color, etc.). """ value: AttributeValue! """ Timestamp when this attribute was originally created. Records the exact date and time when this attribute instance was first created in the system. Used for audit trails and data lifecycle management. """ createdAt: DateTime! """ Timestamp when this attribute was last modified. Records the most recent date and time when any changes were made to this attribute's value or configuration. Updated automatically on each modification. """ lastModifiedAt: DateTime! """ Identifier of the user who created this attribute. References the user account that originally created this attribute instance. May be 0 for system-generated attributes or when user information is not available. """ createdBy: Int """ Identifier of the user who last modified this attribute. References the user account that made the most recent changes to this attribute. May be 0 for system modifications or when user information is not available. """ lastModifiedBy: Int """ Retrieve the attribute description that defines this product attribute's schema and behavior. Returns the complete attribute description containing metadata, type definitions, display configuration, and localization settings. This description serves as the template that defines how this product attribute should behave and be presented. Essential for understanding attribute constraints, available operations, and presentation requirements for product-specific attributes that extend product information. """ attributeDescription: AttributeDescription """ Unique identifier of the product that owns this attribute. References the specific product in the product catalog that this attribute value is associated with. Used to establish the relationship between attributes and their parent products for product-specific configuration and management. """ productId: Int! } """ Error information for a product that failed to move during bulk move operation. Contains detailed error information including error codes, messages, and the affected product data. """ type ProductBulkMoveError { """ Error code indicating the type of error that occurred. Can be VALIDATION, DB_INSERT, or UNKNOWN. """ code: ProductBulkMoveErrorCode! """ List of error messages describing what went wrong. Provides detailed information about the failure to help with troubleshooting. """ messages: [String!]! """ The product record that failed to move. Contains the original product data that was attempted to be moved, useful for identifying which product failed. """ record: JSON """ Row number in the input array where the error occurred. Helps identify the position of the failed product in the bulk move request. """ rowNumber: Int } """ Error codes returned for individual rows of a bulk product move operation. Each code identifies the category of failure so callers can route the row to the correct retry or remediation flow. """ enum ProductBulkMoveErrorCode { """The row failed validation before reaching the catalogue.""" VALIDATION """The row failed to persist in the catalogue.""" DB_INSERT """The row failed for an unclassified reason.""" UNKNOWN } """ Input for bulk moving products to categories. Contains an array of product-category pairs for moving multiple products to their respective categories in a single operation. """ input ProductBulkMoveInput { """ List of product move operations. Array of product-category pairs specifying which products should be moved to which categories. Each item contains a productId and categoryId. """ products: [ProductMoveItem!]! } """ Response for bulk product move operations. Provides detailed feedback on the bulk move operation including the count of successfully moved products and any errors encountered during processing. """ type ProductBulkMoveResponse { """ Number of products successfully moved to their target categories. Represents the total count of products that were successfully relocated during the bulk move operation. """ movedCount: Int! """ Collection of errors encountered during the bulk move operation. Contains detailed error information for any products that failed to move, including error codes, messages, and the affected product data. """ errors: [ProductBulkMoveError!]! } type ProductCategoryRelationship { """Globally unique identifier for the product or cluster.""" uuid: ID! """Product ID""" productId: Int! """ Numeric category identifier retained for compatibility with legacy integrations. """ categoryId: Int! """Whether this is the default category for the product""" isDefault: Boolean! """Sort order within the category""" sortOrder: Int! """Timestamp marking when the record was created, in UTC ISO 8601 format.""" createdAt: DateTime! """ Timestamp marking the last modification of the record, in UTC ISO 8601 format. """ lastModifiedAt: DateTime! """The product in this relationship""" product: Product! """Primary category associated with the product.""" category(hidden: YesNo): Category! } """ Search criteria for product-associated categories. Inherits all CategorySearchInput functionality except categoryId filtering. """ input ProductCategorySearchInput { """Search term for category names""" name: String """Search by category slugs""" slugs: [String!] """Deprecated: use `slugs` instead.""" slug: [String!] """Filter by parent category IDs""" parentCategoryIds: [Int!] """Deprecated: use `parentCategoryIds` instead.""" parentCategoryId: [Int!] """Filter by category IDs""" categoryIds: [Int!] """Filter by category UUIDs""" uuids: [String!] """Filter by hidden status (Y or N)""" hidden: YesNo """Start date for creation date filtering (ISO 8601 format)""" createdAtFrom: String """End date for creation date filtering (ISO 8601 format)""" createdAtTo: String """Start date for modification date filtering (ISO 8601 format)""" lastModifiedAtFrom: String """End date for modification date filtering (ISO 8601 format)""" lastModifiedAtTo: String """ Deprecated: use `createdAtFrom` instead. Start date for creation date filtering (ISO 8601 format) """ dateCreatedFrom: String """ Deprecated: use `createdAtTo` instead. End date for creation date filtering (ISO 8601 format) """ dateCreatedTo: String """ Deprecated: use `lastModifiedAtFrom` instead. Start date for modification date filtering (ISO 8601 format) """ dateModifiedFrom: String """ Deprecated: use `lastModifiedAtTo` instead. End date for modification date filtering (ISO 8601 format) """ dateModifiedTo: String """Page number for pagination""" page: Int = 1 """Number of items per page""" offset: Int = 12 """Language for localized content""" language: String """Field to sort the categories by""" sortField: CategorySortableFields """ Sort order for results. Determines the sorting direction for the specified sort field. ASC = ascending order, DESC = descending order. Defaults to ascending order. """ sortOrder: SortOrder = ASC """Source system name (must be used with sourceIds)""" source: String """Source IDs to filter by (must be used with source)""" sourceIds: [String!] } """Available product classes""" enum ProductClass { PRODUCT CLUSTER } type ProductClusterOptionRelationship { """Globally unique identifier for the product or cluster.""" uuid: ID! """Product UUID""" productUuid: String! """Cluster option UUID""" clusterOptionUuid: String! """Whether this is the default product for the cluster option""" isDefault: Boolean! """Sort order within the cluster option""" sortOrder: Int """Timestamp marking when the record was created, in UTC ISO 8601 format.""" createdAt: DateTime! """ Timestamp marking the last modification of the record, in UTC ISO 8601 format. """ lastModifiedAt: DateTime! } """ Container that organizes a product within the catalogue. A product is either attached to a category for browsing and merchandising, or to a cluster that groups configurable variants together. """ enum ProductContainerClass { """The product is organized within a category in the catalogue hierarchy.""" CATEGORY """The product is organized within a cluster as a configurable variant.""" CLUSTER } """ Input for bulk product import from CSV file. Enables bulk creation of products through CSV file upload with customizable field mappings. Supports validation, error reporting, and flexible column mapping for different CSV formats. """ input ProductCsvInput { """ CSV file containing product data. The CSV file must contain valid product information with proper headers. File must be in CSV format with UTF-8 encoding. """ file: Upload! """ Column mapping configuration for CSV import. Defines how CSV columns map to product fields in the system. Each mapping specifies the CSV header name and corresponding system field. Mappings must be unique and follow the defined field constraints. """ mappings: [ProductCsvMapping!] } """ Mapping configuration for CSV column to system field. Defines how a specific CSV column maps to a product field in the system. Ensures proper data import by specifying the relationship between CSV headers and system fields. """ input ProductCsvMapping { """ CSV column header name. The exact name of the column header in the CSV file. Must match the header name exactly (case-sensitive). Cannot be empty or contain only whitespace. """ csvHeader: String! """ Propeller eCommerce Platform field for the CSV column. The corresponding field in the Propeller eCommerce Platform where the CSV column data will be imported. Must be a valid ProductFieldName enum value. Each field has specific validation rules and constraints. """ fieldName: ProductFieldName! } """ Column identifiers recognised by the product CSV importer. Each value identifies a product attribute that can be mapped to a column in the source spreadsheet so the import understands how to populate the catalogue. """ enum ProductFieldName { """[Required][String] The language of the product""" LANGUAGE """ [Optional][Integer] The id of the category the product should be created in """ CATEGORY_ID """[Optional][String] The names of this product per language""" NAME """[Optional][String] The descriptions of this product per language""" DESCRIPTION """[Optional][String] The short descriptions of this product per language""" SHORT_DESCRIPTION """ [Optional][String] Additional keywords of this product per language. Added by the supplier """ KEYWORD """ [Optional][String] Additional keywords of this product per language. Added via the PIM """ CUSTOM_KEYWORD """[Optional][String] The SKU (stock keeping unit) of this product""" SKU """ [Optional][Enum] The status of this product Must be one of: A, N, P, S, R, T. """ STATUS """ [Optional][String] The extra status of this product, commonly linked to a custom valueset """ STATUS_EXTRA """[Optional][String] The supplier of this product""" SUPPLIER """[Optional][String] The supplier code of this product""" SUPPLIER_CODE """[Optional][String] The bar code of this product""" BAR_CODE """ [Optional][String] The Original Equipment Manufacturer code (OEM) of this product """ MANUFACTURER_CODE """ [Optional][String] The European Article Number (EAN) code of this product """ EAN_CODE """[Optional][String] The unit in which the product can be ordered""" UNIT """ [Optional][Integer] The minimum quantity of products that can be ordered """ MINIMUM_QUANTITY """ [Optional][Integer] The quantity that provides the best value for money for this product """ ECONOMIC_ORDER_QUANTITY """[Optional][String] The manufacturer of this product""" MANUFACTURER """ [Optional][String] The package type of this product. i.e.: PIECE, BOX, BLISTER """ PACKAGE """ [Optional][Integer] Description of what an item within a package looks like, i.e.: PIECE or BOX """ PACKAGE_UNIT """[Optional][String] Number of items within the package""" PACKAGE_UNIT_QUANTITY """ [Optional][String] The unit in which the product can be ordered when creating a purchase order """ PURCHASE_UNIT """ [Optional][Integer] The minimum quantity of products that can be ordered when creating a purchase order """ PURCHASE_MINIMUM_QUANTITY """ [Optional][Enum] Is this product orderable Must be one of: Y, N. When omitted the catalogue applies the default value of Y. """ ORDERABLE """ [Optional][String] The orderable from date of this product Supplied as an ISO 8601 timestamp such as 2024-10-31T09:55:00.000Z. """ ORDERABLE_FROM """ [Optional][String] The orderable to date of this product Supplied as an ISO 8601 timestamp such as 2024-10-31T09:55:00.000Z. """ ORDERABLE_TO """ [Optional][String] The release date of this product Supplied as an ISO 8601 timestamp such as 2024-10-31T09:55:00.000Z. """ RELEASE_DATE """ [Optional][Enum] Is this product returnable Must be one of: Y, N. When omitted the catalogue applies the default value of Y. """ RETURNABLE """ [Optional][Enum] Is it a physical product or a service, download or warranty Must be one of: Y, N. When omitted the catalogue applies the default value of Y. """ PHYSICAL """ [Optional][String] The turnover group that classifies the product within the financial structure """ TURNOVER_GROUP """ [Optional][String] The price group the product belongs to, this field can be used for price calculations """ PRICE_GROUP """[Optional][String] The taxonomy the product belongs to""" TAXONOMY """ [Optional][String] The short name for the product, used for abbreviated orderlines. Deprecated: use SHORT_NAMES instead """ SHORT_NAME """ [Optional][String] The short names for the product per language, used for abbreviated orderlines """ SHORT_NAMES """ [Optional][String] The package description of this product per language """ PACKAGE_DESCRIPTION """[Optional][String] Notes on the product for internal use""" NOTE """ [Optional][String] The product's category source name Supply together with the category source identifier column. Required only when matching the default category by external source. """ CATEGORY_SOURCE_NAME """ [Optional][String] The product's category source id Supply together with the category source name column. Required only when matching the default category by external source. """ CATEGORY_SOURCE_ID """ [Optional][String] This product's unique identifier Use either the internal product identifier column or the combination of source name and source identifier columns; do not combine both. """ PRODUCT_ID """ [Optional][String] The product source name Supply together with the source identifier column. Cannot be combined with the internal product identifier column. """ SOURCE_NAME """ [Optional][String] The product source id Supply together with the source name column. Cannot be combined with the internal product identifier column. """ SOURCE_ID """ [Optional][Integer] The products priority, this field can be used to sort the products """ PRIORITY """[Optional][String] [SEO] Localized metadata title""" METADATA_TITLE """[Optional][String] [SEO] Localized metadata description""" METADATA_DESCRIPTION """[Optional][String] [SEO] Localized metadata keywords""" METADATA_KEYWORDS """[Optional][String] [SEO] Localized metadata canonical URL""" METADATA_CANONICAL_URL """ [Optional][Enum] The hidden status of this product Must be one of: Y, N. When omitted the catalogue applies the default value of N. """ HIDDEN } type ProductInventory { """ Product identifier for this inventory summary. References the specific product that this inventory aggregation represents, linking to the product catalog. """ productId: Int! """ Total non-reserved quantity available across all locations. Sum of all inventory quantities for this product across all warehouses and locations. """ totalQuantity: Int! """ Total quantity reserved across all locations. Sum of all reserved quantities for this product across all warehouses and locations. """ totalReservedQuantity: Int! """ Non-reserved quantity available from external suppliers. Stock quantity that can be sourced from suppliers, including drop-ship inventory and supplier-managed stock. """ supplierQuantity: Int! """ Total quantity reserved from external suppliers. Sum of all reserved quantities for this product from external suppliers. """ supplierReservedQuantity: Int! """ Non-reserved quantity available in local warehouses. Stock quantity physically held in company-owned warehouses and storage facilities, immediately available for fulfillment. """ localQuantity: Int! """ Total quantity reserved in local warehouses. Sum of all reserved quantities for this product in company-owned warehouses and storage facilities. """ localReservedQuantity: Int! """ Earliest expected delivery date for replenishment. The soonest date when additional inventory is expected to arrive, used for stock planning and customer communication about future availability. """ nextDeliveryDate: DateTime """ Detailed inventory records for this product. Complete list of individual inventory entries showing stock levels, locations, suppliers, and costs for comprehensive inventory management. """ balance: [Inventory!] """[DEPRECATED]""" messages: [String!] @deprecated(reason: "No longer used") """Total count or summary value for the operation.""" total: Int! } """Media content associated with a specific product""" type ProductMedia { """ Product-related images including photos, diagrams, and visual documentation. Contains all image media items associated with this product, such as product photos, technical diagrams, installation guides, and marketing materials. """ images( """Product media images search options""" search: MediaImageProductSearchInput = {page: 1, offset: 12} ): PaginatedMediaImageResponse """ Product-related videos including demonstrations, tutorials, and promotional content. Contains all video media items associated with this product, such as product demonstrations, installation tutorials, promotional videos, and technical explanations. """ videos( """Product media videos search options""" search: MediaVideoProductSearchInput = {page: 1, offset: 12} ): PaginatedMediaVideoResponse """ Product-related documents including manuals, specifications, and technical documentation. Contains all document media items associated with this product, such as user manuals, technical specifications, installation guides, and compliance certificates. """ documents( """Product media documents search options""" search: MediaDocumentProductSearchInput = {page: 1, offset: 12} ): PaginatedMediaDocumentResponse } """ Input for a single product move operation. Contains the product identifier and the target category for moving a product to a different category. """ input ProductMoveItem { """ Product identifier to move. Unique numeric identifier of the product that should be moved to a different category. """ productId: Int! """ Target category identifier. ID of the category where the product should be moved to. """ categoryId: Int! } type ProductOffer implements IProductOffer { """The id of the offer.""" id: String! """The calculated price for this offer.""" price: Float! """Valid from date""" validFrom: DateTime! """Valid to date""" validTo: DateTime! """Price formula""" formula: String! } """ Calculated product price with comprehensive pricing information and business rules applied. Contains the final calculated price for a product including base pricing, discounts, tax calculations, and all applicable business rules. Used for displaying prices to customers and processing orders. """ type ProductPrice { """ Unique identifier of the product this price calculation applies to. Links the calculated price to a specific product in the catalog, enabling product-specific pricing and inventory management. """ productId: Int! """ Classification of the price element used in the calculation. Indicates the source and type of pricing applied, such as bulk pricing, pricesheet pricing, or default pricing. Used for price transparency and calculation auditing. """ type: PriceElementType! """ Method used for discount calculation and application. Specifies how discounts were calculated and applied to the base price, enabling proper price display and calculation transparency. """ discountType: PriceDiscountType! """ Base list price before discounts and calculations. The standard selling price used as the foundation for all pricing calculations. May be modified by discounts, volume pricing, or customer-specific rules. """ list: Float """ Cost price for margin calculations and business analysis. The cost per unit for this product, used for margin analysis and pricing decisions. May vary based on quantity and supplier agreements. """ cost: Float """ Net price after discounts but before tax calculations. The calculated price after applying all discounts and business rules but before adding taxes. Used for tax calculations and price display. """ net: Float """ Final gross price including all calculations and applicable taxes. The final price that should be charged to the customer, including all discounts, business rules, and tax calculations. This is the price used for order processing. """ gross: Float """ Discount record applied to this price calculation. Contains details of any discount or bulk pricing rule that was applied during the price calculation. Used for price transparency and promotional tracking. """ discount: IDiscount """ Tax classification code applied to this product price. Indicates the tax treatment and rate applied to this product based on its category and regional regulations. Used for tax calculations and compliance. """ taxCode: Taxcode """ Quantity of the product used for this price calculation. The number of units for which this price was calculated. Used for volume discounts, bulk pricing tiers, and total order calculations. Minimum value is 1. """ quantity: Int! } input ProductPriceFilterInput { """Price from filter""" from: Float! """Price to filter""" to: Float! } input ProductRangeFilterInput { """Price from filter""" from: Float! """Price to filter""" to: Float! """ID of the attribute, either id or name is required""" id: String """NAME of the attribute, either id or name is required""" name: String """Range filter exclude""" exclude: Boolean! = false """Range filter type""" type: AttributeType = DECIMAL } """ All fields that can be searched and boosted with the regular term input. """ enum ProductSearchableField { """Matches against the localized product name.""" NAME """Matches against the localized long-form product description.""" DESCRIPTION """Matches against the localized short product description.""" SHORT_DESCRIPTION """Matches against the localized search keywords assigned to the product.""" KEYWORDS """ Matches against the localized custom search keywords assigned to the product. """ CUSTOM_KEYWORDS """Matches against the product stock keeping unit.""" SKU """Matches against the manufacturer name.""" MANUFACTURER """Matches against the manufacturer-assigned product code.""" MANUFACTURER_CODE """Matches against the supplier name.""" SUPPLIER """Matches against the supplier-assigned product code.""" SUPPLIER_CODE """Matches against the European Article Number barcode value.""" EAN_CODE """Matches against the general-purpose barcode value.""" BAR_CODE """Matches against the numeric product identifier.""" PRODUCT_ID """ Matches against the identifier of the cluster the product is attached to. """ CLUSTER_ID } type ProductSearchAttributeDecimalRangeFilter implements IProductSearchAttributeDecimalRangeFilter { """ Minimum decimal value found for this attribute in current results. The lowest decimal value present in the search results for this attribute, used as the lower bound for precise range filtering controls. """ min: Float """ Maximum decimal value found for this attribute in current results. The highest decimal value present in the search results for this attribute, used as the upper bound for precise range filtering controls. """ max: Float } type ProductSearchAttributeFilter implements IProductSearchAttributeFilter { """ Unique identifier of the product attribute. System-generated ID that uniquely identifies this attribute across the catalog, used for referencing the attribute in filters and search operations. """ id: String! """ Data type of the attribute values. Specifies the format for attribute values, determining how the attribute should be processed, displayed, and filtered in search interfaces. """ type: AttributeType """ Available text-based filter values for this attribute. Collection of distinct text values found in the current search results for this attribute, along with their occurrence counts. Used for building checkbox or list-based filters in search interfaces. """ textFilters: [IProductSearchAttributeTextFilter!] """ Numeric range boundaries for integer-type attributes. Minimum and maximum integer values found in the current search results for this attribute, used for building range slider or numeric input filters. """ integerRangeFilter: IProductSearchAttributeIntegerRangeFilter """ Numeric range boundaries for decimal-type attributes. Minimum and maximum decimal values found in the current search results for this attribute, used for building precise range filters for measurements and prices. """ decimalRangeFilter: IProductSearchAttributeDecimalRangeFilter } type ProductSearchAttributeIntegerRangeFilter implements IProductSearchAttributeIntegerRangeFilter { """ Minimum integer value found for this attribute in current results. The lowest integer value present in the search results for this attribute, used as the lower bound for range filtering controls. """ min: Int """ Maximum integer value found for this attribute in current results. The highest integer value present in the search results for this attribute, used as the upper bound for range filtering controls. """ max: Int } type ProductSearchAttributeTextFilter implements IProductSearchAttributeTextFilter { """ Attribute value text for filtering. The actual text value of the attribute that customers can select to filter products. This is the display value shown in filter interfaces. """ value: String! """ Number of products matching this value with current filters applied. Count of products that have this attribute value and also match all currently applied search filters and criteria. Used for showing relevant filter options. """ count: Int! """ Total number of products with this value across all results. Count of products that have this attribute value without any filters applied, representing the complete availability of this value in the catalog. """ countTotal: Int """ Number of products with this value excluding other attribute filters. Count of products that have this attribute value with all other attribute filters removed but keeping search terms and category filters. Used for showing filter impact. """ countActive: Int """ Selection status of this attribute value in current search. Indicates whether this attribute value is currently selected as an active filter in the customer's search criteria. """ isSelected: Boolean! } input ProductSearchByCategoryInput { """ List of category IDs to search. Each category will be searched separately. """ categoryIds: [Int!]! """Include descendants of each category in the search""" getDescendants: Boolean = false """Product search term""" term: String """List of product manufacturers""" manufacturers: [String!] """List of product supplier codes""" supplierCodes: [String!] """List of product suppliers""" suppliers: [String!] """List of product manufacturer codes""" manufacturerCodes: [String!] """List of product EAN codes""" EANCodes: [String!] """List of product SKUS""" skus: [String!] """List of unique product identifiers""" ids: [Int!] """List of productIds to search for""" productIds: [Int!] """List of clusterIds to search for""" clusterIds: [Int!] """Product class""" class: ProductClass """List of product tags""" tags: [String!] """ Specify through which language to search in, has no effect on other returned fields (eg. names,slugs) """ language: String! = "NL" """Pagination page number [default=1]""" page: Int! = 1 """ Pagination offset number [default=12][max: 500] NOTE: If offset > 500 is supplied it will be capped to 500 """ offset: Int! = 12 """List of text filters """ textFilters: [ProductSearchTextFilterInput!] """List of range filters""" rangeFilters: [ProductSearchRangeFilterInput!] """Product price filter""" price: ProductSearchPriceFilterInput """ List of priceSheetIds (UUIDs) ordered by priority. The first priceSheetId has highest priority. Used to determine customer-specific pricing for sorting, filtering, and aggregation. When not provided, the default price is used. """ priceSheetIds: [String!] """List of product status filters""" statuses: [ProductStatus!]! = [A] """Is product hidden?""" hidden: Boolean """List of product sort filters""" sortInputs: [ProductSearchSortInput!] """List of product search fields""" searchFields: [ProductSearchFieldsInput!] """Is product in a bundle""" hasBundle: YesNo """Is product a bundle leader""" isBundleLeader: YesNo """ Browse catalog as a specific User. Permissions, orderlists, favorite will be merged with the logged in user. """ userId: Int """ Browse catalog as a specific Company. Permissions, orderlists, favorite will be merged with the logged in user. """ companyId: Int """Search by date created""" createdAt: DateSearchInput """Search by date changed""" lastModifiedAt: DateSearchInput """List of attribute IDs to include in faceted aggregations""" facets: [ProductSearchFacetInput!] """Apply orderlist filtering to search results""" applyOrderlists: Boolean = true """Order list IDs to apply for filtering""" orderlistIds: [Int!] } type ProductSearchByCategoryResponse { """Search results grouped by category ID""" results: [CategoryProductSearchResult!]! } type ProductSearchCluster implements IBaseProductSearch { """Resource primary identifier""" id: Int! """The class of the request resource""" class: ProductClass! """The UUID of the product or cluster""" uuid: String! """The creation date of this product or cluster""" createdAt: DateTime """The last modified date of this product or cluster""" lastModifiedAt: DateTime """The date this product or cluster was indexed""" indexedAt: DateTime """Whether this product or cluster is marked for deleted""" isDeleted: Boolean! """The status of this product or cluster""" status: ProductStatus! """ The effective price for this product/cluster based on priceSheetId priority. Computed at query time using the provided priceSheetIds, falling back to default price. """ effectivePrice: Float """The ID of this cluster""" clusterId: Int! } input ProductSearchFacetInput { """ID of the attribute""" id: String! """Type of the attribute""" type: AttributeType = TEXT } input ProductSearchFieldsInput { """ List of searchable fields to query against (e.g., NAME, SKU, DESCRIPTION) """ fieldNames: [ProductSearchableField!]! """Relevance boost value applied to matches in these fields""" boost: Int! """ Partial matching boost value for ngram/edge-ngram fields. When omitted, defaults to ceil(boost * 0.5) """ partialBoost: Int } input ProductSearchInput { """Product search term""" term: String """List of product manufacturers""" manufacturers: [String!] """List of product supplier codes""" supplierCodes: [String!] """List of product suppliers""" suppliers: [String!] """List of product manufacturer codes""" manufacturerCodes: [String!] """List of product EAN codes""" EANCodes: [String!] """List of product SKUS""" skus: [String!] """List of unique product identifiers""" ids: [Int!] """List of productIds to search for""" productIds: [Int!] """List of clusterIds to search for""" clusterIds: [Int!] """Product class""" class: ProductClass """List of product tags""" tags: [String!] """ Specify through which language to search in, has no effect on other returned fields (eg. names,slugs) """ language: String! = "NL" """Pagination page number [default=1]""" page: Int! = 1 """ Pagination offset number [default=12][max: 1000] NOTE: If offset > 1000 is supplied it will be capped to 1000 """ offset: Int! = 12 """List of text filters """ textFilters: [ProductTextFilterInput!] """List of range filters""" rangeFilters: [ProductRangeFilterInput!] """Product price filter""" price: ProductPriceFilterInput """List of product status filters""" statuses: [ProductStatus!]! = [A] """Is product hidden?""" hidden: Boolean """List of product sort filters""" sortInputs: [ProductSortInput!] """List of product search fields""" searchFields: [SearchFieldsInput!] """Is product in a bundle""" hasBundle: YesNo """Is product a bundle leader""" isBundleLeader: YesNo """Product container slug(s)""" containerSlugs: [String!] """ Browse catalog as a specific User. Permissions, orderlists, favorite will be merged with the logged in user. """ userId: Int """ Browse catalog as a specific Company. Permissions, orderlists, favorite will be merged with the logged in user. """ companyId: Int """Search by date created""" createdAt: DateSearchInput """Search by date changed""" lastModifiedAt: DateSearchInput """Search by product categoryId""" categoryId: Int """Include descendants of the specified categoryId""" getDescendants: Boolean = true """Apply orderlist filtering to search results""" applyOrderlists: Boolean = true """Order list IDs to apply for filtering""" orderlistIds: [Int!] } input ProductSearchPriceFilterInput { """Price from filter""" from: Float! """Price to filter""" to: Float! } type ProductSearchProduct implements IBaseProductSearch { """Resource primary identifier""" id: Int! """The class of the request resource""" class: ProductClass! """The UUID of the product or cluster""" uuid: String! """The creation date of this product or cluster""" createdAt: DateTime """The last modified date of this product or cluster""" lastModifiedAt: DateTime """The date this product or cluster was indexed""" indexedAt: DateTime """Whether this product or cluster is marked for deleted""" isDeleted: Boolean! """The status of this product or cluster""" status: ProductStatus! """ The effective price for this product/cluster based on priceSheetId priority. Computed at query time using the provided priceSheetIds, falling back to default price. """ effectivePrice: Float """The ID of this product""" productId: Int! """The SKU of this product""" sku: String! } input ProductSearchRangeFilterInput { """Price from filter""" from: Float! """Price to filter""" to: Float! """ID (UUID) of the attribute""" id: String! """Range filter exclude""" exclude: Boolean! = false """ Range filter type (INT for integer attributes, DECIMAL for decimal attributes) """ type: AttributeType } type ProductSearchResponse { """List of items of type ProductResultUnion""" items: [IBaseProductSearch!]! """Total number of items found""" itemsFound: Int! """The amount of items to show per page""" offset: Int! """ The current page""" page: Int! """Total amount of pages""" pages: Int! """Start position of the current page""" start: Int! """End position of the current page""" end: Int! """The lowest price of a product in this productlist""" minPrice: Int """The highest price of a product in this productlist""" maxPrice: Int filters: [ProductSearchAttributeFilter!] } input ProductSearchSearchInput { """Product search term""" term: String """List of product manufacturers""" manufacturers: [String!] """List of product supplier codes""" supplierCodes: [String!] """List of product suppliers""" suppliers: [String!] """List of product manufacturer codes""" manufacturerCodes: [String!] """List of product EAN codes""" EANCodes: [String!] """List of product SKUS""" skus: [String!] """List of unique product identifiers""" ids: [Int!] """List of productIds to search for""" productIds: [Int!] """List of clusterIds to search for""" clusterIds: [Int!] """Product class""" class: ProductClass """List of product tags""" tags: [String!] """ Specify through which language to search in, has no effect on other returned fields (eg. names,slugs) """ language: String! = "NL" """Pagination page number [default=1]""" page: Int! = 1 """ Pagination offset number [default=12][max: 500] NOTE: If offset > 500 is supplied it will be capped to 500 """ offset: Int! = 12 """List of text filters """ textFilters: [ProductSearchTextFilterInput!] """List of range filters""" rangeFilters: [ProductSearchRangeFilterInput!] """Product price filter""" price: ProductSearchPriceFilterInput """ List of priceSheetIds (UUIDs) ordered by priority. The first priceSheetId has highest priority. Used to determine customer-specific pricing for sorting, filtering, and aggregation. When not provided, the default price is used. """ priceSheetIds: [String!] """List of product status filters""" statuses: [ProductStatus!]! = [A] """Is product hidden?""" hidden: Boolean """List of product sort filters""" sortInputs: [ProductSearchSortInput!] """List of product search fields""" searchFields: [ProductSearchFieldsInput!] """Is product in a bundle""" hasBundle: YesNo """Is product a bundle leader""" isBundleLeader: YesNo """ Browse catalog as a specific User. Permissions, orderlists, favorite will be merged with the logged in user. """ userId: Int """ Browse catalog as a specific Company. Permissions, orderlists, favorite will be merged with the logged in user. """ companyId: Int """Search by date created""" createdAt: DateSearchInput """Search by date changed""" lastModifiedAt: DateSearchInput """Search by by multiple categoryIds""" categoryIds: [Int!] """Search by product categoryId""" categoryId: Int """Include descendants of the specified categoryId""" getDescendants: Boolean = false """List of attribute IDs to include in faceted aggregations""" facets: [ProductSearchFacetInput!] """Apply orderlist filtering to search results""" applyOrderlists: Boolean = true """Order list IDs to apply for filtering""" orderlistIds: [Int!] } input ProductSearchSortInput { """Available sortable fields""" field: ProductSortField! """Sort ordering ['desc' or 'asc']""" order: SortOrder } input ProductSearchTextFilterInput { """ID (UUID) of the attribute""" id: String! """Text filter value""" values: [String!]! """Text filter exclude""" exclude: Boolean! = false """Text filter type""" type: AttributeType = TEXT } """Fields available for sorting""" enum ProductSortField { """Orders results alphabetically by stock keeping unit.""" SKU """Orders results alphabetically by supplier product code.""" SUPPLIER_CODE """Orders results by the date the product was created in the catalogue.""" CREATED_AT """ Orders results by the date the product was last modified in the catalogue. """ LAST_MODIFIED_AT """Orders results alphabetically by product name.""" NAME """Orders results alphabetically by short product name.""" SHORT_NAME """Orders results numerically by product price.""" PRICE """Orders results by search relevance score, with the best matches first.""" RELEVANCE """ Orders results by the merchandiser-controlled display order within the category. """ CATEGORY_ORDER """ Orders results by the product priority value used for surfacing in merchandising. """ PRIORITY } input ProductSortInput { """Available sortable fields""" field: ProductSortField! """Sort ordering ['desc' or 'asc']""" order: SortOrder } """Paginated response containing products""" type ProductsRawResponse { """Items returned by the query for the current page.""" items: [Product!]! """Total number of items found""" itemsFound: Int! """Number of items to skip""" offset: Int """Current page number (1-based)""" page: Int """Total number of pages""" pages: Int! """Starting index for current page""" start: Int! """Ending index for current page""" end: Int! } type ProductsResponse { """List of items of type ProductResultUnion""" items: [IBaseProduct!]! """Total number of items found""" itemsFound: Int! """The amount of items to show per page""" offset: Int! """ The current page""" page: Int! """Total amount of pages""" pages: Int! """Start position of the current page""" start: Int! """End position of the current page""" end: Int! """The lowest price of a product in this productlist""" minPrice: Int! """The highest price of a product in this productlist""" maxPrice: Int! """ Available attribute filters for faceted search. Returns the available attribute filters that can be applied to refine the product search results. These filters are dynamically generated based on the current search context and available product attributes. """ filters( """ Filter configuration for determining available attributes. Used to customize which attribute filters are returned based on the current search context and user preferences. """ input: FilterAvailableAttributeInput ): [AttributeFilter!] } """Available product statuses""" enum ProductStatus { """Available""" A """Not available""" N """Phase out""" P """Presale""" S """Restricted""" R """Out of stock""" T } input ProductTextFilterInput { """ID of the attribute, either id or name is required""" id: String """NAME of the attribute, either id or name is required""" name: String """Text filter value""" values: [String!]! """Text filter exclude""" exclude: Boolean! = false """Text filter type""" type: AttributeType = TEXT } """ Response from email event publishing operations. Indicates the success status of email event publication to the message queue and provides tracking information for monitoring and debugging email delivery workflows. """ type PublishEmailEventResponse { """ Success status of the email event publication. Indicates whether the email event was successfully published to the message queue for processing, enabling proper error handling and workflow management. """ success: Boolean! """ Message queue identifier for tracking. Unique identifier assigned by the message queue system for tracking the published email event through the processing pipeline and delivery workflow. """ messageId: String } type PurchaseAuthorizationConfig { """The primary ID of the purchase authorization config, uuid v7 format""" id: String! """ The purchase role of the contact within the company. Defaults to PURCHASER """ purchaseRole: PurchaseRole! """ The purchaser's authorization limit i.e. maximum amount that can be spent per order """ authorizationLimit: Float """The creation date of this PurchaseAuthorizationConfig""" createdAt: DateTime! """The last modified date of this PurchaseAuthorizationConfig""" lastModifiedAt: DateTime! """The company the purchase authorization config is valid for""" company: Company """The contact the purchase authorization config is valid for""" contact: Contact } input PurchaseAuthorizationConfigCreateInput { """ Identifier of the contact the purchase authorization config is valid for """ contactId: Int! """ Identifier of the company the purchase authorization config is valid for """ companyId: Int! """ The purchase role of the contact within the company. Defaults to PURCHASER """ purchaseRole: PurchaseRole! = PURCHASER """ The purchaser's authorization limit i.e. maximum amount that can be spent per order """ authorizationLimit: Float } type PurchaseAuthorizationConfigResponse { """List of items of type PurchaseAuthorizationConfig""" items: [PurchaseAuthorizationConfig!]! """Total number of items found""" itemsFound: Int! """The amount of items to show per page""" offset: Int! """The current page""" page: Int! """Total amount of pages""" pages: Int! """Start position of the current page""" start: Int! """End position of the current page""" end: Int! } input PurchaseAuthorizationConfigSearchInput { """List of purchase authorization config IDs""" ids: [String!] """List of unique contact ids""" contactIds: [Int!] """List of unique company ids""" companyIds: [Int!] """Purchase roles of a contact""" purchaseRoles: [PurchaseRole!] """ The purchaser's authorization limit i.e. maximum amount that can be spent per order """ authorizationLimit: DecimalSearchInput """Search by date created""" createdAt: DateSearchInput """Search by date changed""" lastModifiedAt: DateSearchInput page: Int! = 1 offset: Int! = 12 } input PurchaseAuthorizationConfigUpdateInput { """ The purchase role of the contact within the company. Defaults to PURCHASER """ purchaseRole: PurchaseRole """ The purchaser's authorization limit i.e. maximum amount that can be spent per order """ authorizationLimit: Float } """Purchase role types [one of 'PURCHASER' or 'AUTHORIZATION_MANAGER']""" enum PurchaseRole { """ Purchaser is a default contact role witnin a company. Purchasers can order, but may be subject to purchase (authorization) limits per order. When going above limit a cart cannot be processed to an order without it being authorized by an authorization manager """ PURCHASER """ Authorization managers can manage authorization limits and purchase requests for purchasers. They have no purchase (authorization) limits """ AUTHORIZATION_MANAGER } type Query { """ Retrieve detailed information about a specific administrative user by their email address. Returns comprehensive user data including profile information, roles, and associated organizational details. Essential for user management and administrative oversight operations. Possible errors: - NOT_FOUND: User with the specified email address does not exist - UNAUTHENTICATED: Invalid or missing authentication token - FORBIDDEN: Insufficient permissions to access user data AUTH: Role=[role.OWNER,role.EDITOR,role.VIEWER] OR (('user is authenticated') AND ('email if present in input matches JWT')) """ adminUser( """ Email address of the administrative user to retrieve. Must be a valid email format and correspond to an existing user in the system. """ email: String! ): AdminUser! """ Retrieve the currently authenticated administrative user's profile information. Returns the user profile for the currently authenticated user based on their authentication token. Used for displaying current user information and profile management interfaces. Possible errors: - ADMIN_USER_NOT_FOUND_ERROR: Authenticated user does not exist in the system - UNAUTHENTICATED: Invalid or missing authentication token - FORBIDDEN: User not authorized for administrative access AUTH: Role=[] OR ('user is authenticated') """ adminUserViewer: AdminUser """ Retrieve a paginated list of administrative users with optional filtering and sorting. Returns a comprehensive list of administrative users with support for pagination, date-based filtering, and custom sorting options. Essential for user management and administrative oversight operations. Possible errors: - UNAUTHENTICATED: Invalid or missing authentication token - FORBIDDEN: Insufficient permissions to access user data AUTH: Role=[role.OWNER,role.EDITOR,role.VIEWER] """ adminUsers( """ Search and pagination parameters for filtering administrative users. If not provided, default pagination settings will be applied. """ input: AdminUsersSearchInput ): UserResponse! """ Retrieve detailed information about a specific ticket. Returns comprehensive ticket data including all relevant details and context. Used for ticket management and support operations. Possible errors: - FORBIDDEN: Insufficient permissions to access ticket data - TICKET_GET_ERROR: Error occurred while retrieving ticket - TICKET_NOT_FOUND: Ticket with the specified ID does not exist - TICKET_AUTH_ERROR: You are not allowed to access this ticket AUTH: Role=[user.OWNER,user.EDITOR,user.VIEWER] OR ('user is authenticated') """ ticket( """Unique identifier of the ticket to retrieve.""" id: ID! ): Ticket! """ Retrieve a list of tickets with optional filtering and sorting. Returns a comprehensive list of tickets with support for pagination, date-based filtering, and custom sorting options. Essential for ticket management and support operations. Possible errors: - FORBIDDEN: Insufficient permissions to access ticket data - TICKET_LIST_ERROR: Error occurred while retrieving tickets AUTH: Role=[user.OWNER,user.EDITOR,user.VIEWER] OR ('user is authenticated') """ tickets( """ Search and pagination parameters for retrieving tickets. If not provided, default pagination settings will be applied. """ input: TicketSearchInput ): TicketResponse! """ Retrieve detailed information about a specific tenant. Returns comprehensive tenant data including configuration, settings, and administrative details. Used for tenant management and multi-tenancy administration. Possible errors: - UNAUTHENTICATED: Invalid or missing authentication - FORBIDDEN: Insufficient permissions to access tenant data AUTH: Role=[role.OWNER,role.EDITOR] """ adminUserTenant( """ Unique identifier of the tenant to retrieve. Must be a positive integer representing a valid tenant ID in the system. """ id: Int! ): AdminUserTenant! """ Retrieve comprehensive information about a specific attribute description by its unique identifier. Returns complete attribute description data including schema definitions, display configuration, localization settings, and metadata. Used for attribute definition management, UI generation, and understanding attribute capabilities. The response includes all configuration details needed to: - Create attribute values based on this description - Generate appropriate user interfaces - Display attributes with proper formatting - Understand attribute constraints and capabilities Essential for building attribute management systems and ensuring proper attribute handling across applications. Possible errors: - ATTRIBUTE_DESCRIPTION_NOT_FOUND: Attribute description with the specified ID does not exist """ attributeDescription( """ Unique identifier of the attribute description to retrieve. Must be a valid UUID format representing an existing attribute description in the system. The description must be accessible within the current context and permissions. """ id: String! ): AttributeDescription! """ Search and retrieve attribute descriptions with comprehensive filtering and pagination capabilities. Provides powerful search functionality across attribute description data including names, types, display settings, and metadata. Results are paginated and can be filtered based on multiple criteria for efficient discovery and management. Search capabilities include: - Filtering by attribute class (entity type) - Name-based searches and pattern matching - Type-based filtering - Flexible pagination controls - Sorting and ordering options Perfect for building attribute management interfaces, discovering available attribute types, or understanding attribute capabilities across different entity types. The response includes complete description data with all configuration details. """ attributeDescriptions( """ Search criteria and filtering options for attribute description discovery. If not provided, returns all accessible attribute descriptions with default pagination settings. Supports comprehensive filtering by type, name, attribute class, metadata, and other configuration properties. Use this input to build complex queries combining multiple criteria for precise attribute description discovery and management operations. """ input: AttributeDescriptionSearchInput! ): AttributeDescriptionResponse! """ Retrieve detailed information about a specific attribute by its unique identifier. Returns comprehensive attribute data including typed values, metadata, and associated descriptions. Used for attribute management, product customization, and data retrieval operations. The response includes complete attribute information with properly typed values based on the attribute description's type definition, creation and modification timestamps, and user tracking information. Possible errors: - ATTRIBUTE_NOT_FOUND: Attribute with the specified ID does not exist """ attribute( """ Unique identifier of the attribute to retrieve. Must be a valid UUID format representing an existing attribute in the system. The attribute must be accessible within the current context and permissions. """ id: String! ): Attribute! """ Search and retrieve attributes with comprehensive filtering and pagination capabilities. Provides powerful search functionality across attribute data including names, types, classes and values. Results are paginated and can be filtered based on multiple criteria for efficient attribute discovery and management. Supports complex filtering combinations including entity-specific searches, attribute description properties, value-based filtering, and metadata searches. Perfect for building attribute management interfaces, generating reports, or discovering attributes across different entity types. The response includes complete attribute data with typed values, metadata, and pagination information for handling large datasets efficiently. Possible errors: - ATTRIBUTE_VALIDATION_ERROR: Search parameters failed validation """ attributes( """ Search criteria and filtering options for attribute discovery. Contains comprehensive filtering options, pagination settings, and search parameters for finding specific attributes. Supports filtering by entity types, attribute descriptions, values, and metadata. Use this input to build complex queries combining multiple criteria for precise attribute discovery and management operations. """ input: AttributeSearchInput! ): AttributeResponse! """ Retrieve all attributes associated with a specific product with filtering and pagination. Returns comprehensive attribute data for the specified product, including typed values, descriptions, and metadata. Used for product detail pages, attribute-based filtering, and product customization interfaces. The response includes all attributes assigned to the product with their complete configuration and localized content. Supports additional filtering through the input parameter to refine results based on specific criteria. Perfect for building product detail interfaces, generating product specifications, or managing product-specific attributes in administrative systems. Possible errors: - ATTRIBUTE_VALIDATION_ERROR: Search input parameters failed validation """ attributesByProductId( """ Unique identifier of the product. Must be a positive integer representing a valid product ID in the system. The product must exist and be accessible within the current context. """ productId: Int! """ Additional search criteria for filtering product attributes. Contains optional filtering options and pagination settings to refine the attributes returned for the specified product. Use this to apply additional filters beyond the product association. """ input: AttributeSearchInput! ): AttributeResponse! """ Retrieve comprehensive attribute results for a specific product with optional default values. Returns attribute data for the specified product, including both assigned attribute values and optionally default values from attribute descriptions. The response combines actual attribute values with default values when requested, providing a complete view of all available attributes for the product. When includeDefaultValues is true, the result includes default values from attribute descriptions for attributes that haven't been explicitly assigned to the product. This is perfect for displaying complete product specifications or generating forms with pre-filled default values. Possible errors: - ATTRIBUTE_VALIDATION_ERROR: Search input parameters failed validation - PRODUCT_NOT_FOUND - CATEGORY_NOT_FOUND - COMPANY_NOT_FOUND - CONTACT_NOT_FOUND - CUSTOMER_NOT_FOUND - CLUSTER_NOT_FOUND """ attributeResultByProductId( """ Unique identifier of the product to retrieve attribute results for. Must be a positive integer representing a valid product ID in the system. The product must exist and be accessible within the current context. """ productId: Int! """ Search criteria and options for filtering attribute results. Contains filtering options, pagination settings, and the includeDefaultValues flag to control whether default values from attribute descriptions should be included in the results. """ input: AttributeResultSearchInput! ): AttributeResultResponse! """ Retrieve comprehensive attribute results for a specific category with optional default values. Returns attribute data for the specified category, including both assigned attribute values and optionally default values from attribute descriptions. The response combines actual attribute values with default values when requested, providing a complete view of all available attributes for the category. When includeDefaultValues is true, the result includes default values from attribute descriptions for attributes that haven't been explicitly assigned to the category. This is perfect for displaying complete category specifications or generating forms with pre-filled default values. Possible errors: - ATTRIBUTE_VALIDATION_ERROR: Search input parameters failed validation """ attributeResultByCategoryId( """ Unique identifier of the category to retrieve attribute results for. Must be a positive integer representing a valid category ID in the system. The category must exist and be accessible within the current context. """ categoryId: Int! """ Search criteria and options for filtering attribute results. Contains filtering options, pagination settings, and the includeDefaultValues flag to control whether default values from attribute descriptions should be included in the results. """ input: AttributeResultSearchInput! ): AttributeResultResponse! """ Retrieve comprehensive attribute results for a specific company with optional default values. Returns attribute data for the specified company, including both assigned attribute values and optionally default values from attribute descriptions. The response combines actual attribute values with default values when requested, providing a complete view of all available attributes for the company. When includeDefaultValues is true, the result includes default values from attribute descriptions for attributes that haven't been explicitly assigned to the company. This is perfect for displaying complete company profiles or generating forms with pre-filled default values. Possible errors: - ATTRIBUTE_VALIDATION_ERROR: Search input parameters failed validation """ attributeResultByCompanyId( """ Unique identifier of the company to retrieve attribute results for. Must be a positive integer representing a valid company ID in the system. The company must exist and be accessible within the current context. """ companyId: Int! """ Search criteria and options for filtering attribute results. Contains filtering options, pagination settings, and the includeDefaultValues flag to control whether default values from attribute descriptions should be included in the results. """ input: AttributeResultSearchInput! ): AttributeResultResponse! """ Retrieve comprehensive attribute results for a specific contact with optional default values. Returns attribute data for the specified contact, including both assigned attribute values and optionally default values from attribute descriptions. The response combines actual attribute values with default values when requested, providing a complete view of all available attributes for the contact. When includeDefaultValues is true, the result includes default values from attribute descriptions for attributes that haven't been explicitly assigned to the contact. This is perfect for displaying complete contact profiles or generating forms with pre-filled default values. Possible errors: - ATTRIBUTE_VALIDATION_ERROR: Search input parameters failed validation """ attributeResultByContactId( """ Unique identifier of the contact to retrieve attribute results for. Must be a positive integer representing a valid contact ID in the system. The contact must exist and be accessible within the current context. """ contactId: Int! """ Search criteria and options for filtering attribute results. Contains filtering options, pagination settings, and the includeDefaultValues flag to control whether default values from attribute descriptions should be included in the results. """ input: AttributeResultSearchInput! ): AttributeResultResponse! """ Retrieve comprehensive attribute results for a specific customer with optional default values. Returns attribute data for the specified customer, including both assigned attribute values and optionally default values from attribute descriptions. The response combines actual attribute values with default values when requested, providing a complete view of all available attributes for the customer. When includeDefaultValues is true, the result includes default values from attribute descriptions for attributes that haven't been explicitly assigned to the customer. This is perfect for displaying complete customer profiles or generating forms with pre-filled default values. Possible errors: - ATTRIBUTE_VALIDATION_ERROR: Search input parameters failed validation """ attributeResultByCustomerId( """ Unique identifier of the customer to retrieve attribute results for. Must be a positive integer representing a valid customer ID in the system. The customer must exist and be accessible within the current context. """ customerId: Int! """ Search criteria and options for filtering attribute results. Contains filtering options, pagination settings, and the includeDefaultValues flag to control whether default values from attribute descriptions should be included in the results. """ input: AttributeResultSearchInput! ): AttributeResultResponse! """ Retrieve comprehensive attribute results for a specific cluster with optional default values. Returns attribute data for the specified cluster, including both assigned attribute values and optionally default values from attribute descriptions. The response combines actual attribute values with default values when requested, providing a complete view of all available attributes for the cluster. When includeDefaultValues is true, the result includes default values from attribute descriptions for attributes that haven't been explicitly assigned to the cluster. This is perfect for displaying complete cluster specifications or generating forms with pre-filled default values. Possible errors: - ATTRIBUTE_VALIDATION_ERROR: Search input parameters failed validation """ attributeResultByClusterId( """ Unique identifier of the cluster to retrieve attribute results for. Must be a positive integer representing a valid cluster ID in the system. The cluster must exist and be accessible within the current context. """ clusterId: Int! """ Search criteria and options for filtering attribute results. Contains filtering options, pagination settings, and the includeDefaultValues flag to control whether default values from attribute descriptions should be included in the results. """ input: AttributeResultSearchInput! ): AttributeResultResponse! """ Retrieve user account information by email address. Returns detailed user account data including profile information, authentication status, and account metadata. Used for user management and account verification operations. Possible errors: - USER_NOT_FOUND_ERROR: User with the specified email does not exist AUTH: Role=[system] OR ('user is authenticated') """ authentication( """ Email address of the user account to retrieve. Must be a valid email address associated with an existing user account in the system. """ email: String! ): GCIPUser! """ Search and retrieve magic tokens with pagination support. Returns a paginated list of magic tokens based on the provided search criteria. Magic tokens are used for passwordless authentication and can be associated with contacts or customers. AUTH: Role=[configuration.OWNER,configuration.EDITOR,configuration.VIEWER] """ magicTokens( """ Search criteria for filtering magic tokens. If not provided, returns all magic tokens with default pagination. """ input: MagicTokenSearchInput ): MagicTokenResponse! """ Retrieve a specific magic token by its unique identifier. Returns detailed information about a single magic token including its expiration status, associated user, and usage restrictions. Possible errors: - MAGIC_TOKEN_NOT_FOUND_ERROR: Magic token with the specified ID does not exist AUTH: Role=[configuration.OWNER,configuration.EDITOR,configuration.VIEWER] """ magicToken( """ Unique identifier of the magic token. Must be a valid UUID format. """ id: String! ): MagicToken! """ Search and retrieve product bundles with comprehensive filtering and pagination. Provides flexible search capabilities across bundle data including names, descriptions, pricing, and product associations. Results are paginated and can be filtered based on various bundle criteria for efficient bundle management. Possible errors: - LIST_BUNDLES_ERROR: Failed to search bundles due to server error """ bundles( """ Search criteria for filtering bundles. If not provided, returns all accessible bundles with default pagination settings. Supports filtering by name, price range, product associations, and other bundle metadata. """ input: BundleSearchInput ): BundlesResponse! """ Retrieve detailed information about a specific product bundle. Returns comprehensive bundle data including items, pricing, tax calculations, and configuration. Used for bundle display, pricing calculations, and order processing. Possible errors: - BUNDLE_NOT_FOUND_ERROR: Bundle with the specified ID does not exist """ bundle( """ Unique identifier of the bundle to retrieve. Must be a valid UUID format representing an existing bundle in the system. """ id: String! """ Tax zone for pricing calculations. Geographic tax zone code used to calculate accurate bundle pricing including applicable taxes. Defaults to 'NL' if not specified. """ taxZone: String = "NL" ): Bundle! """ Retrieve detailed information about a specific business rule by its unique identifier. Returns comprehensive business rule data including the complete graph structure with nodes, edges, decision tables, and execution logic. Used for business rule management, workflow automation, and rule configuration interfaces. Possible errors: - BUSINESS_RULE_NOT_FOUND: Business rule with the specified ID does not exist - BUSINESS_RULE_UNKNOWN_ERROR: Unexpected error occurred during rule retrieval """ businessRule( """Unique identifier of the business rule to retrieve from the system""" id: ID! ): BusinessRule! """ Search and retrieve business rules with comprehensive filtering and pagination support. Provides flexible search capabilities across business rule collections including filtering by type, creation dates, and modification timestamps. Results are paginated for efficient data handling and include metadata for navigation and total count information. Possible errors: - BUSINESS_RULE_UNKNOWN_ERROR: Unexpected error occurred during search operation """ businessRules( """ Optional search criteria for filtering business rules by type, dates, and pagination settings. When not provided, returns all accessible business rules with default pagination (page 1, 12 items per page). """ filter: BusinessRuleSearchInput ): BusinessRuleResponse! """ Convert a business rule to JSON Decision Model (JDM) format for execution in compatible rule engines. Returns the standardized JDM representation that can be consumed by GoRules Zen Engine and other compatible rule execution platforms. The JDM format includes all rule logic, conditions, actions, and metadata required for runtime execution. Possible errors: - BUSINESS_RULE_NOT_FOUND: Business rule with the specified ID does not exist - BUSINESS_RULE_TO_JDM_ERROR: Failed to convert business rule to JDM format due to invalid rule structure """ businessRuleJDM( """Unique identifier of the business rule to convert to JDM format""" id: ID! """ Language code for localized content generation (ISO 639-1 format, defaults to 'EN') """ language: String = "EN" ): JSONObject! """ Retrieve a specific decision table from a business rule by its identifiers. Returns the complete decision table structure including rows, columns, expressions, and hit policy configuration. Used for decision table management, rule editing, and business logic inspection. Possible errors: - BUSINESS_RULE_NOT_FOUND: Business rule with the specified ID does not exist - BUSINESS_RULE_DECISION_TABLE_NOT_FOUND_ERROR: Decision table with the specified ID does not exist within the rule """ businessRuleDecisionTable( """ Search criteria containing the business rule ID and decision table ID to retrieve """ input: BusinessRuleDecisionTableSearchInput! ): BusinessRuleDecisionTable! """ Retrieve field definitions for business rule input and output mapping by group name. Returns the complete field definition group containing all available fields, their types, paths, and validation rules. Used for building business rule expressions, input validation, and output formatting. Possible errors: - BUSINESS_DEFINITIONS_NOT_FOUND: Field definition group with the specified name does not exist """ businessRuleFieldDefinitions( """ Name of the field definition group to retrieve (e.g., 'order', 'customer', 'product') """ name: String! ): BusinessRuleFieldDefinitionGroup! """ Search and retrieve shipping carriers with comprehensive filtering and pagination. Provides flexible search capabilities across carrier data including names, service types, warehouse coverage, and operational status. Results are paginated and can be filtered based on various carrier criteria including creation dates, modification dates, and service types. Possible errors: - CARRIERS_LIST_ERROR: Failed to retrieve carriers from data source due to query execution failure or connection issues """ carriers( """ Search criteria for filtering and paginating carriers. If not provided, returns all accessible carriers with default pagination settings (page 1, 12 items per page). Supports filtering by carrier names, service types, warehouse coverage, creation dates, and modification dates. Results can be sorted by multiple fields with custom ordering. """ input: CarriersSearchInput ): CarriersResponse! """ Retrieve detailed information about a specific shipping carrier. Returns comprehensive carrier data including service type, localized descriptions, pricing information, tracking URL template, logo, and warehouse coverage. Used for shipping configuration, logistics management, and displaying carrier options to customers. Possible errors: - CARRIER_NOT_FOUND_ERROR: Carrier with the specified ID does not exist in the system - CARRIER_GET_ERROR: Failed to retrieve carrier information due to data source connection issues or query execution failure """ carrier( """ Unique identifier of the carrier to retrieve. Must be a positive integer representing a valid carrier ID in the system. This ID is used to reference the carrier throughout shipping operations and logistics management. """ id: Int! ): Carrier! """ Retrieve detailed information about a specific shopping cart. Returns comprehensive cart data including items, addresses, payment information, shipping details, and totals. The cart can be accessed by any user but will show different information based on permissions. Possible errors: - CART_NOT_FOUND_ERROR: Cart with the specified ID does not exist - CART_FETCH_ERROR: Failed to retrieve cart information """ cart( """ Unique identifier of the cart to retrieve. Must be a valid UUID format representing an existing cart in the system. """ id: String! ): Cart! """ Search and retrieve shopping carts with comprehensive filtering and pagination. Provides flexible search capabilities across cart data including customer information, cart status, creation dates, and associated products. Results are paginated and filtered based on user permissions. Possible errors: - CART_FETCH_ERROR: Failed to search carts - FORBIDDEN: Insufficient permissions to search carts AUTH: Role=[order.OWNER,order.EDITOR,order.VIEWER] OR (('user is authenticated') AND ('contactId if present in input matches JWT' AND 'customerId if present in input matches JWT' AND 'companyId(s) if present in input matches JWT')) """ carts( """ Search criteria for filtering carts. Supports filtering by customer information, cart status, creation dates, and more. Results are restricted based on user permissions and organizational access. """ input: CartSearchInput! ): CartResponse! """ Retrieves a specific channel by its unique identifier. Returns detailed channel information including configuration and metadata. Errors: CHANNEL_GET_ERROR, CHANNEL_NOT_FOUND_ERROR if channel doesn't exist. """ channel( """ Unique identifier of the channel to retrieve. Must be a valid channel ID that exists in the system. """ channelId: Int! ): Channel! """ Retrieves all channels accessible to the current user. Errors: CHANNEL_LIST_ERROR if retrieval fails. """ channels: [Channel!]! """ Retrieves the current tenant information based on user context. Errors: TENANT_GET_ERROR, TENANT_NOT_FOUND_ERROR if tenant doesn't exist. AUTH: Role=[configuration.OWNER,configuration.EDITOR,configuration.VIEWER] """ tenant: Tenant! """ Retrieves a specific GraphQL API key by its unique identifier. Returns detailed API key information including the decrypted key. Errors: GQL_API_KEY_GET_ERROR, GQL_API_KEY_NOT_FOUND_ERROR if API key doesn't exist. AUTH: Role=[apikey.OWNER,apikey.EDITOR,apikey.VIEWER] """ gqlApiKey( """Unique identifier of the GraphQL API key to retrieve.""" id: String! ): GqlApiKey! """ Searches and retrieves GraphQL API keys based on filter criteria. Returns paginated results with sorting support. Errors: GQL_API_KEY_LIST_ERROR if retrieval fails. AUTH: Role=[apikey.OWNER,apikey.EDITOR,apikey.VIEWER] """ gqlApiKeys( """Search and filter criteria for GraphQL API keys.""" input: GqlApiKeySearchInput ): GqlApiKeyResponse! """ Retrieves a specific REST API key by its unique identifier. Returns detailed API key information including the decrypted client ID and secret. Errors: REST_API_KEY_GET_ERROR, REST_API_KEY_NOT_FOUND_ERROR if API key doesn't exist. AUTH: Role=[apikey.OWNER,apikey.EDITOR,apikey.VIEWER] """ restApiKey( """Unique identifier of the REST API key to retrieve.""" id: String! ): RestApiKey! """ Searches and retrieves REST API keys based on filter criteria. Returns paginated results with sorting support. Errors: REST_API_KEY_LIST_ERROR if retrieval fails. AUTH: Role=[apikey.OWNER,apikey.EDITOR,apikey.VIEWER] """ restApiKeys( """Search and filter criteria for REST API keys.""" input: RestApiKeySearchInput ): RestApiKeyResponse! """ Retrieve detailed information about a specific payment. Returns comprehensive payment data including transaction details, payment status, and processing information. Used for payment tracking, order management, and financial reporting. Automatically includes transaction details for complete financial context. Possible errors: - GET_PAYMENT_ERROR: Failed to retrieve payment information due to system error - PAYMENT_NOT_FOUND_ERROR: Payment with the specified search criteria does not exist - FORBIDDEN: Insufficient permissions to access payment data AUTH: Role=[order.OWNER,order.EDITOR,order.VIEWER] """ payment( """ Search criteria for finding the payment. Specifies how to identify the payment (by ID, payment ID, or order ID) for retrieval. """ searchBy: SearchByInput! ): Payment """ Search and retrieve payments with comprehensive filtering and pagination. Provides flexible search capabilities across payment data with configurable pagination controls. Results include comprehensive payment information and transaction details by default for complete financial context. Supports response expansion options to optimize data retrieval. Possible errors: - LIST_PAYMENTS_ERROR: Failed to retrieve payments due to system error - FORBIDDEN: Insufficient permissions to access payment data AUTH: Role=[order.OWNER,order.EDITOR,order.VIEWER] """ payments( """ Search criteria for filtering payments. If not provided, returns all accessible payments with default pagination (12 items per page) and includes transaction details. """ input: PaymentsSearchInput ): PaymentsResponse! """ Search and retrieve companies with comprehensive filtering and full-text search capabilities. Provides powerful company discovery functionality including text search across company names, addresses, and contact information. Supports advanced filtering by location, company type, status, and custom attributes with pagination and sorting. AUTH: Role=[user.OWNER,user.EDITOR,user.VIEWER] """ companySearch( """ Company search criteria and filtering options. If not provided, returns all accessible companies with default pagination. Supports text search, location filtering, company type filtering, and advanced search options. """ input: CompanySearchInput ): CompanySearchResponse! @deprecated(reason: "This query is deprecated and will be removed in a future version.") """ Retrieve detailed information about a specific event action configuration. Returns comprehensive event action data including trigger conditions, action settings, and execution parameters. Used for event-driven automation management and workflow configuration. Possible errors: - EVENT_ACTION_CONFIG_NOT_FOUND: Event action configuration with the specified ID not found - EVENT_ACTION_CONFIG_UNKNOWN_ERROR: Unexpected error occurred while fetching the configuration """ eventActionConfig( """ Unique identifier for the event action configuration. Uses UUID v7 format for chronological ordering and global uniqueness across the system. """ id: String! ): IEventActionConfig """ Search and retrieve event action configurations with comprehensive filtering and pagination. Provides flexible search capabilities across event action data including triggers, actions, execution status, and configuration settings. Results are paginated and can be filtered for automation management. """ eventActionConfigs( """ Search criteria for filtering event action configurations. Contains filtering options, pagination settings, and search parameters for finding specific event actions based on triggers, types, or execution contexts. """ input: EventActionConfigSearchInput! ): EventActionConfigResponse """ Search and retrieve favorite lists with comprehensive filtering and pagination. Provides flexible search capabilities across favorite list data including names, owners, item types, and creation dates. Results are paginated and can be filtered by customer, contact, or other criteria. Supports advanced filtering by: - Name-based text search (case-sensitive partial matching) - Owner-based filtering (company, contact, or customer - mutually exclusive) - Content-based filtering (products and clusters using IDs or external sources) - Date range filtering (creation and modification dates) - Default list status filtering Pagination is controlled through page and offset parameters with configurable limits. Possible errors: - FAVORITE_LISTS_SEARCH_ERROR: Failed to search favorite lists due to system error - FAVORITE_LISTS_INVALID_INPUT_ERROR: Invalid search criteria or validation failure - FAVORITE_LISTS_UNKNOWN_ERROR: Unexpected system error during search operation AUTH: Role=[system] OR ('user is authenticated') """ favoriteLists( """ Search criteria for filtering favorite lists. Contains optional filters for name, ownership, content, dates, and pagination settings. If not provided, returns all accessible favorite lists with default pagination (page 1, offset 12). Validation constraints: - Only one ownership type allowed (company OR contact OR customer) - Page must be positive integer (minimum 1) - Offset must be positive integer (minimum 1) - Name filter supports partial matching with maximum length of 64 characters - Date filters support standard ISO 8601 date range operations """ input: FavoriteListsSearchInput ): FavoriteListsResponse! """ Retrieve detailed information about a specific favorite list. Returns comprehensive favorite list data including items, metadata, and owner information. Used for favorite list management and item display in user interfaces. Key Features: - Returns complete favorite list data structure - Includes all associated products and clusters - Provides ownership and metadata information - Supports real-time data access Response Data: - Basic list information (name, slug, default status) - Owner association (company, contact, or customer - mutually exclusive) - Content arrays (product IDs and cluster IDs) - Timestamps (creation and last modification dates in ISO 8601 format) Validation Constraints: - ID must be a valid MongoDB ObjectId format (24-character hexadecimal string) - Favorite list must exist in the system - User must have appropriate access permissions - ID cannot be null or empty Performance Considerations: - Direct database lookup by primary key for optimal performance - Minimal data transfer with complete object structure - Suitable for real-time applications Access is controlled by authentication and authorization rules based on the list's ownership and user permissions. Possible Errors: - FAVORITE_LISTS_NOT_FOUND_ERROR: Favorite list with the specified ID does not exist - FAVORITE_LISTS_INVALID_INPUT_ERROR: Invalid ObjectId format provided - FAVORITE_LISTS_UNKNOWN_ERROR: Unexpected system error during retrieval AUTH: Role=[system] OR ('user is authenticated') """ favoriteList( """ Unique identifier of the favorite list to retrieve. Must be a valid MongoDB ObjectId string with length of 12 or 24 characters representing an existing favorite list. The ObjectId format is validated automatically and will return an error for invalid formats. Validation Constraints: - Required field (cannot be null or empty) - Must be valid ObjectId format (hexadecimal string) - Must reference an existing favorite list in the system - Length must be exactly 24 characters (or 12 bytes in binary) - Must contain only hexadecimal characters (0-9, a-f, A-F) Examples of Valid IDs: - 67d2a7d52dfe2a405d3bd5b9 - 507f1f77bcf86cd799439011 - 123456789012345678901234 Where to Find IDs: - Response from favoriteListCreate mutation - Results from favoriteLists search query - Database records or external system references """ id: String! ): FavoriteList! """ Retrieve detailed inventory information for a specific inventory record. Returns comprehensive inventory data including stock levels, location details, product associations, and availability status. Used for inventory management and stock level monitoring. Possible errors: - INVENTORY_NOT_FOUND_ERROR: Inventory record with the specified ID does not exist - INVENTORY_GET_ERROR: Failed to retrieve inventory information - FORBIDDEN: Insufficient permissions to access inventory data AUTH: Role=[logistics.OWNER,logistics.EDITOR,logistics.VIEWER] """ inventory( """ Unique identifier of the inventory record to retrieve. Must be a positive integer representing a valid inventory ID in the system. """ id: Int! ): InventoryResponse! """AUTH: Role=[product.OWNER,product.EDITOR,product.VIEWER]""" mediaImage( """Unique identifier of the image to retrieve""" mediaId: String! ): MediaImage! @deprecated(reason: "Deprecated in favor of `media.image`") """AUTH: Role=[product.OWNER,product.EDITOR,product.VIEWER]""" mediaImages( """Images search options""" search: MediaImageSearchInput = {page: 1, offset: 12} ): PaginatedMediaImageResponse! @deprecated(reason: "Deprecated in favor of `media.images`") """AUTH: Role=[product.OWNER,product.EDITOR,product.VIEWER]""" mediaVideo(mediaId: String!): MediaVideo! @deprecated(reason: "Deprecated in favor of `media.video`") """AUTH: Role=[product.OWNER,product.EDITOR,product.VIEWER]""" mediaVideos( """Videos search options""" search: MediaVideoSearchInput = {page: 1, offset: 12} ): PaginatedMediaVideoResponse! @deprecated(reason: "Deprecated in favor of `media.videos`") """AUTH: Role=[product.OWNER,product.EDITOR,product.VIEWER]""" mediaDocument(mediaId: String!): MediaDocument! @deprecated(reason: "Deprecated in favor of `media.document`") """AUTH: Role=[product.OWNER,product.EDITOR,product.VIEWER]""" mediaDocuments( """Documents search options""" search: MediaDocumentSearchInput = {page: 1, offset: 12} ): PaginatedMediaDocumentResponse! @deprecated(reason: "Deprecated in favor of `media.documents`") """ Access point for media management operations. Provides a unified interface for accessing different types of media content including images, videos, documents, and attachments. Use the nested resolvers to access specific media types. Note: This is a placeholder query that returns an empty Media object. Use the nested resolvers (image, images, video, videos, document, documents, attachment, attachments) to access actual media content. """ media: Media """ Retrieve detailed information about a specific message template. Returns comprehensive template data including content, localization, configuration, and metadata for template management and message rendering operations. Possible errors: - TEMPLATE_NOT_FOUND: Template with specified ID does not existAUTH: Role=[configuration.OWNER,configuration.EDITOR,configuration.VIEWER] """ template( """ Unique identifier for the template. UUID that uniquely identifies the template in the system, used for retrieving specific template data and configuration. """ id: String! ): IBaseTemplate! """ Search and retrieve message templates with comprehensive filtering. Provides flexible search capabilities across template data including types, channels, default designations, and localization with pagination support.AUTH: Role=[configuration.OWNER,configuration.EDITOR,configuration.VIEWER] """ templates( """ Search criteria for filtering and retrieving templates. Comprehensive search configuration including type filters, pagination settings, sorting options, and default template designations for targeted template discovery. """ input: TemplateSearchInput! ): TemplateResponse! """ Retrieve detailed information about a specific template error log entry. Returns comprehensive error data including stack traces, event context, and diagnostic information for debugging template processing failures.AUTH: Role=[configuration.OWNER,configuration.EDITOR,configuration.VIEWER] """ templateErrorLog( """ Unique identifier for the error log entry. UUID that uniquely identifies the error log entry in the system, used for retrieving specific error details for debugging. """ id: String! ): TemplateErrorLog! """ Search and retrieve template error logs with comprehensive filtering. Provides flexible search capabilities across error log data including error types, template identification, date ranges, and pagination for systematic debugging and monitoring.AUTH: Role=[configuration.OWNER,configuration.EDITOR,configuration.VIEWER] """ templateErrorLogs( """ Search criteria for filtering error logs. Comprehensive search configuration including error type filters, template identification, date ranges, pagination settings, and sorting options for targeted error analysis. """ input: TemplateErrorLogSearchInput! ): TemplateErrorLogResponse! """ Retrieve statistical summary of template error logs for monitoring and analysis. Provides aggregated metrics about template processing errors including counts by error type, temporal boundaries, and overall system health indicators for proactive monitoring and system assessment.AUTH: Role=[configuration.OWNER,configuration.EDITOR,configuration.VIEWER] """ templateErrorLogStats: TemplateErrorLogStats! """ Retrieve a single agent by its unique identifier. Possible errors: - AGENT_NOT_FOUND_ERROR: Agent with specified ID does not exist - AGENT_GET_ERROR: Failed to retrieve agent due to system issuesAUTH: Role=[configuration.OWNER,configuration.EDITOR,configuration.VIEWER] OR ('user is authenticated') """ agent( """Unique identifier for the agent.""" id: ID! ): Agent! """ Search and retrieve agents with filtering and pagination. Possible errors: - AGENT_SEARCH_ERROR: Failed to search agents due to system issuesAUTH: Role=[configuration.OWNER,configuration.EDITOR,configuration.VIEWER] OR ('user is authenticated') """ agents( """Search criteria for filtering and retrieving agents.""" input: AgentSearchInput ): AgentResponse! """ Search and retrieve order statuses with comprehensive filtering and pagination. Provides flexible search capabilities across order status data including names, descriptions, workflow positions, and status set associations. Results are paginated and can be filtered for order lifecycle management. AUTH: Role=[order.OWNER,order.EDITOR,order.VIEWER] """ orderStatuses( """ Search criteria for filtering order statuses. If not provided, returns all accessible order statuses with default pagination settings. Supports filtering by name, status set, workflow position, and other status metadata. """ input: OrderStatusesSearchInput ): OrderStatusesResponse! """ Retrieve detailed information about a specific order status. Returns comprehensive order status data including workflow position, transitions, descriptions, and status set associations. Used for order lifecycle management and workflow configuration. Possible errors: - ORDER_STATUS_NOT_FOUND_ERROR: Order status with the specified criteria does not exist AUTH: Role=[order.OWNER,order.EDITOR,order.VIEWER] """ orderStatus( """ Search criteria for finding the order status. Specifies how to identify the order status (by ID, name, or other criteria) for retrieval. """ input: OrderStatusSearchByInput! ): OrderStatus! """ Search and retrieve order status sets with comprehensive filtering and pagination. Provides flexible search capabilities across order status set data including names, descriptions, and contained statuses. Results are paginated and can be filtered for workflow organization and management. AUTH: Role=[order.OWNER,order.EDITOR,order.VIEWER] """ orderStatusSets( """ Search criteria for filtering order status sets. If not provided, returns all accessible order status sets with default pagination settings. Supports filtering by name, contained statuses, and other set metadata. """ input: OrderStatusSetsSearchInput ): OrderStatusSetsResponse! """ Retrieve detailed information about a specific order status set. Returns comprehensive order status set data including contained statuses, workflow configuration, and metadata for order lifecycle management and workflow organization. Possible errors: - ORDER_STATUS_SET_NOT_FOUND_ERROR: Order status set with the specified criteria does not exist AUTH: Role=[order.OWNER,order.EDITOR,order.VIEWER] """ orderStatusSet( """ Search criteria for finding the order status set. Specifies how to identify the order status set (by ID, name, or other criteria) for retrieval. """ input: OrderStatusSetSearchByInput! ): OrderStatusSet! """ Search and retrieve orders with comprehensive filtering and pagination capabilities. Provides flexible search across order data including customer information, order status, financial details, date ranges, and product information. Results are paginated and can be filtered based on various business criteria to support operational workflows and customer service needs. Possible errors: - ORDER_FETCH_ERROR: Failed to retrieve orders due to system error - ORDERS_LIST_ERROR: Error occurred during order list processing - FORBIDDEN: Insufficient permissions to access orders - VALIDATION_ERROR: Invalid search parameters provided AUTH: Role=[order.OWNER,order.EDITOR,order.VIEWER] OR (('user is authenticated') AND ('userId if present in input matches JWT' AND 'companyId(s) if present in input matches JWT')) """ orders( """ Search criteria and pagination parameters for filtering orders. All fields are optional - if no criteria provided, returns all accessible orders with default pagination settings. """ input: OrderSearchArguments ): OrderResponse! """ Retrieve comprehensive information about a specific order by its identifier. Returns complete order data including all associated entities such as order items, billing and delivery addresses, shipment information, payment details, totals, and revision history. This query provides full order context needed for customer service, order management, and fulfillment operations. The order can be accessed using either: - Numeric ID (legacy identifier for internal systems) - UUID (modern identifier for external integrations) Exactly one identifier must be provided - specifying both will result in a validation error. Retrieved data includes: - Basic order information (status, dates, customer details) - Financial data (totals, taxes, payment information, postage costs) - Order items with product details and quantities - Billing and delivery addresses - Shipment tracking and fulfillment status - Order revision history and audit trail Possible errors: - ORDER_NOT_FOUND: Order with the specified ID or UUID does not exist - ORDER_GET_ERROR: Failed to retrieve order information due to system error - FORBIDDEN: Insufficient permissions to access this order - VALIDATION_ERROR: Both orderId and orderUUID provided, or neither provided AUTH: Role=[order.OWNER,order.EDITOR,order.VIEWER] OR ('user is authenticated') """ order( """ Unique numeric identifier of the order to retrieve. Legacy identifier used primarily for internal systems and backward compatibility. This is the primary key from the order table and is guaranteed to be unique within the system. Either this or orderUUID must be provided, but not both. Providing both will result in a validation error. """ orderId: Int """ Unique UUID identifier of the order to retrieve. Modern identifier used for external integrations and API consumers. This UUID is globally unique and preferred for new integrations as it provides better security and scalability. Either this or orderId must be provided, but not both. Providing both will result in a validation error. """ orderUUID: String ): Order! """ Generate and retrieve a PDF document for an order. Creates a PDF representation of the order including all order details, items, addresses, and financial information. Can generate PDF for a specific revision if revision number is provided. Possible errors: - ORDER_NOT_FOUND: Order with the specified ID does not exist - ORDER_REVISION_NOT_FOUND_ERROR: Specified revision does not exist - TEMPLATE_RENDER_ERROR: Failed to generate PDF due to template or rendering error - VALIDATION_ERROR: Invalid order ID or revision number provided - FORBIDDEN: Insufficient permissions to access order PDF """ orderGetPDF( """Unique identifier of the order to generate PDF for""" orderId: Int! """Optional revision number to generate PDF for specific revision""" revisionNumber: Int ): Base64File! """ Generate and retrieve a PDF quote document for an order. Creates a PDF quote representation of the order including all order details, items, addresses, and financial information. Can generate PDF for a specific revision if revision number is provided. Possible errors: - ORDER_NOT_FOUND: Order with the specified ID does not exist - ORDER_REVISION_NOT_FOUND_ERROR: Specified revision does not exist - TEMPLATE_RENDER_ERROR: Failed to generate PDF due to template or rendering error - VALIDATION_ERROR: Invalid order ID or revision number provided - FORBIDDEN: Insufficient permissions to access order quote PDF """ quoteGetPDF( """Unique identifier of the order to generate quote PDF for""" orderId: Int! """Optional revision number to generate quote PDF for specific revision""" revisionNumber: Int ): Base64File! """ Retrieve a specific order address by its identifier and order ID. Returns detailed address information including contact details, address type, and associated order context. Possible errors: - ORDER_ADDRESS_NOT_FOUND_ERROR: Order address with specified ID does not exist for the given order - ORDER_NOT_FOUND: Order with the specified ID does not exist - ORDER_ADDRESS_GET_ERROR: Failed to retrieve order address due to system error - VALIDATION_ERROR: Invalid address ID or order ID provided - FORBIDDEN: Insufficient permissions to access this order address AUTH: Role=[order.OWNER,order.EDITOR,order.VIEWER] OR ('user is authenticated') """ orderAddress( """Unique identifier for this address""" id: Int! """ID of the order this address belongs to""" orderId: Int! ): OrderAddress! """ Retrieve all addresses associated with a specific order, optionally filtered by address type. Returns a list of order addresses including billing, delivery, and other address types associated with the order. Possible errors: - ORDER_NOT_FOUND: Order with the specified ID does not exist - ORDER_ADDRESS_LIST_ERROR: Failed to retrieve order addresses due to system error - VALIDATION_ERROR: Invalid order ID or address type provided - FORBIDDEN: Insufficient permissions to access order addresses AUTH: Role=[order.OWNER,order.EDITOR,order.VIEWER] OR ('user is authenticated') """ orderAddresses( """Unique identifier of the order to retrieve addresses for""" orderId: Int! """Optional address type filter (e.g., billing, delivery)""" type: AddressType ): [OrderAddress!]! """ Retrieve addresses for an order (deprecated - use orderAddresses instead). Returns a list of addresses associated with the specified order, optionally filtered by address type. Possible errors: - ORDER_NOT_FOUND: Order with the specified ID does not exist - ORDER_ADDRESS_LIST_ERROR: Failed to retrieve order addresses due to system error - VALIDATION_ERROR: Invalid order ID or address type provided - FORBIDDEN: Insufficient permissions to access order addresses AUTH: Role=[order.OWNER,order.EDITOR,order.VIEWER] """ addressesByOrderId( """Unique identifier of the order to retrieve addresses for""" orderId: Int! """Optional address type filter""" type: AddressType ): [Address!]! @deprecated(reason: "Use orderAddresses") """ Retrieve detailed information about a specific shipment by its identifier. Returns comprehensive shipment data including items, tracking information, delivery details, and status. Possible errors: - SHIPMENT_NOT_FOUND_ERROR: Shipment with the specified ID does not exist - SHIPMENT_GET_ERROR: Failed to retrieve shipment information due to system error - VALIDATION_ERROR: Invalid shipment ID provided - FORBIDDEN: Insufficient permissions to access this shipment AUTH: Role=[order.OWNER,order.EDITOR,order.VIEWER] OR ('user is authenticated') """ shipment( """Unique UUID identifier of the shipment to retrieve""" id: String! ): Shipment! """ Search and retrieve shipments with comprehensive filtering and pagination capabilities. Provides flexible search across shipment data including order references, shipment status, carrier information, delivery dates, and tracking details. Results are paginated and can be filtered based on various fulfillment and logistics criteria to support warehouse operations and customer service needs. Possible errors: - SHIPMENT_LIST_ERROR: Failed to retrieve shipments due to system error - FORBIDDEN: Insufficient permissions to access shipments - VALIDATION_ERROR: Invalid search parameters provided AUTH: Role=[order.OWNER,order.EDITOR,order.VIEWER] OR ('user is authenticated') """ shipments( """ Search criteria and pagination parameters for filtering shipments. All fields are optional - if no criteria provided, returns all accessible shipments with default pagination settings. """ input: ShipmentSearchInput ): ShipmentResponse! """ AUTH: Role=[order.OWNER,order.EDITOR,order.VIEWER] OR ('user is authenticated') """ shipmentItem(id: String!): ShipmentItem! """ AUTH: Role=[order.OWNER,order.EDITOR,order.VIEWER] OR ('user is authenticated') """ shipmentItems(input: ShipmentItemSearchInput): ShipmentItemResponse! """ Retrieve detailed tracking information for a specific shipment by its tracking identifier. Retrieved data includes: - Tracking record identification and timestamps - Carrier-provided tracking codes and references - Shipment association for order context Possible errors: - TRACK_AND_TRACE_NOT_FOUND_ERROR: Tracking record with specified ID does not exist - TRACK_AND_TRACE_GET_ERROR: Failed to retrieve tracking information due to system error - FORBIDDEN: Insufficient permissions to access tracking information AUTH: Role=[order.OWNER,order.EDITOR,order.VIEWER] OR ('user is authenticated') """ trackAndTrace( """ Unique UUID identifier of the tracking record to retrieve. Must reference an existing tracking record that is accessible to the current user. """ id: String! ): TrackAndTrace! """ Search and retrieve tracking information with comprehensive filtering and pagination capabilities. Provides flexible search across tracking data including shipment references, carrier information, tracking codes, status updates, and delivery confirmations. Results are paginated and can be filtered based on various logistics and customer service criteria. Possible errors: - TRACK_AND_TRACE_LIST_ERROR: Failed to retrieve tracking information due to system error - FORBIDDEN: Insufficient permissions to access tracking information - VALIDATION_ERROR: Invalid search parameters provided AUTH: Role=[order.OWNER,order.EDITOR,order.VIEWER] OR ('user is authenticated') """ trackAndTraces( """ Search criteria and pagination parameters for filtering tracking information. All fields are optional - if no criteria provided, returns all accessible tracking records with default pagination settings. """ input: TrackAndTraceSearchInput ): TrackAndTraceResponse! """ Search and retrieve order revisions with comprehensive filtering and pagination capabilities. Provides flexible search across order revision data including revision numbers, creation dates, order references, and revision status. Results are paginated and can be filtered based on various criteria to support audit trails and order history tracking. Possible errors: - ORDER_REVISION_GET_ERROR: Failed to retrieve order revisions due to system error - VALIDATION_ERROR: Invalid search parameters provided - FORBIDDEN: Insufficient permissions to access order revisions AUTH: Role=[order.OWNER,order.EDITOR,order.VIEWER] OR ('user is authenticated') """ orderRevisions( """ Search criteria and pagination parameters for filtering order revisions """ input: OrderRevisionSearchInput ): OrderRevisionResponse! """ Retrieve a specific order revision by order ID and revision number. Returns detailed information about a specific revision of an order including all order data as it existed at the time of that revision. Essential for audit trails and order history tracking. Possible errors: - ORDER_NOT_FOUND: Order with the specified ID does not exist - ORDER_REVISION_NOT_FOUND_ERROR: Order revision with specified parameters does not exist - ORDER_REVISION_GET_ERROR: Failed to retrieve order revision due to system error - VALIDATION_ERROR: Invalid order ID or revision number provided - FORBIDDEN: Insufficient permissions to access order revisions AUTH: Role=[order.OWNER,order.EDITOR,order.VIEWER] OR ('user is authenticated') """ orderRevision( """Unique identifier of the order to retrieve revision for""" orderId: Int! """Revision number to retrieve""" revisionNumber: Int! ): OrderRevision """ Retrieve detailed information about a specific order list by its unique identifier. Returns comprehensive order list data including product assignments, user permissions, company associations, and all configuration settings. Essential for order list management, bulk ordering operations, and administrative oversight. The returned order list includes: - Basic information (ID, descriptions, code, dates) - Product and cluster assignments - User and company permissions - Configuration settings (type, active status, partner entity) Possible errors: - ORDERLIST_NOT_FOUND_ERROR: Order list with the specified ID does not exist - ORDERLIST_CROSS_SERVICE_ERROR: Failed to validate related entities - ORDERLIST_UKNOWN_ERROR: Unexpected system error during retrieval - FORBIDDEN: Insufficient permissions to access order list data AUTH: Role=[shop.OWNER,shop.EDITOR,shop.VIEWER] OR ('user is authenticated') """ orderlist( """ Unique identifier of the order list to retrieve. Must be a valid positive integer representing an existing order list ID in the system. The ID is the primary key used to uniquely identify the order list across all operations. Validation: Must be a positive integer, order list must exist and be accessible to the authenticated user. """ id: Int! ): Orderlist! """ Search and retrieve order lists with comprehensive filtering, sorting, and pagination capabilities. Provides flexible search functionality across all order list data including descriptions, codes, product assignments, user permissions, company associations, and metadata. Results are automatically filtered based on user permissions and organizational access rights. Search capabilities include: - Text-based filtering on descriptions and codes - Date range filtering for creation and modification dates - Product and cluster association filtering - User and company assignment filtering - Status and type filtering - Multi-field sorting with customizable directions Results are paginated for performance and include comprehensive metadata about the search operation. Possible errors: - ORDERLIST_CROSS_SERVICE_ERROR: Failed to validate search criteria against external services - ORDERLIST_VALIDATION_ERROR: Invalid search parameters or criteria - ORDERLIST_UKNOWN_ERROR: Unexpected system error during search operation - FORBIDDEN: Insufficient permissions to access order list data AUTH: Role=[shop.OWNER,shop.EDITOR,shop.VIEWER] OR ('user is authenticated') """ orderlists( """ Search and filtering criteria for order list retrieval. Comprehensive input object that supports filtering by multiple criteria including: - Pagination settings (page, offset) - Date range filters (creation, modification, validity dates) - Text filters (codes, descriptions) - Association filters (products, clusters, users, companies) - Status filters (active/inactive, type) - Sorting options (multiple fields with directions) If not provided, returns all accessible order lists with default pagination settings (page 1, 12 items per page). All filters are optional and can be combined for precise result sets. Validation: All provided criteria must be valid according to their respective field requirements. """ input: OrderlistSearchInput ): OrderlistsResponse! """ Get computed orderlists for a customer or contact/company. Retrieves all active orderlists assigned to the specified customer/contact and/or company, then merges them into computed arrays of positive/negative product and cluster IDs. This query consolidates the orderlist merging logic that was previously handled in the productsearch service. The computation process: - Retrieves all active orderlists for the specified customer/contact/company - Separates orderlists by type (POSITIVE/NEGATIVE) - Combines product IDs and cluster IDs from each type - Filters out negative IDs from positive lists (negative orderlists take precedence) Returns four arrays: - positiveOrderlistsProductIds: Product IDs from positive orderlists, excluding any that appear in negative orderlists - negativeOrderListsProductIds: All product IDs from negative orderlists - positiveOrderListsClusterIds: Cluster IDs from positive orderlists, excluding any that appear in negative orderlists - negativeOrderListsClusterIds: All cluster IDs from negative orderlists Also includes counts of positive and negative orderlists that were processed. Validation rules: - At least one of customerId, contactId, or companyId must be provided - customerId cannot be used in combination with companyId - contactId can be used with companyId to include both contact and company orderlists Possible errors: - ORDERLIST_VALIDATION_ERROR: Invalid input parameters (e.g., customerId used with companyId, no identifiers provided) - ORDERLIST_CROSS_SERVICE_ERROR: Failed to validate customer/contact/company identifiers - ORDERLIST_UKNOWN_ERROR: Unexpected system error during computation - FORBIDDEN: Insufficient permissions to access order list data AUTH: Role=[shop.OWNER,shop.EDITOR,shop.VIEWER] OR ('user is authenticated') """ computedOrderlists( """ Input for computing merged orderlists. Specify customerId (for customers), contactId (for contacts), and/or companyId (for companies or contacts with company associations). At least one identifier must be provided. For customers: Provide customerId only (cannot be combined with companyId). For contacts: Provide contactId, and optionally companyId to include company-level orderlists. For companies: Provide companyId only. """ input: ComputedOrderlistsInput! ): ComputedOrderlistsResponse! """ Retrieve detailed information about a specific payment method. Returns comprehensive payment method data including localized names, external integration codes, branding elements, and configuration details. Used for payment processing workflows and checkout system integration. Possible errors: - PAY_METHOD_NOT_FOUND_ERROR: Payment method with the specified ID does not exist - PAY_METHOD_UNKNOWN_ERROR: Unknown error occurred while retrieving payment method """ payMethod( """ Unique identifier of the payment method to retrieve. Must be a positive integer representing a valid payment method ID in the system. """ id: Int! ): PayMethod! """ Search and retrieve payment methods with comprehensive filtering and pagination. Provides flexible search capabilities for payment method discovery including date range filtering, external code matching, and identifier-based searches. Results are paginated and support custom sorting for efficient payment method catalog management. Possible errors: - PAY_METHOD_UNKNOWN_ERROR: Unknown error occurred while searching payment methods """ payMethods( """ Search criteria for filtering payment methods. If not provided, returns all accessible payment methods with default pagination settings. Supports filtering by type, status, and configuration options. """ input: PayMethodSearchInput ): PayMethodsResponse! """ Retrieve detailed information about a specific price record. Returns comprehensive price data including base pricing, cost information, volume discounts, and associated metadata. Used for price management and configuration. Possible errors: - PRICE_NOT_FOUND_ERROR: Price with the specified ID does not exist - PRICE_FETCH_ERROR: Failed to retrieve price information - UNAUTHENTICATED: Invalid or missing authentication - FORBIDDEN: Insufficient permissions to access price data AUTH: Role=[pricing.OWNER,pricing.EDITOR,pricing.VIEWER] """ price( """ Unique identifier of the price record to retrieve. Must be a valid UUID format representing an existing price in the system. """ id: String! ): Price! """ Search and retrieve price records with comprehensive filtering and pagination. Provides flexible search capabilities across price data including product associations, price ranges, effective dates, and pricesheet assignments. Results are paginated and can be filtered based on various pricing criteria. Possible errors: - PRICE_FETCH_ERROR: Failed to search prices - UNAUTHENTICATED: Invalid or missing authentication - FORBIDDEN: Insufficient permissions to access price data AUTH: Role=[pricing.OWNER,pricing.EDITOR,pricing.VIEWER] """ prices( """ Search criteria for filtering price records. If not provided, returns all accessible prices with default pagination settings. Supports filtering by product, pricesheet, price ranges, and effective dates. """ input: PriceSearchInput ): PriceResponse! """ Search and retrieve cost price records with filtering and pagination. Provides comprehensive search capabilities across cost price data including product associations, quantity tiers, cost values, and effective dates. Results are paginated for efficient data management. Possible errors: - COST_PRICE_LIST_ERROR: Failed to retrieve cost price data AUTH: Role=[pricing.OWNER,pricing.EDITOR,pricing.VIEWER] """ costPrices( """ Search criteria for filtering cost price records. If not provided, returns all accessible cost prices with default pagination settings. """ input: CostPriceSearchInput ): CostPriceResponse! """ Calculate the final price for a product based on customer context and business rules. Performs comprehensive price calculation including base prices, customer-specific pricing, volume discounts, promotional offers, and tax calculations. Returns the final calculated price that should be displayed to the customer. Possible errors: - PRICE_CALCULATION_ERROR: Failed to calculate the price - PRODUCT_NOT_FOUND_ERROR: Specified product does not exist - PRICESHEET_NOT_FOUND_ERROR: No applicable pricing found for the customer context - CUSTOMER_NOT_FOUND_ERROR: Specified customer does not exist - UNAUTHENTICATED: Invalid or missing authentication - FORBIDDEN: Insufficient permissions to access pricing AUTH: Role=[pricing.OWNER,pricing.EDITOR,pricing.VIEWER] """ priceCalculate( """ Price calculation parameters including product, customer context, and quantity. Contains all necessary information to determine the appropriate pricing including customer identification, product details, quantity, and any special pricing contexts. """ input: PriceCalculateInput! ): ProductPrice! """ Explain the price calculation process with detailed breakdown. Returns a step-by-step explanation of how the final price was calculated, including all applied discounts, markups, taxes, and business rules. Useful for debugging pricing issues and understanding complex pricing logic. Possible errors: - PRICE_CALCULATION_ERROR: Failed to calculate the price - PRODUCT_NOT_FOUND_ERROR: Specified product does not exist - PRICESHEET_NOT_FOUND_ERROR: No applicable pricing found for the customer context - CUSTOMER_NOT_FOUND_ERROR: Specified customer does not exist - UNAUTHENTICATED: Invalid or missing authentication - FORBIDDEN: Insufficient permissions to access pricing AUTH: Role=[pricing.OWNER,pricing.EDITOR,pricing.VIEWER] """ priceExplain( """ Price calculation parameters for detailed explanation. Same parameters as price calculation but returns detailed breakdown of all pricing components and business rules applied. """ input: PriceCalculateInput! ): [ProductPrice!]! """ Retrieve default pricing for products without customer-specific context. Returns the base pricing for products without applying customer-specific discounts or special pricing rules. Useful for displaying catalog prices or when customer context is not available. Possible errors: - PRICE_CALCULATION_ERROR: Failed to calculate default prices - PRODUCT_NOT_FOUND_ERROR: One or more specified products do not exist - PRICESHEET_NOT_FOUND_ERROR: No default pricing configured - UNAUTHENTICATED: Invalid or missing authentication - FORBIDDEN: Insufficient permissions to access pricing AUTH: Role=[pricing.OWNER,pricing.EDITOR,pricing.VIEWER] """ priceDefault( """ Default price calculation parameters. Contains product identifiers and basic parameters for calculating default prices without customer-specific context. """ input: PriceCalculateDefaultInput! ): [ProductPrice!]! """ Retrieve detailed information about a specific pricesheet. Returns comprehensive pricesheet data including pricing rules, customer assignments, effective dates, and associated price records. Pricesheets define pricing strategies for different customer segments. Possible errors: - PRICESHEET_NOT_FOUND_ERROR: Pricesheet with the specified ID does not exist - PRICESHEET_FETCH_ERROR: Failed to retrieve pricesheet information - UNAUTHENTICATED: Invalid or missing authentication - FORBIDDEN: Insufficient permissions to access pricesheet data AUTH: Role=[pricing.OWNER,pricing.EDITOR,pricing.VIEWER] """ pricesheet( """ Unique identifier of the pricesheet to retrieve. Must be a valid UUID format representing an existing pricesheet in the system. """ id: String! ): Pricesheet! """ Search and retrieve pricesheets with comprehensive filtering and pagination. Provides flexible search capabilities across pricesheet data including names, types, customer assignments, effective dates, and pricing strategies. Results are paginated and can be filtered based on various criteria. Possible errors: - PRICESHEET_FETCH_ERROR: Failed to search pricesheets - UNAUTHENTICATED: Invalid or missing authentication - FORBIDDEN: Insufficient permissions to access pricesheet data AUTH: Role=[pricing.OWNER,pricing.EDITOR,pricing.VIEWER] """ pricesheets( """ Search criteria for filtering pricesheets. If not provided, returns all accessible pricesheets with default pagination settings. Supports filtering by name, type, customer assignments, and effective dates. """ input: PricesheetSearchInput ): PricesheetResponse! """ Get effective pricesheets for a customer or contact. Returns all pricesheets that apply to a specific user, including directly assigned pricesheets and pricesheets linked via usergroups. Results are ordered by priority (highest first) and paginated. This query is useful for product search filtering and sorting, where you need to know which pricesheets apply to a specific user to determine effective pricing. Possible errors: - PRICESHEET_FETCH_ERROR: Failed to retrieve effective pricesheets - UNAUTHENTICATED: Invalid or missing authentication - FORBIDDEN: Insufficient permissions to access pricesheet data AUTH: Role=[pricing.OWNER,pricing.EDITOR,pricing.VIEWER] """ pricesheetsEffective( """ Input parameters to identify the user and retrieve their effective pricesheets. Must provide either contactId or customerId. When using contactId, you can optionally specify companyId (defaults to contact's default company if omitted). """ input: PricesheetsEffectiveInput! ): PricesheetResponse! """ Retrieve detailed information about a specific discount record. Returns comprehensive discount data including percentage values, category associations, pricesheet assignments, effective dates, and application rules. Used for discount management and pricing calculations. Possible errors: - DISCOUNT_NOT_FOUND_ERROR: Discount with the specified ID does not exist - DISCOUNT_FETCH_ERROR: Failed to retrieve discount information - UNAUTHENTICATED: Invalid or missing authentication - FORBIDDEN: Insufficient permissions to access discount data AUTH: Role=[pricing.OWNER,pricing.EDITOR,pricing.VIEWER] """ discount( """ Unique identifier of the discount record to retrieve. Must be a valid UUID format representing an existing discount in the system. """ id: String! ): Discount! """ Search and filter discount records with pagination support. Returns a paginated list of discount records based on comprehensive search criteria. Supports filtering by pricesheet associations, category assignments, percentage ranges, effective dates, and more. Possible errors: - DISCOUNT_LIST_ERROR: Failed to retrieve discount list - DISCOUNT_SEARCH_ERROR: Invalid search parameters - UNAUTHENTICATED: Invalid or missing authentication - FORBIDDEN: Insufficient permissions to access discount data AUTH: Role=[pricing.OWNER,pricing.EDITOR,pricing.VIEWER] """ discounts( """ Search criteria for filtering discount records. If not provided, returns all accessible discounts with default pagination settings. Supports filtering by pricesheet, category, percentage ranges, and effective dates. """ input: DiscountSearchInput ): DiscountResponse! """ Search and retrieve bulk price records with filtering and pagination. Provides comprehensive search capabilities across bulk pricing data including quantity tiers, price values, effective dates, and product associations. Results are paginated for efficient data management. Possible errors: - BULK_PRICE_LIST_ERROR: Failed to retrieve bulk price data AUTH: Role=[pricing.OWNER,pricing.EDITOR,pricing.VIEWER] """ bulkPrices( """ Search criteria for filtering bulk price records. If not provided, returns all accessible bulk prices with default pagination settings. """ input: BulkPriceSearchInput ): BulkPriceResponse! """ Search and retrieve bulk cost price records with filtering and pagination. Provides comprehensive search capabilities across bulk cost pricing data including quantity tiers, cost values, effective dates, and product associations. Results are paginated for efficient data management. Possible errors: - BULK_COST_PRICE_LIST_ERROR: Failed to retrieve bulk cost price data AUTH: Role=[pricing.OWNER,pricing.EDITOR,pricing.VIEWER] """ bulkCostPrices( """ Search criteria for filtering bulk cost price records. If not provided, returns all accessible bulk cost prices with default pagination settings. """ input: BulkCostPriceSearchInput ): BulkCostPriceResponse! """ Retrieve detailed information about a specific zone tax code record. Returns comprehensive zone tax code data including geographic zone mappings, tax code associations, product assignments, and regional tax rules. Used for location-specific tax calculations and compliance. Possible errors: - ZONE_TAX_CODE_NOT_FOUND_ERROR: Zone tax code with the specified ID does not exist AUTH: Role=[pricing.OWNER,pricing.EDITOR,pricing.VIEWER] """ zoneTaxCode( """ Unique identifier of the zone tax code record to retrieve. Must be a valid UUID format representing an existing zone tax code in the system. """ id: String! ): ZoneTaxCode! """ Search and filter zone tax code records with pagination support. Returns a paginated list of zone tax code records based on comprehensive search criteria. Supports filtering by geographic zones, tax codes, product associations, effective dates, and more. Possible errors: - ZONE_TAX_CODE_LIST_ERROR: Failed to retrieve zone tax code list AUTH: Role=[pricing.OWNER,pricing.EDITOR,pricing.VIEWER] """ zoneTaxCodes( """ Search criteria for filtering zone tax code records. If not provided, returns all accessible zone tax codes with default pagination settings. Supports filtering by geographic zones, tax codes, product associations, and effective dates. """ input: ZoneTaxCodeSearchInput ): ZoneTaxCodeResponse! """ Retrieve tax information by various identifiers. Returns tax configuration including rates and zones. Can be queried by ID, tax code or zone to find the appropriate tax rules. Possible errors: - TAX_NOT_FOUND_ERROR: No tax configuration found for the specified criteria - TAX_GET_ERROR: Failed to retrieve tax information AUTH: Role=[pricing.OWNER,pricing.EDITOR,pricing.VIEWER] """ tax( """ Unique identifier of the tax record. UUID format representing a specific tax configuration. """ id: String """ Tax code classification. Standard tax code used to categorize products for tax calculation purposes. """ code: Taxcode """ Geographic zone identifier. Specific region or jurisdiction where the tax rules apply. """ zone: String ): Tax! """ Search and retrieve tax configurations with filtering and pagination. Provides flexible search capabilities across tax data including codes, zones and rates. Results are paginated and can be filtered based on various tax criteria. Possible errors: - TAX_LIST_ERROR: Failed to search tax configurations AUTH: Role=[pricing.OWNER,pricing.EDITOR,pricing.VIEWER] """ taxes( """ Search criteria for filtering tax configurations. If not provided, returns all accessible tax configurations with default pagination settings. """ input: TaxSearchInput ): TaxesResponse! """ Search for products using Solr (parallel implementation for testing and migration) """ productSearchSolr( """Product search input parameters""" input: ProductSearchSearchInput! ): ProductSearchResponse! """ Search for products across multiple categories. Each category is searched separately with the same filters applied. Results are grouped by category ID for dataloader patterns. """ productSearchByCategory( """Category search input parameters""" input: ProductSearchByCategoryInput! ): ProductSearchByCategoryResponse! """Check if a reindex is currently running for the current tenant""" productSearchReindexLock: ReindexLockResponse! """Get the progress of a reindex by its ID""" productSearchReindexStatus(reindexId: String!): ReindexStatusResponse! """Failed batch jobs for the current tenant""" productSearchBatchMetricsFailedJobs(limit: Int = 50, queue: String): BatchMetricsFailedJobsResponse! """Aggregate status of all batch-related queues""" productSearchBatchMetricsQueueStatus: BatchMetricsQueueStatusResponse! """Hourly batch metrics for the current tenant (last 48 hours)""" productSearchBatchMetricsHourly: BatchMetricsTenantHourlyResponse! """Current batch metrics for the current tenant""" productSearchBatchMetrics: BatchMetricsTenantResponse! """ Retrieve a single product by identifier, stock keeping unit, or localized slug. Exactly one lookup parameter must be supplied. When looking up by slug the matching language must also be supplied. The lookup honours orderlist permissions and can be scoped to a specific user or company for personalised catalog views. Possible errors: - PRODUCT_NOT_FOUND: No product matched the supplied lookup parameters. AUTH: Role=[product.OWNER,product.EDITOR,product.VIEWER] """ product( """ Numeric identifier of the product retained for compatibility with legacy integrations. Deprecated: use `productId` instead. """ id: Int """ Numeric identifier of the product to retrieve. Mutually exclusive with the other lookup parameters. """ productId: Int """ Localized slug of the product to retrieve. Must be paired with the `language` argument so the catalogue can disambiguate slugs across languages. """ slug: String """ Stock keeping unit of the product to retrieve. Mutually exclusive with the other lookup parameters. """ sku: String """Two-letter ISO 639-1 language code paired with the slug lookup.""" language: String """ Applies the caller's orderlist filtering to the result when enabled. Disable to retrieve the product without orderlist permission checks. """ applyOrderlists: Boolean = true """ Identifiers of specific orderlists to apply during the lookup. When omitted, the caller's default orderlists are applied. """ orderlistIds: [Int!] """ Identifier of the user whose catalog view should be impersonated. Permissions, orderlists and favorites of the supplied user are merged with the caller's own. """ userId: Int """ Identifier of the company whose catalog view should be impersonated. Permissions, orderlists and favorites of the supplied company are merged with the caller's own. """ companyId: Int """ Restricts the lookup to products matching the supplied visibility flag. Omit to fall back to the caller's default visibility scope. """ hidden: Boolean ): Product! """ Search products with filtering, sorting and pagination, returning raw records without orderlist enrichment. Restricted to product records only; cluster records are excluded. Use when downstream services need the unfiltered catalogue view. Possible errors: - SCHEMA_VALIDATION: One or more search criteria failed validation. AUTH: Role=[product.OWNER,product.EDITOR,product.VIEWER] OR (('user is authenticated') AND ('userId if present in input matches JWT' AND 'companyId(s) if present in input matches JWT')) """ productsRaw( """Search criteria, pagination and sorting for the product search.""" input: RawProductSearchInput! ): ProductsRawResponse! """ Search both products and clusters in a single result set. Use when the caller needs a unified catalogue view that includes configurable products alongside their cluster wrappers. Possible errors: - SCHEMA_VALIDATION: One or more search criteria failed validation. AUTH: Role=[product.OWNER,product.EDITOR,product.VIEWER] OR (('user is authenticated') AND ('userId if present in input matches JWT' AND 'companyId(s) if present in input matches JWT')) """ baseProducts( """ Search criteria, pagination and sorting that apply to both products and clusters. """ input: BaseProductSearchInput! ): BaseProductsResponse! """ Retrieve a single cluster by identifier or localized slug. Exactly one lookup parameter must be supplied. When looking up by slug the matching language must also be supplied. The lookup honours orderlist permissions and can be scoped to a specific user or company for personalised catalog views. Possible errors: - CLUSTER_NOT_FOUND: No cluster matched the supplied lookup parameters. AUTH: Role=[product.OWNER,product.EDITOR,product.VIEWER] """ cluster( """Deprecated: use `clusterId` instead.""" id: Int """ Numeric identifier of the cluster to retrieve. Mutually exclusive with the other lookup parameters. """ clusterId: Int """ Localized slug of the cluster to retrieve. Must be paired with the `language` argument so the catalogue can disambiguate slugs across languages. """ slug: String """Two-letter ISO 639-1 language code paired with the slug lookup.""" language: String """Enable or disable applying orderlists""" applyOrderlists: Boolean = true hidden: Boolean """List orderlists to apply""" orderlistIds: [Int!] """ Browse catalog as a specific User. Permissions, orderlists, favorite will be merged with the logged in user. """ userId: Int """ Browse catalog as a specific Company. Permissions, orderlists, favorite will be merged with the logged in user. """ companyId: Int ): Cluster! """ Search the catalogue for clusters matching the supplied criteria. Filters can target identifiers, stock keeping units, codes, categories, hidden visibility, and creation or modification date ranges. Results are paginated and may be sorted by any of the supported fields. Possible errors: - SCHEMA_VALIDATION: One or more search criteria failed validation. AUTH: Role=[product.OWNER,product.EDITOR,product.VIEWER] OR (('user is authenticated') AND ('userId if present in input matches JWT' AND 'companyId(s) if present in input matches JWT')) """ clusters( """Search criteria, pagination and sorting for the cluster search.""" input: ClusterSearchInput! ): ClustersResponse! """ Retrieve a single category by identifier, slug or external source. Supports lookup by global identifier, numeric identifier, localized slug, or source / source identifier pair. Exactly one lookup parameter must be supplied. Hidden categories can be filtered in or out for catalog-facing surfaces. Possible errors: - CATEGORY_NOT_FOUND: No category matched the supplied lookup parameters. - CATEGORY_FIND_ERROR: The catalogue could not be queried for the supplied lookup parameters. AUTH: Role=[product.OWNER,product.EDITOR,product.VIEWER] """ category( """ Numeric identifier of the category retained for compatibility with legacy integrations. Deprecated: use `categoryId` instead. """ id: Float """ Numeric identifier of the category to retrieve. Mutually exclusive with the other lookup parameters. """ categoryId: Float """ Global identifier of the category to retrieve. Mutually exclusive with the other lookup parameters. """ uuid: String """ Localized slug of the category to retrieve. When supplied, the `language` argument should also be supplied to disambiguate between languages. """ slug: String """ Two-letter ISO 639-1 language code paired with the slug lookup. Used to disambiguate slugs that exist in more than one language. """ language: String """ Restricts the lookup to categories matching the supplied visibility flag. Omit to fall back to the caller's default visibility scope. """ hidden: YesNo ): Category! """ Retrieve a single category by localized slug and language. Each language is allowed to declare a distinct slug; the language must be supplied to disambiguate when the same slug exists in more than one language. Hidden categories can be filtered in or out for catalog-facing surfaces. Possible errors: - CATEGORY_NOT_FOUND: No category matched the supplied slug and language. - CATEGORY_FIND_ERROR: The catalogue could not be queried for the supplied slug. AUTH: Role=[product.OWNER,product.EDITOR,product.VIEWER] """ categoryBySlug( """ Localized slug of the category to retrieve. Must match the slug stored on the category for the supplied language. """ slug: String! """ Two-letter ISO 639-1 language code identifying which localized slug to match against. """ language: String! """ Restricts the lookup to categories matching the supplied visibility flag. """ hidden: YesNo ): Category! """ Retrieve a single category by its external source / source identifier pair. Used by upstream systems to resolve a category they originated using the identifiers they assigned, without needing to know the catalogue's internal identifiers. Possible errors: - CATEGORY_NOT_FOUND: No category matched the supplied external source. - CATEGORY_FIND_ERROR: The catalogue could not be queried for the supplied source. AUTH: Role=[product.OWNER,product.EDITOR,product.VIEWER] """ categoryBySource( """ External system name paired with the identifier it assigned to the category. Both fields must be supplied. """ source: SourceInput! """ Restricts the lookup to categories matching the supplied visibility flag. """ hidden: YesNo ): Category! """ Search the catalogue for categories matching the supplied criteria. Filters can target identifiers, external sources, parents, hierarchy depth and creation or modification date ranges. Results are paginated and may be sorted by any of the supported fields. Hidden categories can be filtered in or out for catalog-facing surfaces. Possible errors: - CATEGORY_FIND_ERROR: The supplied criteria could not be applied to the catalogue. - SCHEMA_VALIDATION: One or more search criteria failed validation. AUTH: Role=[product.OWNER,product.EDITOR,product.VIEWER] """ categories( """Search criteria, pagination and sorting for the category search.""" input: CategorySearchInput """ Deprecated alias for `input`. Will be removed in the next major version. """ filter: CategorySearchInput ): CategoryResponse! """ Retrieve the ancestor chain of a category, ordered from the category itself up to the root. Used to build breadcrumbs and to confirm a category's position within the catalogue tree. Possible errors: - CATEGORY_NOT_FOUND: The supplied identifier did not match any category. - CATEGORY_HIERARCHY_ERROR: The category hierarchy could not be resolved. AUTH: Role=[product.OWNER,product.EDITOR,product.VIEWER] """ categoryHierarchy( """ Numeric identifier of the category whose ancestor chain is requested. Must be a valid category identifier that exists in the catalogue. """ categoryId: Int! ): [Category!]! """ Retrieve the direct child categories of a category. Only the immediate descendants are returned; use `categories` field resolver or the search query for recursive enumeration. Possible errors: - CATEGORY_NOT_FOUND: The supplied identifier did not match any category. - CATEGORY_FIND_ERROR: The child categories could not be retrieved. AUTH: Role=[product.OWNER,product.EDITOR,product.VIEWER] """ categoryChildren( """ Numeric identifier of the parent category whose direct children are requested. """ categoryId: Int! ): [Category!]! """ Retrieve a single cluster configuration by identifier. Returns the configuration template alongside all of its settings, which define the configurable attributes exposed by clusters built from the template. Possible errors: - CLUSTER_CONFIG_NOT_FOUND: The supplied identifier did not match any cluster configuration. AUTH: Role=[product.OWNER,product.EDITOR,product.VIEWER] """ clusterConfig( """Numeric identifier of the cluster configuration to retrieve.""" clusterConfigId: Int! ): ClusterConfigResponse! """ List all cluster configurations available in the catalogue, ordered by creation date. Returns the complete set of configuration templates without pagination. Intended for administrative tools and small catalogues; use `clusterConfigsPaginated` when paging is required. AUTH: Role=[product.OWNER,product.EDITOR,product.VIEWER] """ clusterConfigs: [ClusterConfigResponse!]! """ Search cluster configurations with filtering and pagination. Results can be filtered by configuration name and creation or modification date ranges, and paginated for use in administrative listings. AUTH: Role=[product.OWNER,product.EDITOR,product.VIEWER] """ clusterConfigsPaginated( """Search criteria and pagination for the cluster configuration search.""" input: ClusterConfigSearchInput! ): ClusterConfigsResponse! """ Retrieve a single cluster configuration setting by global identifier. Returns the setting and the configuration it belongs to so callers can render the full editing surface. Possible errors: - CLUSTER_CONFIG_NOT_FOUND: The setting or its parent configuration could not be located. AUTH: Role=[product.OWNER,product.EDITOR,product.VIEWER] """ clusterConfigSetting( """Global identifier of the cluster configuration setting to retrieve.""" uuid: String! ): ClusterConfigSetting! """ Retrieve a single cluster option by global identifier. Returns the option along with the products selectable for it. Possible errors: - CLUSTER_OPTION_NOT_FOUND: The supplied identifier did not match any cluster option. AUTH: Role=[product.OWNER,product.EDITOR,product.VIEWER] """ clusterOption( """Global identifier of the cluster option to retrieve.""" uuid: String! ): ClusterOption! """ Search cluster options with filtering and pagination. Filters can target identifiers, owning clusters, hidden visibility, and creation or modification date ranges. AUTH: Role=[product.OWNER,product.EDITOR,product.VIEWER] """ clusterOptions( """Search criteria and pagination for the cluster option search.""" input: ClusterOptionPaginatedSearchInput! ): ClusterOptionsResponse! """ Retrieve a single cross- or up-sell relationship by global identifier. Returns the relationship along with the source and target records (products or clusters) it links. Possible errors: - CROSS_UPSELL_NOT_FOUND: The supplied identifier did not match any cross-upsell relationship. AUTH: Role=[product.OWNER,product.EDITOR,product.VIEWER] """ crossupsell( """Global identifier of the cross-upsell relationship to retrieve.""" id: String! ): Crossupsell! """ Search cross- and up-sell relationships with filtering and pagination. Filters can target the source or target records (products or clusters), relationship type and sub-type, and visibility flag. The endpoint covers both products and clusters in a single unified view. AUTH: Role=[product.OWNER,product.EDITOR,product.VIEWER] OR (('user is authenticated') AND ('userId if present in input matches JWT' AND 'companyId(s) if present in input matches JWT')) """ crossupsells( """ Search criteria for cross-upsell relationships, including source and target records, relationship type, and pagination. """ input: CrossupsellSearchInput ): CrossupsellsResponse! """ Search products using the external product search service. Supports free-text search, attribute filtering, faceting, sorting and pagination. Facets surface the available filter options for the current result set and are resolved automatically based on the fields requested. AUTH: Role=[product.OWNER,product.EDITOR,product.VIEWER] OR (('user is authenticated') AND ('userId if present in input matches JWT' AND 'companyId(s) if present in input matches JWT')) """ products( """ Search criteria including free-text term, attribute filters, sorting, pagination and orderlist scope. """ input: ProductSearchInput ): ProductsResponse! """ Search and retrieve role definitions with comprehensive filtering and pagination. Provides flexible search capabilities across role definition data including names, permissions, and metadata. Results are paginated and can be filtered based on various role definition criteria. """ roleDefinitions( """ Search criteria for filtering role definitions. If not provided, returns all accessible role definitions with default pagination settings. """ input: RoleDefinitionSearchInput ): RoleDefinitionResponse! """ Retrieve detailed information about a specific role definition. Returns comprehensive role definition data including permissions, metadata, and configuration. Used for role management and authorization system configuration. Possible errors: - ROLE_DEFINITION_NOT_FOUND_ERROR: Role definition with the specified ID does not exist """ roleDefinition( """ Unique identifier of the role definition to retrieve. Must be a valid UUID format representing an existing role definition in the system. """ id: ID! ): RoleDefinition! """ Retrieve detailed information about a specific role. Returns comprehensive role data including permissions, role definitions, and metadata. Used for role management and authorization configuration. Possible errors: - ROLE_NOT_FOUND_ERROR: Role with the specified ID does not exist AUTH: Role=[role.OWNER,role.EDITOR,role.VIEWER] """ role( """ Unique identifier of the role to retrieve. Must be a valid UUID format representing an existing role in the system. """ id: ID! ): Role! """ Search and retrieve roles with comprehensive filtering and pagination. Provides flexible search capabilities across role data including names, permissions, and role definitions. Results are paginated and can be filtered based on various role criteria. AUTH: Role=[role.OWNER,role.EDITOR,role.VIEWER] OR (('user is authenticated') AND ('userId if present in input matches JWT')) """ roles( """ Search criteria for filtering roles. Contains filtering options, pagination settings, and search parameters for finding specific roles. """ input: RoleSearchInput! ): RoleResponse! """ AUTH: Role=[configuration.OWNER,configuration.EDITOR,configuration.VIEWER] - DEPRECATED: This query will be removed in a future version """ shop(shopId: Int!): Shop! @deprecated(reason: "This query will be removed in a future version") """ AUTH: Role=[configuration.OWNER,configuration.EDITOR,configuration.VIEWER] - DEPRECATED: This query will be removed in a future version """ shops: [Shop!]! @deprecated(reason: "This query will be removed in a future version") """ Retrieve detailed information about a specific spare parts machine. Returns comprehensive machine data including spare parts catalog, hierarchical structure, and localized content. Supports multiple lookup methods including ID, slug/language combination, and external source references. Possible errors: - SPARE_PARTS_MACHINE_NOT_FOUND_ERROR: Machine with the specified criteria does not exist - SPARE_PARTS_GET_MACHINE_ERROR: Failed to retrieve machine information - SPARE_PARTS_GET_MACHINE_BY_ID_ERROR: Failed to retrieve machine by ID - SPARE_PARTS_GET_MACHINE_BY_SLUG_ERROR: Failed to retrieve machine by slug and language - SPARE_PARTS_GET_MACHINE_BY_SOURCE_AND_SOURCE_ID_ERROR: Failed to retrieve machine by external reference - SPARE_PARTS_EXTERNAL_REFERENCE_SEARCH_ERROR: Failed to search external references - VALIDATION_ERROR: Invalid combination of search parameters """ machine( """ Unique identifier of the machine to retrieve. Must be a valid string representing an existing machine in the system. Takes priority over other parameters when provided. """ id: String """ URL-friendly machine identifier for localized access. Human-readable URL segment used for machine pages and SEO-friendly navigation. Must be used in combination with language parameter. """ slug: String """ Language code for localized machine content. Two-character language code for retrieving machine information in the specified language. Must be used in combination with slug parameter. """ language: String """ External system source identifier. Identifies the external system that provided this machine data. Must be used in combination with sourceId parameter for external reference lookup. """ source: String """ External system entity identifier. Unique identifier from the external system for this machine. Must be used in combination with source parameter for external reference lookup. """ sourceId: String ): SparePartsMachine """ Search and retrieve spare parts machines with comprehensive filtering and pagination. Provides flexible search capabilities across machine data including names, models, spare parts catalogs, and hierarchical structures. Results are paginated and optimized for performance based on query depth. Possible errors: - SPARE_PARTS_LIST_MACHINES_ERROR: Failed to search and retrieve machines - SPARE_PARTS_LIST_MACHINES_BY_SOURCE_AND_SOURCE_ID_ERROR: Failed to retrieve machines by external references - SPARE_PARTS_EXTERNAL_REFERENCE_SEARCH_ERROR: Failed to search external references - SPARE_PARTS_UNKNOWN_ERROR: Unexpected error during machine search """ machines( """ Search criteria for filtering machines. If not provided, returns all accessible machines with default pagination settings. Supports filtering by name, model, spare parts, and hierarchical relationships. """ input: SearchSparePartsMachineInput ): SparePartsMachineResponse! """ Search and retrieve surcharges with comprehensive filtering and pagination. Provides flexible search capabilities across surcharge data including names, types, amounts, and product associations. Results are paginated and can be filtered based on various surcharge criteria for pricing management. Possible errors: - FORBIDDEN: Insufficient permissions to access surcharge data - LIST_SURCHARGES_ERROR: Database query failures or errors while fetching surcharges from the datastore AUTH: Role=[pricing.OWNER,pricing.EDITOR,pricing.VIEWER] """ surcharges( """ Search criteria for filtering surcharges. If not provided, returns all accessible surcharges with default pagination settings. Supports filtering by type, amount range, product associations, and other surcharge metadata. """ input: SurchargeSearchInput ): SurchargesResponse! """ Retrieve detailed information about a specific surcharge. Returns comprehensive surcharge data including amounts, calculation rules, product associations, and configuration settings. Used for surcharge management and pricing calculations. Possible errors: - FORBIDDEN: Insufficient permissions to access surcharge data - NOT_FOUND_SURCHARGE_ERROR: Surcharge with the provided ID was not found - GET_SURCHARGE_ERROR: Database access errors while fetching the surcharge AUTH: Role=[pricing.OWNER,pricing.EDITOR,pricing.VIEWER] """ surcharge( """ Unique identifier of the surcharge to retrieve. Must be a valid string representing an existing surcharge in the system. """ id: String! ): Surcharge! """ Retrieve surcharges associated with a specific product. Returns all surcharges linked to the specified product including their amounts, calculation rules, and configuration. Used for pricing calculations and product cost analysis. Possible errors: - FORBIDDEN: Insufficient permissions to access product surcharges - LIST_SURCHARGES_ERROR: Database query failures or errors while fetching product surcharges from the datastore AUTH: Role=[pricing.OWNER,pricing.EDITOR,pricing.VIEWER] """ productSurcharges( """ Unique identifier of the product. Must be a positive integer representing a valid product ID in the system. """ productId: Int! """ Search criteria for filtering product surcharges. If not provided, returns all surcharges associated with the product using default pagination settings. """ input: SurchargeSearchInput ): SurchargeProductResponse! """ Retrieve detailed information about a specific tender or create a new tender from an existing order. Returns comprehensive tender data including items, pricing, addresses, payment details, and processing status. Supports lookup by tender ID or order ID for tender creation. Possible errors: - TENDER_NOT_FOUND: Tender with the specified ID does not exist - TENDER_ORDER_NOT_FOUND: Order with the specified ID does not exist - TENDER_GET_ERROR: Failed to retrieve tender information - TENDER_START_ERROR: Failed to start tender from order - TENDER_VALIDATION_ERROR: Invalid combination of parameters provided - FORBIDDEN: Insufficient permissions to access tender data AUTH: Role=[order.OWNER,order.EDITOR,order.VIEWER] """ tender( """ Unique identifier of the tender to retrieve. Must be a valid string representing an existing tender in the system. Cannot be used together with orderId. """ tenderId: String """ Unique identifier of the order to create a tender from. Must be a positive integer representing a valid order ID. Creates a new tender based on the order data. Cannot be used together with tenderId. """ orderId: Int ): Tender! """ Retrieve a specific company by its internal identifier. Key Features: - Returns complete company information including business details and contact information - Includes organizational structure and business relationships - Supports federation for cross-service data access Business Rules: - Company must exist and be accessible to the requesting user - Access is controlled by user roles and permissions - Returns all company data including managers, addresses, and purchase authorization configs Error Scenarios: - COMPANY_NOT_FOUND_ERROR: When company with specified ID does not exist - COMPANY_FETCH_ERROR: When system fails to retrieve company data - ACCESS_DENIED_ERROR: When user lacks permission to access company Use Cases: - Company profile viewing and management - Business relationship verification - Organizational structure analysis - Cross-service data federation AUTH: Role=[user.OWNER,user.EDITOR,user.VIEWER] OR (('user is authenticated') AND ('companyId(s) if present in input matches JWT')) """ company( """ Unique internal identifier for the company used for system operations and data relationships """ id: Int! ): Company! """ Search and retrieve companies with advanced filtering, sorting, and pagination capabilities. Key Features: - Advanced filtering by business attributes, contact information, and organizational data - Flexible sorting options for business intelligence and reporting - Pagination support for large result sets - Federation support for cross-service data access Business Rules: - Search results respect user permissions and access controls - Filtering supports multiple criteria with AND/OR logic - Sorting can be applied to multiple fields simultaneously - Pagination limits prevent system overload Error Scenarios: - SEARCH_ERROR: When search parameters are invalid or system fails - ACCESS_DENIED_ERROR: When user lacks permission to search companies - VALIDATION_ERROR: When search criteria contain invalid values Use Cases: - Business directory and company discovery - Reporting and analytics - Administrative management - Integration with other business systems AUTH: Role=[user.OWNER,user.EDITOR,user.VIEWER] """ companies( """Search criteria and pagination options""" input: CompanySearchArguments ): CompaniesResponse! """ Retrieves a contact by their internal ID with complete contact information including personal details, contact information, and business relationships. **Authentication Required**: Customer authentication or user management roles **Authorization**: Contact viewer, editor, or owner roles **Error Codes**: CONTACT_NOT_FOUND_ERROR, UNAUTHORIZED_ERROR AUTH: Role=[user.OWNER,user.EDITOR,user.VIEWER] OR (('user is authenticated') AND ('contactId if present in input matches JWT')) """ contact( """Contact unique identifier""" id: Int! ): Contact! """ Searches and retrieves contacts with advanced filtering, pagination, and sorting capabilities. Supports filtering by personal information, contact details, dates, and business relationships. **Authentication Required**: Customer authentication or user management roles **Authorization**: Contact viewer, editor, or owner roles **Error Codes**: UNAUTHORIZED_ERROR AUTH: Role=[user.OWNER,user.EDITOR,user.VIEWER] """ contacts( """Search criteria and pagination options""" input: ContactSearchArguments ): ContactsResponse! """ Retrieve a specific customer by their unique internal identifier. ## Business Rules - Customer must exist in the system - Returns complete customer information including personal details, contact information, and metadata - Includes related data such as addresses, sources, and attributes ## Error Scenarios - **CUSTOMER_NOT_FOUND_ERROR**: Customer with the specified ID does not exist - **CUSTOMER_FETCH_ERROR**: System error occurred while retrieving customer data ## Use Cases - Customer profile management - Order processing and customer verification - Customer service and support operations - Data validation and customer lookup AUTH: Role=[user.OWNER,user.EDITOR,user.VIEWER] OR (('user is authenticated') AND ('customerId if present in input matches JWT')) """ customer( """ Unique internal identifier for the customer used for system operations and data relationships """ id: Int! ): Customer! """ Search customers with advanced filtering, sorting, and pagination capabilities. ## Key Features - **Multi-criteria Filtering**: Search by customer IDs, debtor IDs, names, email, gender, and date ranges - **Flexible Sorting**: Sort results by any customer attribute in ascending or descending order - **Pagination Support**: Control result set size and navigation through large datasets - **Date Range Filtering**: Filter by creation date or last modification date ## Business Rules - Returns paginated results with metadata about total items found - Supports partial matching on text fields - Date filters use inclusive ranges - Empty search returns all customers (with pagination) ## Error Scenarios - **CUSTOMER_FETCH_ERROR**: System error occurred while searching customer data - **INVALID_LOOKUP_KEY_ERROR**: Invalid search parameters provided ## Use Cases - Customer management and administration - Reporting and analytics - Customer segmentation and targeting - Data export and integration AUTH: Role=[user.OWNER,user.EDITOR,user.VIEWER] """ customers( """Search criteria and pagination options""" input: CustomerSearchArguments ): CustomersResponse! """ AUTH: Role=[user.OWNER,user.EDITOR,user.VIEWER] OR (('user is authenticated') AND ('userId if present in input matches JWT')) """ user( """The unique identifier of the user.""" id: Int """User login email""" login: String ): IBaseUser! viewer: IBaseUser! """ Query for retrieving a PurchaseAuthorizationConfig by ID. The purchase authorization config defines the purchase role of a contact within a company as well as their authorization limit. AUTH: Role=[user.OWNER,user.EDITOR,user.VIEWER] OR ('user is authenticated'), """ purchaseAuthorizationConfig( """The primary ID of the purchase authorization config, uuid v7 format""" id: String! ): PurchaseAuthorizationConfig! """ Query for searching through PurchaseAuthorizationConfig entities. AUTH: Role=[user.OWNER,user.EDITOR,user.VIEWER] OR (('user is authenticated') AND ('companyId(s) if present in input matches JWT')), """ purchaseAuthorizationConfigs( """Input for searching PurchaseAuthorizationConfig entities.""" input: PurchaseAuthorizationConfigSearchInput ): PurchaseAuthorizationConfigResponse! """ AUTH: Role=[user.OWNER,user.EDITOR,user.VIEWER] OR (('user is authenticated') AND ('customerId if present in input matches JWT')) """ addressesByCustomerId(customerId: Float!, type: AddressType): [Address!]! """ AUTH: Role=[user.OWNER,user.EDITOR,user.VIEWER] OR (('user is authenticated') AND ('companyId(s) if present in input matches JWT')) """ addressesByCompanyId(companyId: Float!, type: AddressType): [Address!]! """ Retrieve detailed information about a specific value set. Returns comprehensive value set data including items, configuration, and metadata. Used for dropdown lists, configuration options, and data validation throughout the system. Possible errors: - VALUESET_NOT_FOUND_ERROR: Value set with the specified ID does not exist - VALUESET_GET_ERROR: Failed to retrieve value set information """ valueset( """ Unique identifier of the value set to retrieve. Must be a positive integer representing a valid value set ID in the system. """ id: Int! ): Valueset! """ Search and retrieve value sets with comprehensive filtering and pagination. Provides flexible search capabilities across value set data including names, types, and configuration settings. Results are paginated and can be filtered for configuration management and dropdown population. Use this query to: • Browse available value sets for system configuration • Search for specific value sets by name or type • Filter value sets by creation or modification dates • Implement pagination for large result sets Possible errors: - VALUESET_LIST_ERROR: Failed to retrieve value sets due to system error """ valuesets( """ Search criteria and pagination parameters for filtering value sets. Supports comprehensive filtering by names, types, creation dates, modification dates, and identifiers. All parameters are optional, allowing flexible querying from broad searches to specific lookups. Pagination controls help manage large datasets efficiently. """ input: ValuesetSearchInput ): ValuesetResponse! """ Search and retrieve value set items with comprehensive filtering and pagination. Provides flexible search capabilities across value set items including values, parent value sets, and additional metadata. Results are paginated and can be filtered for dropdown population and configuration management. Use this query to: • Retrieve items from specific value sets for dropdown lists • Search for items by their values or extra metadata • Implement pagination for large item collections • Filter items across multiple value sets Possible errors: - VALUESET_ITEM_LIST_ERROR: Failed to retrieve value set items due to system error """ valuesetItems( """ Search criteria and pagination parameters for filtering value set items. Supports comprehensive filtering by parent value sets, item values, extra metadata, and identifiers. All parameters are optional, allowing flexible querying from broad searches to specific lookups. Pagination controls help manage large datasets efficiently across multiple value sets. """ input: ValuesetItemSearchInput ): ValuesetItemResponse! """ Retrieve detailed information about a specific warehouse. Returns comprehensive warehouse data including location details, addresses, operational settings, and capacity information. Used for warehouse management and logistics planning. Possible errors: - WAREHOUSE_NOT_FOUND_ERROR: Warehouse with the specified ID does not exist - WAREHOUSE_GET_ERROR: Failed to retrieve warehouse due to database or system error """ warehouse( """ Unique identifier of the warehouse to retrieve. Must be a positive integer representing a valid warehouse ID in the system. """ id: Int! ): Warehouse! """ Search and retrieve warehouses with comprehensive filtering and pagination. Provides flexible search capabilities across warehouse data including names, locations, operational status, and capacity information. Results are paginated and can be filtered based on various warehouse criteria. Possible errors: - WAREHOUSE_LIST_ERROR: Failed to retrieve warehouses due to database or system error """ warehouses( """ Search criteria for filtering warehouses. If not provided, returns all accessible warehouses with default pagination settings (12 items per page, page 1). """ input: WarehousesSearchInput ): WarehousesResponse! } """Search criteria for products with filtering and pagination""" input RawProductSearchInput { """Search term for names, descriptions, or SKU""" term: String """Filter by SKUs""" skus: [String!] """Filter by product statuses""" statuses: [ProductStatus!] = [A] """Filter by manufacturers""" manufacturers: [String!] """Filter by suppliers""" suppliers: [String!] """Filter by category ID""" categoryId: Int """Filter by cluster IDs""" clusterIds: [Int!] """Filter by specific product IDs""" productIds: [Int!] """Is product hidden?""" hidden: Boolean """ Browse catalog as a specific User. Permissions, orderlists, favorite will be merged with the logged in user. """ userId: Int """ Browse catalog as a specific Company. Permissions, orderlists, favorite will be merged with the logged in user. """ companyId: Int """Whether to apply orderlist filtering""" applyOrderlists: Boolean = true """Order list IDs to apply for filtering""" orderlistIds: [Int!] """Page number for pagination""" page: Int = 1 """Number of items per page""" offset: Int = 12 """Language for search and sorting""" language: String } """ Response containing new authentication tokens after refresh token exchange. Provides fresh access and refresh tokens along with token metadata, allowing the user to continue their authenticated session without re-login. """ type RefreshTokenResponse { """ New access token for API authentication. JWT token that can be used to authenticate API requests. Contains user identity and permissions information. """ access_token: String! """ New refresh token for future token exchanges. Long-lived token that can be used to obtain new access tokens when the current access token expires. """ refresh_token: String! """ Access token expiration time in seconds. Number of seconds from token issuance until the access token expires and needs to be refreshed. """ expires_in: Int! """ Type of the issued access token. Indicates the token format and usage method, typically 'Bearer' for JWT tokens used in Authorization headers. """ token_type: String! """ Unique identifier of the authenticated user. Firebase UID that uniquely identifies the user account associated with these tokens. """ user_id: String! } input RegisterContactInput { """Contact's first name for personal identification and communication""" firstName: String """Contact's middle name or initial for complete personal identification""" middleName: String """ Contact's last name for personal identification and formal communication """ lastName: String """Contact gender""" gender: Gender """ Primary email address for account creation, authentication, and business communication. Must be valid email format and unique across all contacts. """ email: String! """Contact homepage""" homepage: String """Primary phone number for business communication and contact purposes""" phone: String """Mobile phone number for urgent communication and SMS notifications""" mobile: String """Contact date of birth""" dateOfBirth: String """Whether the contact is subscribed to mailing list""" mailingList: YesNo """Contact primary language""" primaryLanguage: String """Deprecated in favor of company debtorId""" debtorId: String """Attributes for bulk operations""" attributes: [AttributeBulkCreateInput!] """ Company that this contact belongs to. Required for establishing organizational relationships """ parentId: Int! sources: [SourceInput!] """Password for account registration""" password: String } type RegisterContactResponse { contact: IBaseUser! session: RegisterUserSession! } """ Customer registration data including login credentials for creating new customer accounts with authentication capabilities """ input RegisterCustomerInput { """ Customer's first name for personal identification and communication purposes. Maximum 30 characters, HTML tags are automatically removed for security. """ firstName: String """ Customer's middle name or initial for complete personal identification. Maximum 20 characters, HTML tags are automatically removed for security. """ middleName: String """ Customer's last name for personal identification and formal communication. Maximum 50 characters, HTML tags are automatically removed for security. """ lastName: String """ External debtor system identifier for financial integration, billing, and payment processing. """ debtorId: String """ Customer's gender for demographic data collection and personalized communication """ gender: Gender """ Primary email address for account creation, authentication, and business communication. Must be valid email format and unique across all customers. """ email: String! """Primary phone number for business communication and contact purposes.""" phone: String """Mobile phone number for urgent communication and SMS notifications.""" mobile: String """ Customer's date of birth for age verification, demographic analysis, and personalized services. Accepts various date formats. """ dateOfBirth: String """ Opt-in preference for marketing communications, promotional materials, and newsletter subscriptions. """ mailingList: YesNo """ Customer's preferred language for localized communication, documentation, and user interface. """ primaryLanguage: String sources: [SourceInput!] """ Custom attributes and metadata for extended customer information and categorization. """ attributes: [AttributeBulkCreateInput!] """ Physical addresses associated with the customer for business operations and delivery purposes. """ addresses: [AddressBulkItemInput!] """ Secure password for customer account authentication. Minimum 8 characters required for account security. """ password: String } type RegisterCustomerResponse { customer: IBaseUser! session: RegisterUserSession! } type RegisterUserSession { """JWT access token for authentication""" accessToken: String """Refresh token for session renewal""" refreshToken: String """Token expiration time""" expirationTime: DateTime } type ReindexJobDetail { name: String! state: String! """Job progress as JSON string""" progress: String """Job data as JSON string""" data: String } type ReindexLockResponse { isLocked: Boolean! reindexId: String ttlSeconds: Int } type ReindexProgress { phase: String totalBatches: Int! queuedBatches: Int! completedBatches: Int! failedBatches: Int! activeBatches: Int! waitingBatches: Int! totalDocs: Int! totalProducts: Int totalClusters: Int totalCategories: Int progressPercent: Float! startedAt: Float """Verified parent document count after indexing""" indexedDocs: Int """Verified product count after indexing""" indexedProducts: Int """Verified cluster count after indexing""" indexedClusters: Int """Verified category count after indexing""" indexedCategories: Int """Percentage of expected documents actually indexed""" docSuccessRate: Float error: String failedJob: String } type ReindexStatusResponse { reindexId: String! progress: ReindexProgress jobs: [ReindexJobDetail!] } """ Input data for removing order statuses from an existing order status set """ input RemoveOrderStatusesFromOrderStatusSetInput { """ List of order status IDs to remove from the status set. Contains the identifiers of order statuses that should be disassociated from this status set. Each ID must represent a valid order status currently in the set. """ orderStatusIds: [Int!]! } """ Input for removing surcharge associations from a product. Unlinks one or more surcharges from a product, removing additional fees from pricing calculations and order processing. """ input RemoveSurchargesFromProductInput { """ List of unique surcharge identifiers to associate with or remove from the product. Must contain valid UUID format identifiers, cannot be empty, and cannot contain duplicates. Each identifier must reference an existing surcharge in the system. """ surchargeIds: [String!]! """ Unique identifier of the product to associate surcharges with or remove surcharges from. Must be a positive integer representing a valid product in the system. """ productId: Int! } """ The resize-filter parameter enables control over the resizing filter used to generate a new image with a higher or lower number of pixels. NOTES: 1. When making an image smaller, use bicubic, which has a natural sharpening effect. 2. When making an image larger, use bilinear, which has a natural smoothing effect. 3. When resizing pixel art, use nearest, which has a natural pixelation effect. 4. When quality is the main concern, use lanczos, which typically renders the best results. """ enum ResizeFilter { """Uses the value of nearby translated pixel values.""" NEAREST """Uses an average of a 2x2 environment of a pixels.""" BILINEAR """ Uses an average of a 4x4 environment of pixels, weighing the innermost pixels higher. """ BICUBIC """ Uses the Lanczos filter to increase the ability to detect edges and linear features within an image and uses sinc resampling to provide the best possible reconstruction. """ LANCZOS2 """ Lanczos3 uses a better approximation of the sinc resampling function. (Default) """ LANCZOS3 } """Represents a REST API key with encrypted client ID and secret storage""" type RestApiKey { """Unique identifier for the API key""" id: String! """Name of the API key""" name: String! """The client ID""" clientId: String! """The client secret""" clientSecret: String! """Whether the API key is active""" active: Boolean! """Timestamp when the API key was created""" createdAt: DateTime! """Timestamp when the API key was last modified""" lastModifiedAt: DateTime! } """Input for creating a new REST API key""" input RestApiKeyCreateInput { """Name for the API key""" name: String! """Whether the API key is active""" active: Boolean! = true } type RestApiKeyResponse { """List of items of type RestApiKey""" items: [RestApiKey!]! """Total number of items found""" itemsFound: Int! """The amount of items to show per page""" offset: Int! """The current page""" page: Int! """Total amount of pages""" pages: Int! """Start position of the current page""" start: Int! """End position of the current page""" end: Int! } """Input for searching and filtering REST API keys""" input RestApiKeySearchInput { """Pagination page number""" page: Int! = 1 """Pagination offset number""" offset: Int! = 12 """Search by date created""" createdAt: DateSearchInput """Search by date changed""" lastModifiedAt: DateSearchInput """Inputs to sort by""" sortInputs: [RestApiKeySortInput!] """Filter by specific IDs""" ids: [String!] """Filter by active status""" active: Boolean } """Fields available for sorting REST API keys""" enum RestApiKeySortField { ID NAME CREATED_AT LAST_MODIFIED_AT ACTIVE } """Input for sorting REST API keys""" input RestApiKeySortInput { """Field to sort by""" field: RestApiKeySortField! """Sort order direction""" order: SortOrder! } """ Input for updating an existing REST API key. All fields are optional - only provided fields will be updated. """ input RestApiKeyUpdateInput { """Name for the API key""" name: String """Whether the API key is active""" active: Boolean = true } """ Controls visibility of sales pricing information within the tenant. This setting affects what pricing data users can access and view. """ enum RESTRICT_SALES_PRICING_VISIBILITY { """Sales pricing information is restricted.""" YES """ Sales pricing information is visible to all users. No restrictions on accessing pricing data within the tenant. """ NO } type Role { """ Unique identifier for the role. Generated automatically when the role is created and used to reference the role throughout the authorization system. This identifier remains constant for the lifetime of the role. """ id: ID! """ The role definition that serves as the template for this role. Defines the domain, available permissions, and default access level that this role is based on. Contains the structural information that determines what this role can access. """ roleDefinition: RoleDefinition! """ Primary identifier for the role definition to base this role on. Must be a valid UUID referencing an existing role definition that will determine the role's domain and available permissions. The role definition defines the structural template for this role. """ roleDefinitionId: String! """ The identifier of the user assigned to this role. References the user who has been granted the permissions defined by this role within the specified domain. Must be a positive integer representing a valid user. """ userId: Int! """ The access level granted by this role. Determines the scope of permissions the user has within the role definition's domain. Higher access levels include all permissions from lower levels, creating a hierarchical permission structure. """ access: RoleAccess! """ Timestamp when the role was created. Automatically set when the role is first created and never changes thereafter. Used for audit trails and chronological ordering of roles. """ createdAt: DateTime! """ Timestamp when the role was last modified. Automatically updated whenever the role properties are changed. Used for tracking role modifications and determining the most recent changes. """ lastModifiedAt: DateTime! """ Identifier of the user who created this role. Tracks the user responsible for initially creating the role for audit and accountability purposes. May be null for system-generated roles or legacy data. """ createdBy: Int """ Identifier of the user who last modified this role. Tracks the user responsible for the most recent changes to the role for audit and accountability purposes. May be null for system-generated modifications or legacy data. """ lastModifiedBy: Int } """ Access permission levels that define the scope of actions a user can perform within a role's domain. Higher access levels inherit permissions from lower levels, creating a hierarchical permission structure for authorization control. """ enum RoleAccess { """ Full administrative access with complete control over the domain. Includes all permissions from lower levels plus the ability to manage other users' access, delete resources, and perform administrative operations. """ OWNER """ Comprehensive access for content and resource management. Includes all viewer permissions plus the ability to modify resources within the domain. """ EDITOR """ Read-only access for viewing and consuming content. Allows users to view and access resources within the domain but prevents any modifications or administrative actions. """ VIEWER """ No access permissions granted. Users with this access level have no permissions within the domain and cannot perform any actions. """ NONE } input RoleCreateInput { """ Primary identifier for the role definition to base this role on. Must be a valid UUID referencing an existing role definition that will determine the role's domain and available permissions. The role definition defines the structural template for this role. """ roleDefinitionId: String! """ The access level to grant for this role. Determines the permissions the user will have within the role definition's domain. Higher access levels include permissions from lower levels, creating a hierarchical permission structure. """ access: RoleAccess! """ The identifier of the user this role will be assigned to. Specifies which user will receive the permissions defined by this role. Must be a positive integer representing a valid user in the system. """ userId: Int! } type RoleDefinition { """ Unique identifier for the role definition. Generated automatically when the role definition is created and used to reference the definition throughout the authorization system. This identifier remains constant for the lifetime of the definition. """ id: ID! """ The domain name of the role definition. Unique identifier name for the role definition domain, limited to 64 characters. Used to categorize and organize roles within the authorization system and must be unique across all definitions. """ name: String! """ Localized descriptions of the role definition in multiple languages. Provides human-readable descriptions of the role definition's purpose and scope in different languages for internationalization support. Must contain at least one description entry. """ descriptions: [LocalizedString!]! """ The default access level for roles created from this definition. Specifies the default permission level that will be assigned when creating new roles based on this definition. Can be overridden during individual role creation to grant different access levels. """ defaultAccess: RoleAccess! """ Timestamp when the role definition was created. Automatically set when the role definition is first created and never changes thereafter. Used for audit trails and chronological ordering of definitions. """ createdAt: DateTime! """ Timestamp when the role definition was last modified. Automatically updated whenever the role definition properties are changed. Used for tracking definition modifications and determining the most recent changes. """ lastModifiedAt: DateTime! """ Identifier of the user who created this role definition. Tracks the user responsible for initially creating the role definition for audit and accountability purposes. May be null for system-generated definitions or legacy data. """ createdBy: Int """ Identifier of the user who last modified this role definition. Tracks the user responsible for the most recent changes to the role definition for audit and accountability purposes. May be null for system-generated modifications or legacy data. """ lastModifiedBy: Int """ Collection of roles created from this role definition. Contains all active roles that are based on this definition, showing which users have been assigned roles within this domain and their respective access levels. """ roles( """ Unique identifier of the user to retrieve roles for. Must be a positive integer representing a valid user ID in the system. """ userId: Int! ): [Role!]! } input RoleDefinitionCreateInput { """ Role definition name. Unique identifier name for the role definition domain, limited to 64 characters maximum. Used to categorize and organize roles within the authorization system and must be unique across all definitions. """ name: String! """ Role definition descriptions in multiple languages. Provide human-readable descriptions of the role definition's purpose and scope in different languages for internationalization support. Array must contain at least one description entry and each entry must be properly validated. """ descriptions: [LocalizedStringInput!]! """ The default access level for this role definition. Specifies the default permission level that will be assigned when creating new roles based on this definition. Can be overridden during individual role creation to grant different access levels. """ defaultAccess: RoleAccess! } type RoleDefinitionResponse { """List of items of type RoleDefinition""" items: [RoleDefinition!]! """Total number of items found""" itemsFound: Int! """The amount of items to show per page""" offset: Int! """The current page""" page: Int! """Total amount of pages""" pages: Int! """Start position of the current page""" start: Int! """End position of the current page""" end: Int! } input RoleDefinitionSearchInput { """ Page number for pagination. Specifies which page of results to return. Page numbering starts at 1. Used with offset parameter to control result pagination. Must be a positive integer with minimum value of 1. """ page: Int! = 1 """ Number of items to return per page. Controls the maximum number of items returned in a single response. Used in conjunction with page parameter for pagination. Must be a positive integer with minimum value of 1. """ offset: Int! = 12 """ Sorting criteria for search results. Specify one or more fields to sort the results by, along with the sort order. Multiple sort criteria are applied in the order specified. Array must contain unique sort inputs and cannot be empty if provided. """ sortInputs: [RoleDefinitionSortInput!] """ Filter by specific role definition identifiers. Allows searching for specific role definitions using their unique UUID identifiers. Useful for retrieving multiple known role definitions in a single query. """ ids: [String!] """ Filter by specific role definition names. Allows searching for specific role definitions using their unique names. Useful for retrieving multiple known role definitions in a single query. """ names: [String!] } """ Available fields for sorting role definition search results. Specifies which role definition properties can be used as sort criteria when retrieving role definitions through search operations. """ enum RoleDefinitionSortableFields { """ Sort role definitions alphabetically by their name. Useful for organizing role definitions in a predictable order and finding specific definitions by name. """ NAME """ Sort role definitions by their creation timestamp. Allows chronological ordering of definitions, showing newest or oldest definitions first based on when they were initially created. """ CREATED_AT """ Sort role definitions by their last modification timestamp. Useful for identifying recently updated definitions or tracking definition changes over time. """ LAST_MODIFIED_AT } input RoleDefinitionSortInput { """ Field to sort role definitions by. Specifies which role definition property to use for sorting the results. Available fields include name, creation date, and last modification date. """ field: RoleDefinitionSortableFields! """ Sort order direction. Specifies whether to sort in ascending (ASC) or descending (DESC) order. Defaults to ascending if not specified. """ order: SortOrder! = asc } input RoleDefinitionUpdateInput { """ Role definition name. Unique identifier name for the role definition domain, limited to 64 characters maximum. Used to categorize and organize roles within the authorization system and must be unique across all definitions. """ name: String! """ Role definition descriptions in multiple languages. Provide human-readable descriptions of the role definition's purpose and scope in different languages for internationalization support. Array must contain at least one description entry and each entry must be properly validated. """ descriptions: [LocalizedStringInput!]! """ The default access level for this role definition. Specifies the default permission level that will be assigned when creating new roles based on this definition. Can be overridden during individual role creation to grant different access levels. """ defaultAccess: RoleAccess! } type RoleResponse { """List of items of type Role""" items: [Role!]! """Total number of items found""" itemsFound: Int! """The amount of items to show per page""" offset: Int! """The current page""" page: Int! """Total amount of pages""" pages: Int! """Start position of the current page""" start: Int! """End position of the current page""" end: Int! } input RoleSearchInput { """ Page number for pagination. Specifies which page of results to return. Page numbering starts at 1. Used with offset parameter to control result pagination. Must be a positive integer with minimum value of 1. """ page: Int! = 1 """ Number of items to return per page. Controls the maximum number of items returned in a single response. Used in conjunction with page parameter for pagination. Must be a positive integer with minimum value of 1. """ offset: Int! = 12 """ Sorting criteria for search results. Specify one or more fields to sort the results by, along with the sort order. Multiple sort criteria are applied in the order specified. Array must contain unique sort inputs and cannot be empty if provided. """ sortInputs: [RoleSortInput!] """ Filter roles by specific user identifiers. Provide an array of user IDs to retrieve roles assigned to those users. Results will include all roles associated with the specified users. Array must contain unique positive integers only. """ userIds: [Int!]! } """ Available fields for sorting role search results. Specifies which role properties can be used as sort criteria when retrieving roles through search operations. """ enum RoleSortableFields { """ Sort roles by the identifier of the user assigned to the role. Useful for grouping roles by user or finding roles for specific users in sorted order. """ USER_ID """ Sort roles by their creation timestamp. Allows chronological ordering of roles, showing newest or oldest roles first based on when they were initially created. """ CREATED_AT """ Sort roles by their last modification timestamp. Useful for identifying recently updated roles or tracking role changes over time. """ LAST_MODIFIED_AT } input RoleSortInput { """ Field to sort roles by. Specifies which role property to use for sorting the results. Available fields include user ID, creation date, and last modification date. """ field: RoleSortableFields! """ Sort order direction. Specifies whether to sort in ascending (ASC) or descending (DESC) order. Defaults to ascending if not specified. """ order: SortOrder! = asc } input RoleUpdateInput { """ The new access level for this role. Updates the permissions granted to the user for the role's domain. Higher access levels include permissions from lower levels. Changes take effect immediately across all systems using this role for access control. """ access: RoleAccess! } """ Search criteria for identifying a specific payment record. Provides multiple ways to locate a payment using different identifier types. At least one search criterion must be provided. When multiple criteria are specified, they are combined with AND logic for precise matching. """ input SearchByInput { """ Internal system payment identifier for direct record lookup. Unique numeric identifier assigned by the system to identify the payment record. Most efficient search method when the internal ID is known. """ id: ID """ External payment service provider identifier for PSP correlation. Unique payment reference provided by the Payment Service Provider for tracking and reconciliation. Maximum length of 255 characters. Used when correlating with external payment systems. """ paymentId: String """ Order identifier for finding payments associated with specific orders. Links payment records to their corresponding orders for order-payment relationship tracking. Used when searching for payments by order context. """ orderId: Float } input SearchFieldsInput { """List of available sortable fields""" fieldNames: [ProductSearchableField!]! """Search boost value""" boost: Int! """ Partial matching boost value for ngram/edge-ngram fields. When omitted, defaults to ceil(boost * 0.5) """ partialBoost: Int } """ Input for searching and filtering spare parts machines. Provides flexible search capabilities with support for ID-based lookups, external reference filtering, and pagination controls for efficient data retrieval. """ input SearchSparePartsMachineInput { """ List of specific machine identifiers to retrieve. Each ID must be a valid machine identifier. When provided, only machines with matching IDs will be returned. Each entry must be unique within the array. """ ids: [String!] """ List of external system references to filter by. Filters machines based on their external system connections. Only machines linked to the specified external references will be returned. Each entry must be unique within the array. """ externalReferences: [ExternalReferenceInput!] """ Page number for pagination. Specifies which page of results to return. Must be a positive integer starting from 1. """ page: Int = 1 """ Number of items to return per page. Controls the size of each page in the paginated results. Must be a positive integer with a minimum value of 1. """ offset: Int = 12 } type SendOrderConfirmResponseType { messageId: String! success: Boolean! } """ Sharpness of the output image. The sharpen parameter increases the definition of the edges of objects in an image. Notes - The sharpen parameter is an implementation of an unsharp mask. """ input SharpenInput { """Sharpen amount value""" amount: Float """Sharpen radius value""" radius: Int """Sharpen threshold value""" threshold: Int } """ Shipment entity representing a package or delivery containing order items with tracking and fulfillment information """ type Shipment { """ Unique UUID identifier for the shipment. This identifier is used to track and reference the shipment throughout its lifecycle from creation to delivery. """ id: String! """ Timestamp when the shipment was initially created in the system. Used for tracking shipment processing timelines and audit trails. """ createdAt: DateTime! """ Timestamp of the most recent update to the shipment record. Reflects when any shipment information was last changed, including status updates, tracking information, or item modifications. """ lastModifiedAt: DateTime! """ Estimated date and time when the shipment is expected to be delivered to the customer. Based on carrier estimates and shipping method selected. Used for customer communication and delivery planning. """ expectedDeliveryAt: DateTime """ Current processing status of the shipment. Indicates the shipment's position in the fulfillment workflow (e.g., 'pending', 'shipped', 'in_transit', 'delivered', 'cancelled'). """ status: ShipmentStatus """ Reference to the parent order that this shipment fulfills. Links the shipment to the original customer order for tracking and customer service purposes. """ orderId: Int! """ Collection of individual items included in this shipment. Each item represents a portion of an order item being shipped, including quantities and product details. """ items: [ShipmentItem!] """ Collection of tracking events and status updates for this shipment. Provides detailed tracking history including carrier updates, location changes, and delivery confirmations. """ trackAndTraces: [TrackAndTrace!] """ List of shipment sources. Identifies the origin system or channel of this shipment. Useful for matching a shipment to an external record when updating. """ sources: [Source!]! } input ShipmentCreateInput { """ Reference to the parent order that this shipment fulfills. Links the shipment to the original customer order for tracking and customer service purposes. """ orderId: Int! """ Estimated date and time when the shipment is expected to be delivered to the customer. Based on carrier estimates and shipping method selected. Used for customer communication and delivery planning. """ expectedDeliveryAt: String """ Current processing status of the shipment. Indicates the shipment's position in the fulfillment workflow (e.g., 'pending', 'shipped', 'in_transit', 'delivered', 'cancelled'). """ status: ShipmentStatus """ Collection of individual items included in this shipment. Each item represents a portion of an order item being shipped, including quantities and product details. """ items: [ShipmentCreateItemInput!] """ Collection of tracking events and status updates for this shipment. Provides detailed tracking history including carrier updates, location changes, and delivery confirmations. """ trackAndTraces: [ShipmentCreateTrackAndTraceInput!] """ List of shipment sources. Identifies the origin system or channel of this shipment. Useful for matching a shipment to an external record when updating. """ sources: [SourceInput!] } input ShipmentCreateItemInput { """ Reference to the original order item that this shipment item fulfills. Links the shipped item back to the customer's original order for tracking and customer service. """ orderItemId: Int! """ Number of units to include in the shipment item. Must be a positive integer and cannot exceed the remaining unfulfilled quantity from the original order item. """ quantity: Int """ Descriptive name for the shipment item. Provides human-readable identification of the product being shipped for fulfillment and tracking purposes. """ name: String """ Stock Keeping Unit code for the shipment item. Unique product identifier used for inventory tracking and product identification throughout the fulfillment process. """ sku: String } input ShipmentCreateTrackAndTraceInput { """ Identifier of the shipping carrier handling the package. References the logistics company responsible for package transportation and delivery. """ carrierId: Int """ Carrier-provided tracking number for new tracking records. Unique tracking identifier assigned by the shipping carrier when creating new tracking information. """ code: String! } """ Individual item within a shipment representing a specific product and quantity being fulfilled from an order """ type ShipmentItem { """ Unique UUID identifier for the individual shipment item. Used to track specific items within a shipment for inventory and fulfillment purposes. """ id: String! """ Timestamp when the shipment item was added to the shipment. Used for tracking item processing and fulfillment timelines. """ createdAt: DateTime! """ Timestamp of the most recent update to the shipment item. Reflects when item details such as quantity or status were last modified. """ lastModifiedAt: DateTime! """ Descriptive name of the product being shipped. Provides human-readable identification of the item for fulfillment and customer communication. """ name: String """Product SKU""" sku: String """ Number of units of this product included in the shipment. May be less than the original order quantity if the order is fulfilled across multiple shipments. """ quantity: Int """ Reference to the parent shipment being tracked. Links the tracking information to the specific shipment for comprehensive delivery monitoring. """ shipmentId: String! """ Reference to the original order item that this shipment item fulfills. Links the shipped item back to the customer's original order for tracking and customer service. """ orderItemId: Int orderItem: OrderItem } input ShipmentItemCreateInput { """ Reference to the original order item that this shipment item fulfills. Links the shipped item back to the customer's original order for tracking and customer service. """ orderItemId: Int! """ Number of units to include in the shipment item. Must be a positive integer and cannot exceed the remaining unfulfilled quantity from the original order item. """ quantity: Int """ Descriptive name for the shipment item. Provides human-readable identification of the product being shipped for fulfillment and tracking purposes. """ name: String """ Stock Keeping Unit code for the shipment item. Unique product identifier used for inventory tracking and product identification throughout the fulfillment process. """ sku: String """ Unique UUID identifier for the shipment. This identifier is used to track and reference the shipment throughout its lifecycle from creation to delivery. """ shipmentId: String! } """ Paginated response containing shipment item search results with metadata for efficient data retrieval and navigation """ type ShipmentItemResponse { """List of items of type ShipmentItem""" items: [ShipmentItem!]! """Total number of items found""" itemsFound: Int! """The amount of items to show per page""" offset: Int! """The current page""" page: Int! """Total amount of pages""" pages: Int! """Start position of the current page""" start: Int! """End position of the current page""" end: Int! } input ShipmentItemSearchInput { """Pagination page number""" page: Int! = 1 """Pagination offset number""" offset: Int! = 12 """Search by date created""" createdAt: DateSearchInput """Search by date changed""" lastModifiedAt: DateSearchInput """Inputs to sort by""" sortInputs: [ShipmentItemSortInput!] """ Filter by specific shipment identifiers. Returns only shipments matching the provided UUID list. Useful for retrieving specific shipments by their unique identifiers. """ ids: [String!] """ Filter by shipment identifiers for item searches. When searching shipment items, restricts results to items within the specified shipments. """ shipmentIds: [String!] """Search by order item ids""" orderItemIds: [Int!] """ Filter by product names within shipments. Returns shipments containing items with names matching the search criteria. Useful for product-specific fulfillment tracking. """ names: [String!] """ Filter by product SKUs within shipments. Returns shipments containing items with the specified SKU codes. Essential for inventory and product-specific tracking. """ skus: [String!] """ Filter by item quantity ranges within shipments. Returns shipments with items having quantities within the specified range. Useful for bulk order and inventory analysis. """ quantity: NumberSearchInput } """ Available fields for sorting shipment item results in search operations """ enum ShipmentItemSortField { """Sort by shipment item unique identifier (UUID)""" ID """Sort by the date when shipment item was last updated""" LAST_MODIFIED_AT """Sort by the date when shipment item was initially created""" CREATED_AT """Sort by the associated shipment identifier""" SHIPMENT_ID """Sort by the associated order item identifier numerically""" ORDER_ITEM_ID """Sort by product SKU (Stock Keeping Unit) alphabetically""" SKU """Sort by item quantity numerically""" QUANTITY """Sort by product name alphabetically""" NAME } input ShipmentItemSortInput { """Field to sort by""" field: ShipmentItemSortField! """Option to sort by""" order: SortOrder! = ASC } """ Shipment item update data for modifying existing shipment item information. Supports partial updates where only provided fields are modified, preserving existing values for omitted fields. Commonly used for adjusting quantities, updating product information, or correcting item details. All fields from shipment item creation are available for updates including: - Quantity adjustments (must not exceed remaining order item quantities) - Product information updates (name, SKU corrections) - Shipment association changes (moving items between shipments) Validation ensures that updated quantities do not exceed available order item quantities. """ input ShipmentItemUpdateInput { """ Reference to the original order item that this shipment item fulfills. Links the shipped item back to the customer's original order for tracking and customer service. """ orderItemId: Int """ Number of units to include in the shipment item. Must be a positive integer and cannot exceed the remaining unfulfilled quantity from the original order item. """ quantity: Int """ Descriptive name for the shipment item. Provides human-readable identification of the product being shipped for fulfillment and tracking purposes. """ name: String """ Stock Keeping Unit code for the shipment item. Unique product identifier used for inventory tracking and product identification throughout the fulfillment process. """ sku: String """ Unique UUID identifier for the shipment. This identifier is used to track and reference the shipment throughout its lifecycle from creation to delivery. """ shipmentId: String } """ Paginated response containing shipment search results with metadata for efficient data retrieval and navigation """ type ShipmentResponse { """List of items of type Shipment""" items: [Shipment!]! """Total number of items found""" itemsFound: Int! """The amount of items to show per page""" offset: Int! """The current page""" page: Int! """Total amount of pages""" pages: Int! """Start position of the current page""" start: Int! """End position of the current page""" end: Int! } """ Comprehensive search criteria for filtering shipments with pagination and sorting capabilities. Supports filtering by shipment identifiers, order references, delivery dates, status, and other shipment attributes. Extends pagination and sorting functionality for efficient shipment retrieval in warehouse and logistics operations. All filter fields support multiple values and are combined with OR logic within each field, and AND logic between different fields for precise shipment selection. """ input ShipmentSearchInput { """Pagination page number""" page: Int! = 1 """Pagination offset number""" offset: Int! = 12 """Search by date created""" createdAt: DateSearchInput """Search by date changed""" lastModifiedAt: DateSearchInput """Inputs to sort by""" sortInputs: [ShipmentSortInput!] """ Filter by expected delivery date range. Returns shipments with delivery dates within the specified time period. Useful for delivery planning and customer communication. """ expectedDeliveryAt: DateSearchInput """ Filter by specific shipment identifiers. Returns only shipments matching the provided UUID list. Useful for retrieving specific shipments by their unique identifiers. """ ids: [String!] """ Filter by parent order identifiers. Returns shipments associated with the specified orders. Essential for order-based shipment tracking and customer service. """ orderIds: [Int!] """ Available shipment status values for filtering. Provides the complete list of valid shipment statuses that can be used in search operations. """ statuses: [ShipmentStatus!] } """Available fields for sorting shipment results in search operations""" enum ShipmentSortField { """Sort by shipment unique identifier (UUID)""" ID """Sort by the date when shipment information was last updated""" LAST_MODIFIED_AT """Sort by the date when shipment was initially created""" CREATED_AT """Sort by the expected delivery date for customer communication""" EXPECTED_DELIVERY_AT """Sort by shipment processing status alphabetically""" STATUS """Sort by the associated order identifier numerically""" ORDER_ID } input ShipmentSortInput { """Field to sort by""" field: ShipmentSortField! """Option to sort by""" order: SortOrder! = ASC } """Current status of a shipment in the delivery process""" enum ShipmentStatus { """Shipment has been created but not yet processed""" CREATED """Shipment is being prepared for dispatch""" PROCESSING """Shipment is on its way to the destination""" IN_TRANSIT """Shipment is out for final delivery to the recipient""" OUT_FOR_DELIVERY """Shipment has been successfully delivered""" DELIVERED """Shipment has been cancelled before delivery""" CANCELED """Some items in the shipment have been delivered""" PARTIALLY_DELIVERED """Delivery attempt failed and requires rescheduling""" FAILED_DELIVERY """Shipment encountered an exception requiring attention""" EXCEPTION } """ Shipment update data for modifying existing shipment information. Supports partial updates where only provided fields are modified, preserving existing values for omitted fields. Excludes items and tracking information which are managed through separate operations for data integrity. All fields from shipment creation are available except: - items: Managed through dedicated shipment item operations - trackAndTraces: Managed through dedicated tracking operations Commonly updated fields include expected delivery dates, status changes, and carrier information. """ input ShipmentUpdateInput { """ Reference to the parent order that this shipment fulfills. Links the shipment to the original customer order for tracking and customer service purposes. """ orderId: Int """ Estimated date and time when the shipment is expected to be delivered to the customer. Based on carrier estimates and shipping method selected. Used for customer communication and delivery planning. """ expectedDeliveryAt: String """ Current processing status of the shipment. Indicates the shipment's position in the fulfillment workflow (e.g., 'pending', 'shipped', 'in_transit', 'delivered', 'cancelled'). """ status: ShipmentStatus """ List of shipment sources. Identifies the origin system or channel of this shipment. Useful for matching a shipment to an external record when updating. """ sources: [SourceInput!] } type Shop { shopId: Int! name: String! """Shop purchase root id""" purchaseRootId: Int """Shop customer root id""" userRootId: Int enableIncentives: Boolean! """Shop price calculation configuration""" priceCalculationConfig: ShopPriceCalculationConfig! debtorId: String cocNumber: String taxNumber: String } type ShopPriceCalculationConfig { isVatIncludedLeading: Boolean! inheritCatalogDiscountOnPriceList: Boolean! useMultipleCostprices: Boolean! calculateDiscountOverBulkPrices: Boolean! } """Sort order for search results""" enum Sort { """Sort results in ascending order""" ASC """Sort results in descending order""" DESC } """Order options for sorting""" enum SortOrder { """Ascending order""" asc @deprecated(reason: "Use ASC instead") """Descending order""" desc @deprecated(reason: "Use DESC instead") """Ascending order""" ASC """Descending order""" DESC } type Source { """Source ID""" id: String """Name of the source""" name: String } input SourceInput { """Source ID""" id: String! """Name of the source""" name: String! } input SourceSearchInput { """Source ID""" id: String """Name of the source""" name: String } input SourceUpsertInput { """Source ID""" id: String """Name of the source""" name: String! } """ Represents a spare part that can be associated with a machine. Contains detailed information about replacement components including identification, localized names, inventory data, and availability. """ type SparePart { """ Unique identifier for the spare part. System-generated immutable ID used for database operations and cross-reference lookups. """ id: ID! """ Stock Keeping Unit identifier for the spare part. Unique product code used for inventory tracking and ordering. Must be unique within the system. """ sku: String! """ Available quantity of this spare part. Current inventory count representing how many units are in stock and available for use or sale. """ quantity: Int! """ Localized names for the spare part. Collection of translated names in multiple languages to support international catalogs and multilingual interfaces. """ name( """ Language code for filtering localized names. Two-character language code to retrieve names in a specific language. If not provided, returns all available language variants. """ language: String ): [LocalizedString!] product(hidden: Boolean): IBaseProduct } """ Represents a machine that contains spare parts and can have hierarchical sub-machines. Core entity for organizing spare parts catalogs with support for nested machine structures, localized content, and external system integration. """ type SparePartsMachine { """ Unique identifier for the machine. System-generated immutable ID used for database operations, hierarchical relationships, and external references. """ id: ID! """ Spare parts associated with this machine. Collection of replacement components and parts that are compatible with or required for this machine's operation and maintenance. """ parts: [SparePart!] media: SparePartsMachineMedia """ Retrieve products associated with spare parts for this machine. Returns a paginated collection of products that correspond to the spare parts in this machine. """ sparePartProducts(input: SparePartsMachineProductSearchInput): SparePartsResponse """ Localized names for the machine. Collection of translated machine names in multiple languages to support international catalogs and multilingual user interfaces. """ name( """ Language code for filtering localized names. Two-character language code to retrieve names in a specific language. If not provided, returns all available language variants. """ language: String ): [LocalizedString!]! """ Detailed descriptions of the machine. Comprehensive information about the machine's purpose, specifications, and usage in multiple languages. """ description( """ Language code for filtering localized descriptions. Two-character language code to retrieve descriptions in a specific language. If not provided, returns all available language variants. """ language: String ): [LocalizedString!] """ URL-friendly identifiers for the machine. Human-readable URL segments used for SEO-friendly navigation and localized machine pages. Must be unique per language. """ slug( """ Language code for filtering localized slugs. Two-character language code to retrieve slugs in a specific language. If not provided, returns all available language variants. """ language: String ): [LocalizedString!] """ Child machines nested within this machine. Hierarchical collection of sub-machines that belong to this parent machine, enabling complex equipment structures and organizational relationships. """ machines: [SparePartsMachine!] } type SparePartsMachineMedia { """Media images""" images( """SparePartsMachine media images search options""" search: ObjectMediaSearchInput = {page: 1, offset: 12} ): PaginatedMediaImageResponse """Media videos""" videos( """SparePartsMachine media videos search options""" search: ObjectMediaSearchInput = {page: 1, offset: 12} ): PaginatedMediaVideoResponse """Media documents""" documents( """SparePartsMachine media documents search options""" search: ObjectMediaSearchInput = {page: 1, offset: 12} ): PaginatedMediaDocumentResponse """Media attachments""" attachments( """SparePartsMachine media attachments search options""" input: ObjectMediaSearchInput = {page: 1, offset: 12} ): PaginatedMediaAttachmentResponse } """ Search criteria for finding products associated with spare parts machines. Extends the base product search functionality with specific filtering for spare parts machine contexts. """ input SparePartsMachineProductSearchInput { """Product search term""" term: String """List of product manufacturers""" manufacturers: [String!] """List of product supplier codes""" supplierCodes: [String!] """List of product suppliers""" suppliers: [String!] """List of product manufacturer codes""" manufacturerCodes: [String!] """List of product EAN codes""" EANCodes: [String!] """List of product SKUS""" skus: [String!] """List of unique product identifiers""" ids: [Int!] """List of productIds to search for""" productIds: [Int!] """List of clusterIds to search for""" clusterIds: [Int!] """Product class""" class: ProductClass """List of product tags""" tags: [String!] """ Specify through which language to search in, has no effect on other returned fields (eg. names,slugs) """ language: String! = "NL" """Pagination page number [default=1]""" page: Int! = 1 """ Pagination offset number [default=12][max: 1000] NOTE: If offset > 1000 is supplied it will be capped to 1000 """ offset: Int! = 12 """List of text filters """ textFilters: [ProductTextFilterInput!] """List of range filters""" rangeFilters: [ProductRangeFilterInput!] """Product price filter""" price: ProductPriceFilterInput """List of product status filters""" statuses: [ProductStatus!]! = [A] """Is product hidden?""" hidden: Boolean """List of product sort filters""" sortInputs: [ProductSortInput!] """List of product search fields""" searchFields: [SearchFieldsInput!] """Is product in a bundle""" hasBundle: YesNo """Is product a bundle leader""" isBundleLeader: YesNo """Product container slug(s)""" containerSlugs: [String!] """Product path slug(s)""" containerPathSlugs: [String!] """ Browse catalog as a specific User. Permissions, orderlists, favorite will be merged with the logged in user. """ userId: Int """ Browse catalog as a specific Company. Permissions, orderlists, favorite will be merged with the logged in user. """ companyId: Int """Search by date created""" createdAt: DateSearchInput """Search by date changed""" lastModifiedAt: DateSearchInput """Search by product categoryId""" categoryId: Int """Include descendants of the specified categoryId""" getDescendants: Boolean = true """Apply orderlist filtering to search results""" applyOrderlists: Boolean = true """Order list IDs to apply for filtering""" orderlistIds: [Int!] """[Deprecated] Category path for hierarchical navigation.""" path: String """ Controls which attribute filters are returned in the response. Provided here for legacy compatibility. When the `filters` field resolver on `SparePartsResponse` receives its own `input` argument, that argument takes precedence over this value. """ filters: FilterAvailableAttributeInput } """ Paginated response containing spare parts machines. Provides a structured response for machine search operations with pagination metadata and the actual machine data. Includes total count information for efficient pagination handling. """ type SparePartsMachineResponse { """List of items of type SparePartsMachine""" items: [SparePartsMachine!]! """Total number of items found""" itemsFound: Int! """The amount of items to show per page""" offset: Int! """The current page""" page: Int! """Total amount of pages""" pages: Int! """Start position of the current page""" start: Int! """End position of the current page""" end: Int! } """ Paginated response containing spare parts search results with price filtering and attribute aggregation. """ type SparePartsResponse { """Collection of spare parts matching the search criteria.""" items: [SparePart!]! """Total number of spare parts found across all pages.""" itemsFound: Int! """Number of items displayed per page.""" offset: Int! """Current page number in the result set.""" page: Int! """Total number of pages available.""" pages: Int! """Starting position of items on the current page.""" start: Int! """Ending position of items on the current page.""" end: Int! """The lowest price of a product in this product list.""" minPrice: Int! """The highest price of a product in this product list.""" maxPrice: Int! """ Available attribute filters for faceted search over spare parts. The `input` argument is read from the GraphQL resolve info in the upstream resolver via `ProductSearchResolveInfoHelper`. When present, it takes precedence over the legacy `filters` field on `SparePartsMachineProductSearchInput`. """ filters( """Filter configuration for determining available attributes.""" input: FilterAvailableAttributeInput ): [AttributeFilter!] } """ File upload from local filesystem using GraphQL multipart request specification """ input StandardFileUploadInput { """ File reference from local filesystem. Uses the GraphQL Upload form-data specification for multipart file uploads. The file is uploaded directly from the client's filesystem to the server for processing and storage. """ file: Upload! """ Custom filename for storing the uploaded file. If not provided, the original filename from the upload will be used. Must include the file extension and be between 5-255 characters. This name affects how the file is stored and referenced. """ fileName: String } type StartReindexResponse { reindexId: String! newCollection: String! alias: String! } """ Surcharge entity representing additional fees and charges in the pricing system. Contains comprehensive surcharge information including calculation rules, localized content, tax configuration, and validity periods. Used for dynamic pricing calculations and order processing. """ type Surcharge { """ Unique identifier for the surcharge. UUID format string that uniquely identifies this surcharge across the system. """ id: String! """ Localized names for the surcharge in different languages. Contains display names for the surcharge across multiple languages for internationalization support. """ name: [LocalizedString!]! """ Detailed descriptions of the surcharge in different languages. Provides additional context about the surcharge purpose and application across multiple languages for internationalization support. """ description: [LocalizedString!] """ Classification of surcharge calculation method. Determines how the surcharge value is applied to pricing calculations (flat fee or percentage-based). """ type: SurchargeType! """ Numeric value for surcharge calculation. For flat fees: amount in currency units. For percentages: percentage value (e.g., 15.5 for 15.5%). """ value: Float! """ Tax classification code that determines applicable tax rates and regulations. Specifies the tax treatment for the surcharge (H for high rate, L for low rate, N for no tax). """ taxCode: Taxcode! """ Geographic tax zone identifier for regional tax calculations. Two-character code representing the tax jurisdiction for compliance and rate determination. """ taxZone: String! """ Activation status of the surcharge. When true, the surcharge is active and will be applied to pricing calculations. When false, it is disabled. """ enabled: Boolean! """ Start date and time for surcharge validity period. Surcharge will only be applied to orders after this timestamp. If not set, surcharge is immediately active. """ validFrom: DateTime """ End date and time for surcharge validity period. Surcharge will not be applied to orders after this timestamp. If not set, surcharge remains active indefinitely. """ validTo: DateTime """ Identifier of the user who created the surcharge. References the user account responsible for creating this surcharge record. """ createdBy: Int """ Identifier of the user who last modified the surcharge. References the user account responsible for the most recent changes to this surcharge record. """ changedBy: Int """ Timestamp when the surcharge was created. Automatically set when the surcharge record is first created in the system. """ dateCreated: DateTime! """ Timestamp when the surcharge was last modified. Automatically updated whenever the surcharge record is changed in the system. """ dateChanged: DateTime! """ [DEPRECATED] Shop identifier for surcharge application scope. If not provided, the default shop will be inferred from the channel context. """ shopId: Int @deprecated(reason: "Shop is deprecated and will be removed in the future.") } """ Surcharge product association entity for GraphQL federation. Represents the relationship between a surcharge and a specific product, used for applying additional fees, taxes, or charges to products. """ type SurchargeProduct { """ Unique identifier of the associated surcharge. UUID format string referencing the surcharge applied to the product. """ surchargeId: String! """ Unique identifier of the associated product. Integer identifier referencing the product that has the surcharge applied. """ productId: Int """ Complete product information for the surcharged item. Detailed product data for the product that this surcharge applies to. """ product(hidden: Boolean): Product """ Complete surcharge information associated with the product. Contains all surcharge details including calculation rules, localized content, and configuration settings. """ surcharge: Surcharge! } type SurchargeProductResponse { """List of items of type SurchargeProduct""" items: [SurchargeProduct!]! """Total number of items found""" itemsFound: Int! """The amount of items to show per page""" offset: Int! """The current page""" page: Int! """Total amount of pages""" pages: Int! """Start position of the current page""" start: Int! """End position of the current page""" end: Int! } """ Search criteria for filtering and paginating surcharge results. Provides comprehensive filtering options including type, tax codes, activation status, and date ranges. All filters are optional and can be combined for precise result sets. """ input SurchargeSearchInput { """ Filter surcharges by calculation method type. When specified, only returns surcharges matching the selected type (flat fee or percentage). If not provided, returns all types. """ type: SurchargeType """ Filter surcharges by tax classification code. When specified, only returns surcharges with the matching tax code (H, L, or N). If not provided, returns all tax codes. """ taxCode: TaxCode """ Filter surcharges by tax classification code. When specified, only returns surcharges with the matching tax code (H, L, or N). If not provided, returns all tax codes. """ taxCodeValue: Taxcode """ Filter surcharges by activation status. When true, returns only active surcharges. When false, returns only inactive surcharges. Defaults to true if not specified. """ enabled: Boolean = true """ Filter surcharges by geographic tax zone. When specified, only returns surcharges applicable to the specified tax zone. Must be exactly 2 characters if provided. """ taxZone: String """ Page number for pagination. Determines which page of results to return. Must be a positive integer. Defaults to 1 if not specified. """ page: Int = 1 """ Number of items to return per page. Controls the size of each page in paginated results. Must be a positive integer with maximum of 100. Defaults to 12 if not specified. """ offset: Int = 12 """ Filter surcharges by creation date range. Allows filtering based on when surcharges were created. Supports date range queries with before, after, and exact date matching. """ createdAt: DateSearchInput """ Filter surcharges by last modification date range. Allows filtering based on when surcharges were last updated. Supports date range queries with before, after, and exact date matching. """ lastModifiedAt: DateSearchInput } type SurchargesResponse { """List of items of type Surcharge""" items: [Surcharge!]! """Total number of items found""" itemsFound: Int! """The amount of items to show per page""" offset: Int! """The current page""" page: Int! """Total amount of pages""" pages: Int! """Start position of the current page""" start: Int! """End position of the current page""" end: Int! } """ Classification of surcharge calculation methods that determine how additional fees are calculated when associated products are added to order items """ enum SurchargeType { """ Fixed amount surcharge applied per order item. When a product with this surcharge type is ordered, the fixed amount is added to the order total for each applicable item. """ FlatFee """ Percentage-based surcharge calculated on the order item value. When a product with this surcharge type is ordered, the percentage is applied to that item's subtotal and added to the order. """ Percentage } type Tax { """Tax primary identifier""" id: String! """[DEPRECATED] Shop identifier for the tax to apply to""" shopId: Int! @deprecated(reason: "Shop is deprecated and will be removed in the future.") """Tax code""" code: Taxcode """Tax zone""" zone: String! """Tax percentage """ percentage: Float """Tax export code""" exportCode: String """Tax initial creation timestamp""" createdAt: DateTime! """Reference to the user that created the tax initially""" createdBy: Int """Tax last update timestamp""" lastModifiedAt: DateTime! """Reference to the user that last modified the tax""" lastModifiedBy: Int } """All supported tax codes""" enum Taxcode { """High tax rate""" H """Low tax rate""" L """No tax rate""" N """Middle tax rate""" M """Custom tax rate""" CUST } """ Tax classification codes that determine the applicable tax rates and regulations for surcharges and additional fees """ enum TaxCode { """ High tax rate classification. Applied to surcharges subject to the highest applicable tax rate in the jurisdiction. """ H """ Low tax rate classification. Applied to surcharges subject to reduced or preferential tax rates. """ L """ No tax classification. Applied to tax-exempt surcharges or fees not subject to taxation. """ N M CUST } """ Tax configuration creation data for establishing regional tax rules and rates. Contains all necessary information to create a complete tax record including geographic zones, tax codes, percentages, and export configurations. Used for tax compliance and pricing calculations. """ input TaxCreateInput { """ [DEPRECATED] Shop identifier for tax rule application. Specifies which shop this tax configuration applies to. Used to establish shop-specific tax rules and ensure proper tax calculations for different business locations. Must be a positive integer representing an existing shop. """ shopId: Int """ Tax classification code for determining tax treatment. Specifies the type of tax to apply based on product categories and regional regulations. Used to categorize products for appropriate tax calculations and compliance reporting. """ code: Taxcode """ Geographic tax zone for regional tax application. Must be a valid 2-character country or region code. Used to determine applicable tax rates and rules based on geographic location. Length must be exactly 2 characters. """ zone: String! """ Tax rate percentage to apply to taxable amounts. Decimal value representing the tax percentage (e.g., 21.5 for 21.5% tax). Maximum 5 decimal places allowed for precision. Used for calculating tax amounts on products and services. """ percentage: Float = 0 """ Export code for external system integration and reporting. Alphanumeric code used for tax reporting and integration with external accounting or compliance systems. Maximum length is 10 characters. Used for tax export and regulatory reporting. """ exportCode: String = null } type TaxesResponse { """List of items of type Tax""" items: [Tax!]! """Total number of items found""" itemsFound: Int! """The amount of items to show per page""" offset: Int! """The current page""" page: Int! """Total amount of pages""" pages: Int! """Start position of the current page""" start: Int! """End position of the current page""" end: Int! } """ Search criteria for filtering tax records with comprehensive filtering options. Supports filtering by tax codes, geographic zones, creation dates, and more. All fields are optional and can be combined for precise tax rule discovery and management. """ input TaxSearchInput { """ Page number for pagination results. Minimum value is 1. Used with offset to control result pagination for large tax datasets. """ page: Int = 1 """ Number of tax records to return per page. Minimum value is 1. Controls the size of each page in paginated results for efficient data loading. """ offset: Int = 12 """ [DEPRECATED] Filter by shop identifier for tax rule application. Finds tax configurations that apply to the specified shop. Used to retrieve shop-specific tax rules and rates. """ shopId: Int """ Filter by tax classification code. Finds tax configurations with the specified tax code. Used to retrieve tax rules for specific product categories and tax treatments. """ code: Taxcode """ Filter by geographic tax zone. Must be a valid 2-character country or region code. Finds tax configurations that apply to the specified geographic zone. Length must be exactly 2 characters. """ zone: String """Search by date created""" createdAt: DateSearchInput """Search by date changed""" lastModifiedAt: DateSearchInput """Inputs to sort by""" sortInputs: [TaxSortInput!] } """Available fields for sorting tax search results""" enum TaxSortField { """Sort by tax record ID""" ID """[DEPRECATED] Sort by shop identifier numerically""" SHOP_ID """Sort by tax code alphabetically""" CODE """Sort by tax zone alphabetically""" ZONE """Sort by tax percentage numerically""" PERCENTAGE """Sort by export code alphabetically""" EXPORT_CODE """Sort by the date when the tax was created""" CREATED_AT """Sort by the date when the tax was last modified""" LAST_MODIFIED_AT } input TaxSortInput { """Field to sort by""" field: TaxSortField! """Order option to sort by. [Default to `ASC`]""" order: SortOrder! = ASC } """ Tax configuration update data for modifying existing tax rules and rates. Contains optional fields for updating tax information including tax codes, geographic zones, percentages, and export settings. All fields are optional for partial updates. """ input TaxUpdateInput { """ [DEPRECATED] Shop identifier for tax rule application. Specifies which shop this tax configuration applies to. Used to establish shop-specific tax rules and ensure proper tax calculations for different business locations. Must be a positive integer representing an existing shop. """ shopId: Int """ Tax classification code for determining tax treatment. Specifies the type of tax to apply based on product categories and regional regulations. Used to categorize products for appropriate tax calculations and compliance reporting. """ code: Taxcode """ Geographic tax zone for regional tax application. Must be a valid 2-character country or region code. Used to determine applicable tax rates and rules based on geographic location. Length must be exactly 2 characters. """ zone: String """ Tax rate percentage to apply to taxable amounts. Decimal value representing the tax percentage (e.g., 21.5 for 21.5% tax). Maximum 5 decimal places allowed for precision. Used for calculating tax amounts on products and services. """ percentage: Float = 0 """ Export code for external system integration and reporting. Alphanumeric code used for tax reporting and integration with external accounting or compliance systems. Maximum length is 10 characters. Used for tax export and regulatory reporting. """ exportCode: String = null } """ Template processing error log entry for debugging and monitoring. Records detailed information about template processing failures including error context, stack traces, and diagnostic data for systematic debugging and system monitoring. """ type TemplateErrorLog { """ Unique identifier for the error log entry. Unique UUID that can be used to reference this specific error occurrence for debugging, tracking, and correlation with other system events. """ id: String! """ Complete error stack trace for debugging. Detailed stack trace showing the exact location and sequence of calls that led to the error, essential for developers to identify and fix template processing issues. """ stackTrace: String! """ Timestamp when the error occurred. Precise date and time of the error occurrence, useful for chronological analysis, error pattern identification, and correlation with system events. """ createdAt: DateTime! """ Event data that triggered the error. Serialized event instance data that was being processed when the error occurred, providing context for reproducing and debugging the issue. """ eventInstance: String """ Message queue topic name for the event. Name of the message queue topic that delivered the event, useful for identifying error patterns across different event sources and message flows. """ topicName: String """ Classification of the error type. Categorizes the error into specific types (render errors, custom query errors) for systematic debugging and enables focused analysis of particular error categories. """ errorType: TemplateErrorType! """ Template identifier that caused the error. Unique ID of the template that was being processed when the error occurred, enabling template-specific debugging and identification of problematic templates. """ templateId: String """ Human-readable error message. Clear description of what went wrong during template processing, providing immediate insight into the nature of the error for quick diagnosis. """ errorMessage: String! """ Specific template field that caused the render error. Name of the particular template field or variable that triggered the rendering failure, enabling precise identification of problematic template elements. """ fieldName: String } """ Paginated response containing template error log search results. Provides comprehensive error log data with pagination metadata for efficient error analysis, debugging workflows, and systematic monitoring of template processing issues. """ type TemplateErrorLogResponse { """ Array of template error log entries. Collection of error log records matching the search criteria, containing detailed information about template processing failures for debugging and analysis. """ items: [TemplateErrorLog!]! """ Total count of error logs matching search criteria. Complete number of error log entries that match the applied filters, regardless of pagination, useful for understanding the scope of issues. """ itemsFound: Int! """ Current page number in the result set. Indicates which page of results is currently being returned, enabling navigation through large error log datasets. """ page: Int! """ Number of error log items per page. Specifies how many error log entries are included in each page of results, controlling the pagination size for optimal performance. """ offset: Int! """ Total number of pages available. Calculated total pages based on the number of items found and items per page, enabling complete pagination navigation. """ pages: Int! """ Starting item number for the current page. Indicates the position of the first item in the current page within the complete result set, useful for result positioning. """ start: Int! """ Ending item number for the current page. Indicates the position of the last item in the current page within the complete result set, useful for result positioning. """ end: Int! } """ Search criteria for filtering template error logs. Provides comprehensive filtering options for error log analysis including error type classification, template identification, date ranges, and pagination. Supports sorting for systematic debugging workflows. """ input TemplateErrorLogSearchInput { """ Filter by specific error type classifications. Limits results to particular categories of errors (render errors, custom query errors) for focused debugging and analysis of specific failure patterns. """ errorTypes: [TemplateErrorType!] """ Filter by specific template identifiers. Limits results to errors from particular templates, enabling targeted debugging of problematic templates and template-specific error analysis. """ templateIds: [String!] """ Filter errors occurring from this date onwards. Sets the earliest date boundary for error log retrieval, useful for analyzing recent errors or errors within specific time periods. """ dateFrom: DateTime """ Filter errors occurring up to this date. Sets the latest date boundary for error log retrieval, useful for historical analysis or limiting results to specific time ranges. """ dateTo: DateTime """ Number of error log items to return per page. Controls pagination size for manageable result sets and optimal performance during error log analysis. """ offset: Int! = 12 """ Page number for paginated results. Specifies which page of results to retrieve when dealing with large error log datasets, enabling navigation through extensive error histories. """ page: Int! = 1 """ Sorting criteria for error log organization. Defines how error logs should be ordered in the results, enabling systematic analysis and prioritization of errors based on various criteria. """ sortInputs: [TemplateErrorLogSortInput!] } """ Available fields for sorting template error log search results. Determines the ordering criteria for error log listings, enabling systematic analysis of template processing failures and debugging workflows. """ enum TemplateErrorLogSortField { """ Sort by the timestamp when the error occurred. Useful for chronological analysis of errors, identifying error patterns over time, and finding recent or historical issues. """ CREATED_AT """ Sort by the classification of error that occurred. Groups similar error types together for systematic debugging and enables focused analysis of specific error categories. """ ERROR_TYPE """ Sort by the unique identifier of the template that caused the error. Groups errors by template for targeted debugging and identifying problematic templates that require attention. """ TEMPLATE_ID } """ Sorting configuration for template error log search results. Defines both the field to sort by and the direction of sorting, enabling systematic analysis of template processing errors and debugging workflows. """ input TemplateErrorLogSortInput { """ Error log field to use for sorting. Determines which error log property will be used as the primary sorting criteria for organizing debugging and analysis results. """ field: TemplateErrorLogSortField! """ Direction of sorting operation. Specifies whether error logs should be ordered in ascending (ASC) or descending (DESC) order based on the selected field. """ order: SortOrder! } """ Statistical summary of template error logs for monitoring and analysis. Provides aggregated metrics about template processing errors including counts by error type, temporal boundaries, and overall system health indicators for proactive monitoring. """ type TemplateErrorLogStats { """ Total count of all error log entries. Complete number of template processing errors recorded in the system, providing an overall indicator of template system health and stability. """ totalCount: Float! """ Count of template rendering errors. Number of errors that occurred during template compilation or processing, including syntax errors, missing variables, and template engine failures. """ renderErrorCount: Float! """ Count of custom query execution errors. Number of errors that occurred when template-specific data queries failed, including connection issues, invalid query syntax, and data access problems. """ customQueryErrorCount: Float! """ Timestamp of the oldest recorded error. Date and time of the earliest error log entry in the system, useful for understanding the historical scope of error data and system stability trends. """ oldestEntry: DateTime """ Timestamp of the most recent recorded error. Date and time of the latest error log entry in the system, indicating the recency of template processing issues and current system status. """ newestEntry: DateTime } """ Classification of template processing errors for systematic debugging. Categorizes different types of failures that can occur during template processing, enabling focused error analysis, targeted debugging approaches, and systematic resolution of template system issues. """ enum TemplateErrorType { """ Template compilation and rendering failures. Occurs during Handlebars template processing including syntax errors, missing variables, invalid expressions, helper function failures, and template engine compilation issues that prevent successful content generation. """ RENDER_ERROR """ Data enrichment query execution failures. Occurs when template-specific GraphQL queries fail during data fetching including connection timeouts, invalid query syntax, authentication failures, and data access permission issues. """ CUSTOM_QUERY_ERROR } """ Input data for template rendering operations. Contains the dynamic data payload that will be merged with template content to generate personalized messages, documents, or other output formats. """ input TemplateRenderInput { """ Dynamic data payload for template variable substitution. JSON object containing key-value pairs that will be used to replace Handlebars variables in the template content, enabling personalized and context-specific message generation. Validation: Must be valid JSON format. """ data: JSON! } """ Paginated response containing template search results. Extends the base paginated response with template-specific data, providing comprehensive search results with pagination metadata for efficient template browsing and management. """ type TemplateResponse { """List of items of type IBaseTemplate""" items: [IBaseTemplate!]! """Total number of items found""" itemsFound: Int! """The amount of items to show per page""" offset: Int! """The current page""" page: Int! """Total amount of pages""" pages: Int! """Start position of the current page""" start: Int! """End position of the current page""" end: Int! } """ Search criteria for filtering message templates. Provides comprehensive filtering options for template searches including type classification, default template designations, and pagination. Supports sorting and can filter by specific template identifiers for targeted retrieval. """ input TemplateSearchInput { """ Filter by template type classification. Limits results to specific template types (EMAIL or DOCUMENT) for focused template management and type-specific operations. """ types: [TemplateType!] """ Filter by specific template identifiers. Limits results to templates with the specified UUIDs, enabling targeted retrieval of known templates for management or processing operations. Validation: Must be valid UUIDs. """ ids: [String!] """ Filter by default order PDF designation. When true, returns only templates designated as default for order PDF generation. When false, excludes default order PDF templates. """ isDefaultOrderPdf: Boolean """ Filter by default quote PDF designation. When true, returns only templates designated as default for quote PDF generation. When false, excludes default quote PDF templates. """ isDefaultQuotePdf: Boolean """ Number of template items to return per page. Controls pagination size for manageable result sets and optimal performance during template browsing and search operations. """ offset: Int = 12 """ Page number for paginated template results. Specifies which page of results to retrieve when dealing with large template datasets, enabling navigation through extensive template collections. """ page: Int = 1 """ Sorting criteria for template result organization. Defines how templates should be ordered in the results, supporting multiple sort criteria with different directions for comprehensive result organization. Validation: When provided, array must not be empty and must contain unique sort configurations. """ sortInputs: [TemplateSortInput!] } """ Available fields for sorting template search results. Determines the ordering criteria for template listings and search operations, enabling organized presentation of template data. """ enum TemplateSortField { """ Sort by the timestamp when the template was last modified. Useful for finding recently updated templates or organizing templates by modification history. """ LAST_MODIFIED_AT """ Sort by the timestamp when the template was originally created. Useful for chronological organization or finding the oldest/newest templates in the system. """ CREATED_AT } """ Sorting configuration for template search results. Defines both the field to sort by and the direction of sorting, enabling organized presentation of template data based on user preferences and business requirements. """ input TemplateSortInput { """ Template field to use for sorting. Determines which template property will be used as the primary sorting criteria for organizing search results. """ field: TemplateSortField! """ Direction of sorting operation. Specifies whether results should be ordered in ascending (ASC) or descending (DESC) order based on the selected field. """ order: SortOrder! } """ Classification of template functionality and output format. Determines the template's purpose and processing workflow, enabling appropriate rendering engines and output generation for different communication and documentation needs. """ enum TemplateType { """ Email template for message delivery via email systems. Supports HTML content, dynamic data substitution, recipient management, attachments, and integration with email delivery services for comprehensive email communications. """ EMAIL """ Document template for generating printable and downloadable files. Supports PDF generation, document formatting, dynamic content insertion, and file attachment capabilities for reports, invoices, contracts, and other business documents. """ DOCUMENT } """ Represents a tenant - the top-level organizational unit in the system. Tenants contain channels and have their own configuration settings. """ type Tenant { """ Unique identifier for the tenant. Used for tenant resolution and all tenant-related operations. """ id: String! """ Display name of the tenant. Used in user interfaces and for tenant identification. """ name: String! """ Localized descriptions of the tenant in different languages. Provides multilingual support for tenant information display. """ descriptions: [LocalizedString!] """ Timestamp when the tenant was created. Used for auditing and chronological ordering. """ createdAt: DateTime! """ Timestamp when the tenant was last modified. Updated automatically on any tenant changes. """ lastModifiedAt: DateTime! """ [SETTING] Controls whether sales pricing information is restricted within this tenant. Affects visibility of detailed pricing data to users. """ restrictSalesPricingVisibility: RESTRICT_SALES_PRICING_VISIBILITY! """ [SETTING] Controls whether quotes can be manually invalidated within this tenant. """ allowQuoteInvalidation: ALLOW_QUOTE_INVALIDATION! """ [SETTING] Default number of days before quotes expire within this tenant. Used as the default expiry period when creating new quotes if not specified otherwise. """ quoteDefaultExpiryPeriodDays: Int """ [SETTING] Default application UI language for this tenant as a 2-character code (e.g. EN, NL). Used when no user-specific language preference is available. """ defaultAppLanguage: String! """ [SETTING] Default data language for this tenant as a 2-character code (e.g. EN, NL). Applied to localized data fields when no explicit language is requested. """ defaultDataLanguage: String """ Resolves all channels belonging to this tenant. Provides access to the tenant's channel hierarchy and configuration. Errors: CHANNEL_LIST_ERROR if channel retrieval fails. """ channels: [Channel!]! } """ Input for creating a new tenant with its default channel. Tenants represent top-level organizational units with their own settings and channels. """ input TenantCreateInput { """ Unique identifier for the tenant. Must be unique across the entire system and will be used for tenant resolution. """ id: String! """ Display name for the tenant. Must be at least 1 character long and will be shown in user interfaces. """ name: String! """ Localized descriptions for the tenant in different languages. Each entry must have a unique language code to avoid duplicates. """ descriptions: [LocalizedStringInput!] """ Configuration for the tenant's default channel. Every tenant must have at least one channel created during tenant setup. """ channel: ChannelCreateInput! """ [SETTING] Controls whether sales pricing information is restricted within this tenant. Affects visibility of detailed pricing data to users. """ restrictSalesPricingVisibility: RESTRICT_SALES_PRICING_VISIBILITY! = NO """ [SETTING] Controls whether quotes can be invalidated within this tenant. """ allowQuoteInvalidation: ALLOW_QUOTE_INVALIDATION! = YES """ [SETTING] Default number of days before quotes expire within this tenant. Used as the default expiry period when creating new quotes if not specified otherwise. """ quoteDefaultExpiryPeriodDays: Int """ [SETTING] Default application UI language for this tenant as a 2-character code (e.g. EN, NL). Used when no user-specific language preference is available. """ defaultAppLanguage: String! = "EN" """ [SETTING] Default data language for this tenant as a 2-character code (e.g. EN, NL). Applied to localized data fields when no explicit language is requested. """ defaultDataLanguage: String } """ Paginated response containing organizational entity data with metadata for navigation and result information. Includes total count, pagination details, and the actual organizational records. """ type TenantResponse { """List of items of type Tenant""" items: [AdminUserTenant!]! """Total number of items found""" itemsFound: Int! """The amount of items to show per page""" offset: Int! """The current page""" page: Int! """Total amount of pages""" pages: Int! """Start position of the current page""" start: Int! """End position of the current page""" end: Int! } """ Input for updating an existing tenant. All fields are optional - only provided fields will be updated. """ input TenantUpdateInput { """ Display name for the tenant. Must be at least 1 character long and will be shown in user interfaces. """ name: String """ Localized descriptions for the tenant in different languages. Each entry must have a unique language code to avoid duplicates. """ descriptions: [LocalizedStringInput!] """ [SETTING] Controls whether sales pricing information is restricted within this tenant. Affects visibility of detailed pricing data to users. """ restrictSalesPricingVisibility: RESTRICT_SALES_PRICING_VISIBILITY = NO """ [SETTING] Controls whether quotes can be invalidated within this tenant. """ allowQuoteInvalidation: ALLOW_QUOTE_INVALIDATION = YES """ [SETTING] Default number of days before quotes expire within this tenant. Used as the default expiry period when creating new quotes if not specified otherwise. """ quoteDefaultExpiryPeriodDays: Int """ [SETTING] Default application UI language for this tenant as a 2-character code (e.g. EN, NL). Used when no user-specific language preference is available. """ defaultAppLanguage: String = "EN" """ [SETTING] Default data language for this tenant as a 2-character code (e.g. EN, NL). Applied to localized data fields when no explicit language is requested. """ defaultDataLanguage: String } """ Comprehensive tender entity representing a potential order in the system. Tenders are draft orders that contain all necessary information for order processing including customer details, items, pricing, addresses, payment methods, and shipping information. They can be modified, processed into orders, or deleted as needed. """ type Tender { """Tender/order status""" status: String! """ Retrieve the current status of the tender. Returns the tender status configuration that represents the current state of the tender in the workflow. """ orderStatus: OrderStatus """ Associated order identifier when tender was created from an existing order. Links the tender to its source order for reference and audit purposes. """ orderId: Int revisions(input: OrderRevisionByOrderSearchInput): OrderRevisionResponse! """ Unique identifier for the tender. This is the primary key used to reference and manage the tender throughout its lifecycle. """ tenderId: String! """ Identifier of the user who owns this tender. Represents the primary responsible party for the tender management and processing. """ ownerId: Int """ Classification of the tender type. Determines the processing workflow and business rules that apply to this tender. """ type: OrderType! """ Legacy site identifier where the tender was created. Historical reference maintained for compatibility purposes. """ siteId: Int @deprecated(reason: "Deprecated in favor of channelId") """ Sales channel identifier where the tender originated. Identifies the specific sales channel (website, mobile app, etc.) used to create this tender. """ channelId: Int """ [DEPRECATED] Shop identifier that owns this tender. Determines which business unit or location is responsible for fulfilling this tender. """ shopId: Int! @deprecated(reason: "Deprecated, please use channelId instead") """ Timestamp when the tender was initially created. Records the exact moment this tender was first established in the system. """ createdAt: DateTime! """ Identifier of the user who created this tender. Tracks the originator of the tender for audit and accountability purposes. """ createdBy: Int """ Timestamp of the most recent modification to the tender. Updates automatically whenever any aspect of the tender is changed. """ lastModifiedAt: DateTime! """ Identifier of the user who last modified this tender. Tracks the most recent editor for audit and accountability purposes. """ lastModifiedBy: Int userId: Int @deprecated(reason: "This field will be removed in a future release, use contact+companyId or customerId instead") """ Contact person identifier associated with this tender. Used in combination with companyId to identify the specific contact person within a company who is responsible for this tender. """ contactId: Int """ Customer identifier for individual customer tenders. Used for direct customer relationships where no company association is required. """ customerId: Int """ Company identifier for business-to-business tenders. Used in combination with contactId to establish the company context for the tender. """ companyId: Int """The invoice userId for this tender""" invoiceUserId: Int """User's first name""" firstName: String """User's middle name""" middleName: String """User's last name""" lastName: String """User's email""" email: String! """Invoice company debtor ID""" debtorId: String """The address the invoice for the order should be sent to""" invoiceAddress: TenderAddress """The address the order should be shipped to""" deliveryAddress: TenderAddress """Tender/order main item count""" itemCount: Int """The tender/order items""" items: [TenderMainItem!] """The tender/order bonusItems""" bonusItems: [TenderMainItem!] """Payment data for this tender/order""" paymentData: TenderPayment """Postage data for this tender/order""" postageData: TenderPostage """Tender total""" total: TenderTotal """Amount of tax that applies to this tender/order per tax code""" taxLevels: [TenderTaxLevel!] """List of selectable carriers""" carriers: [TenderCarrier!] """ List of selectable payment methods for this tender, including non allowed for the applied user """ payMethods: [TenderPaymethod!] """Tender/order origin""" source: String """Total amount of valuePoints that apply to this tender/order""" valuePoints: Int """Indicates whether incentives are already applied""" incentivesApplied: Boolean """Tender/order accumulated credit points""" creditPoints: Int """ Action code that is applied to this tender. Is only filled if a valid action code was applied during checkout """ actionCode: String """User's reference for this tender""" reference: String """User's remarks for this tender""" remarks: String """The language for this tender""" language: String """The currency for this tender""" currency: String """The currency ratio for this tender""" currencyRatio: Float """The order's ID in an external system""" externalId: String """Additional information field that can be stored with a tender/order""" extra3: String """Additional information field that can be stored with a tender/order""" extra4: String """Indicates whether tender can be edited""" isEditable: Boolean """Valid until date (Display Only!)""" validUntil: DateTime """Indicates whether order is public""" public: Boolean! """Order revision number""" revisionNumber: Int! """Order public version number""" publicVersionNumber: Int """Indicates whether order is invalid""" invalid: Boolean! """Order invalidation reason""" invalidationReason: String """Order created by admin user id""" createdByAdminUserId: Int """Order created by contact id""" createdByContactId: Int """Order created by customer id""" createdByCustomerId: Int """The revision this was created from""" createdFromRevisionNumber: Int """Tender User""" user: IBaseUser @deprecated(reason: "Deprecated in favor of `contact` or `customer`") """Tender Contact""" contact: Contact """Tender Customer""" customer: Customer """Tender Company""" company: Company } """ Input data for adding a single item to a tender. Extends the base tender item input with specific product identification and quantity information needed for adding new items to the tender. """ input TenderAddItemInput { """ Quantity of the product to add to the tender. Must be a positive integer representing the number of units to include in the tender. """ quantity: Int! = 1 """ Custom display name for the item. Overrides the default product name if specified. Useful for personalized or customized item descriptions. """ name: String """ Custom price per unit for this item. Overrides the default calculated sales price if specified. Used for special pricing arrangements or manual price adjustments. """ price: Float """ Supplier or vendor information for this item. Overrides the default product supplier if specified. Used for special sourcing arrangements or supplier preferences. """ supplier: String """ Expected delivery date for this specific item. Must be a valid ISO 8601 date string. Used for items with special delivery requirements or scheduling. """ deliveryDate: String """ Additional notes or special instructions for this item. Free-form text for any special requirements, customizations, or important information related to this item. """ notes: String """ The priority of the item within its tender. Auto-assigned in increments of 100 if not provided. Lower numbers are considered higher priority. Must be unique per order. When setting a priority that conflicts with an existing item, other items are automatically shifted to make room. """ priority: Int """ Unique identifier of the product to add to the tender. Must be a valid product ID that exists in the system and is available for purchase. """ productId: Int! """ Child items or product options for configurable products. Used when adding complex products that have selectable options, configurations, or bundled components. Each child item represents a specific option or component of the parent product. """ childItems: [TenderChildItemInput!] } """ Input data for adding multiple items to an existing tender. Contains the list of products to add along with configuration options for handling duplicates and validation rules. """ input TenderAddItemsInput { """ List of product items to add to the tender. Must contain at least one item. Each item specifies the product details, quantity, and any special configurations. """ products: [TenderAddItemInput!]! """ Controls behavior when adding items that already exist in the tender. When true, creates new separate line items even if the same product exists. When false (default), updates existing items by combining quantities. """ forceAdd: Boolean = false """ Enables validation against customer-specific order lists and restrictions. When true (default), verifies that all items are allowed for the customer. When false, skips order list validation. """ validateOrderList: Boolean = true """ [DEPRECATED] Enables budget validation for the customer's spending limits. When true (default), checks that adding these items won't exceed the customer's budget. When false, skips budget validation. """ validateBudget: Boolean = true } """ Address information for tender billing and delivery purposes. Contains complete address details including contact person information, physical location, and special handling instructions for both billing and shipping operations. """ type TenderAddress { """ Company or organization name at this address. Used for business addresses where deliveries or correspondence should be directed to a specific company. """ company: String """ Gender of the contact person at this address. Used for proper addressing and communication with the contact person. """ gender: Gender """ First name of the contact person at this address. Primary contact person for deliveries, correspondence, or address-related communications. """ firstName: String """ Middle name of the contact person at this address. Additional name information for complete contact identification. """ middleName: String """ Last name of the contact person at this address. Family name of the primary contact person for this address. """ lastName: String """ Street name and address line. Primary street address information including street name and any additional address details. """ street: String! """ House or building number. Numeric identifier for the specific building or location on the street. """ number: String """ Additional number information such as apartment or unit number. Secondary address identifiers like apartment numbers, suite numbers, or building extensions. """ numberExtension: String """ Postal or ZIP code for the address. Postal service code used for mail sorting and delivery routing. """ postalCode: String! """ City or municipality name. The city, town, or municipality where this address is located. """ city: String! """ State, province, or regional subdivision. Administrative region within the country, such as state, province, or county. """ region: String """ Country code or country name. ISO country code identifying the nation where this address is located, like "US", "NL". """ country: String! """ Internal address code or reference identifier. System-specific code used for internal address management and reference purposes. """ code: String """ Email address of the contact person at this address. Electronic contact method for address-related communications and notifications. """ email: String """ Mobile phone number of the contact person. Primary mobile contact number for urgent communications or delivery coordination. """ mobile: String """ Landline phone number of the contact person. Fixed-line telephone number for general communications and contact purposes. """ phone: String """ Intra-Community Purchase (ICP) tax exemption status. Indicates whether this address qualifies for tax exemptions on intra-community purchases. When Yes, certain taxes may not apply for shipments to this address. """ icp: YesNo """ Additional notes or special delivery instructions. Free-form text for special handling requirements, delivery instructions, or other important address-related information. """ notes: String } """ Classification of address types used in tender processing to determine billing and delivery destinations """ enum TenderAddressType { """ Billing address for financial transactions and invoicing. Used for payment processing, tax calculations, and official correspondence related to the tender. """ INVOICE """ Delivery address for order fulfillment and shipping. Designated address where products from the tender should be delivered to the customer. """ DELIVERY } type TenderBaseItem implements ITenderBaseItem { id: Int! @deprecated(reason: "Deprecate, please use uuid instead") """ Id of the tender item, this id can be used for update or delete mutation for this tender item """ uuid: String! """Id of the order item""" orderItemId: Int """Tender/order item name""" name: String! """The tender/order item's productId, if applicable""" productId: Int! """Tender/order item SKU""" sku: String! """The quantity for this tender/order item""" quantity: Int! """Tender/order item supplier""" supplier: String """Tender/order item supplier code""" supplierCode: String """ The gross sales price per UOM of this tender/order item, no item specific incentives and extra costs are applied to this price. VAT excluding """ price: Float! """ The sales price per UOM of this tender/order item, no item specific incentives and extra costs are applied to this price. VAT including """ priceNet: Float! """ The total gross price of this tender/order item, no item specific incentives and extra costs are applied to this price. VAT excluding """ totalPrice: Float! """ The total price of this tender/order item, no item specific incentives and extra costs are applied to this price. VAT including """ totalPriceNet: Float! """The tax code for this tender/order item""" taxCode: Taxcode! """The tax percentage for this tender/order item""" taxPercentage: Int! """Customer discount (%)""" customerDiscountPercentage: Float! """Sales discount (%)""" discountPercentage: Float! """Total discount (%)""" totalDiscountPercentage: Float! """Default margin amount (list price). VAT excluding""" marginAmount: Float! """Default margin percentage (list price)""" marginPercentage: Float! """Margin amount. VAT excluding""" saleMarginAmount: Float! """Margin percentage""" saleMarginPercentage: Float! """ Extra item discount (%) calculated based on tender/order total discount """ attributedSaleDiscount: Float! """Margin percentage calculated based on tender/order total discount""" attributedSaleMargin: Float! """Product list price per UOM of this tender/order item. VAT excluding""" originalPrice: Float! """Product cost price per UOM of this tender/order item. VAT excluding""" costPrice: Float! """ Customer special price per UOM of this tender/order item. VAT excluding """ customerPrice: Float! """Total amount of valuePoints that apply to this tender/order item""" valuePoints: Int """The preferred delivery date for this order as requested by the user""" expectedDeliveryDate: DateTime """The order item's ID in an external system""" externalOrderitemId: String """User notes on tender item level""" notes: String """The incentives applied to this tender item""" incentive: TenderItemIncentive """The surcharges applied to this tender item""" surcharges: [TenderItemSurcharge!] """ The priority of the item within its tender. Auto-assigned in increments of 100 if not provided. Lower numbers are considered higher priority. Must be unique per order. When setting a priority that conflicts with an existing item, other items are automatically shifted to make room. """ priority: Int } type TenderCarrier { """Carrier unique identifier""" id: Int! """ Targeted costs for delivery through this carrier. Use the costs as an indication, the actual costs are calculated through business rules """ price: Float! """Carrier name""" name: String! """Carrier description""" description: String """Carrier's logo""" logo: String """ Costs for delivery through this carrier. Use the costs as an indication, the actual costs are calculated through business rules """ amount: Float! @deprecated(reason: "Deprecated, please use price instead") """Carrier's delivery deadline""" deliveryDeadline: DateTime } """ Input data for child items within configurable or bundled products. Child items represent options, components, or sub-products that are part of a parent item. Used for products with selectable configurations or bundled offerings. """ input TenderChildItemInput { """ Unique identifier of the child product. Must be a valid product ID that exists in the system and is compatible as a child item for the parent product. """ productId: Int! """ Custom display name for the child item. Overrides the default product name if specified. Useful for personalized or customized child item descriptions. """ name: String """ Custom price per unit for this child item. Overrides the default calculated sales price if specified. Used for special pricing arrangements or manual price adjustments on child items. """ price: Float """ Expected delivery date for this specific child item. Must be a valid ISO 8601 date string. Used when child items have different delivery requirements than the parent item. """ deliveryDate: String """ Additional notes or special instructions for this child item. Free-form text for any special requirements, customizations, or important information specific to this child item. """ notes: String """ Quantity of this child item. Must be a positive integer. When omitted, the quantity automatically matches the parent item's quantity. Used when child items have different quantity requirements than the parent. """ quantity: Int } """ Input data for applying discounts to a tender. Contains the discount type and value information needed to calculate and apply price reductions to the tender total. """ input TenderDiscountInput { """ Type of discount to apply to the tender. Determines how the discount value should be interpreted and applied - either as a fixed amount or percentage reduction. """ type: OrderDiscountType! """ Discount value to apply based on the discount type. For percentage discounts, this represents the percentage reduction (e.g., 10 for 10%). For fixed amount discounts, this represents the monetary amount to subtract from the total. """ value: Float! } """ Incentive or discount applied to a specific tender item. Represents promotional offers, discounts, or special incentives that reduce the cost of individual items within the tender. Contains details about the incentive type, value, and application rules. """ type TenderItemIncentive { """ Display name of the incentive or promotional offer. Human-readable description of the discount or incentive being applied to the item. """ name: String """ Quantity of items affected by this incentive. Number of units to which this incentive applies. May be less than the total item quantity for partial discounts. """ quantity: Int! """ Price reduction amount per unit from this incentive. The monetary value of the discount applied per unit. Negative values indicate price reductions. """ price: Float! """ Classification code for the type of incentive applied. Identifies the specific type of promotional offer or discount mechanism being used. """ code: OrderItemIncentiveCode! } type TenderItemSurcharge { names: [LocalizedString!]! taxCode: Taxcode! taxPercentage: Float! quantity: Int! price: Float! totalPrice: Float! priceNet: Float! totalPriceNet: Float! } """ Primary product item within a tender representing actual merchandise being purchased. Main items are the core products in a tender that customers are purchasing, as opposed to surcharges, fees, or incentives. They contain comprehensive pricing information and can have associated child items for configurable products. """ type TenderMainItem implements ITenderBaseItem { id: Int! @deprecated(reason: "Deprecated, please use uuid instead") """The tender/order item's productId, if applicable""" productId: Int product(hidden: Boolean): Product """ Id of the tender item, this id can be used for update or delete mutation for this tender item """ uuid: String! """Id of the order item""" orderItemId: Int """Tender/order item name""" name: String! """Tender/order item SKU""" sku: String! """The quantity for this tender/order item""" quantity: Int! """Tender/order item supplier""" supplier: String """Tender/order item supplier code""" supplierCode: String """ The gross sales price per UOM of this tender/order item, no item specific incentives and extra costs are applied to this price. VAT excluding """ price: Float! """ The sales price per UOM of this tender/order item, no item specific incentives and extra costs are applied to this price. VAT including """ priceNet: Float! """ The total gross price of this tender/order item, no item specific incentives and extra costs are applied to this price. VAT excluding """ totalPrice: Float! """ The total price of this tender/order item, no item specific incentives and extra costs are applied to this price. VAT including """ totalPriceNet: Float! """The tax code for this tender/order item""" taxCode: Taxcode! """The tax percentage for this tender/order item""" taxPercentage: Int! """Customer discount (%)""" customerDiscountPercentage: Float! """Sales discount (%)""" discountPercentage: Float! """Total discount (%)""" totalDiscountPercentage: Float! """Default margin amount (list price). VAT excluding""" marginAmount: Float! """Default margin percentage (list price)""" marginPercentage: Float! """Margin amount. VAT excluding""" saleMarginAmount: Float! """Margin percentage""" saleMarginPercentage: Float! """ Extra item discount (%) calculated based on tender/order total discount """ attributedSaleDiscount: Float! """Margin percentage calculated based on tender/order total discount""" attributedSaleMargin: Float! """Product list price per UOM of this tender/order item. VAT excluding""" originalPrice: Float! """Product cost price per UOM of this tender/order item. VAT excluding""" costPrice: Float! """ Customer special price per UOM of this tender/order item. VAT excluding """ customerPrice: Float! """Total amount of valuePoints that apply to this tender/order item""" valuePoints: Int """The preferred delivery date for this order as requested by the user""" expectedDeliveryDate: DateTime """The order item's ID in an external system""" externalOrderitemId: String """User notes on tender item level""" notes: String """ Discount or promotional incentive applied to this item. Contains any price reductions, promotional offers, or special incentives that decrease the cost of this specific item. """ incentive: TenderItemIncentive """ Additional fees and surcharges applied to this item. Contains any extra costs such as handling fees, special processing charges, or item-specific surcharges that increase the total cost. """ surcharges: [TenderItemSurcharge!] """ The priority of the item within its tender. Auto-assigned in increments of 100 if not provided. Lower numbers are considered higher priority. Must be unique per order. When setting a priority that conflicts with an existing item, other items are automatically shifted to make room. """ priority: Int """ Associated child items for configurable or bundled products. Contains sub-items, options, or components that are part of this main item. Used for products with selectable configurations or bundled offerings. """ childItems: [ITenderBaseItem!] """ Gross price per unit of measure for this item including VAT. Final price per unit including all item-specific incentives, discounts, additional costs, and value-added tax. """ sum: Float! """ Net price per unit of measure for this item excluding VAT. Calculated price per unit including all item-specific incentives, discounts, and additional costs, but excluding value-added tax. """ sumNet: Float! """ The total gross price of this tender/order item, with item specific incentives and extra costs applied to this price. VAT excluding """ totalSum: Float! """ The total price of this tender/order item, with item specific incentives and extra costs applied to this price. VAT including """ totalSumNet: Float! """Sales discount (%). Includes item specific incentives and extra costs""" discountPercentageSum: Float! """Total discount (%). Includes item specific incentives and extra costs""" totalDiscountPercentageSum: Float! """ Margin amount. Includes item specific incentives and extra costs. VAT excluding """ saleMarginAmountSum: Float! """Margin percentage. Includes item specific incentives and extra costs""" saleMarginPercentageSum: Float! """ Extra item discount (%) calculated based on tender/order total discount. Includes item specific incentives and extra costs """ attributedSaleDiscountSum: Float! """ Margin percentage calculated based on tender/order total discount. Includes item specific incentives and extra costs """ attributedSaleMarginSum: Float! } type TenderPayment { """ The costs associated with the selected paymethod on this tender/order. VAT including """ price: Float! """ The costs associated with the selected paymethod on this tender/order. VAT excluding """ priceNet: Float! """If false, shipping costs are automatically calculated""" overruled: YesNo """The tax associated with the selected paymethod on this tender/order""" tax: Float! """ The tax percentage associated with the selected paymethod on this tender/order """ taxPercentage: Float! """The selected payment method for this tender/order""" method: String! """Payment status for this tender/order""" status: String """Payment status change date for this tender/order""" statusDate: DateTime """Accounting ID for this tender/order""" accountingId: String } input TenderPaymentInput { """ The costs associated with the selected paymethod on this tender/order. VAT excluding. If omitted, payment costs are automatically calculated """ price: Float """Payment method for this tender/order""" method: String """Payment status for this tender/order""" status: String """Accounting ID for this tender/order""" accountingId: String """If false, payment costs are automatically calculated""" overruled: YesNo } type TenderPaymethod { """Payment method ID""" id: Int! """Payment method code""" code: String! """Payment method external code""" externalCode: String """Payment method type""" type: String """Payment method description""" description: String! """Payment method amount""" amount: Float! """Indicates whether payment method is allowed for the tender user""" allowed: Boolean! } """ Tender shipping and pickup location information. Contains postage and pickup details for tender proposals including warehouse pickup locations. Used for tender calculations, shipping cost estimates, and customer pickup options. """ type TenderPostage { """The selected shipping method for this tender/order""" method: String! """Postage tax percentage""" taxPercentage: Float! """The preferred delivery date for this order as requested by the user""" requestDate: DateTime """The selected carrier for this tender/order""" carrier: String """ The costs associated with the selected shipping method and business rules that apply to this tender/order. VAT excluding """ price: Float! """ The costs associated with the selected shipping method and business rules that apply to this tender/order. VAT including """ priceNet: Float! """ The VAT associated with the selected shipping method and business rules that apply to this tender/order. """ tax: Float! """If false, shipping costs are automatically calculated""" overruled: YesNo """This order can be shipped in parts when items different delivery dates""" partialDeliveryAllowed: YesNo """Pick up location ID""" pickUpLocationId: Int """ Complete warehouse information for the tender pickup location. Detailed warehouse object including address, business hours, and contact information for the customer tender pickup location. """ warehouse: Warehouse } input TenderPostageInput { """The shipping method for this tender/order""" method: String """ The preferred delivery date for this order as requested by the user - ISO 8601 Date string """ requestDate: String """The carrier for this tender/order""" carrier: String """ Shipping costs, VAT excluding. If omitted, shipping costs are automatically calculated """ price: Float """ This order can be shipped in parts when items have different delivery dates """ partialDeliveryAllowed: YesNo """Pick up location ID""" pickUpLocationId: Int """If false, shipping costs are automatically calculated""" overruled: YesNo } """ Response data returned after successfully processing a tender into an order. Contains the essential information about the newly created order that resulted from the tender processing operation. """ type TenderProcessResponse { """ Unique identifier of the order created from the processed tender. This order ID can be used to track the fulfillment status and manage the order lifecycle. """ orderId: Int! } """ Complete response for tender operations that return both tender data and operation metadata. Combines the updated tender information with additional response data and messages from the operation. """ type TenderResponse { """ The tender object after the operation has been completed. Contains the current state of the tender including any modifications made during the operation. """ tender: Tender! """ Additional response metadata and information about the operation. Contains supplementary data, messages, and status information related to the tender operation. """ response: TenderResponseData! } """ Additional response data and metadata for tender operations. Contains supplementary information about the operation result including any messages, error status, and additional data payload. """ type TenderResponseData { """ Additional data payload from the tender operation. Contains any extra information or metadata returned by the operation in JSON format. """ data: JSONObject! """ Indicates whether an error occurred during the operation. When true, the operation encountered issues that may require attention. """ error: Boolean! """ Informational messages about the operation result. Contains human-readable messages providing details about the operation outcome, warnings, or additional context. """ messages: [String!] } """ Input data for creating a new tender in the system. Contains all necessary information to establish a new tender including customer identification, channel information, and initial configuration settings. """ input TenderStartInput { """ Sales channel identifier where the tender should be created. Specifies which sales channel (website, mobile app, etc.) this tender belongs to for proper routing and processing. """ channelId: Int """ Legacy user identifier for the tender. This field is deprecated and will be ignored if contactId or customerId are provided. """ userId: Int """ Contact person identifier for business-to-business tenders. Must be a valid contact ID. Used in combination with companyId to establish the business relationship. """ contactId: Int """ Company identifier for business-to-business tenders. If not provided when using contactId, the contact's original parent company will be automatically assigned. """ companyId: Int """ Customer identifier for direct customer tenders. Used for individual customer relationships where no company association is required. """ customerId: Int """ Owner identifier for the tender. Specifies who will be responsible for managing and editing this tender. If not provided, defaults to the user creating the tender. """ ownerId: Int """ Business type classification for the tender. Determines the processing workflow and business rules that will apply. Defaults to dropshipment if not specified. """ type: OrderType """ Currency code for tender pricing and calculations. Must be a valid ISO 4217 currency code. Defaults to EUR if not specified. """ currency: String """ Expiration date for the tender validity. Must be a valid ISO date string. After this date, the tender may no longer be processed. This is for display purposes only. """ validUntil: String """ Origin source of the tender creation. Maximum length of 50 characters. Identifies where or how this tender was created for tracking and reporting purposes. """ source: String = "Sales Portal" } type TenderTaxLevel { percentage: Float! total: Float! tax: Float discount: Float } """ Comprehensive pricing and total calculations for a tender. Contains all financial calculations including subtotals, discounts, taxes, and final amounts. Provides both gross (including VAT) and net (excluding VAT) values for complete pricing transparency. """ type TenderTotal { """ Subtotal of all items including VAT, but excluding shipping, payment fees, and discounts. Base amount for all products in the tender with VAT included, before additional costs or reductions. """ subTotalGross: Float! """ Subtotal of all items excluding VAT, shipping, payment fees, and discounts. Base amount for all products in the tender before any additional costs or reductions are applied. """ subTotalNet: Float! """ Total discount amount applied to the tender. Combined value of all discounts and incentives applied, calculated based on the discount type. """ discount: Float """ Percentage discount applied to the tender total. When discount type is percentage-based, this represents the percentage reduction applied to the subtotal. """ discountPercentage: Float """ Method used to calculate the discount. Determines whether the discount is applied as a fixed amount or percentage reduction. """ discountType: OrderDiscountType """ Legacy field for manual discount override control. Previously used to indicate whether discounts were manually set or automatically calculated. """ discountOverruled: Boolean @deprecated(reason: "Not used anymore") """ Final total amount payable excluding VAT. Complete amount before value-added tax is applied, including all items, discounts, shipping, and fees. """ totalNet: Float! """ Final total amount payable including VAT. Complete amount the customer will pay including all items, discounts, taxes, shipping, and fees. """ totalGross: Float! """ Total discount amount excluding VAT. Combined value of all discounts and incentives before value-added tax is applied. """ discountNet: Float! """ Total discount amount including VAT. Combined value of all discounts and incentives with value-added tax included. """ discountGross: Float! """ Total value-added tax amount for the tender. Sum of all VAT charges applied to items, shipping, and fees in the tender. """ totalTax: Float! } input TenderUpdateAddressInput { """Address type""" type: TenderAddressType! """Address company""" company: String = "" """Address contact gender""" gender: Gender = U """Address contact first name""" firstName: String = "" """Address contact middle name""" middleName: String = "" """Address contact last name""" lastName: String = "" """Street""" street: String! """Number""" number: String """Number extension""" numberExtension: String = "" """Postal code""" postalCode: String! """City""" city: String! """Region""" region: String = "" """Country code""" country: String! """Address code""" code: String = "" """Address contact email""" email: String """Address contact mobile phone number""" mobile: String """Address contact phone number""" phone: String """ ICP is Yes when taxes do not apply for shipping to the given address/ country. Defaults to No """ icp: YesNo = N """Notes, remarks, etc.""" notes: String = "" } """ Input data for updating general tender information. Contains fields for modifying tender metadata such as status, references, contact information, and validity settings. At least one field must be provided for the update to proceed. """ input TenderUpdateInput { """ Current processing status of the tender. Updates the tender's workflow status to reflect its current state in the processing pipeline. """ status: String """ Customer reference number or identifier for the tender. Custom reference provided by the customer for their own tracking and identification purposes. """ reference: String """ Additional comments or special instructions for the tender. Free-form text for any special requirements, notes, or important information related to the tender. """ remarks: String """ Email address for tender confirmations and communications. Must be a valid email address. Used for sending order confirmations, status updates, and other tender-related notifications. """ email: String """ Business type classification for the tender. Determines the processing workflow and business rules that apply to this tender. Must be one of the supported order types. """ type: OrderType """ Expiration date for the tender validity. Must be a valid ISO date string. After this date, the tender may no longer be processed. This is for display purposes only. """ validUntil: String """ Origin source of the tender. Maximum length of 50 characters. Identifies where or how this tender was created for tracking and reporting purposes. """ source: String } input TenderUpdateItemInput { """ Number of units for this item. Must be a positive integer. When not specified, defaults to system-calculated quantity based on context. """ quantity: Int """ Custom display name for the item. Overrides the default product name if specified. Useful for personalized or customized item descriptions. """ name: String """ Custom price per unit for this item. Overrides the default calculated sales price if specified. Used for special pricing arrangements or manual price adjustments. """ price: Float """ Supplier or vendor information for this item. Overrides the default product supplier if specified. Used for special sourcing arrangements or supplier preferences. """ supplier: String """ Expected delivery date for this specific item. Must be a valid ISO 8601 date string. Used for items with special delivery requirements or scheduling. """ deliveryDate: String """ Additional notes or special instructions for this item. Free-form text for any special requirements, customizations, or important information related to this item. """ notes: String """ The priority of the item within its tender. Auto-assigned in increments of 100 if not provided. Lower numbers are considered higher priority. Must be unique per order. When setting a priority that conflicts with an existing item, other items are automatically shifted to make room. """ priority: Int """ If set to false, the items will not be validated against customer order lists. Defaults to true """ validateOrderList: Boolean = true """ [DEPRECATED] If set to false, budget validation will be skipped. Defaults to true """ validateBudget: Boolean = true } """ Ticket entity representing a support or service request within the system. Contains all necessary information for ticket management and tracking. """ type Ticket { """ Unique identifier for the ticket. Used for internal system references and relationships. """ id: ID! """ Localized human-readable titles. Provides user-friendly titles in multiple languages for display in user interfaces and documentation. Each entry contains a language code and the corresponding description text. """ titles: [LocalizedString!]! """ Localized human-readable descriptions. Provides user-friendly explanations in multiple languages for display in user interfaces and documentation. Each entry contains a language code and the corresponding description text. """ descriptions: [LocalizedString!] """ Localized human-readable labels for the action button. Each entry contains a language code and the corresponding description text. """ buttonLabels: [LocalizedString!] """ Type of the ticket. Used for categorization and filtering purposes. Maximum length of 255 characters. Must be in SCREAMING_SNAKE_CASE. """ type: String """ Status of the ticket. Used for tracking the lifecycle of the ticket. One of: [OPEN, IN_PROGRESS, COMPLETED, ARCHIVED """ status: TicketStatus! """ Identifier of the admin user assigned to this ticket. Used for task assignment and accountability. """ assignedToAdminUserId: Int """ Identifier of the contact associated with this ticket. Used for customer context and communication. """ contactId: Int """ Identifier of the customer associated with this ticket. Used for customer context and communication. """ customerId: Int """ Identifier of the product associated with this ticket. Used for product-specific context and support. """ productId: Int """ Identifier of the cluster associated with this ticket. Used for cluster-specific context and support. """ clusterId: Int """ Identifier of the order associated with this ticket. Used for order-specific context and support. """ orderId: Int """ Identifier of the company associated with this ticket. Used for company-specific context and support. """ companyId: Int """ Email address of the contact associated with this ticket. Used for customer communication. """ email: String """ Phone number of the contact associated with this ticket. Used for customer communication. """ phone: String """ External URL associated with this ticket. Used for linking to external resources or documentation. """ externalUrl: String """ External sources of the ticket. Used for tracking the origin of the ticket. """ sources: [Source!] """ Timestamp when the ticket was created. Used for auditing and chronological ordering. """ createdAt: DateTime! """ Timestamp when the ticket was last modified. Updated automatically on any channel changes. """ lastModifiedAt: DateTime! """ Timestamp when the ticket was picked up by an admin user. Updated automatically when the status changes to IN_PROGRESS. """ pickedUpAt: DateTime """ Timestamp when the ticket was completed. Updated automatically when the status changes to COMPLETED. """ completedAt: DateTime """ Identifier of the admin user who last modified this ticket. Used for audit trails and accountability. """ lastModifiedByAdminUserId: Int """ Identifier of the admin user who created this ticket. Used for audit trails and accountability. """ createdByAdminUserId: Int assignedToAdminUser: AdminUser } """ Input parameters for creating a new ticket. Defines the core attributes and initial state of the ticket, including contact and customer information, product and order context, and initial status. """ input TicketCreateInput { """ Localized human-readable titles. Provides user-friendly titles in multiple languages for display in user interfaces and documentation. Each entry contains a language code and the corresponding description text. """ titles: [LocalizedStringInput!]! """ Localized human-readable descriptions. Provides user-friendly explanations in multiple languages for display in user interfaces and documentation. Each entry contains a language code and the corresponding description text. """ descriptions: [LocalizedStringInput!] """ Localized human-readable labels for the action button. Each entry contains a language code and the corresponding description text. """ buttonLabels: [LocalizedStringInput!] """ Type of the ticket. Used for categorization and filtering purposes. Maximum length of 255 characters. Must be in SCREAMING_SNAKE_CASE. """ type: String """ Status of the ticket. Used for tracking the lifecycle of the ticket. One of: [OPEN, IN_PROGRESS, COMPLETED, ARCHIVED """ status: TicketStatus! = OPEN """ Identifier of the admin user assigned to this ticket. Used for task assignment and accountability. """ assignedToAdminUserId: Int """ Identifier of the contact associated with this ticket. Used for customer context and communication. """ contactId: Int """ Identifier of the customer associated with this ticket. Used for customer context and communication. """ customerId: Int """ Identifier of the product associated with this ticket. Used for product-specific context and support. """ productId: Int """ Identifier of the cluster associated with this ticket. Used for cluster-specific context and support. """ clusterId: Int """ Identifier of the order associated with this ticket. Used for order-specific context and support. """ orderId: Int """ Identifier of the company associated with this ticket. Used for company-specific context and support. """ companyId: Int """ Email address of the contact associated with this ticket. Used for customer communication. """ email: String """ Phone number of the contact associated with this ticket. Used for customer communication. """ phone: String """ External URL associated with this ticket. Used for linking to external resources or documentation. Maximum length of 2048 characters. """ externalUrl: String """ External sources of the ticket. Used for tracking the origin of the ticket. """ sources: [SourceInput!] } type TicketResponse { """List of items of type Ticket""" items: [Ticket!]! """Total number of items found""" itemsFound: Int! """The amount of items to show per page""" offset: Int! """The current page""" page: Int! """Total amount of pages""" pages: Int! """Start position of the current page""" start: Int! """End position of the current page""" end: Int! } """ Search and pagination parameters for retrieving tickets. Supports filtering by dates, pagination controls, and custom sorting options for comprehensive ticket management. """ input TicketSearchInput { """Pagination page number""" page: Int! = 1 """Pagination offset number""" offset: Int! = 12 """Search by date created""" createdAt: DateSearchInput """Search by date changed""" lastModifiedAt: DateSearchInput """Inputs to sort by""" sortInputs: [TicketSortInput!] """ Unique identifier for the ticket. Used for internal system references and relationships. """ ids: [String!] """ Type of the ticket. Used for categorization and filtering purposes. Must be in SCREAMING_SNAKE_CASE. """ types: [String!] """ Status of the ticket. Used for tracking the lifecycle of the ticket. One of: [OPEN, IN_PROGRESS, COMPLETED, ARCHIVED """ statuses: [TicketStatus!] """ Identifier of the admin user assigned to this ticket. Used for task assignment and accountability. """ assignedToAdminUserIds: [Int!] """ Identifier of the contact associated with this ticket. Used for customer context and communication. """ contactIds: [Int!] """ Identifier of the customer associated with this ticket. Used for customer context and communication. """ customerIds: [Int!] """ Identifier of the product associated with this ticket. Used for product-specific context and support. """ productIds: [Int!] """ Identifier of the cluster associated with this ticket. Used for cluster-specific context and support. """ clusterIds: [Int!] """ Identifier of the order associated with this ticket. Used for order-specific context and support. """ orderIds: [Int!] """ Identifier of the company associated with this ticket. Used for company-specific context and support. """ companyIds: [Int!] """ Email address of the contact associated with this ticket. Used for customer communication. """ emails: [String!] """ Phone number of the contact associated with this ticket. Used for customer communication. """ phones: [String!] """ External URL associated with this ticket. Used for linking to external resources or documentation. """ externalUrls: [String!] """ Timestamp when the ticket was picked up by an admin user. Updated automatically when the status changes to IN_PROGRESS. """ pickedUpAt: DateSearchInput """ Timestamp when the ticket was completed. Updated automatically when the status changes to COMPLETED. """ completedAt: DateSearchInput """ Identifier of the admin user who last modified this ticket. Used for audit trails and accountability. """ lastModifiedByAdminUserIds: [Int!] """ Identifier of the admin user who created this ticket. Used for audit trails and accountability. """ createdByAdminUserIds: [Int!] } """ Available fields for sorting ticket search results. Enables ordering by various ticket attributes for better organization and analysis. """ enum TicketSortField { """Sort by the unique identifier of the ticket.""" ID """Sort by the type of the ticket.""" TYPE """Sort by the status of the ticket.""" STATUS """Sort by the identifier of the order associated with the ticket.""" ORDER_ID """Sort by the identifier of the product associated with the ticket.""" PRODUCT_ID """Sort by the identifier of the cluster associated with the ticket.""" CLUSTER_ID """Sort by the identifier of the contact associated with the ticket.""" CONTACT_ID """Sort by the identifier of the customer associated with the ticket.""" CUSTOMER_ID """Sort by the identifier of the company associated with the ticket.""" COMPANY_ID """Sort by the email address of the contact associated with the ticket.""" EMAIL """Sort by the phone number of the contact associated with the ticket.""" PHONE """Sort by the external URL associated with the ticket.""" EXTERNAL_URL """Sort by the timestamp when the ticket was picked up by an admin user.""" PICKED_UP_AT """Sort by the timestamp when the ticket was completed.""" COMPLETED_AT """Sort by the timestamp when the ticket was created.""" CREATED_AT """Sort by the timestamp when the ticket was last modified.""" LAST_MODIFIED_AT """Sort by the identifier of the admin user the ticket is assigned to.""" ASSIGNED_TO_ADMIN_USER_ID """Sort by the identifier of the admin user who created the ticket.""" CREATED_BY_ADMIN_USER_ID """Sort by the identifier of the admin user who last modified the ticket.""" LAST_MODIFIED_BY_ADMIN_USER_ID } input TicketSortInput { """ Field to sort tickets by. Must be one of: id, type, status, orderId, productId, clusterId, contactId, customerId, companyId, email, phone, externalUrl, pickedUpAt, completedAt, createdAt, lastModifiedAt, assignedToAdminUserId, createdByAdminUserId, lastModifiedByAdminUserId """ field: TicketSortField! """ Sort direction for the specified field. Must be either ASC (ascending) or DESC (descending) """ order: SortOrder! = ASC } """Status of the ticket. Used for tracking the lifecycle of the ticket.""" enum TicketStatus { """The ticket is open and waiting for action.""" OPEN """The ticket is being worked on.""" IN_PROGRESS """The ticket has been resolved and completed.""" COMPLETED """The ticket has been archived and is no longer active.""" ARCHIVED } """ Update data for modifying existing ticket information. Supports partial updates where only provided fields are modified, preserving existing values for omitted fields. """ input TicketUpdateInput { """ Localized human-readable titles. Provides user-friendly titles in multiple languages for display in user interfaces and documentation. Each entry contains a language code and the corresponding description text. """ titles: [LocalizedStringInput!] """ Localized human-readable descriptions. Provides user-friendly explanations in multiple languages for display in user interfaces and documentation. Each entry contains a language code and the corresponding description text. """ descriptions: [LocalizedStringInput!] """ Localized human-readable labels for the action button. Each entry contains a language code and the corresponding description text. """ buttonLabels: [LocalizedStringInput!] """ Type of the ticket. Used for categorization and filtering purposes. Maximum length of 255 characters. Must be in SCREAMING_SNAKE_CASE. """ type: String """ Status of the ticket. Used for tracking the lifecycle of the ticket. One of: [OPEN, IN_PROGRESS, COMPLETED, ARCHIVED """ status: TicketStatus = OPEN """ Identifier of the admin user assigned to this ticket. Used for task assignment and accountability. """ assignedToAdminUserId: Int """ Identifier of the contact associated with this ticket. Used for customer context and communication. """ contactId: Int """ Identifier of the customer associated with this ticket. Used for customer context and communication. """ customerId: Int """ Identifier of the product associated with this ticket. Used for product-specific context and support. """ productId: Int """ Identifier of the cluster associated with this ticket. Used for cluster-specific context and support. """ clusterId: Int """ Identifier of the order associated with this ticket. Used for order-specific context and support. """ orderId: Int """ Identifier of the company associated with this ticket. Used for company-specific context and support. """ companyId: Int """ Email address of the contact associated with this ticket. Used for customer communication. """ email: String """ Phone number of the contact associated with this ticket. Used for customer communication. """ phone: String """ External URL associated with this ticket. Used for linking to external resources or documentation. Maximum length of 2048 characters. """ externalUrl: String """ External sources of the ticket. Used for tracking the origin of the ticket. """ sources: [SourceInput!] } """ Package tracking and shipment monitoring record. Represents a tracking entry for shipments handled by carriers, providing linkage between tracking information and carrier services for comprehensive shipment visibility. """ type TrackAndTrace { """ Identifier of the shipping carrier handling the package. References the logistics company responsible for package transportation and delivery. """ carrierId: Int """ Retrieve the shipping carrier associated with this tracking record. Returns the carrier information including service details, coverage areas, and integration settings used for this shipment. Used to display carrier-specific tracking information and branding. """ carrier: Carrier """ Unique UUID identifier for the tracking record. Used to reference and update specific tracking events throughout the shipment's journey from pickup to delivery. """ id: String! """ Timestamp when the tracking record was initially created in the system. Indicates when the tracking event was first recorded, used for chronological tracking history. """ createdAt: DateTime! """ Timestamp of the most recent update to the tracking record. Reflects when tracking information such as status, location, or description was last modified. """ lastModifiedAt: DateTime! """ Carrier-provided tracking number or reference code. Unique identifier assigned by the shipping carrier to track the package through their delivery network. """ code: String! """ Reference to the parent shipment being tracked. Links the tracking information to the specific shipment for comprehensive delivery monitoring. """ shipmentId: String! } input TrackAndTraceCreateInput { """ Identifier of the shipping carrier handling the package. References the logistics company responsible for package transportation and delivery. """ carrierId: Int """ Carrier-provided tracking number for new tracking records. Unique tracking identifier assigned by the shipping carrier when creating new tracking information. """ code: String! """ Unique UUID identifier for the shipment. This identifier is used to track and reference the shipment throughout its lifecycle from creation to delivery. """ shipmentId: String! } """ Paginated response containing tracking and trace search results with metadata for efficient data retrieval and navigation """ type TrackAndTraceResponse { """List of items of type TrackAndTrace""" items: [TrackAndTrace!]! """Total number of items found""" itemsFound: Int! """The amount of items to show per page""" offset: Int! """The current page""" page: Int! """Total amount of pages""" pages: Int! """Start position of the current page""" start: Int! """End position of the current page""" end: Int! } input TrackAndTraceSearchInput { """Pagination page number""" page: Int! = 1 """Pagination offset number""" offset: Int! = 12 """Search by date created""" createdAt: DateSearchInput """Search by date changed""" lastModifiedAt: DateSearchInput """Inputs to sort by""" sortInputs: [TrackAndTraceSortInput!] """ Filter by specific shipment identifiers. Returns only shipments matching the provided UUID list. Useful for retrieving specific shipments by their unique identifiers. """ ids: [String!] """ Filter by shipment identifiers for item searches. When searching shipment items, restricts results to items within the specified shipments. """ shipmentIds: [String!] """ Filter by carrier tracking numbers or codes. Returns tracking records matching the specified tracking codes. Useful for customer tracking inquiries. """ codes: [String!] """ Filter by shipping carrier identifiers. Returns tracking records for packages handled by the specified carriers. Useful for carrier-specific tracking analysis. """ carrierIds: [Int!] } """ Available fields for sorting tracking and trace results in search operations """ enum TrackAndTraceSortField { """Sort by tracking record unique identifier""" ID """Sort by the date when tracking information was last updated""" LAST_MODIFIED_AT """Sort by the date when tracking record was initially created""" CREATED_AT """Sort by the associated shipment identifier""" SHIPMENT_ID """Sort by the carrier responsible for the shipment""" CARRIER_ID """Sort by the carrier-provided tracking number or code""" CODE } input TrackAndTraceSortInput { """Field to sort by""" field: TrackAndTraceSortField! """Option to sort by""" order: SortOrder! = ASC } input TrackAndTraceUpdateInput { """ Identifier of the shipping carrier handling the package. References the logistics company responsible for package transportation and delivery. """ carrierId: Int """ Carrier-provided tracking number for new tracking records. Unique tracking identifier assigned by the shipping carrier when creating new tracking information. """ code: String """ Unique UUID identifier for the shipment. This identifier is used to track and reference the shipment throughout its lifecycle from creation to delivery. """ shipmentId: String } """ Transaction record representing individual payment processing operations. Tracks specific payment operations such as authorizations, captures, refunds, and chargebacks. Each transaction is linked to a parent payment and contains detailed processing information including amounts, timestamps, and status updates. """ type Transaction { """Unique system identifier for the transaction record""" id: ID! """ External transaction identifier provided by the payment service provider for tracking and reconciliation. Unique transaction reference provided by the Payment Service Provider (PSP) for tracking and reconciliation. Used for transaction status updates and matching with external systems. Maximum length of 255 characters. """ transactionId: String! """ External payment identifier provided by the payment service provider for correlation. External payment identifier provided by the Payment Service Provider for correlation with parent payment. Used to link transactions to their originating payments in external systems. Maximum length of 255 characters. """ paymentId: String """ Order identifier associated with this transaction. References the specific order that this transaction is processing. Used for order-transaction relationship tracking and fulfillment processing. Must be a positive integer. """ orderId: Int! """ Transaction amount in smallest currency unit (cents). The transaction amount expressed in the smallest denomination of the currency (e.g., cents for USD, pence for GBP). Used for precise financial calculations. Must be a positive integer. """ amount: Int! """ Transaction currency code in ISO 4217 format for international financial transactions. Three-letter currency code (e.g., USD, EUR, GBP) following ISO 4217 standard. Used for currency conversion and financial reporting. Must be exactly 3 uppercase letters. """ currency: String! """Human-readable description of the transaction purpose or details""" description: String """ Timestamp when the transaction was processed by the payment service provider """ timestamp: DateTime """Type of transaction operation performed""" type: TransactionTypes! """Name of the payment service provider that processed the transaction""" provider: String """Current processing status of the transaction""" status: TransactionStatuses! } """ Transaction processing status indicating the outcome of payment operations and workflow progression """ enum TransactionStatuses { """ Transaction created but not yet submitted to payment service provider - awaiting processing """ OPEN """ Transaction submitted to payment service provider and awaiting response - processing in progress """ PENDING """ Transaction processing failed due to technical or business reasons - operation was not completed """ FAILED """ Transaction completed successfully with desired outcome achieved - operation was successful """ SUCCESS } """ Transaction operation types representing different payment processing operations with specific business logic """ enum TransactionTypes { """ Reserve funds on customer's payment method without capturing - funds are held but not transferred """ AUTHORIZATION """ Cancel a previously created authorization - releases reserved funds back to customer """ CANCEL_AUTHORIZATION """ Capture funds from an authorization or process direct payment - transfers money from customer to merchant """ PAY """ Return funds to customer for a completed payment - reverses a previous payment transaction """ REFUND """ Forced reversal of payment initiated by customer's bank - dispute resolution mechanism """ CHARGEBACK } input TransformationInput { """ Enable optimization features automatically. Enables optimizations based on content negotiation. The only negotiated optimizations currently available are for AVIF and WebP, both image compression formats with limited browser support. This functionality is also possible using format=auto which adds additional support for JPEGXL output. Notes - Although the AVIF and WebP formats produce images at a higher compression ratio with a lower loss of quality compared to JPEG, they are not supported in all browsers. - When using Firefox version 66 to 71, automatic content negotiation will not occur when navigating to the image. To view WebP or AVIF images generated via auto=avif or auto=webp you must insert your image onto a web page. - format=auto will take precedence if combined with auto. """ auto: Auto """ Set the background color of an image. The bg-color parameter sets the background color of an image to use when applying padding or when replacing transparent pixels. Its value may be one of: - Hex RGB value: Both 3- and 6-digit values are acceptable (e.g. a22 or cf23a5). - Decimal RGB: RGB values between 0 and 255. Comma-delimited (e.g. 255,0,0). - Decimal RGB with alpha|RGBA colors include an additional value for alpha (transparency), which ranges from 0 for fully transparent to 1 for fully opaque. Examples - "c5c5c5" => Set background color to grey (Hex RGB) - "000" => Set background color to black (Hex RGB) - "255,0,0" => Set background color to red (Decimal RGB) - "255,0,0,0.5" => Set background color to red with 50% transparency (Decimal RGBA) """ bgColor: String """ Set the blurriness of the output image. Applies a Gaussian blur filter to the image. Its value is a number of pixels between 0.5 and 1000 or a percentage (of the dimensions of the image) suffixed with p (e.g., 1p for 1%). Examples - "50" => Apply a Gaussian blur with a radius of 50px - "0.5p" => Apply a Gaussian blur with a radius of 0.5% of the image size """ blur: Float """ Set the brightness of the output image. The brightness parameter increases or decreases the amount of perceived light an image radiates or reflects. Its value may be any number between -100 and 100. Examples - 50 => Increase the brightness by 50 - -42 => Decrease the brightness by 42 """ brightness: Int """Increase the size of the canvas around an image.""" canvas: CanvasInput """ Set the contrast of the output image. The contrast parameter increases or decreases the difference between the darkest and lightest tones in an image. Notes - The default value is 0. This leaves the image unchanged. - A value of -100 will result in a fully grey image. Examples - 50 => Increase the contrast by 50 """ contrast: Int """Remove pixels from an image.""" crop: CropInput """ Disable functionality that is enabled by default. upscale is already disabled by default. It can be enabled with the enable parameter. Notes - Image upscaling is discouraged because it increases both the file size and delivery time of the image to the end user with no visual improvement. We recommend handling upscaling on the client-side (e.g., using a web browser or native application). - The upscale value must be used with the width, height, or dpr parameters to see any effect in the output image. Examples - "width=2560&disable=upscale" => Attempt to resize the image to 2560px wide but do not exceed the natural width of the source image """ disable: FeaturesEnableDisable """ Serve correctly sized images for devices that expose a device pixel ratio. Device pixel ratio. The dpr parameter provides a means to multiply image dimensions in order to translate logical pixels (also 'CSS pixels') into physical pixels. The device pixel ratio is therefore the ratio between physical pixels and logical pixels. It is usually possible for client-side software to query the host system to determine the DPR of the display the user is viewing. In web browsers, this is available as the Window.devicePixelRatio variable in JavaScript. The iPhone 5 reports a device pixel ratio of 2, because the physical linear resolution is double the logical resolution. - Physical Resolution: 960 x 640 - Logical Resolution: 480 x 320 Other devices report varying device pixel ratios, including non-integer ones. For example, the Nokia Lumia 1020 reports 1.6667, whereas the Samsung Galaxy S4 reports 3. Its value may be any number between 1 and 10. Examples - width=200&dpr=2 => Resize the width to 400px (200 CSS pixels for screens with a device pixel ratio of 2) """ dpr: Int """ Enable functionality that is disabled by default. Supported values: - upscale => Allow images to be resized such that the output image's dimensions are larger than the source image. Notes - Image upscaling is discouraged because it increases both the file size and delivery time of the image to the end user with no visual improvement. We recommend handling upscaling on the client-side (e.g., using a web browser or native application). - The upscale value must be used with the width, height, or dpr parameters to see any effect in the output image. Examples: - ?width=2560&enable=upscale => Resize the image to 2560px wide, even if the source image is smaller """ enable: FeaturesEnableDisable """ Set how the image will fit within the size bounds provided. The fit parameter controls how the image will be constrained within the provided size (width and height) values, in order to maintain the correct proportions. Allowed values: - bounds => Resize the image to fit entirely within the specified region, making one dimension smaller if needed. - cover => Resize the image to entirely cover the specified region, making one dimension larger if needed. - crop => Resize and crop the image centrally to exactly fit the specified region. Notes The fit parameter has no effect unless both width and height are specified. Examples - width=150&height=150&fit=bounds => Resize the image to fit within the bounds of 150px in width by 150px in height - width=150&height=150&fit=cover => Resize the image to entirely cover 150px in width by 150px in height - width=150&height=150&fit=crop => Crop the image to 150px in width by 150px in height """ fit: Fit """ Specify the output format to convert the image to. The format parameter enables the source image to be converted (a.k.a., "transcoded") from one encoded format to another. This is useful when the source image has been saved in a sub-optimal file format that hinders performance. Notes - The source image can be any of the following image formats: AVIF, JPEG, JPEGXL, PNG, GIF, WEBP. - JPEG, progressive JPEG, WebP (Lossy), and PNG8 have a sliding quality scale that supports the quality parameter. - GIF and PNG do not have a sliding quality scale. They do not support the quality parameter. - A progressive JPEG pjpg is an image created using the JPEG suite of compression algorithms that will "fade in" successive waves of lines until the entire image has completely arrived. For this reason, progressive JPEG images typically appear to load quicker than the Baseline JPEG jpg format. - WebP support is available in Google Chrome, Mozilla Firefox 65 and later, Safari 14 and later, Opera, and Android Browser. - Lossless compression is currently supported for WebP and JPEGXL only. - GIF to WebP conversion does not support animated GIFs. - MP4 conversion is only available for animated GIF source images. - AVIF and JPEGXL are premium features About the auto value The auto behavior aims to provide the optimal output format based on client capabilities as well as information related to the source image and transform characteristics. In that regard, we may adopt different heuristics to determine the output format for different source images or transforms. When using format=auto, the image format delivered is always compatible with the current browser regardless of the source image format. This means a JPEGXL source image can safely be used in a browser where JPEGXL is not supported, and the resulting image is always viewable. With other format parameters and with auto=webp and auto=avif, there are some cases where the original format may be used. - auto intelligently chooses the best format to deliver to the user prioritizing: - JPEGXL - AVIF - WebP - Source image format / JPEG - Images default to lossy unless the quality parameter is set to 100. - If no quality parameter is set, the default JPEG quality specified in IO default settings is used. - Allows the use of JPEGXL, AVIF, or WebP as the source image format in cases where that image format is not support in the viewing environment. - Quality mapping uses an SSIM similarity score between formats. - Takes precedence if combined with the auto parameter. """ format: Format """Extract the first frame from an animated image sequence.""" frame: Int """ Resize the height of the image. The desired height of the output image. The height parameter enables dynamic height resizing based on pixels and percent values. The {value} can be either a positive integer or a positive number less than 1. If the value is an integer greater than or equal to 1, the value is interpreted as a pixel height. If the height parameter is less than 1, the value is interpreted as a percentage height. Unless a width parameter is present, the height value will cause the width of the image to be scaled in proportion to the requested height. If both width and height are omitted, the input image dimensions are used. value may be one of: - Absolute height: An integer number of pixels. - Relative height: A fraction between 0 and 0.99 (e.g., 0.5) or a percentage between 0 and 100 followed by the letter p (e.g., 50p). In either case, the value indicates the desired height relative to the image's natural height. Notes - The maximum output dimensions are 8,192 x 8,192 pixels. - Because we use a positive number between 0 and 0.99 to return a percentage-based scaled image, in order to return an image that is 100% or more, a p suffix can be appended to the value. For example, height=250p would return an image that is 250% the height of the original. We use p as a simple way to represent percentages. - If the requested height is not a whole number of pixels (e.g., as a result of applying a percentage value for height), it is rounded to the nearest integer. Examples - height=200 => Resize the height to 200px - height=0.10 => Resize the height to 10% of the input image - height=150p => Resize the height to 150% of the input image - height=200&width=0.50 => Force resize to a height of 200px and a width that is 50% of the original - height=200&dpr=2 => Resize the height to 400px (200 CSS pixels for screens with a device pixel ratio of 2) - height=150&width=150&fit=bounds => Fit image within a 150 x 150px rectangle """ height: Float """ Specify the level constraints when converting to video. When converting animated GIFs to the MP4 format and when used in conjunction with the profile parameter, the level parameter specifies a set of constraints indicating a degree of required decoder performance for a profile. Notes If either level or profile parameters are missing, profile=baseline&level=3.0 will be used as the default. Examples - format=mp4&profile=main&level=5.2 => Convert the source animated GIF to MP4 format and select the main profile with a level of 5.2 """ level: Level """ Include or exclude metadata from the output image. By default, the image optimizer will remove all metadata embedded in an image. The metadata parameter allows this behavior to be configured. Notes This parameter is only effective when the source and destination format are both jpeg. """ metadata: ImageMetadata """ Automatically apply optimal quality compression. The optimize parameter automatically applies optimal quality compression to produce an output image with as much visual fidelity as possible, while minimizing the file size. Notes - Optimize is currently supported by the following output formats: JPEG, WebP, AVIF. - If the quality parameter is also provided, quality overrides optimize because it is more precise. - Because optimize attempts to produce an output image with as much visual quality as possible while minimizing the file size, the operations applied are subject to change. Examples - optimize=medium => Output an image with medium optimization - optimize=high&auto=webp => Output a highly optimized JPEG. For browsers that support WebP output a highly optimized WebP image. """ optimize: Optimize """ Change how the image will be orientated. The orient parameter controls the cardinal orientation of the image. Notes - By default, if the source image contains orientation information stored within its metadata, that orientation will be applied to the image data and the orientation override removed from metadata. - The numerical values are the same as EXIF rotation numbers. Examples - orient=r => Orient the image right - orient=2 => Flip vertically - orient=3 => Flip vertically and horizontally """ orient: Orient """ Add pixels to the edge of an image. Notes - By default padding applies a background color of white. See bg-color to change that. - If the source image contains a transparent background and the output image also contains transparency, the padding will be made up of transparent pixels. - When using pad and canvas at the same time, pad will be ignored. - Values can be specified using CSS style shorthand values. (see CSS Margin or CSS Padding for more examples). - CSS shorthand allows for all edges to be specified in one property. - Any fractional pixel measurements will be rounded to the nearest whole pixel. Examples - pad=25,50,75,100 => Pad top edge 25px, right edge 50px, bottom edge 75px and left edge 100px - pad=25,50,75 => Pad top edge 25px, right and left edge 50px, bottom edge 75px - pad=25,50 => Pad top and bottom edge 25px, right and left edge 50px - pad=0.25 => Pad all edges by 25% """ pad: PadInput """ Remove pixels from an image before any other transformations occur. Identical to crop except that precrop is performed before any other transformations. """ precrop: CropInput """ Specify the profile class of application when converting to video. When converting animated GIFs to MP4 format and when used in conjunction with the level parameter, the profile parameter controls which features the video encoder can use based on a target class of application for decoding the specific video bitstream. Notes If either profile or level parameters are missing, profile=baseline&level=3.0 will be used as the default. Examples - format=mp4&profile=high&level=5.0 => Convert the source animated GIF to MP4 format and select the high profile with a level of 5.0 """ profile: String """ Optimize the image to the given compression level for lossy file formatted images. Output image quality for lossy file formats. The quality parameter enables control over the compression level for lossy file-formatted images. Its value may be any integer between 1 and 100, where 1 is a lower quality image and a smaller file and 100 is the highest quality image and larger file. If desired, a second quality level can be specified for use when auto=webp is enabled and a WebP output format has been selected. Notes - The quality parameter can be applied to the following output formats: avif, jpg, pjpg, png8, webp and webply. - If no quality parameter is present for jpg, pjpg, or webp, the output image will be returned at the default value set in the Image Optimizer web interface. - If auto=webp is enabled by the URL or the service settings, the second value will be used as the quality value if the requestor sends the accept: image/webp request header. - When only specifying quality, if the output image file size is larger than the input image, the original image will be delivered. - This does not include a way of specifying auto AVIF quality. Examples - quality=85 => Output an image with quality set to 85. - format=pjpg&auto=webp&quality=85,75 => Convert the image format to a progressive jpg with image quality set to 85. For browsers that support WebP set the image quality to 75. """ quality: Float """ Specify the resize filter used when resizing images. The resizeFilter parameter enables control over the resizing filter used to generate a new image with a higher or lower number of pixels. Notes - When making an image smaller, use bicubic, which has a natural sharpening effect. - When making an image larger, use bilinear, which has a natural smoothing effect. - When resizing pixel art, use nearest, which has a natural pixelation effect. - When quality is the main concern, use lanczos, which typically renders the best results. Examples - resize-filter=bilinear Deliver an image that has been resized using the bilinear filter. """ resizeFilter: ResizeFilter """ Set the saturation of the output image. Saturation of the output image. The saturation parameter increases or decreases the intensity of the colors in an image. Its value may be any number between -100 and 100. Notes - The default value is 0. This leaves the image unchanged. - Valid values range from -100 to 100 - A value of -100 will generate a grayscale image. Examples - saturation=25 => Increase saturation by 25 - saturation=-100 => Decrease saturation by 100 (rendering the image grayscale) """ saturation: Int """ Set the sharpness of the output image. Sharpness of the output image. The sharpen parameter increases the definition of the edges of objects in an image. Notes The sharpen parameter is an implementation of an unsharp mask. Examples - sharpen=a5,r2,t1 => Increase the sharpness of the image by amount:5, radius:2, and threshold:1 """ sharpen: SharpenInput """ Remove pixels from the edge of an image. The trim parameter removes pixels from the edge of an image by pixel or percentage value. This can be useful for removing whitespace and borders that appear on a source image. Notes - Values can be specified using CSS style shorthand values. (See CSS Margin or CSS Padding for more examples). - CSS shorthand allows for all edges to be specified in one property. - Any fractional pixel measurements will be rounded to the nearest whole pixel. Examples - trim=25,50,75,100 => Trim top edge 25px, right edge 50px, bottom edge 75px and left edge 100px - trim=25,50,75 => Trim top edge 25px, right and left edge 50px, bottom edge 75px - trim=25,50 => Trim top and bottom edge 25px, right and left edge 50px - trim=0.25 => Trim all edges by 25% """ trim: TrimInput """ Resize the width of the image. The desired width of the output image. The width parameter enables dynamic width resizing based on pixels and percent values. The {value} can be either a positive integer or a number less than 1. If the value is an integer greater than or equal to 1, the value is interpreted as a pixel width. If the width parameter is less than 1, the value is interpreted as a percentage width. Unless a height parameter is present, the width value will cause the height of the image to be scaled in proportion to the requested width. If both width and height are omitted, the input image dimensions are used. value may be one of: - Absolute width: An integer between 1 and 8192. - Relative width: A fraction between 0 and 0.99 (e.g. ,0.5) or a percentage between 0 and 100 followed by the letter p (e.g., 50p). In either case the value indicates the desired width relative to the image's natural width. Notes - The maximum output dimensions are 8,192 x 8,192 pixels. - If the image is animated, the maximum output dimensions apply to the sum of the area of all the frames of the image. For example, a 1024x1024px GIF could have 64 frames before it would exceed the size limit. - Because we use a positive number less than 1 to return a percentage-based scaled image, in order to return an image that is 100% or more, a p suffix can be appended to the value. For example, width=250p would return an image that is 250% the width of the original. We use p as a simple way to represent percent. - If the requested width is a fraction of a pixel (e.g., as a result of applying a percentage value for width), it is rounded to the nearest integer. Examples - width=200 => Resize the width to 200px - width=0.10 => Resize the width to 10% of the input image - width=150p => Resize the width to 150% of the input image - width=200&height=0.50 => Force resize to a width of 200px and a height that is 50% of the original. - width=150&height=150&fit=bounds => Fit image within a 150 x 150px rectangle - width=200&dpr=2 => Resize the width to 400px (200 CSS pixels for screens with a device pixel ratio of 2) """ width: Int } """ Container for multiple image transformation operations to be applied sequentially """ input TransformationsInput { """ List of image transformations to apply. Transformations are applied in the order specified. Each transformation can include resizing, format conversion, quality adjustments, and various image effects. The output of one transformation becomes the input for the next. """ transformations: [ImageTransformationInput!]! } input TriggerContactSendWelcomeEmailEventInput { """The ID of the contact you want to send the email to""" contactId: Int! channelId: Int """ Optionally provide a language, when omitted the contact preferred language will be used """ language: String } input TriggerCustomerSendWelcomeEmailEventInput { """ Unique internal identifier for the customer used for system operations and data relationships """ customerId: Int! channelId: Int """ Optionally provide a language, when omitted the customer's preferred language will be used """ language: String } """ Input for triggering custom events with dynamic payloads. Allows execution of event action configurations based on custom event codes with flexible payload data for business-specific automation workflows. """ input TriggerCustomEventInput { """ Custom event code to identify which configurations to execute. Must match the code field of existing EventActionConfigs with CUSTOM_EVENT trigger. Maximum length of 64 characters. """ code: String! """ The channel id for the custom event trigger. If not provided, the custom event will be sent to all channels. """ channelId: Int """ Dynamic payload data for the custom event. Can contain any JSON-serializable data structure that will be passed to the event action configurations for processing. The payload structure depends on the specific business requirements. """ payload: JSON! } input TriggerOrderSendConfirmEventInput { """The ID of the order you want to fire the event for""" orderId: Int! """ Optionally provide a language, when omitted the order language will be used """ language: String """ Optionally provide a channel id, when omitted the order channel id will be used """ channelId: Int } input TriggerQuoteSendEventInput { """The ID of the order you want to fire the event for""" orderId: Int! """ Optionally provide a language, when omitted the order language will be used """ language: String """ Optionally provide a channel id, when omitted the order channel id will be used """ channelId: Int } input TriggerQuoteSendRequestEventInput { """The ID of the order you want to fire the event for""" orderId: Int! """ Optionally provide a language, when omitted the order language will be used """ language: String """ Optionally provide a channel id, when omitted the order channel id will be used """ channelId: Int } input TriggerQuoteSendValidationEventInput { """The ID of the order you want to fire the event for""" orderId: Int! """ Optionally provide a language, when omitted the order language will be used """ language: String """ Optionally provide a channel id, when omitted the order channel id will be used """ channelId: Int } """ Remove pixels from the edge of an image. The trim parameter removes pixels from the edge of an image by pixel or percentage value. This can be useful for removing whitespace and borders that appear on a source image. Notes - Values can be specified using CSS style shorthand values. (See CSS Margin or CSS Padding for more examples). - CSS shorthand allows for all edges to be specified in one property. - Any fractional pixel measurements will be rounded to the nearest whole pixel. """ input TrimInput { """Top - Pixels or Percentage(decimal 0.0 - 1) - Default=0""" top: Int = 0 """Right - Pixels or Percentage(decimal 0.0 - 1) - Default=0""" right: Int = 0 """Bottom - Pixels or Percentage(decimal 0.0 - 1) - Default=0""" bottom: Int = 0 """Left - Pixels or Percentage(decimal 0.0 - 1) - Default=0""" left: Int = 0 } """ Fields to update on an existing category. Only the fields supplied in the input are modified; omitted fields are left untouched. Cannot be used to move a category across catalogue roots. """ input UpdateCategoryInput { """ Localized names shown to end users in catalog and navigation surfaces. The catalogue's default language must be present. Every entry must declare a distinct language. Cannot be combined with the single-language counterpart on the same input. """ names: [LocalizedStringInput!] """ Localized long-form descriptions shown on category landing surfaces. Every entry must declare a distinct language. Each localized value is capped at 300,000 characters. Cannot be combined with the single-language counterpart on the same input. """ descriptions: [LocalizedStringInput!] """ Localized short descriptions surfaced in listings and tiles. Every entry must declare a distinct language. Each localized value is capped at 300,000 characters. Cannot be combined with the single-language counterpart on the same input. """ shortDescriptions: [LocalizedStringInput!] """ URL-friendly identifiers, one per language, used in human-readable links. Every entry must declare a distinct language. Each value must be a lowercase URL-friendly slug. Cannot be combined with the single-language counterpart on the same input. """ slugs: [LocalizedStringInput!] """ Legacy numeric identifier of the parent category; superseded by the structured parent reference. Cannot be combined with `parentUuid` on the same input. """ parent: Int """ Globally unique identifier of the parent category. Omitted for root categories. Cannot be combined with the legacy `parent` field on the same input. """ parentUuid: ID """ Hides the category from public catalog and navigation surfaces when set. """ hidden: YesNo """ Localized titles surfaced in search engine result pages. Every entry must declare a distinct language. """ metadataTitles: [LocalizedStringInput!] """ Localized descriptive snippets surfaced in search engine result pages. Every entry must declare a distinct language. """ metadataDescriptions: [LocalizedStringInput!] """ Localized keyword lists used by search engines, supplied as comma-separated values. Every entry must declare a distinct language. """ metadataKeywords: [LocalizedStringInput!] """ Localized canonical URLs that search engines should treat as the authoritative location. Every entry must declare a distinct language. """ metadataCanonicalUrls: [LocalizedStringInput!] """ Generates missing slugs from the localized names when set; existing slugs are preserved. When enabled, slugs are regenerated from the localized names for any language whose slug is not explicitly supplied. """ autoGenerateSlugs: Boolean = true """ Pairs of external system names and the identifiers each system assigned to the record. Replaces the existing list of external sources entirely. """ sources: [SourceInput!] } type UpdateClusterConfigSettingResponse { id: Int displayType: ClusterConfigSettingDisplayType priority: Int } """ Partial company information for updating existing company records with validation """ input UpdateCompanyInput { """ Official company name for business identification, legal purposes, and customer communication """ name: String """ Company tax identification number for legal compliance, billing, and financial reporting """ taxNumber: String """ Chamber of Commerce registration number for business verification and legal compliance """ cocNumber: String """ External debtor system identifier for financial integration, billing, and payment processing """ debtorId: String """ Primary business email address for company communication and notifications """ email: String """ Primary business phone number for company communication and contact purposes """ phone: String """ Additional notes and comments about the company for internal reference and business operations """ notes: String """ Custom attributes and metadata for extended company information and categorization """ attributes: [AttributeBulkCreateInput!] """Physical addresses associated with the company for business operations""" addresses: [AddressBulkItemInput!] sources: [SourceUpsertInput!] } input UpdateContactInput { """Contact's first name for personal identification and communication""" firstName: String """Contact's middle name or initial for complete personal identification""" middleName: String """ Contact's last name for personal identification and formal communication """ lastName: String """Contact gender""" gender: Gender """Primary email address for business communication and notifications""" email: String """Contact homepage""" homepage: String """Primary phone number for business communication and contact purposes""" phone: String """Mobile phone number for urgent communication and SMS notifications""" mobile: String """Contact date of birth""" dateOfBirth: String """Whether the contact is subscribed to mailing list""" mailingList: YesNo """Contact primary language""" primaryLanguage: String """Deprecated in favor of company debtorId""" debtorId: String """Attributes for bulk operations""" attributes: [AttributeBulkCreateInput!] """ Company that this contact belongs to. Required for establishing organizational relationships """ parentId: Int sources: [SourceUpsertInput!] } """ Partial customer information for updating existing customer records with validation """ input UpdateCustomerInput { """ Customer's first name for personal identification and communication purposes. Maximum 30 characters, HTML tags are automatically removed for security. """ firstName: String """ Customer's middle name or initial for complete personal identification. Maximum 20 characters, HTML tags are automatically removed for security. """ middleName: String """ Customer's last name for personal identification and formal communication. Maximum 50 characters, HTML tags are automatically removed for security. """ lastName: String """ External debtor system identifier for financial integration, billing, and payment processing. """ debtorId: String """ Customer's gender for demographic data collection and personalized communication """ gender: Gender """ Primary email address for business communication, notifications, and account management. Must be a valid email format. """ email: String """Primary phone number for business communication and contact purposes.""" phone: String """Mobile phone number for urgent communication and SMS notifications.""" mobile: String """ Customer's date of birth for age verification, demographic analysis, and personalized services. Accepts various date formats. """ dateOfBirth: String """ Opt-in preference for marketing communications, promotional materials, and newsletter subscriptions. """ mailingList: YesNo """ Customer's preferred language for localized communication, documentation, and user interface. """ primaryLanguage: String sources: [SourceUpsertInput!] """ Custom attributes and metadata for extended customer information and categorization. """ attributes: [AttributeBulkCreateInput!] """ Physical addresses associated with the customer for business operations and delivery purposes. """ addresses: [AddressBulkItemInput!] } """ Input for updating an existing inventory record. All fields are optional to support partial updates. """ input UpdateInventoryInput { """ Current stock level available for this inventory record. The number of units physically available at this location, used for availability calculations and stock level monitoring. """ quantity: Int """ Additional information and handling instructions. Free-form text for storing special handling requirements, quality notes, or other relevant information about this inventory batch. Maximum 255 characters. """ notes: String """ Expected replenishment delivery date. Estimated date when the next shipment of this product will arrive, used for stock planning and customer availability communication. Must be in ISO8601 format. """ nextDeliveryDate: String """ Unit cost for this inventory batch. The cost incurred to acquire each unit in this inventory record, used for margin calculations, inventory valuation, and profitability analysis. """ costPrice: Float = 0 } input UpdateMediaAttachmentInput { """ Alternative text descriptions for accessibility and SEO purposes. Provides brief, descriptive text that explains the media content for screen readers and when the media cannot be displayed. Each entry supports different languages. """ alt: [MediaLocalizedStringInput!] """ Detailed descriptions of the media content. Provides comprehensive information about what the media shows or contains. Used for search indexing and user information. Each entry supports different languages. """ description: [MediaLocalizedStringInput!] """ Searchable tags for categorizing and filtering media content. Keywords that help organize and discover media items. Used for search functionality and content organization. Each entry supports different languages with multiple tag values. """ tags: [MediaLocalizedStringArrayInput!] """ Display order priority for the media item. Lower numeric values indicate higher priority and will be displayed first. Used for controlling the order of media items in galleries and listings. """ priority: Int = 1000 } input UpdateMediaDocumentInput { """Associates the media item with a specific product""" productId: ID """Associates the media item with a specific cluster""" clusterId: ID """Associates the media item with a specific product category""" categoryId: ID """Associates the media item with a specific spare parts machine""" sparePartsMachineId: ID """ Alternative text descriptions for accessibility and SEO purposes. Provides brief, descriptive text that explains the media content for screen readers and when the media cannot be displayed. Each entry supports different languages. """ alt: [MediaLocalizedStringInput!] """ Detailed descriptions of the media content. Provides comprehensive information about what the media shows or contains. Used for search indexing and user information. Each entry supports different languages. """ description: [MediaLocalizedStringInput!] """ Searchable tags for categorizing and filtering media content. Keywords that help organize and discover media items. Used for search functionality and content organization. Each entry supports different languages with multiple tag values. """ tags: [MediaLocalizedStringArrayInput!] """ Display order priority for the media item. Lower numeric values indicate higher priority and will be displayed first. Used for controlling the order of media items in galleries and listings. """ priority: Int = 1000 """MediaDocument unique identified""" mediaId: String! """Optional replacement document file(s). One or more language variants.""" uploadDocument: [UploadFileInput!] } """ Input for updating an existing image media item with modified metadata or replacement file """ input UpdateMediaImageInput { """Associates the media item with a specific product""" productId: ID """Associates the media item with a specific cluster""" clusterId: ID """Associates the media item with a specific product category""" categoryId: ID """Associates the media item with a specific spare parts machine""" sparePartsMachineId: ID """ Alternative text descriptions for accessibility and SEO purposes. Provides brief, descriptive text that explains the media content for screen readers and when the media cannot be displayed. Each entry supports different languages. """ alt: [MediaLocalizedStringInput!] """ Detailed descriptions of the media content. Provides comprehensive information about what the media shows or contains. Used for search indexing and user information. Each entry supports different languages. """ description: [MediaLocalizedStringInput!] """ Searchable tags for categorizing and filtering media content. Keywords that help organize and discover media items. Used for search functionality and content organization. Each entry supports different languages with multiple tag values. """ tags: [MediaLocalizedStringArrayInput!] """ Display order priority for the media item. Lower numeric values indicate higher priority and will be displayed first. Used for controlling the order of media items in galleries and listings. """ priority: Int = 1000 """ Unique identifier of the image to update. Must be a valid media ID representing an existing image in the system. All updates will be applied to this specific image. """ mediaId: String! """ Optional replacement image file(s). One or more language variants. When provided, replaces the existing image file(s) while preserving metadata and associations. """ uploadImage: [UploadFileInput!] } input UpdateMediaVideoInput { """Associates the media item with a specific product""" productId: ID """Associates the media item with a specific cluster""" clusterId: ID """Associates the media item with a specific product category""" categoryId: ID """Associates the media item with a specific spare parts machine""" sparePartsMachineId: ID """ Alternative text descriptions for accessibility and SEO purposes. Provides brief, descriptive text that explains the media content for screen readers and when the media cannot be displayed. Each entry supports different languages. """ alt: [MediaLocalizedStringInput!] """ Detailed descriptions of the media content. Provides comprehensive information about what the media shows or contains. Used for search indexing and user information. Each entry supports different languages. """ description: [MediaLocalizedStringInput!] """ Searchable tags for categorizing and filtering media content. Keywords that help organize and discover media items. Used for search functionality and content organization. Each entry supports different languages with multiple tag values. """ tags: [MediaLocalizedStringArrayInput!] """ Display order priority for the media item. Lower numeric values indicate higher priority and will be displayed first. Used for controlling the order of media items in galleries and listings. """ priority: Int = 1000 """MediaVideo unique identified""" mediaId: String! """Optional video(s). One or more language variants.""" video: [UploadVideoInput!] } """ Input data for updating an existing order status with partial field updates """ input UpdateOrderStatusInput { """ Human-readable name for the order status. Used for display purposes in user interfaces and reports. Should be descriptive and meaningful for business users. Maximum length is 64 characters. """ name: String """ Unique code identifier for the order status. Must be uppercase and contain only letters, numbers, hyphens, and underscores. Used for system integration and API references. Maximum length is 32 characters and must match pattern: ^[A-Z0-9_-]+$ """ code: String """ Detailed description of the order status purpose and usage. Provides additional context about when and how this status should be used in the order workflow. Maximum length is 255 characters. """ description: String """ Type of orders this status applies to. Determines which business processes can use this status: quotations for price quotes, orders for confirmed purchases, or requests for special inquiries. """ orderType: OrderStatusOrderType """ Priority value for workflow ordering and sequence. Lower numbers indicate higher priority. Used to determine the order of statuses in workflow displays and processing sequences. Must be a non-negative integer. """ priority: Int """ Indicates whether this status is the default for new orders. When true, this status will be automatically assigned to new orders when no specific status is provided during creation. Only one status per order type should be marked as default. """ isDefault: Boolean """ Controls visibility of orders with this status to external systems and users. """ isPublic: Boolean """ Determines whether orders with this status can be modified after creation. Orders with editable statuses allow updates to their properties, while non-editable statuses are locked to prevent accidental changes to critical workflow states. """ isEditable: Boolean """ Controls whether orders with this status can be permanently removed from the system. Orders with deletable statuses can be removed when no longer needed, while non-deletable statuses are protected from deletion to maintain workflow integrity. """ isDeletable: Boolean """ List of order status IDs that can follow this status in the workflow. Updates the possible workflow transitions from this status to other statuses. Each ID must represent a valid order status. Array must contain unique values. """ nextStatusesIds: [Int!] """ The order status set to associate this status with. Updates the status set assignment for workflow organization. The status set must exist and be accessible. """ addOrderStatusToSet: OrderStatusSetSearchByInput } input UpdateOrderStatusSetInput { """ Human-readable name for the order status set. Used for display purposes in user interfaces and workflow management. Should be descriptive and meaningful for business users organizing their order workflows. Maximum length is 64 characters. """ name: String """ Detailed description of the order status set purpose and usage. Provides additional context about the workflow this set represents and when it should be used for order management. Maximum length is 255 characters. """ description: String """ List of order status IDs to include in this set during creation. Allows immediate population of the status set with existing order statuses for complete workflow setup. Each ID must represent a valid order status in the system. """ orderStatusIds: [Int!] } """ Payment update data containing fields to be modified. Extends the payment creation input with all fields made optional for partial updates. The order ID cannot be changed after payment creation. Only provided fields will be updated, others remain unchanged. """ input UpdatePaymentInput { """ Authenticated user identifier for payment attribution and history tracking. Links the payment to a specific authenticated user for user-specific payment history and account management. Must be a positive integer when provided. """ userId: Int """ Anonymous user session identifier for guest checkout payments. References the guest user session for payments made without authentication. Used for guest checkout tracking and order management. Must be a positive integer when provided. """ anonymousId: Int """ External payment identifier provided by the payment service provider for tracking. Unique payment reference provided by the Payment Service Provider (PSP) for tracking and reconciliation. Used for payment status updates and transaction matching. Maximum length of 255 characters. """ paymentId: String """ Payment amount in smallest currency unit (cents) for precise financial calculations. The total amount to be paid expressed in the smallest denomination of the currency (e.g., cents for USD, pence for GBP). Must be a positive integer for precise financial calculations. """ amount: Int """ ISO 4217 three-letter currency code for international financial transactions. Three-letter currency code (e.g., USD, EUR, GBP) following ISO 4217 standard. Used for currency conversion and financial reporting. Must be exactly 3 uppercase letters. """ currency: String """ Payment method code used by the payment service provider for transaction processing. Specific payment method code used by the Payment Service Provider for processing this transaction (e.g., 'credit_card', 'paypal', 'bank_transfer'). Maximum length of 100 characters. """ method: String """ Initial payment processing status for the new payment record. Sets the starting status for the payment lifecycle. Determines the initial state and available actions for the payment processing workflow. """ status: PaymentStatuses """ Optional transaction to create alongside the payment for immediate processing. When provided, creates an associated transaction record with the payment for immediate processing and tracking. Enables atomic creation of payment and initial transaction in a single operation. """ addTransaction: CreateTransactionInput } """Input for updating an existing product (partial update)""" input UpdateProductInput { """Localized product names""" names: [LocalizedStringInput!] """Localized product descriptions""" descriptions: [LocalizedStringInput!] """Localized short descriptions""" shortDescriptions: [LocalizedStringInput!] """Localized keywords""" keywords: [LocalizedStringInput!] """Localized custom keywords""" customKeywords: [LocalizedStringInput!] """Localized package descriptions""" packageDescriptions: [LocalizedStringInput!] """Localized slugs""" slugs: [LocalizedStringInput!] """Internal product notes in different languages""" notes: [LocalizedStringInput!] """[SEO] Metadata title in different languages.""" metadataTitles: [LocalizedStringInput!] """[SEO] Metadata description in different languages.""" metadataDescriptions: [LocalizedStringInput!] """[SEO] Metadata keywords in different languages.""" metadataKeywords: [LocalizedStringInput!] """[SEO] Metadata canonical urls in different languages.""" metadataCanonicalUrls: [LocalizedStringInput!] """Unique SKU identifier""" sku: String """Primary category ID""" categoryId: Int """Localized short names for display purposes""" shortNames: [LocalizedStringInput!] """Product hidden status""" hidden: YesNo """Priority for sorting and display""" priority: Int """Manufacturer code""" manufacturerCode: String """EAN barcode""" eanCode: String """Supplier code""" supplierCode: String """Barcode identifier""" barCode: String """Product status""" status: ProductStatus """Manufacturer""" manufacturer: String """Supplier""" supplier: String """Whether the product is orderable""" orderable: YesNo """Minimum quantity for ordering""" minimumQuantity: Int """Unit value""" unit: Int """Cluster ID if assigned to a cluster""" clusterId: Int """Additional status information""" statusExtra: String """Whether product is returnable""" returnable: YesNo """Whether product is physical (vs digital)""" physical: YesNo """Product width""" width: Float """Product height""" height: Float """Product depth""" depth: Float """Product weight""" weight: Float """Package type""" package: String """Package unit""" packageUnit: String """Package unit quantity""" packageUnitQuantity: String """Purchase unit configuration""" purchaseUnit: Int """Purchase minimum quantity""" purchaseMinimumQuantity: Int """Economic order quantity""" economicOrderQuantity: Int """Turnover group classification""" turnoverGroup: String """Taxonomy classification""" taxonomy: String """Price group classification""" priceGroup: String """Date from which product can be ordered""" orderableFrom: String """Date until which product can be ordered""" orderableTo: String """Product release date""" releaseDate: String """ Whether to auto-generate slugs from names. When true (default), slugs are always regenerated for languages with names unless explicitly provided. When false, slugs are only generated for languages without existing slugs in the database. """ autoGenerateSlugs: Boolean = true """ Source/SourceId combinations for external system lookup (replaces existing sources) """ sources: [SourceInput!] } """ Input data for updating an existing surcharge in the pricing system. Contains partial surcharge information for updates. Only provided fields will be modified, others remain unchanged. All validation constraints must be satisfied for successful updates. """ input UpdateSurchargeInput { """ Localized names for the surcharge in different languages. Must contain at least one language entry. Each entry requires a valid 2-character language code and corresponding name value. Used for display purposes across different locales. """ name: [LocalizedStringInput!] """ Detailed descriptions of the surcharge in different languages. Provides additional context about the surcharge purpose and application. Each entry requires a valid 2-character language code and corresponding description value. Used for detailed information display. """ description: [LocalizedStringInput!] """ Classification of surcharge calculation method. Determines how the surcharge value is applied to pricing calculations. Must be either flat fee for fixed amounts or percentage for proportional charges. """ type: SurchargeType """ Numeric value for surcharge calculation. For flat fees: amount in currency units. For percentages: percentage value (e.g., 15.5 for 15.5%). Must be a positive number. """ value: Float """Tax code""" taxCode: TaxCode """Tax code value""" taxCodeValue: Taxcode """ Geographic tax zone identifier for regional tax calculations. Must be exactly 2 characters representing the tax jurisdiction. Used to determine applicable tax rates and compliance requirements. """ taxZone: String """ Activation status of the surcharge. When true, the surcharge is active and will be applied to pricing calculations. When false, it is disabled and will not affect pricing. """ enabled: Boolean """ Start date and time for surcharge validity period. Surcharge will only be applied to orders after this timestamp. If not provided, surcharge is immediately active. Must be a valid ISO 8601 date string. """ validFrom: String """ End date and time for surcharge validity period. Surcharge will not be applied to orders after this timestamp. If not provided, surcharge remains active indefinitely. Must be a valid ISO 8601 date string. """ validTo: String """ [DEPRECATED] Shop identifier for surcharge application scope. If not provided, the default shop will be inferred from the channel context. Must be a positive integer representing a valid shop identifier. """ shopId: Int } input UpdateUserDto { """ First name of the administrative user. Used for personalization and identification in administrative interfaces. Maximum length of 30 characters. """ firstName: String """ Middle name or initial of the administrative user. Optional field for complete name representation in formal communications. Maximum length of 20 characters. """ middleName: String """ Last name (surname) of the administrative user. Used for formal identification and sorting in administrative listings. Maximum length of 50 characters. """ lastName: String """ Gender identity of the administrative user. Used for personalization and demographic reporting where applicable. Supports standard gender classifications with unknown as default for privacy. """ gender: Gender """ Preferred language for user interface and communications. Two-letter ISO 639-1 language code that determines the language for system notifications and interface elements. Maximum length of 2 characters. """ language: String = "NL" """ Contact phone number for the administrative user. Primary phone number for urgent communications and two-factor authentication. Should follow international format with country code. Maximum length of 30 characters. """ phone: String """ Job title or role description of the administrative user. Professional title that helps identify the user's responsibilities and authority level within the organization. Maximum length of 30 characters. """ job: String } """ Input for updating an existing warehouse address. Contains optional fields for modifying warehouse address properties. Only provided fields will be updated, others remain unchanged. The address ID is required to identify which address to update. """ input UpdateWarehouseAddressInput { """ First name of the primary contact person. Given name of the main contact person for this warehouse address, used for deliveries and communication. Maximum 30 characters. """ firstName: String """ Middle name of the primary contact person. Middle name or initial of the main contact person for this warehouse address. Maximum 20 characters. """ middleName: String """ Last name of the primary contact person. Family name of the main contact person for this warehouse address, used for deliveries and official communication. Maximum 50 characters. """ lastName: String """ Gender of the primary contact person. Gender designation for the main contact person, used for appropriate communication and addressing. """ gender: Gender """ Company name associated with the warehouse address. Business name or organization associated with this warehouse location, used for official correspondence and shipping documentation. Maximum 100 characters. """ company: String """ Street name and address line. Primary street address including street name and any additional address line information for the warehouse location. Maximum 150 characters. """ street: String """ Street number or building number. Numeric or alphanumeric identifier for the specific building or location on the street. Length must be between 1 and 10 characters. """ number: String """ Street number extension or unit identifier. Additional identifier such as apartment number, suite, or unit designation. Maximum 15 characters. """ numberExtension: String """ Postal code for the warehouse location. ZIP code, postal code, or equivalent regional identifier used for mail delivery and location identification. Maximum 10 characters. """ postalCode: String """ City name for the warehouse location. Name of the city where the warehouse is located, used for shipping, logistics planning, and location identification. Maximum 100 characters. """ city: String """ State or region code for the warehouse location. Two-letter state, province, or region code where the warehouse is located. Used for regional logistics and tax calculations. Maximum 2 characters. """ region: String """ Country code for the warehouse location. Two-letter ISO country code where the warehouse is located. Used for international shipping, customs, and regulatory compliance. Maximum 2 characters. """ country: String """ Primary phone number for the warehouse location. Fixed-line telephone number for warehouse contact and communication. Used for logistics coordination and customer inquiries. Length must be between 6 and 30 characters. """ phone: String """ Fax number for the warehouse location. Fax number for document transmission and official communications. Used for shipping documents and formal correspondence. Length must be between 6 and 30 characters. """ fax: String """ Mobile phone number for the warehouse location. Mobile telephone number for urgent communications and on-the-go contact. Used for logistics coordination and emergency situations. Length must be between 6 and 30 characters. """ mobile: String """ Email address for the warehouse location. Primary email contact for warehouse communications, shipping notifications, and operational correspondence. Must be a valid email format. """ email: String """ Internal reference code for the warehouse address. Custom identifier or reference code used for internal tracking and organization of warehouse addresses. Maximum 64 characters. """ code: String """ Special delivery instructions and notes. Additional information for delivery personnel including access instructions, special handling requirements, or location-specific details. Maximum 255 characters. """ notes: String """ Friendly display name for the warehouse address. Human-readable name used to identify this address in user interfaces and reports. Helps distinguish between multiple addresses for the same warehouse. Maximum 150 characters. """ name: String """ Company website URL associated with the warehouse. Official website or domain URL for the company operating at this warehouse location. Must be a valid URL format. Maximum 150 characters. """ url: String """ Intra-Community Purchase (ICP) tax designation. Determines whether tax should be applied when this address is used as a delivery destination for business-to-business orders across borders. Used for international tax compliance. """ icp: YesNo """ Unique identifier of the warehouse address to update. Primary key used to identify which specific address should be modified within the warehouse's address collection. """ id: Int! } """ Input for updating an existing warehouse. Contains optional fields for modifying warehouse properties. Only provided fields will be updated, others remain unchanged. Address updates must be performed separately through dedicated address mutation operations. """ input UpdateWarehouseInput { """ Unique name for the warehouse facility. Identifier used to distinguish this warehouse from others in the system. Cannot contain spaces and must be unique. Maximum 64 characters. """ name: String """ Detailed description of the warehouse facility. Comprehensive description providing context about the warehouse's purpose, capabilities, or special characteristics. Maximum 255 characters. """ description: String """ Internal notes and operational information. Free-form text for storing internal notes, special instructions, or operational details about the warehouse. Not visible to external users. Maximum 255 characters. """ notes: String """ Operational status of the warehouse. Indicates whether the warehouse is currently active and available for operations. Inactive warehouses are excluded from inventory allocation and order fulfillment. """ isActive: Boolean """ Store designation for customer-facing operations. Indicates whether this warehouse also functions as a retail store location, enabling customer visits, in-store pickup, and retail operations. """ isStore: Boolean """ Customer pickup location availability. Indicates whether customers can collect their orders from this warehouse location, enabling click-and-collect and pickup services. """ isPickupLocation: Boolean """ [DEPRECATED] Associated shop identifier for retail operations. References the shop configuration when this warehouse serves as a retail location, linking warehouse operations to specific shop settings and branding. """ shopId: Int """ Operating hours for each day of the week. Defines when the warehouse is operational for receiving, processing, and shipping orders. Must include exactly 7 entries (one for each day of the week from Sunday=0 to Saturday=6). Used for scheduling operations and customer communication about availability. """ businessHours: [BusinessHoursInput!] } """The `Upload` scalar type represents a file upload.""" scalar Upload """ Flexible file upload input supporting multiple upload methods and configurations """ input UploadFileInput { """ Language code for the uploaded file content. Specifies the language context for the file, used for localization and content organization. Must be a valid 2-character language code (e.g., 'EN', 'DE', 'FR'). """ language: String! = "EN" """ Method of file upload to use. Determines whether the file should be stored internally or referenced externally. Affects how the file is processed, stored, and accessed. """ uploadType: UploadType! """ HTTP cache control settings for the uploaded file. Controls how browsers and CDNs cache the file content. Optional configuration that defaults to optimal caching settings if not specified. """ cacheControl: CacheControlInput """ Base64 encoded file upload option. Use this method when uploading files as base64 encoded strings. Suitable for small files or when direct file upload is not available. Maximum size is approximately 10MB. Set to null (with uploadType: BASE64) to delete this language. """ base64File: MediaBase64FileInput """ Direct file upload from filesystem. Use this method for uploading files directly from the client's filesystem using GraphQL multipart request specification. Most efficient for larger files. Set to null (with uploadType: UPLOAD) to delete this language. """ file: StandardFileUploadInput """ Upload file from a publicly accessible URL. Use this method to upload files by providing a URL. The system will download the file from the specified location and store it locally. Set to null (with uploadType: DOWNLOAD_EXTERNAL) to delete this language. """ urlFile: UrlFileUploadInput } """Upload type""" enum UploadType { """Upload by providing base64 string representation of a file""" BASE64 """Upload by referencing a file""" FILE """Upload by providing public url to the file""" URL } """Video upload specification with language and location information""" input UploadVideoInput { """ Language code for the video content. Specifies the language context for the video, used for localization and content organization. Must be a valid 2-character language code (e.g., 'EN', 'DE', 'FR'). """ language: String! = "EN" """ URL or URI pointing to the video content. Can be a direct link to a video file, or a URL from supported video platforms like YouTube or Vimeo. The URL must be publicly accessible and return valid video content. Set to null to remove the video for this language. """ uri: String } """ Input for creating or updating a spare parts machine. Extends the creation input with additional options for update operations. Supports both creating new machines and modifying existing ones with enhanced default value handling. """ input UpsertSparePartsMachineInput { """ External system reference for the machine. Links this machine to its counterpart in external systems for data synchronization and cross-platform integration. """ externalReference: ExternalReferenceInput! """ Localized names for the machine. Collection of translated machine names in multiple languages. Each entry must have unique language codes within the array. """ name: [LocalizedStringInput!]! """ Detailed descriptions of the machine. Comprehensive information about the machine's purpose, specifications, and usage in multiple languages. Each entry must have unique language codes within the array. Defaults to empty array if not provided. """ description: [LocalizedStringInput!] = [] """ Child machines nested within this machine. Hierarchical collection of sub-machines that belong to this parent machine, enabling complex equipment structures and organizational relationships. Each entry must be unique within the array. Defaults to empty array if not provided. """ machines: [CreateSparePartsMachineInput!] = [] """ Spare parts associated with this machine. Collection of replacement components and parts that are compatible with or required for this machine's operation and maintenance. Each entry must be unique within the array. """ parts: [CreateSparePartInput!] """ URL-friendly identifiers for the machine. Human-readable URL segments used for SEO-friendly navigation and localized machine pages. Must be unique per language and globally unique within the system. Each entry must have unique language codes within the array. """ slug: [LocalizedStringInput!] } """Upload media content by providing a publicly accessible URL""" input UrlFileUploadInput { """ Publicly accessible URL to the media file. The URL must be accessible without authentication and return the actual file content. The service will download and store the file from this location. """ url: String! """ Filename to use when storing the downloaded file. Must include the file extension and be between 5-255 characters. This name will be used for storage and may affect how the file is processed. """ fileName: String! } type User implements IBaseUser { """The unique identifier of the user.""" userId: Int! """The debtor ID of the user.""" debtorId: String """The gender of the user.""" gender: Gender """The first name of the user.""" firstName: String! """The middle name of the user.""" middleName: String """The last name of the user.""" lastName: String! """The phone number of the user.""" phone: String """The mobile number of the user.""" mobile: String """The email of the user.""" email: String """ The login name (email) the account is linked to, generally the same as email address. When null a account has not been linked yet. """ login: String """The International Bank Account Number of the user""" iban: String """The Bank Account Number of the user""" bankAccount: String """The Bank Identification Code of the user""" bic: String """Notes about the user.""" notes: String """The primary language of the user""" primaryLanguage: String """ The expiration date of the contact. After this date expires contact will be disabled. """ expires: DateTime """External ID""" externalId: String """The date of birth of the contact.""" dateOfBirth: DateTime """Whether the user is subscribed to mailing list.""" mailingList: YesNo """Whether the user is currently logged in.""" isLoggedIn: Boolean """The creation date of this user.""" createdAt: DateTime """The last modified date of this user.""" lastModifiedAt: DateTime """The Tax number of the user.""" taxNumber: String """The CoC number of the user.""" cocNumber: String """ The propeller access root for this user. Users with a login root can log into the backoffice and have a supervisor role on the api's """ loginRoot: Int """The company of the user.""" company: String """Companies managed by the user.""" managedCompanies: [Company!] } input UserBulkPriceProductInput { """Tax zone""" taxZone: String = "NL" """Contact id to calculate the price for""" contactId: Int = 0 """Customer id to calculate the price for""" customerId: Int = 0 """Company id to calculate the price for""" companyId: Int = 0 } """ User authorization claims and permissions data. Contains comprehensive user identity, permissions, and access control information used for authorization decisions across the system. """ type UserClaims { """ Unique identifier for the user within the system. Primary user ID used to associate the user with their data and track their activities across all system operations. """ userId: Int! """ Directory identifier for the user's organizational context. Links the user to their organizational directory, determining their access to directory-specific resources and permissions. """ userDirectoryId: Int! """ Administrative user identifier for elevated permissions. When present, indicates the user has administrative privileges and links to their admin user profile. """ adminUserId: Int! """ Contact identifier when the user represents a contact entity. Links the user to a specific contact record, enabling contact-specific operations and data access. """ contactId: Int """ Customer identifier when the user represents a customer entity. Links the user to a specific customer record, enabling customer-specific operations and data access. """ customerId: Int """ Primary company identifier for the user's main organizational affiliation. Represents the user's default company context used when no specific company is provided in operations. """ companyId: Int """ Complete list of company identifiers the user has access to. Enables multi-company operations and determines which company data the user can access and modify. """ companyIds: [Int!] """ User's assigned roles for permission-based access control. Determines what operations the user can perform and what resources they can access within the system. """ roles: [String!]! """ Available discount codes and pricing rules for the user. Contains discount identifiers that can be applied to transactions and pricing calculations for this user. """ discounts: [String!]! """ Access control list defining specific resource permissions. Contains identifiers for resources and operations the user has explicit access to, providing fine-grained permission control. """ acllist: [Int!]! """ User classification type for permission and access control. Determines the user's category within the system which affects their available permissions and accessible resources. """ class: String! """ Root login identifier for hierarchical user relationships. Links to a parent or root user account, used for managing user hierarchies and delegated access permissions. """ loginRoot: Int """ Timestamp when the user claims were created. Indicates when these authorization claims were first established, used for auditing and claim lifecycle management. """ dateCreated: DateTime! } """ Paginated response containing administrative user data with metadata for navigation and result information. Includes total count, pagination details, and the actual user records. """ type UserResponse { """List of items of type User""" items: [AdminUser!]! """Total number of items found""" itemsFound: Int! """The amount of items to show per page""" offset: Int! """The current page""" page: Int! """Total amount of pages""" pages: Int! """Start position of the current page""" start: Int! """End position of the current page""" end: Int! } type UsersResponse { """List of items of type IBaseUser""" items: [IBaseUser!]! """Total number of items found""" itemsFound: Int! """The amount of items to show per page""" offset: Int! """The current page""" page: Int! """Total amount of pages""" pages: Int! """Start position of the current page""" start: Int! """End position of the current page""" end: Int! } type Valueset { """Valueset primary identifier""" id: Int! """ Unique identifier name for the value set used throughout the system for referencing and configuration purposes """ name: String! """ Classification indicating whether this value set is system-managed or user-customizable """ type: ValuesetType! """ Human-readable descriptions of the value set purpose and usage in multiple languages for internationalization support """ descriptions: [LocalizedString!]! """ Identifier of the user who last modified this value set for audit trail purposes """ lastModifiedBy: Int """ Timestamp indicating when this value set was last modified for tracking changes and audit purposes """ lastModifiedAt: DateTime! """ Identifier of the user who originally created this value set for audit trail purposes """ createdBy: Int """ Timestamp indicating when this value set was originally created for audit trail and historical tracking """ createdAt: DateTime! """ Retrieve items belonging to this value set with filtering and pagination. Returns all items associated with the value set including their values, localized descriptions, and additional metadata. Used for populating dropdown lists, validation options, and configuration interfaces. This field resolver automatically filters items to only those belonging to the current value set, providing a convenient way to access related data in GraphQL queries. Use this field to: • Populate dropdown lists with value set options • Display all available choices for configuration • Implement search and filtering within value set items • Access localized labels for internationalization Possible errors: - VALUESET_ITEM_LIST_ERROR: Failed to retrieve value set items due to system error """ valuesetItems( """ Search criteria and pagination parameters for filtering value set items. All search parameters are optional. When provided, they filter the items within this specific value set. Pagination controls help manage large item collections efficiently. The valuesetIds parameter is automatically set to the current value set, so it should not be provided in the input. """ input: ValuesetItemSearchInput ): ValuesetItemResponse! } input ValuesetCreateInput { """ Unique identifier name for the new value set that will be used throughout the system for referencing and configuration purposes. Must be unique across all value sets and follow naming conventions for system identifiers. """ name: String! """ Human-readable descriptions explaining the purpose and usage of this value set in multiple languages. Provides context for administrators and developers about what this value set represents and how it should be used throughout the system. """ descriptions: [LocalizedStringInput!] """ Classification determining the management scope and modification permissions for this value set. SYSTEM types are reserved for core system functionality and can only be created by automated processes. CUSTOM types can be created and modified by authorized users for business-specific needs. """ type: ValuesetType! = CUSTOM """ Initial set of items to populate this value set with. Each item must have a unique value within the value set and can include localized descriptions for internationalization. """ valuesetItems: [ValuesetCreateItemInput!] } input ValuesetCreateItemInput { """ The actual data value that this item will represent in the system. Must be unique within the parent value set and will be used as the key for selection and processing. Length must be between 1 and 512 characters. """ value: String! """ Human-readable labels for this value set item in multiple languages. These descriptions will be displayed to users in dropdown lists, selection interfaces, and other UI components. Providing multiple languages ensures proper internationalization support. """ descriptions: [LocalizedStringInput!] """ Additional metadata or supplementary information for this value set item. Can be used to store related data such as currency codes, country codes, or other contextual information that enhances the item's functionality. Maximum length is 512 characters. """ extra: String } type ValuesetItem { """ Unique system identifier for this value set item used for referencing and database operations """ id: Int! """ Reference to the parent value set that contains this item, establishing the hierarchical relationship """ valuesetId: Int! """ The actual data value that this item represents, used as the key for selection and processing throughout the system """ value: String! """ Human-readable labels for this value set item in multiple languages, displayed to users in dropdown lists and selection interfaces """ descriptions: [LocalizedString!]! """ Additional metadata or supplementary information associated with this value set item for extended functionality and context """ extra: String } input ValuesetItemCreateInput { """ The actual data value that this item will represent in the system. Must be unique within the parent value set and will be used as the key for selection and processing. Length must be between 1 and 512 characters. """ value: String! """ Human-readable labels for this value set item in multiple languages. These descriptions will be displayed to users in dropdown lists, selection interfaces, and other UI components. Providing multiple languages ensures proper internationalization support. """ descriptions: [LocalizedStringInput!] """ Additional metadata or supplementary information for this value set item. Can be used to store related data such as currency codes, country codes, or other contextual information that enhances the item's functionality. Maximum length is 512 characters. """ extra: String """ Identifier of the parent value set that will contain this new item. Must reference an existing value set that the user has permission to modify. """ valuesetId: Int! } type ValuesetItemResponse { """ Array of value set items matching the search criteria with complete data and localized descriptions """ items: [ValuesetItem!]! """ Total number of value set items found matching the search criteria across all pages """ itemsFound: Float! """ Number of items per page used for pagination to control result set size """ offset: Float! """ Current page number in the pagination sequence for navigating through results """ page: Float! """Total amount of pages""" pages: Int! """Start position of the current page""" start: Int! """End position of the current page""" end: Int! } """ Search criteria and pagination parameters for filtering value set items across multiple value sets """ input ValuesetItemSearchInput { """ Page number for pagination, starting from 1. Used to navigate through multiple pages of results when the total number of items exceeds the offset limit. Must be a positive integer (minimum: 1). """ page: Int = 1 """ Number of value set items to return per page. Controls the size of each page in the paginated response to manage data volume and performance. Must be between 1 and 100 items per page. """ offset: Int = 12 """ Filter by specific value set item identifiers. Provide an array of numeric IDs to retrieve only those specific items, useful for bulk operations or targeted queries. """ ids: [Int!] """ Filter items by their parent value set identifiers. Provide an array of value set IDs to retrieve items from specific value sets only, essential for dropdown population. """ valuesetIds: [Int!] """ Filter items by their actual data values. Provide an array of value strings to find items with matching values, helpful for searching specific options in dropdown lists. """ values: [String!] """ Filter items by their extra metadata values. Provide an array of extra value strings to find items with matching additional data like codes or categories. """ extras: [String!] """ Sorting criteria for organizing search results. Supports multiple sort fields with different orders to achieve complex result organization for dropdown displays. """ sortInputs: [ValuesetItemSortInput!] } """ Available fields for sorting value set item search results to organize dropdown options and configuration data """ enum ValuesetItemSortField { """ Sort by unique identifier in numerical order, useful for consistent ordering and database optimization """ ID """ Sort alphabetically by item value, ideal for user-friendly dropdown displays and selection interfaces """ VALUE """ Sort by additional metadata field, helpful for organizing items by supplementary information like codes or categories """ EXTRA } """ Sorting configuration for value set item search results, allowing organization by various fields and sort orders for optimal dropdown display """ input ValuesetItemSortInput { """ The field to sort value set items by. Choose from ID, VALUE, or EXTRA to organize results according to your specific display needs and user experience requirements. """ field: ValuesetItemSortField! """ Sort order direction. Use ASC for ascending order (A-Z, 1-9) or DESC for descending order (Z-A, 9-1) to match user interface expectations. """ order: ValuesetSortOrder = ASC } """ Partial update data for modifying existing value set item properties. All fields are optional - only provided fields will be updated while others remain unchanged. The parent value set association cannot be changed after creation for data integrity reasons. """ input ValuesetItemUpdateInput { """ The actual data value that this item will represent in the system. Must be unique within the parent value set and will be used as the key for selection and processing. Length must be between 1 and 512 characters. """ value: String """ Human-readable labels for this value set item in multiple languages. These descriptions will be displayed to users in dropdown lists, selection interfaces, and other UI components. Providing multiple languages ensures proper internationalization support. """ descriptions: [LocalizedStringInput!] """ Additional metadata or supplementary information for this value set item. Can be used to store related data such as currency codes, country codes, or other contextual information that enhances the item's functionality. Maximum length is 512 characters. """ extra: String } type ValuesetResponse { """ Array of value sets matching the search criteria with complete configuration and metadata information """ items: [Valueset!]! """ Total number of value sets found matching the search criteria across all pages """ itemsFound: Float! """ Number of items per page used for pagination to control result set size """ offset: Float! """ Current page number in the pagination sequence for navigating through results """ page: Float! """Total amount of pages""" pages: Int! """Start position of the current page""" start: Int! """End position of the current page""" end: Int! } input ValuesetSearchInput { """ Page number for pagination, starting from 1. Used to navigate through multiple pages of results when the total number of value sets exceeds the offset limit. Must be a positive integer (minimum: 1). """ page: Int = 1 """ Number of value sets to return per page. Controls the size of each page in the paginated response to manage data volume and performance. Must be between 1 and 100 items per page. """ offset: Int = 12 """ Filter value sets by their creation date range. Useful for finding recently created value sets or tracking configuration changes over time. """ createdAt: DateSearchInput """ Filter value sets by their last modification date range. Helpful for identifying recently updated configurations or tracking maintenance activities. """ lastModifiedAt: DateSearchInput """ Filter by specific value set identifiers. Provide an array of numeric IDs to retrieve only those specific value sets, useful for bulk operations or targeted queries. """ ids: [Int!] """ Filter by specific value set names. Provide an array of name strings to retrieve value sets with matching names, helpful for configuration management and system integration. """ names: [String!] """ Filter by value set type classification. SYSTEM types are managed automatically by the system, while CUSTOM types can be modified by authorized users. """ type: ValuesetType """ Sorting criteria for organizing search results. Supports multiple sort fields with different orders to achieve complex result organization. """ sortInputs: [ValuesetSortInput!] } """ Available fields for sorting value set search results to organize data according to specific criteria """ enum ValuesetSortField { """ Sort by unique identifier in numerical order, useful for consistent ordering and database optimization """ ID """ Sort alphabetically by value set name, ideal for user-friendly displays and configuration interfaces """ NAME """ Sort by last modification timestamp, helpful for tracking recent changes and update management """ LAST_MODIFIED_AT """ Sort by creation timestamp, useful for chronological organization and audit trails """ CREATED_AT } """ Sorting configuration for value set search results, allowing organization by various fields and sort orders """ input ValuesetSortInput { """ The field to sort value sets by. Choose from ID, NAME, CREATED_AT, or LAST_MODIFIED_AT to organize results according to your specific needs. """ field: ValuesetSortField! """ Sort order direction. Use ASC for ascending order (A-Z, 1-9, oldest first) or DESC for descending order (Z-A, 9-1, newest first). """ order: ValuesetSortOrder = ASC } """ Sort order direction for organizing search results in ascending or descending sequence """ enum ValuesetSortOrder { """ Ascending order - sorts from lowest to highest (A-Z, 1-9, oldest to newest) """ ASC """ Descending order - sorts from highest to lowest (Z-A, 9-1, newest to oldest) """ DESC } """ Classification of value sets based on their management and usage scope within the system """ enum ValuesetType { """ System-managed value sets that are automatically maintained and cannot be modified by users. Used for core system functionality and predefined configurations. """ SYSTEM """ User-defined value sets that can be created, modified, and deleted by authorized users. Used for business-specific configurations and custom dropdown options. """ CUSTOM } """ Partial update data for modifying existing value set properties. All fields are optional - only provided fields will be updated while others remain unchanged. The type field cannot be modified after creation for data integrity reasons. """ input ValuesetUpdateInput { """ Unique identifier name for the new value set that will be used throughout the system for referencing and configuration purposes. Must be unique across all value sets and follow naming conventions for system identifiers. """ name: String """ Human-readable descriptions explaining the purpose and usage of this value set in multiple languages. Provides context for administrators and developers about what this value set represents and how it should be used throughout the system. """ descriptions: [LocalizedStringInput!] } """ Decoded JWT token information after successful verification. Contains all the claims and metadata from a verified authentication token, providing user identity, permissions, and token validity information. """ type VerifyToken { """ Unique user identifier from the authentication system. Firebase UID that uniquely identifies the user account across all authentication operations. """ uid: String! """ User's display name from their profile. The name associated with the user account, used for display purposes in user interfaces. """ name: String! """ Custom claims and permissions embedded in the token. Contains user-specific authorization data, roles, and permissions that determine what operations the user can perform. """ claims: JSONObject """ Token issuer identifier. Identifies the authentication service that issued this token, used for token validation and trust verification. """ iss: String! """ Token audience identifier. Specifies the intended recipient or service for this token, ensuring tokens are used only by authorized applications. """ aud: String! """ Authentication timestamp in Unix epoch seconds. The time when the user was originally authenticated, used for session management and security policies. """ auth_time: Int! """ User identifier from the token subject. The user ID embedded in the token's subject claim, typically matching the uid field. """ user_id: String! """ Token subject identifier. Standard JWT subject claim that identifies the principal (user) that the token represents. """ sub: String! """ Token issuance timestamp in Unix epoch seconds. The time when this token was created and issued by the authentication service. """ iat: Int! """ Token expiration timestamp in Unix epoch seconds. The time when this token expires and will no longer be accepted for authentication. """ exp: Int! """ User's email address from the token. The email address associated with the authenticated user account. """ email: String! """ Email verification status. Indicates whether the user's email address has been verified through the email verification process. """ email_verified: Boolean! """ Firebase-specific token information and metadata. Contains additional Firebase authentication data and provider-specific information. """ firebase: Firebase } """ Parameters for token verification and validation. Contains the authentication token that needs to be verified for validity, expiration, and signature integrity. """ input VerifyTokenInput { """ JWT authentication token to verify. The token will be validated for signature integrity, expiration time, and issuer authenticity. Must be a properly formatted JWT token. """ token: String! } input VideoCsvInput { """CSV file""" file: Upload! """A list of MediaVideos CSV field mappings""" mappings: [VideoCsvMapping!] } input VideoCsvMapping { """The name of the column in the CSV file""" csvHeader: String! """The name of the field in Propeller eCommerce Platform""" fieldName: VideoFieldName! } """Fields available for video CSV mapping.""" enum VideoFieldName { """[Optional][String] This MediaVideo's unique identifier""" ID """[Required][String] Language of the MediaVideo [Default: EN]""" LANGUAGE """ [Required][String] The alt descriptions of this MediaVideo per language """ ALT_VALUE """[Required][String] The descriptions of this MediaVideo per language""" DESCRIPTION_VALUE """[Required][String[]] The tags of this MediaVideo per language""" TAGS_VALUES """[Required][String] MediaVideo url""" VIDEO_URI """ [Optional][Integer] MediaVideo display priority [Lower value has higher priority] - [Default: 1000] """ PRIORITY """[Optional][String] This MediaVideo's linked Product.""" PRODUCT_ID """[Optional][String] This MediaVideo's linked Cluster""" CLUSTER_ID """[Optional][Integer] This MediaVideo's linked Category""" CATEGORY_ID """[Optional][String] This MediaVideo's linked SpareParts Machine""" SPAREPARTS_MACHINE_ID } """ Warehouse facility for inventory storage and logistics operations. Represents a physical or virtual warehouse location used for storing inventory, processing orders, and managing logistics operations. Includes operational settings, business hours, and address information. """ type Warehouse { """ Unique identifier for the warehouse. Primary key used to reference this warehouse throughout the system and for all warehouse-related operations. """ id: ID! """ Warehouse name for identification and display. Human-readable name used to identify the warehouse in user interfaces, reports, and operational documents. Maximum 255 characters. """ name: String! """ Detailed description of the warehouse facility. Comprehensive description providing additional context about the warehouse's purpose, capabilities, or special characteristics. Maximum 255 characters. """ description: String! """ Internal notes and operational information. Free-form text for storing internal notes, special instructions, or operational details about the warehouse. Not visible to external users. Maximum 255 characters. """ notes: String! """ Operational status of the warehouse. Indicates whether the warehouse is currently active and available for operations. Inactive warehouses are excluded from inventory allocation and order fulfillment. """ isActive: Boolean! """ Store designation for customer-facing operations. Indicates whether this warehouse also functions as a retail store location, enabling customer visits, in-store pickup, and retail operations. """ isStore: Boolean! """ Customer pickup location availability. Indicates whether customers can collect their orders from this warehouse location, enabling click-and-collect and pickup services. """ isPickupLocation: Boolean! """ [DEPRECATED] Associated shop identifier for retail operations. References the shop configuration when this warehouse serves as a retail location, linking warehouse operations to specific shop settings and branding. """ shopId: Int @deprecated(reason: "Shop is deprecated and will be removed in a future version") """ Primary address identifier for the warehouse. References the main address record containing location details, contact information, and shipping address for this warehouse facility. """ addressId: Int """ Operating hours for each day of the week. Defines when the warehouse is operational for receiving, processing, and shipping orders. Used for scheduling operations and customer communication about availability. """ businessHours: [BusinessHours!]! """ Warehouse creation timestamp. Date and time when this warehouse was initially created in the system, used for auditing and operational history tracking. """ createdAt: DateTime! """ Last modification timestamp. Date and time when any warehouse information was last updated, used for change tracking and synchronization purposes. """ lastModifiedAt: DateTime! """ Complete address information for the warehouse. Detailed address record including street address, city, postal code, country, and contact information for the warehouse facility. """ address: WarehouseAddress } """ Address information for warehouse locations. Contains comprehensive address and contact details for warehouse facilities including physical location, contact information, and operational settings for shipping and logistics operations. """ type WarehouseAddress { """ Unique identifier for the warehouse address. Primary key used to reference this address record throughout the system and for address-related operations. """ id: Int! """ Address creation timestamp. Date and time when this address was initially created in the system, used for auditing and record tracking. """ createdAt: DateTime! """ Last modification timestamp. Date and time when any address information was last updated, used for change tracking and data synchronization. """ lastModifiedAt: DateTime! """ First name of the primary contact person. Given name of the main contact person for this warehouse address, used for deliveries and communication. Maximum 30 characters. """ firstName: String """ Middle name of the primary contact person. Middle name or initial of the main contact person for this warehouse address. Maximum 20 characters. """ middleName: String """ Last name of the primary contact person. Family name of the main contact person for this warehouse address, used for deliveries and official communication. Maximum 50 characters. """ lastName: String """ Gender of the primary contact person. Gender designation for the main contact person, used for appropriate communication and addressing. Defaults to unspecified. """ gender: Gender! """ Company name associated with the warehouse address. Business name or organization associated with this warehouse location, used for official correspondence and shipping documentation. Maximum 100 characters. """ company: String """ Street name and address line. Primary street address including street name and any additional address line information for the warehouse location. Maximum 150 characters. """ street: String! """ Street number or building number. Numeric or alphanumeric identifier for the specific building or location on the street. Maximum 10 characters. """ number: String """ Street number extension or unit identifier. Additional identifier such as apartment number, suite, or unit designation. Maximum 15 characters. """ numberExtension: String """ Postal code for the warehouse location. ZIP code, postal code, or equivalent regional identifier used for mail delivery and location identification. Maximum 10 characters. """ postalCode: String! """ City or municipality name. Name of the city, town, or municipality where the warehouse is located, used for addressing and regional identification. Maximum 100 characters. """ city: String! """ State, province, or regional identifier. Two-character code for the state, province, or regional subdivision where the warehouse is located. Maximum 2 characters. """ region: String """ Country code for the warehouse location. Two-character ISO country code identifying the country where the warehouse is located, used for international shipping and tax calculations. Maximum 2 characters. """ country: String! """Fixed phone number that applies to this address [min: 6, max: 30]""" phone: String """Mobile phone number that applies to this address [min: 6, max: 30]""" mobile: String """Email that applies to this address [valid email format needed]""" email: String """Fax number that applies to this address [min: 6, max: 30]""" fax: String """Address code""" code: String """Address delivery notes""" notes: String """ ICP address field defines whether tax should be applied to an order if the address is selected as a delivery address. Used when shipping b2b order abroad """ icp: YesNo! """Address company domain url""" url: String """Address friendly descriptive name""" name: String } enum WarehouseSortField { LAST_MODIFIED_AT CREATED_AT } input WarehouseSortInput { """Field to sort by""" field: WarehouseSortField! """Order option to sort by. [Default to `ASC`]""" order: SortOrder! = asc } type WarehousesResponse { """List of items of type Warehouse""" items: [Warehouse!]! """Total number of items found""" itemsFound: Int! """The amount of items to show per page""" offset: Int! """The current page""" page: Int! """Total amount of pages""" pages: Int! """Start position of the current page""" start: Int! """End position of the current page""" end: Int! } input WarehousesSearchInput { """ Filter warehouses by specific identifiers. List of warehouse IDs to retrieve. When provided, only warehouses with matching IDs will be returned. """ ids: [Int!] """ Filter by operational status. When true, returns only active warehouses available for operations. When false, returns only inactive warehouses. """ isActive: Boolean """ Filter by store designation. When true, returns only warehouses that also function as retail stores. When false, returns only non-retail warehouses. """ isStore: Boolean """ Filter by pickup location availability. When true, returns only warehouses where customers can collect orders. When false, returns only warehouses without pickup services. """ isPickupLocation: Boolean """ Page number for pagination, starting from 1. Used to navigate through multiple pages of results when the total number of warehouses exceeds the offset limit. """ page: Int! = 1 """ Number of warehouses to return per page. Controls the size of each page in the paginated response to manage data volume and performance. Minimum value is 1. """ offset: Int! = 12 """Inputs to sort by""" sortInputs: [WarehouseSortInput!] } """Boolean in Yes/No format""" enum YesNo { """Affirmative response indicating true, enabled, or positive state""" Y """Negative response indicating false, disabled, or negative state""" N } """ Zone-specific tax code configuration for geographic tax compliance. Represents tax code overrides for specific geographic zones, enabling location-based tax calculations and compliance with regional tax regulations. Used for international commerce and multi-jurisdictional tax management. """ type ZoneTaxCode { """ Unique identifier for the zone tax code record. Primary key used for zone tax code management and geographic tax rule operations. """ id: String! """ Reference to the associated price record. Foreign key linking this zone tax code to its base price for geographic tax calculations. """ priceId: String! """ Timestamp when the zone tax code record was initially created. Used for audit trails and tax compliance tracking. """ createdAt: DateTime! """ Timestamp when the zone tax code record was last updated. Essential for tracking tax rule changes and compliance updates. """ lastModifiedAt: DateTime! """ Geographic zone identifier for tax calculations. Defines the specific geographic region or tax jurisdiction where special tax rules apply. Used to determine location-specific tax rates and regulations. """ zone: String! """ Tax code applicable to the specified zone. The specific tax classification that applies within the geographic zone. Overrides default tax codes when products are sold in regions with special tax requirements. """ taxCode: Taxcode! } input ZoneTaxCodeCreateInput { """Price id""" priceId: String! """Zone code""" zone: String! """Tax code""" taxCode: Taxcode! } type ZoneTaxCodeResponse { """List of items of type ZoneTaxCode""" items: [ZoneTaxCode!]! """Total number of items found""" itemsFound: Int! """The amount of items to show per page""" offset: Int! """The current page""" page: Int! """Total amount of pages""" pages: Int! """Start position of the current page""" start: Int! """End position of the current page""" end: Int! } input ZoneTaxCodeSearchInput { """Pagination page number""" page: Int = 1 """Pagination offset number""" offset: Int = 12 """Search by date created""" createdAt: DateSearchInput """Search by date changed""" lastModifiedAt: DateSearchInput """Search by Zone tax code ids""" ids: [String!] """Search by price ids""" priceIds: [String!] """Search by tax code""" taxCodes: [Taxcode!] """Search by zone code""" zones: [String!] """Inputs to sort by""" sortInputs: [ZoneTaxCodeSortInput!] } """ Available fields for sorting zone tax code search results. Defines the sortable fields for zone-specific tax code configurations, enabling organized retrieval of geographic tax rule data for compliance and reporting purposes. """ enum ZoneTaxCodeSortField { """ Sort by zone tax code record identifier. Orders results by the unique identifier of each zone tax code record for consistent data organization and reference. """ ID """ Sort by tax classification code alphabetically. Orders results by the tax code value, useful for grouping similar tax treatments and regulatory compliance organization. """ TAX_CODE """ Sort by geographic zone code alphabetically. Orders results by the geographic zone identifier, enabling location-based organization and regional tax rule management. """ ZONE """ Sort by last modification timestamp. Orders results by when each zone tax code was last updated, useful for tracking recent changes and data synchronization. """ LAST_MODIFIED_AT """ Sort by creation timestamp. Orders results by when each zone tax code was initially created, useful for historical tracking and audit trails. """ CREATED_AT } input ZoneTaxCodeSortInput { """Field to sort by""" field: ZoneTaxCodeSortField! """Order option to sort by. [Default to `ASC`]""" order: SortOrder! } input ZoneTaxCodeUpdateInput { """Zone code""" zone: String """Tax code""" taxCode: Taxcode }