Available tools
You can use the following Mark (Optimizely Agent Platform) tools with Optimizely Commerce Connect.
Campaign tools
campaign_types_list
Lists all campaign types in the system. This tool requires no parameters.
Response:
{
"StatusCode": 200,
"Message": "Found 3 campaign types",
"Types": [
{
"Name": "SalesCampaign",
"FullName": "EPiServer.Commerce.Marketing.SalesCampaign",
"AssemblyQualifiedName": "..."
}
]
}campaign_filter
Search and filter campaigns using one or more of the following criteria.
Property | Type | Required | Description |
|---|---|---|---|
IsActive | boolean | No | Filter by active status |
Markets | string | No | Filter by target market IDs |
ValidFrom | string | No | Campaign start date (ISO 8601) |
ValidUntil | string | No | Campaign end date (ISO 8601) |
Example request:
{
"IsActive": true,
"Markets": ["US", "EU"],
"ValidFrom": "2024-01-01T00:00:00Z"
}campaign_detail
Retrieve detailed information about a specific campaign.
Property | Type | Required | Description |
|---|---|---|---|
Identifier | string | Yes | Campaign name or ContentReference ID |
IncludeAdditionalDetails | boolean | No | Audit info and promotions list |
Example request:
{
"Identifier": "Summer Sale 2024",
"IncludeAdditionalDetails": true
}Response:
{
"StatusCode": 200,
"Message": "Campaign found",
"Campaign": {
"Id": "123",
"Name": "Summer Sale 2024",
"Description": "Annual summer promotion",
"ValidFrom": "2024-06-01T00:00:00Z",
"ValidUntil": "2024-08-31T23:59:59Z",
"IsActive": true,
"TargetMarkets": ["US", "EU"],
"EditLinkUrl": "/episerver/cms/...",
"Promotions": [
{ "Id": "456", "Name": "20% Off All Items" }
]
}
}campaign_create
Create a marketing campaign.
Property | Type | Required | Description |
|---|---|---|---|
Name | string | Yes | Campaign name |
Description | string | No | Campaign description |
ValidFrom | string | Yes | Start date (ISO 8601) |
ValidUntil | string | Yes | End date (must be after ValidFrom) |
Example request:
{
"Name": "Black Friday 2024",
"Description": "Annual Black Friday sale event",
"ValidFrom": "2024-11-29T00:00:00Z",
"ValidUntil": "2024-12-02T23:59:59Z"
}Note This tool returns a confirmation dialog. The campaign is created after your confirmation.
campaign_update
Update an existing campaign.
Property | Type | Required | Description |
|---|---|---|---|
Id | string | Yes | Campaign ContentReference ID |
Name | string | No | New campaign name |
Description | string | No | New campaign description |
Example request:
{
"Id": "123",
"Name": "Black Friday 2024 - Extended",
"Description": "Extended Black Friday sale"
}Promotion tools
promotion_types_list
Lists all promotion types as selectable suggestions. This tool requires no input parameters.
Response:
{
"Text": "Please select a promotion type:",
"Suggestions": [
{
"Title": "BuyQuantityGetFreeItems",
"Value": "EPiServer.Commerce.Marketing.Promotions.BuyQuantityGetFreeItems"
},
{
"Title": "BuyQuantityGetItemDiscount",
"Value": "EPiServer.Commerce.Marketing.Promotions.BuyQuantityGetItemDiscount"
},
{
"Title": "SpendAmountGetOrderDiscount",
"Value": "EPiServer.Commerce.Marketing.Promotions.SpendAmountGetOrderDiscount"
}
]
}promotion_filter
Search and filter promotions using one or more of the following criteria.
Property | Type | Required | Description |
|---|---|---|---|
Name | string | No | Partial name match |
IsActive | boolean | No | Active status filter |
ContentType | string | No | Content type (defaults to "PromotionData") |
Markets | string | No | Target market IDs |
ValidFrom | string | No | Start date filter (ISO 8601) |
ValidUntil | string | No | End date filter (ISO 8601) |
Example request:
{
"Name": "discount",
"IsActive": true,
"Markets": ["US"]
}promotion_detail
Returns details for a specific promotion.
Property | Type | Required | Description |
|---|---|---|---|
Identifier | string | Yes | Promotion name or ContentReference ID |
IncludeAdditionalDetails | boolean | No | All properties and audit info |
Example request:
{
"Identifier": "20% Off Electronics",
"IncludeAdditionalDetails": true
}Response:
{
"StatusCode": 200,
"Message": "Promotion found",
"Promotion": {
"Id": "456",
"Name": "20% Off Electronics",
"Description": "20% discount on all electronics",
"IsActive": true,
"PromotionType": "BuyQuantityGetItemDiscount",
"FullTypeName": "EPiServer.Commerce.Marketing.Promotions.BuyQuantityGetItemDiscount",
"CampaignId": "123",
"Priority": 10,
"CouponCode": "ELEC20",
"DiscountType": "Percentage",
"ValidFrom": "2024-06-01T00:00:00Z",
"ValidUntil": "2024-08-31T23:59:59Z",
"EditLinkUrl": "/episerver/cms/...",
"Properties": [
{
"Name": "Condition_RequiredQuantity",
"Value": 1,
"PropertyType": "Int32"
},
{
"Name": "Discount_Percentage",
"Value": 20.0,
"PropertyType": "Decimal"
}
]
}
}promotion_create
Create a promotion within a campaign.
Property | Type | Required | Description |
|---|---|---|---|
Name | string | Yes | Promotion name |
Campaign | string | Yes | Campaign ID or name |
PromotionType | string | Yes | Full type name (from promotion_types_list) |
Description | string | No | Promotion description |
Example request:
{
"Name": "Buy 2 Get 1 Free",
"Campaign": "Summer Sale 2024",
"PromotionType": "EPiServer.Commerce.Marketing.Promotions.BuyQuantityGetFreeItems",
"Description": "Buy any 2 items, get 1 free"
}Note This tool returns a confirmation dialog. The promotion is created after your confirmation.
promotion_update
Update basic promotion properties.
Property | Type | Required | Description |
|---|---|---|---|
Id | string | Yes | Promotion ContentReference ID |
Name | string | No | New promotion name |
Description | string | No | New description |
IsActive | boolean | No | Active status |
Priority | integer | No | Priority (higher value = higher priority) |
Example request:
{
"Id": "456",
"Name": "Buy 2 Get 1 Free - Extended",
"IsActive": true,
"Priority": 5
}promotion_dynamic_update
Update promotion properties using property paths. Supports nested properties.
Property | Type | Required | Description |
|---|---|---|---|
Id | string | Yes | Promotion ContentReference ID |
Properties | object | No | Dictionary of property paths to values |
Property path format: use underscore notation for nested properties.
- Condition_RequiredQuantity – RequiredQuantity property of Condition.
- Discount_Percentage – Percentage property of Discount.
- Reward_AmountOff – AmountOff property of Reward.
Example request (get editable properties):
{
"Id": "456"
}Example request (update properties):
{
"Id": "456",
"Properties": {
"Condition_RequiredQuantity": 3,
"Discount_Percentage": 25.0,
"IsActive": true
}
}promotion_clone
Clones an existing promotion into the same or a different campaign.
Property | Type | Required | Description |
|---|---|---|---|
PromotionId | string | Yes | Source promotion ContentReference ID |
CampaignId | string | No | Target campaign ID. Defaults to the source promotion's campaign. |
Example request:
{
"PromotionId": "456",
"CampaignId": "789"
}Note This tool returns a confirmation dialog. The promotion is created after your confirmation.
promotion_properties
Returns all properties for a promotion type, including metadata.
Property | Type | Required | Description |
|---|---|---|---|
PromotionType | string | Yes | Type name or full type name |
Example request:
{
"PromotionType": "BuyQuantityGetItemDiscount"
}Response:
{
"StatusCode": 200,
"Message": "Found 15 properties",
"PromotionType": "BuyQuantityGetItemDiscount",
"Properties": [
{
"Name": "RequiredQuantity",
"PropertyPath": "Condition_RequiredQuantity",
"PropertyType": "Int32",
"DisplayName": "Required Quantity",
"Description": "Number of items required to trigger promotion",
"IsRequired": true,
"MinValue": 1,
"DefaultValue": 1
},
{
"Name": "Percentage",
"PropertyPath": "Discount_Percentage",
"PropertyType": "Decimal",
"DisplayName": "Discount Percentage",
"Description": "Percentage discount to apply",
"IsRequired": true,
"MinValue": 0,
"MaxValue": 100
}
]
}promotion_list_by_sales
List promotions ordered by sales volume (orders placed).
Property | Type | Required | Description |
|---|---|---|---|
MarketId | string | No | Filter by specific market |
Example request:
{
"MarketId": "US"
}Response:
{
"items": [
{
"PromotionName": "20% Off Everything",
"PromotionGuid": "abc123...",
"OrderPlaced": 1250,
"DiscountType": "Percentage",
"CouponCode": "SAVE20"
}
]
}get_validator_properties
Returns properties that have validation requirements for a specific type.
Property | Type | Required | Description |
|---|---|---|---|
PromotionType | string | Yes | Campaign or promotion type name |
Example request:
{
"PromotionType": "BuyQuantityGetFreeItems"
}Response:
{
"StatusCode": 200,
"Message": "Found 3 properties with validators",
"Properties": [
"Condition_RequiredQuantity",
"Reward_NumberOfFreeItems",
"Discount_Items"
]
}Catalog tools
catalog_query
Queries catalog content using one or more of the following filters.
Property | Type | Required | Description |
|---|---|---|---|
ContentType | string | No | CatalogContent, NodeContent, ProductContent, or VariationContent |
Name | string | No | Partial name match |
Code | string | No | Partial code match |
ParentId | string | No | Parent content ID |
IsAvailable | boolean | No | Availability filter |
Limit | integer | No | Results limit. The default is 50. |
Example request:
{
"ContentType": "ProductContent",
"Name": "shirt",
"IsAvailable": true,
"Limit": 20
}The response includes the following:
- Name, ContentType, ContentLink, ParentLink
- Type-specific fields (catalog, node, product, variation)
- PricePerMarket data for variations
- Created, Changed, Language info
catalog_content_types_list
Lists the catalog content types available for creating content. Call this tool before catalog_content_create to discover valid ContentType values.
Property | Type | Required | Description |
|---|---|---|---|
BaseType | string | Yes | Catalog, Node, or Entry |
The response lists each type with a Name and a FullName. Pass FullName as the ContentType value for catalog_content_create.
catalog_content_detail
Retrieves one catalog content item with all of its properties. Provide at least one of ContentLink, Code, or Name.
Property | Type | Required | Description |
|---|---|---|---|
ContentLink | string | No | Content link, in ID__ProviderName format |
Code | string | No | Code of the catalog entry or node |
Name | string | No | Full or partial name. Requires ContentType |
ContentType | string | No | Required when Name is used. Ignored otherwise |
Language | string | No | Language code, such as en or sv |
A Name search returns the first match and reports the total in MatchCount. Each item carries an AccessRights object stating what the signed-in user can read, create, edit, delete, and publish. Content the user cannot read is omitted. The AdditionalProperties map holds the full property set of the content type of the item.
catalog_content_search
Searches catalog entries and categories with current pricing and inventory. Draft and unpublished content is included.
Property | Type | Required | Description |
|---|---|---|---|
Query | string | No | Keyword matched against every text field. Use * to match everything |
ContentType | string | No | Entry (the default) or Node |
Parent | string | No | Content link of the catalog or category to search within |
ParentCode | string | No | Code of the parent, as an alternative to Parent |
ParentName | string | No | Code, content link, or display name of the parent |
ItemTypeFilter | string | No | Restricts results to one entry type |
StatusFilter | string | No | Filters by publication status |
MinPrice | decimal | No | Minimum price. Entries only |
MaxPrice | decimal | No | Maximum price. Entries only |
MarketId | string | No | Market identifier, such as UK. Prices differ per market |
InventoryStatus | string | No | InStock, OutOfStock, or NotTracked. Entries only |
AdditionalParameters | object | No | Custom property filters, such as {"Color":"Red"} |
PageSize | integer | No | Maximum results to return |
Language | string | No | Language code |
Pass MarketId whenever the request names a market or a country. Without it, prices and price filters use the current market of the site.
catalog_content_create
Creates a catalog, category, product, or variant.
Property | Type | Required | Description |
|---|---|---|---|
ParentLink | string | Yes | Content link of the parent, in ID__ProviderName format |
ParentCode | string | No | Code of the parent, as an alternative to ParentLink |
ParentName | string | No | Display name of the parent, as a further alternative |
ContentType | string | Yes | Fully qualified type name from catalog_content_types_list |
Name | string | Yes | Display name for the content |
When you have no content link for the parent, leave ParentLink empty and pass ParentCode or ParentName instead. A catalog always goes at the catalog root, so the parent is ignored when the content type is a catalog.
catalog_content_update
Updates one language version of existing catalog content. The change is saved as a draft and is never published.
Property | Type | Required | Description |
|---|---|---|---|
Mode | string | Yes | Replace or Append. Required when the call changes a property |
PropertyModes | object | No | Per-property overrides of Mode |
ApplyTo | string | No | Self (the default) or List |
Items | array | No | Items to update. Required when ApplyTo is List |
ContentLink | string | No | Content link of the item to update |
Code | string | No | Current code of the item |
CurrentName | string | No | Current name, used when neither Code nor ContentLink is given |
LangCode | string | No | ISO culture code of the language version to update |
Name | string | No | New name |
DisplayName | string | No | New display name |
StartPublish | string | No | Start publish date, in ISO 8601 format |
StopPublish | string | No | Stop publish date, in ISO 8601 format |
SeoUri | string | No | SEO URI |
SeoTitle | string | No | SEO title |
SeoDescription | string | No | SEO description |
SeoKeywords | string | No | SEO keywords |
RouteSegment | string | No | Route segment |
DefaultCurrency | string | No | Default currency. Catalogs only |
IsPrimary | bool | No | Marks the catalog as primary |
WeightBase | string | No | Base unit for weight |
LengthBase | string | No | Base unit for length |
AdditionalProperties | object | No | Any other property declared by the content type |
Leave every property the request does not name unset. An unset property stays unchanged. To move content to a different parent, use catalog_content_move.
catalog_content_remove
Removes catalog content. Catalogs are deleted permanently. Products, variants, and categories are archived and can be restored.
Property | Type | Required | Description |
|---|---|---|---|
ContentLink | string | No | Content link of one item to remove |
Code | string | No | Code of one item to remove |
Name | string | No | Code, content link, or display name of one item |
Items | array | No | Several items to remove under a single confirmation |
Provide one of ContentLink, Code, or Name for a single item, or Items for several. The tool returns a confirmation dialog, and the content is removed after the user confirms.
catalog_content_move
Moves a category, product, or variant under a different parent. The move takes effect immediately in every language.
Property | Type | Required | Description |
|---|---|---|---|
Code | string | No | Code of the item to move |
ContentLink | string | No | Content link of the item to move |
Name | string | No | Code, content link, or display name of the item to move |
Items | array | No | Several items to move under a single confirmation |
NewParentCode | string | No | Code of the destination catalog or category |
NewParentLink | string | No | Content link of the destination |
NewParentName | string | No | Display name of the destination |
Identify the item with one of Code, ContentLink, or Name, or use Items for several. Identify the destination with one of NewParentCode, NewParentLink, or NewParentName. To change a property rather than the location, use catalog_content_update.
catalog_content_link
Returns the Catalog UI address that opens a catalog item. The tool reads no properties and changes nothing.
Property | Type | Required | Description |
|---|---|---|---|
Name | string | No | Full or partial name. Can match several items |
Code | string | No | Code of the catalog entry or node |
ContentLink | string | No | Content link, in ID__ProviderName format |
Language | string | No | Language code used to find the content |
Provide at least one of Name, Code, or ContentLink. A code or content link returns a single LinkUrl. A name search returns one entry per match in Links.
Pricing tools
Pricing tools read and change the price records of catalog items. Variants, packages, and dynamic packages are priceable. Bundles, products, categories, and catalogs are not.
price_filter
Searches price records across catalog items, markets, and currencies.
Property | Type | Required | Description |
|---|---|---|---|
MarketId | string | No | Market identifier, such as US or UK |
ItemCode | string | No | Item code (SKU) |
ItemName | string | No | Searches for items by name |
ProductCode | string | No | Parent product code, which returns all of its variants |
ItemType | string | No | Variant, Package, or DynamicPackage |
MinPrice | decimal | No | Minimum price |
MaxPrice | decimal | No | Maximum price |
Currency | string | No | Currency code, such as USD or GBP |
Page | integer | No | Page number, starting at 1. The default is 1 |
PageSize | integer | No | Page size hint. The actual size adapts between 10 and 30 |
SortBy | string | No | Price, ItemName, or ItemCode |
SortOrder | string | No | Ascending (the default) or Descending |
The response returns one row per price record, with the market, currency, amount, validity dates, sale type, sale code, and minimum quantity.
price_detail
Returns every price record for one catalog item, across all markets.
Property | Type | Required | Description |
|---|---|---|---|
ItemCode | string | Yes | Item code (SKU) |
Use price_filter instead to search across several items, or to filter by market, currency, or price range.
price_create
Creates a price record for a variant, package, or dynamic package. The tool returns a confirmation dialog, and the price is created after the user confirms.
Property | Type | Required | Description |
|---|---|---|---|
ItemCode | string | Yes | Item code (SKU) of a priceable item |
MarketId | string | Yes | Market code as configured in the site. Call commerce_list_market for the valid values |
Currency | string | Yes | Currency code, such as USD or GBP |
Price | decimal | Yes | Price amount, greater than zero |
ValidFrom | string | Yes | Start date, as yyyy-MM-dd or yyyy-MM-dd HH:mm |
ValidUntil | string | No | End date. When omitted, the price does not expire |
CustomerPricing | string | Yes | Sale type. AllCustomers (the default), Customer, or Customer Price Group |
SaleCode | string | No | Free text for AllCustomers and Customer. For Customer Price Group, one of Customer, Partner, or Distributor |
MinQuantity | decimal | Yes | Minimum quantity for the price to apply. The default is 0 |
Validation runs before the confirmation dialog. The market and currency must exist, the item must be priceable, and the price must not overlap an existing record.
price_update
Updates one price record on a single catalog item. The tool returns a confirmation dialog, and the change applies after the user confirms.
Property | Type | Required | Description |
|---|---|---|---|
ItemCode | string | Yes | Item code (SKU) |
MarketId | string | No | Market code. Omit to list records from all markets |
RecordNumber | integer | No | 0 lists the price records. 1 and above select one by position |
PriceValueId | integer | No | Stable record identifier from the listing. Takes precedence over RecordNumber |
Price | decimal | No | New price amount |
Currency | string | No | New currency code |
ValidFrom | string | No | New start date, as yyyy-MM-dd |
ValidUntil | string | No | New end date. Use none to clear it |
CustomerPricing | string | No | New sale type |
SaleCode | string | No | New sale code |
MinQuantity | decimal | No | New minimum quantity |
Call the tool with RecordNumber set to 0 to list the price records, then call it again with PriceValueId set to the record to change. PriceValueId is stable when records are edited concurrently, so prefer it over RecordNumber. At least one of the seven editable fields is required, and all seven are updatable, including Currency.
To change prices on several items at once, use price_bulk_update.
price_delete
Deletes a price record from a catalog item. The tool returns a confirmation dialog, and the record is deleted after the user confirms.
Property | Type | Required | Description |
|---|---|---|---|
ItemCode | string | Yes | Item code (SKU) |
MarketId | string | No | Market code. Omit to list records from all markets |
RecordNumber | integer | No | 0 lists the price records. 1 and above select one by position |
PriceValueId | integer | No | Stable record identifier. Takes precedence over RecordNumber |
price_bulk_update
Updates prices on several catalog items in one operation.
Property | Type | Required | Description |
|---|---|---|---|
SelectionMode | string | Yes | Product, Manual, or Import |
ProductCode | string | No | Parent product whose variants to update. Required for Product mode |
ItemCodes | array | No | Variant codes to update. Required for Manual mode |
CsvData | string | No | CSV payload. Used by Import mode |
MarketId | string | No | Market code. Required for Product and Manual modes |
Currency | string | No | Currency code. Required for Product and Manual modes |
Price | decimal | No | New price amount, greater than zero |
ValidFrom | string | No | New start date |
ValidUntil | string | No | New end date |
CustomerPricing | string | No | New sale type |
SaleCode | string | No | New sale code |
MinQuantity | decimal | No | New minimum quantity |
In Manual mode, every code must belong to the same product. At least one pricing field is required, and only the fields supplied are changed. Price changes take effect as soon as the user confirms.
Order tools
Order tools read orders and move them and their shipments through the fulfillment workflow. A tool that changes an order returns a confirmation dialog first, and the change applies after the user confirms.
order_filter
Searches orders and returns one page of order summaries.
Property | Type | Required | Description |
|---|---|---|---|
Status | string | No | InProgress, OnHold, Completed, or Cancelled |
StartDate | string | No | Orders created on or after this date, as yyyy-MM-dd |
EndDate | string | No | Orders created on or before this date, as yyyy-MM-dd |
CustomerId | string | No | Customer contact ID, as a GUID |
CustomerName | string | No | Customer name |
string | No | Customer email address | |
MarketId | string | No | Market code, such as US or DEFAULT |
SiteId | string | No | Site ID, for a multi-site installation |
OrderNumber | string | No | Exact order number. Also matches shipment tracking numbers |
MaxResults | integer | No | Orders per page. The default is 50 and the maximum is 100 |
StartIndex | integer | No | Zero-based position of the first order. The default is 0 |
Every filter is optional, and filters combine with AND. Filtering by customer returns the order history of that customer. The response reports totalCount for every order that matched, alongside returnedCount, hasMore, and nextStartIndex for paging.
order_detail
Returns the complete contents of one order.
Property | Type | Required | Description |
|---|---|---|---|
OrderNumber | string | Yes | Order number, such as PO-2024-001 |
The response includes the order forms, line items, shipments with status and tracking, payments, tax, shipping, handling, discounts, custom properties, and order notes. Use order_filter first when you have only a customer or an email address.
order_cancel
Cancels an order. On confirmation, the order status becomes Cancelled and inventory is released.
Property | Type | Required | Description |
|---|---|---|---|
OrderNumber | string | Yes | Order number, such as PO-2024-001 |
Reason | string | No | Cancellation reason, recorded in the audit trail |
An order that is already completed or canceled cannot be canceled, and neither can an order with a shipped shipment. Create a return for a shipped order instead.
order_status_update
Places an order on hold, or resumes a held order.
Property | Type | Required | Description |
|---|---|---|---|
OrderNumber | string | Yes | Order number, such as PO-2024-001 |
NewStatus | string | Yes | OnHold to hold, or the pre-hold status to resume |
Note | string | No | Note recorded with the status change in the audit trail |
Hold applies to an order that is In Progress or Partially Shipped. To resume a held order, set NewStatus to its recorded pre-hold status. A completed or canceled order cannot change status. To cancel an order, use order_cancel.
order_shipment_update
Moves shipments through the fulfillment workflow, or cancels them.
Property | Type | Required | Description |
|---|---|---|---|
OrderNumber | string | Yes | Parent order number, such as PO-2024-001 |
ShipmentIds | string | No | Comma-separated shipment identifiers. Omit to update every shipment |
NewStatus | string | Yes | InventoryAssigned, Released, Packing, Shipped, or Cancelled |
Status moves forward only, through the sequence Inventory Assigned, Released, Packing, and Shipped. A target further ahead is applied one step at a time through each intermediate status. Each shipment is checked individually, and shipments that cannot make the transition are reported while the rest still change.
The order status then follows its shipments. The order completes when every live shipment has shipped, becomes Partially Shipped when only some have, and is canceled when no live shipments remain. An order that is on hold, canceled, or already completed stays as it is.
Shipment identifiers come from order_detail. This tool changes shipment status only. To change a shipment address, use order_detail_link.
order_return_init
Creates a return for an order with at least one shipped shipment.
Property | Type | Required | Description |
|---|---|---|---|
OrderNumber | string | Yes | Source order number, such as PO-2024-001 |
LineItems | array | No | Items to return, each with a code and optional quantity |
ReturnReason | string | No | Reason for the return |
When LineItems is omitted, every returnable item is returned. On confirmation, the tool creates a return order with the status Awaiting Stock Return. The source order must have a shipped shipment, and every item named must belong to a shipped shipment that is not already fully returned. Processing the refund or exchange is a separate step.
order_return_link
Returns a link to the refund page of an order in Order Management. The tool does not process the refund, which keeps the refund inside Order Management for PCI compliance.
Property | Type | Required | Description |
|---|---|---|---|
OrderGroupId | integer | Yes | Numeric order group ID, not the display order number |
Call order_filter first to get the orderGroupId when you have only an order number.
order_detail_link
Returns a link to the detail page of an order in Order Management, where an operator can change the delivery address, line items, payments, and promotions. The tool makes no changes, because an address change affects delivery charges.
Property | Type | Required | Description |
|---|---|---|---|
OrderGroupId | integer | Yes | Numeric order group ID, not the display order number |
Call order_filter first to get the orderGroupId when you have only an order number.
Graph tools
com_graph_schema
Retrieve the full GraphQL schema from the Optimizely Graph service. This tool requires no input parameters.
Response: full GraphQL introspection schema (cached for 4 hours).
Query operators
- where – Filter results
- match – Text search
- eq – Exact match
- like – Pattern match (use % wildcards)
- gte, lte – Range comparisons
- in – List membership
- _fulltext – Full-text search across all fields
- facets – Aggregated results
- total(all:true) – Get total count
com_graph_query_executor
Executes custom GraphQL queries against Commerce Graph.
Property | Type | Required | Description |
|---|---|---|---|
GraphQLQuery | string | Yes | The GraphQL query to execute |
Example request:
{
"GraphQLQuery": "query { ProductContent(where: { IsAvailable: { eq: true } }, limit: 10) { items { Name Code } } }"
}Market tools
commerce_list_market
Lists all markets with their configuration.
Property | Type | Required | Description |
|---|---|---|---|
IsEnabledOnly | boolean | No | Show only enabled markets |
Currency | string | No | Filter by currency code (USD, EUR, SEK, etc.) |
Language | string | No | Filter by language code |
MarketId | string | No | Filter by specific market ID |
Example request:
{
"IsEnabledOnly": true,
"Currency": "USD"
}Response:
{
"StatusCode": 200,
"Message": "Found 3 markets",
"Markets": [
{
"MarketId": "US",
"MarketName": "United States",
"MarketDescription": "US Market",
"DefaultCurrency": "USD",
"DefaultLanguage": "en",
"IsEnabled": true,
"Countries": ["US"],
"Languages": ["en", "es"]
}
]
}