## MessageOrderProductItem **Type:** GraphQL objects **Description:** A single product item in an order message. ### Fields - productRetailerId (String): Product retailer identifier (matches Product.code in core). - quantity (Int): Quantity ordered. - itemPrice (Float): Unit price of the item (as reported by WhatsApp). - currency (String): Currency code (e.g. 'AED', 'USD'). - name (String): Resolved product name, or null when no matching product exists. - attachment (Attachment): Resolved product attachment ({ url, name, type }), or null when no matching product exists. - url (String) - name (String) - type (String) - size (Float) - duration (Float) - locationData (LocationData) --- ## Product **Type:** GraphQL objects **Description:** Product entity including variants, pricing, and metadata. ### Fields - _id (String) - name (String) - shortName (String) - slug (String) - status (String) - code (String) - type (String) - description (String) - barcodes (String) - unitPrice (Float) - salePrice (Float) - costPrice (Float) - currency (String) - categoryId (String) - customFieldsData (JSON) - customFieldsDataByFieldCode (JSON) - createdAt (Date) - updatedAt (Date) - publishedAt (Date) - createdBy (String) - updatedBy (String) - getTags (Tag): undefined - _id (String) - name (String) - type (String) - colorCode (String) - createdAt (Date) - objectCount (Int) - totalObjectCount (Int) - parentId (String) - order (String) - relatedIds (String) - childTags (Tag) - tagIds (String) - attachment (Attachment): undefined - url (String) - name (String) - type (String) - size (Float) - duration (Float) - locationData (LocationData) - attachmentMore (Attachment): undefined - url (String) - name (String) - type (String) - size (Float) - duration (Float) - locationData (LocationData) - media (Attachment): undefined - url (String) - name (String) - type (String) - size (Float) - duration (Float) - locationData (LocationData) - vendorId (String) - workspaceId (String) - uom (String) - subUoms (JSON) - category (ProductCategory): undefined - _id (String) - name (String) - description (String) - parentId (String) - code (String) - order (String) - slug (String) - workspaceId (String) - attachment (Attachment) - status (String) - isRoot (Boolean) - productCount (Int) - seo (ProductSEO) - createdAt (Date) - updatedAt (Date) - vendor (Company): undefined - createdAt (Date) - modifiedAt (Date) - avatar (String) - size (Int) - website (String) - industry (String) - plan (String) - parentCompanyId (String) - ownerId (String) - mergedIds (String) - names (String) - primaryName (String) - emails (String) - primaryEmail (String) - phones (String) - primaryPhone (String) - primaryAddress (JSON) - addresses (JSON) - businessType (String) - description (String) - isSubscribed (String) - links (JSON) - owner (User) - parentCompany (Company) - tagIds (String) - customFieldsData (JSON) - customFieldsDataByFieldCode (JSON) - customers (Customer) - getTags (Tag) - code (String) - location (String) - score (Float) - _id (String) - taxType (String) - taxCode (String) - sku (String) - externalUrl (String) - source (String) - mpn (String) - gtin (String) - requireShipping (Boolean) - channels (String) - unlimitedQuantity (Boolean) - saleStart (Date) - saleEnd (Date) - maxPerOrder (Int) - maxPerCustomer (Int) - isAvailable (Boolean) - hideQuantity (Boolean) - productOptions (ProductOption): undefined - id (String) - name (String) - slug (String) - displayOrder (Int) - type (String) - displayType (String) - required (Boolean) - values (ProductOptionValue) - productVariants (ProductVariant): undefined - id (String) - sku (String) - barcode (String) - name (String) - optionValues (VariantOptionValue) - unitPrice (Float) - salePrice (Float) - costPrice (Float) - quantity (Int) - unlimitedQuantity (Boolean) - weight (Float) - weightUnit (String) - image (Attachment) - status (String) - externalId (String) - source (String) - priceRange (PriceRange): undefined - min (Float) - max (Float) - currency (String) - hasVariants (Boolean) - hasCatalogWarning (Boolean) - weight (Float) - weightUnit (String) - dimensions (ProductDimensions): undefined - length (Float) - width (Float) - height (Float) - unit (String) - inventory (ProductInventory): undefined - tracked (Boolean) - quantity (Int) - lowStockThreshold (Int) - allowBackorder (Boolean) - seo (ProductSEO): undefined - title (String) - description (String) - slug (String) - keywords (String) --- ## ProductCategory **Type:** GraphQL objects **Description:** Category (taxonomy) for products. ### Fields - _id (String) - name (String) - description (String) - parentId (String) - code (String) - order (String) - slug (String) - workspaceId (String) - attachment (Attachment): undefined - url (String) - name (String) - type (String) - size (Float) - duration (Float) - locationData (LocationData) - status (String) - isRoot (Boolean) - productCount (Int) - seo (ProductSEO): undefined - title (String) - description (String) - slug (String) - keywords (String) - createdAt (Date) - updatedAt (Date) --- ## ProductCategoryListResponse **Type:** GraphQL objects ### Fields - data (ProductCategory): undefined - _id (String) - name (String) - description (String) - parentId (String) - code (String) - order (String) - slug (String) - workspaceId (String) - attachment (Attachment) - status (String) - isRoot (Boolean) - productCount (Int) - seo (ProductSEO) - createdAt (Date) - updatedAt (Date) - pagination (PaginationInfo, Not Null): undefined - currentPage (Int): The current page number (1-based). - perPage (Int): Number of items per page. - totalCount (Int): Total number of items matching the query. - totalPages (Int): Total number of pages. - hasNextPage (Boolean): Whether there are more pages after the current one. - hasPreviousPage (Boolean): Whether there are pages before the current one. --- ## ProductDimensions **Type:** GraphQL objects **Description:** Physical dimensions of a product. ### Fields - length (Float) - width (Float) - height (Float) - unit (String) --- ## ProductInventory **Type:** GraphQL objects **Description:** Inventory tracking for a product. ### Fields - tracked (Boolean) - quantity (Int) - lowStockThreshold (Int) - allowBackorder (Boolean) --- ## ProductListResponse **Type:** GraphQL objects ### Fields - data (Product): undefined - _id (String) - name (String) - shortName (String) - slug (String) - status (String) - code (String) - type (String) - description (String) - barcodes (String) - unitPrice (Float) - salePrice (Float) - costPrice (Float) - currency (String) - categoryId (String) - customFieldsData (JSON) - customFieldsDataByFieldCode (JSON) - createdAt (Date) - updatedAt (Date) - publishedAt (Date) - createdBy (String) - updatedBy (String) - getTags (Tag) - tagIds (String) - attachment (Attachment) - attachmentMore (Attachment) - media (Attachment) - vendorId (String) - workspaceId (String) - uom (String) - subUoms (JSON) - category (ProductCategory) - vendor (Company) - taxType (String) - taxCode (String) - sku (String) - externalUrl (String) - source (String) - mpn (String) - gtin (String) - requireShipping (Boolean) - channels (String) - unlimitedQuantity (Boolean) - saleStart (Date) - saleEnd (Date) - maxPerOrder (Int) - maxPerCustomer (Int) - isAvailable (Boolean) - hideQuantity (Boolean) - productOptions (ProductOption) - productVariants (ProductVariant) - priceRange (PriceRange) - hasVariants (Boolean) - hasCatalogWarning (Boolean) - weight (Float) - weightUnit (String) - dimensions (ProductDimensions) - inventory (ProductInventory) - seo (ProductSEO) - pagination (PaginationInfo, Not Null): undefined - currentPage (Int): The current page number (1-based). - perPage (Int): Number of items per page. - totalCount (Int): Total number of items matching the query. - totalPages (Int): Total number of pages. - hasNextPage (Boolean): Whether there are more pages after the current one. - hasPreviousPage (Boolean): Whether there are pages before the current one. --- ## ProductOption **Type:** GraphQL objects ### Fields - id (String) - name (String) - slug (String) - displayOrder (Int) - type (String) - displayType (String) - required (Boolean) - values (ProductOptionValue): undefined - id (String) - value (String) - slug (String) - displayOrder (Int) - image (Attachment) - priceAdjustment (Float) - currency (String) - isDefault (Boolean) - isOutOfStock (Boolean) --- ## ProductOptionValue **Type:** GraphQL objects **Description:** Option value for a product option (e.g., color: red). ### Fields - id (String) - value (String) - slug (String) - displayOrder (Int) - image (Attachment): undefined - url (String) - name (String) - type (String) - size (Float) - duration (Float) - locationData (LocationData) - priceAdjustment (Float) - currency (String) - isDefault (Boolean) - isOutOfStock (Boolean) --- ## ProductSEO **Type:** GraphQL objects **Description:** SEO metadata for products and categories. ### Fields - title (String) - description (String) - slug (String) - keywords (String) --- ## ProductVariant **Type:** GraphQL objects **Description:** Variant of a product with pricing and option values. ### Fields - id (String) - sku (String) - barcode (String) - name (String) - optionValues (VariantOptionValue): undefined - optionId (String) - optionName (String) - valueId (String) - value (String) - unitPrice (Float) - salePrice (Float) - costPrice (Float) - quantity (Int) - unlimitedQuantity (Boolean) - weight (Float) - weightUnit (String) - image (Attachment): undefined - url (String) - name (String) - type (String) - size (Float) - duration (Float) - locationData (LocationData) - status (String) - externalId (String) - source (String)