stoq-api-v2
v2.0.0-betaSTOQ's MCP server exposes every v2 API action as a tool, so AI agents can run preorder and back-in-stock operations directly — no glue code. Tool descriptions include the natural-language aliases merchants use, so an agent can map an intent to a single call.
Connect
- Endpoint:
https://app.stoqapp.com/api/v2/external/mcp(JSON-RPC over HTTP) - Auth: send your STOQ API key in the
X-Auth-Tokenheader — find it in the STOQ app under Settings → Integrations → API Key.
Most MCP clients take a remote server URL plus headers. Generic config:
{
"mcpServers": {
"stoq": {
"url": "https://app.stoqapp.com/api/v2/external/mcp",
"headers": { "X-Auth-Token": "YOUR_STOQ_API_KEY" }
}
}
}Test the connection
List the available tools with a JSON-RPC tools/list call — you should get back the tools
documented below:
curl -X POST https://app.stoqapp.com/api/v2/external/mcp \
-H "X-Auth-Token: $STOQ_API_KEY" -H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'Then call one — e.g. list your preorder offers:
curl -X POST https://app.stoqapp.com/api/v2/external/mcp \
-H "X-Auth-Token: $STOQ_API_KEY" -H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":2,"method":"tools/call",
"params":{"name":"preorders_offers_list","arguments":{}}}'Full API guide for agents: GET /api/v2/external/preorders/skill.md.
Tools
back_in_stock_notifications_list
List back-in-stock notifications (the send log) in this shop, paginated. Aliases: list notifications, back in stock send log, restock notifications sent, who got notified, notification history, show sent restock alerts. Note: status=blocked surfaces sends stopped by plan limits (with blocked_reason).
Parameters
channelanyemailsmspushargumentstatusanysentblockedargumentvariant_idanyargumentproduct_idanyargumentfromanyargumenttoanyargumentpageanyargumentper_pageanyargumentReturns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "back_in_stock_notifications_list",
"arguments": {
"channel": "email",
"status": "sent"
}
}
}const result = await client.callTool("back_in_stock_notifications_list", {
"channel": "email",
"status": "sent"
});result = await session.call_tool("back_in_stock_notifications_list", arguments={
"channel": "email",
"status": "sent"
}){
"content": [
{
"type": "text",
"text": "..."
}
]
}back_in_stock_notifications_read
Read one back-in-stock notification (a single send-log entry). Aliases: show notification, get notification, look up sent restock alert, notification details.
Parameters
idstringrequiredargumentURL path parameter :id
Returns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "back_in_stock_notifications_read",
"arguments": {
"id": "string"
}
}
}const result = await client.callTool("back_in_stock_notifications_read", {
"id": "string"
});result = await session.call_tool("back_in_stock_notifications_read", arguments={
"id": "string"
}){
"content": [
{
"type": "text",
"text": "..."
}
]
}back_in_stock_reports_list
List every available back-in-stock report (name, description, aliases, url). Aliases: reports, list reports, available reports, what reports are there, report catalog.
Returns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "back_in_stock_reports_list",
"arguments": {}
}
}const result = await client.callTool("back_in_stock_reports_list", {});result = await session.call_tool("back_in_stock_reports_list", arguments={}){
"content": [
{
"type": "text",
"text": "..."
}
]
}back_in_stock_reports_conversions_read
Time-series of orders attributed to back-in-stock alerts and the revenue recovered. Aliases: did the alerts convert, recovered revenue, conversion trend, orders from alerts, revenue recovered over time.
Parameters
fromanyargumenttoanyargumentvariant_idanyargumentproduct_idanyargumentchannelanyargumentgranularityanyargumentReturns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "back_in_stock_reports_conversions_read",
"arguments": {}
}
}const result = await client.callTool("back_in_stock_reports_conversions_read", {});result = await session.call_tool("back_in_stock_reports_conversions_read", arguments={}){
"content": [
{
"type": "text",
"text": "..."
}
]
}back_in_stock_reports_conversions_export
Async CSV export of the back-in-stock conversions time series. Aliases: export conversions, download conversions, conversions csv, recovered revenue csv.
Parameters
fromanyargumenttoanyargumentvariant_idanyargumentproduct_idanyargumentchannelanyargumentgranularityanyargumentsort_byanyargumentdirectionanyargumentpageanyargumentper_pageanyargumentReturns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "back_in_stock_reports_conversions_export",
"arguments": {}
}
}const result = await client.callTool("back_in_stock_reports_conversions_export", {});result = await session.call_tool("back_in_stock_reports_conversions_export", arguments={}){
"content": [
{
"type": "text",
"text": "..."
}
]
}back_in_stock_reports_exports_read
Check the status of an async report export and get the download URL when ready. Aliases: check export status, get export, poll export, download url for export, export status.
Parameters
job_idstringrequiredargumentURL path parameter :job_id
Returns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "back_in_stock_reports_exports_read",
"arguments": {
"job_id": "string"
}
}
}const result = await client.callTool("back_in_stock_reports_exports_read", {
"job_id": "string"
});result = await session.call_tool("back_in_stock_reports_exports_read", arguments={
"job_id": "string"
}){
"content": [
{
"type": "text",
"text": "..."
}
]
}back_in_stock_reports_notifications_read
Time-series of back-in-stock notifications sent, split by channel (email/sms/push). Aliases: notification trend, alerts sent, sends by channel, how many alerts went out, blocked notifications.
Parameters
fromanyargumenttoanyargumentvariant_idanyargumentproduct_idanyargumentchannelanyargumentgranularityanyargumentReturns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "back_in_stock_reports_notifications_read",
"arguments": {}
}
}const result = await client.callTool("back_in_stock_reports_notifications_read", {});result = await session.call_tool("back_in_stock_reports_notifications_read", arguments={}){
"content": [
{
"type": "text",
"text": "..."
}
]
}back_in_stock_reports_notifications_export
Async CSV export of the back-in-stock notifications time series. Aliases: export notifications, download notifications, notifications csv, alerts csv.
Parameters
fromanyargumenttoanyargumentvariant_idanyargumentproduct_idanyargumentchannelanyargumentgranularityanyargumentsort_byanyargumentdirectionanyargumentpageanyargumentper_pageanyargumentReturns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "back_in_stock_reports_notifications_export",
"arguments": {}
}
}const result = await client.callTool("back_in_stock_reports_notifications_export", {});result = await session.call_tool("back_in_stock_reports_notifications_export", arguments={}){
"content": [
{
"type": "text",
"text": "..."
}
]
}back_in_stock_reports_products_in_demand_read
Ranked variants by back-in-stock demand (pending/total signups, last requested). Aliases: demand report, what should I restock, most wanted products, top requested variants, products in demand, restock priorities.
Parameters
fromanyargumenttoanyargumentvariant_idanyargumentproduct_idanyargumentchannelanyargumentsort_byanyargumentdirectionanyargumentpageanyargumentper_pageanyargumentReturns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "back_in_stock_reports_products_in_demand_read",
"arguments": {}
}
}const result = await client.callTool("back_in_stock_reports_products_in_demand_read", {});result = await session.call_tool("back_in_stock_reports_products_in_demand_read", arguments={}){
"content": [
{
"type": "text",
"text": "..."
}
]
}back_in_stock_reports_products_in_demand_export
Async CSV export of the back-in-stock products-in-demand report. Aliases: export demand report, download products in demand, demand csv, restock list csv.
Parameters
fromanyargumenttoanyargumentvariant_idanyargumentproduct_idanyargumentchannelanyargumentgranularityanyargumentsort_byanyargumentdirectionanyargumentpageanyargumentper_pageanyargumentReturns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "back_in_stock_reports_products_in_demand_export",
"arguments": {}
}
}const result = await client.callTool("back_in_stock_reports_products_in_demand_export", {});result = await session.call_tool("back_in_stock_reports_products_in_demand_export", arguments={}){
"content": [
{
"type": "text",
"text": "..."
}
]
}back_in_stock_reports_signups_read
Time-series of back-in-stock signups created (day/week/month). Aliases: signup trend, signups over time, waitlist growth, new signups, daily signups.
Parameters
fromanyargumenttoanyargumentvariant_idanyargumentproduct_idanyargumentchannelanyargumentgranularityanyargumentReturns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "back_in_stock_reports_signups_read",
"arguments": {}
}
}const result = await client.callTool("back_in_stock_reports_signups_read", {});result = await session.call_tool("back_in_stock_reports_signups_read", arguments={}){
"content": [
{
"type": "text",
"text": "..."
}
]
}back_in_stock_reports_signups_export
Async CSV export of the back-in-stock signups time series. Aliases: export signups, download signups, signups csv, waitlist csv.
Parameters
fromanyargumenttoanyargumentvariant_idanyargumentproduct_idanyargumentchannelanyargumentgranularityanyargumentsort_byanyargumentdirectionanyargumentpageanyargumentper_pageanyargumentReturns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "back_in_stock_reports_signups_export",
"arguments": {}
}
}const result = await client.callTool("back_in_stock_reports_signups_export", {});result = await session.call_tool("back_in_stock_reports_signups_export", arguments={}){
"content": [
{
"type": "text",
"text": "..."
}
]
}back_in_stock_reports_summary_read
High-level overview of back-in-stock activity over a date window. Aliases: summary, overview, how is back in stock doing, how many people are waiting, waitlist size, dashboard stats.
Parameters
fromanyargumenttoanyargumentvariant_idanyargumentproduct_idanyargumentchannelanyargumentReturns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "back_in_stock_reports_summary_read",
"arguments": {}
}
}const result = await client.callTool("back_in_stock_reports_summary_read", {});result = await session.call_tool("back_in_stock_reports_summary_read", arguments={}){
"content": [
{
"type": "text",
"text": "..."
}
]
}back_in_stock_reports_summary_export
Async CSV export of the back-in-stock summary report. Aliases: export summary, download summary, summary csv, export overview.
Parameters
fromanyargumenttoanyargumentvariant_idanyargumentproduct_idanyargumentchannelanyargumentgranularityanyargumentsort_byanyargumentdirectionanyargumentpageanyargumentper_pageanyargumentReturns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "back_in_stock_reports_summary_export",
"arguments": {}
}
}const result = await client.callTool("back_in_stock_reports_summary_export", {});result = await session.call_tool("back_in_stock_reports_summary_export", arguments={}){
"content": [
{
"type": "text",
"text": "..."
}
]
}back_in_stock_settings_update
Update back-in-stock settings for the shop. Aliases: edit settings, change settings, modify settings, update back in stock settings, configure notifications. Note: Accepts any combination of capability blobs: channels, delivery, compliance, tagging, alerts — deep partial, delegated to the capability PATCHes, errors accumulated. Boolean toggles are set via this PATCH (or the capability PATCH): channels.email.enabled, channels.sms.enabled, channels.push.enabled, delivery.batching.enabled, delivery.locations.filter_enabled, delivery.any_variant.enabled, compliance.optin_required, tagging.order_tags.enabled, alerts.signups_threshold.notify, alerts.scheduled_reports.daily, alerts.scheduled_reports.weekly, alerts.scheduled_reports.monthly — e.g. { channels: { sms: { enabled: true } } }.
Parameters
channelsanyargumentdeliveryanyargumentcomplianceanyargumenttagginganyargumentalertsanyargumentReturns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "back_in_stock_settings_update",
"arguments": {}
}
}const result = await client.callTool("back_in_stock_settings_update", {});result = await session.call_tool("back_in_stock_settings_update", arguments={}){
"content": [
{
"type": "text",
"text": "..."
}
]
}back_in_stock_settings_read
Read all back-in-stock settings for the shop. Aliases: get settings, show settings, view settings, back in stock settings, notification settings, settings.
Returns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "back_in_stock_settings_read",
"arguments": {}
}
}const result = await client.callTool("back_in_stock_settings_read", {});result = await session.call_tool("back_in_stock_settings_read", arguments={}){
"content": [
{
"type": "text",
"text": "..."
}
]
}back_in_stock_settings_alerts_read
Read back-in-stock merchant alert and scheduled report settings. Aliases: get alert settings, show alerts, view signup threshold, view scheduled reports, alerts.
Returns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "back_in_stock_settings_alerts_read",
"arguments": {}
}
}const result = await client.callTool("back_in_stock_settings_alerts_read", {});result = await session.call_tool("back_in_stock_settings_alerts_read", arguments={}){
"content": [
{
"type": "text",
"text": "..."
}
]
}back_in_stock_settings_alerts_update
Update back-in-stock merchant alert and scheduled report settings. Aliases: edit alert settings, change alert settings, set signup threshold, notify me on high demand, enable signup threshold alerts, disable signup threshold alerts, alert me when a product gets lots of signups, enable daily report, enable weekly report, enable monthly report, disable daily report, disable weekly report, disable monthly report, schedule reports, turn off report emails. Note: Toggles set via this PATCH: signups_threshold.notify, scheduled_reports.daily, scheduled_reports.weekly, scheduled_reports.monthly — e.g. { scheduled_reports: { weekly: true } }. signups_threshold.count is the per-variant signup count that triggers the merchant alert email.
Parameters
signups_thresholdanyargumentscheduled_reportsanyargumentReturns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "back_in_stock_settings_alerts_update",
"arguments": {}
}
}const result = await client.callTool("back_in_stock_settings_alerts_update", {});result = await session.call_tool("back_in_stock_settings_alerts_update", arguments={}){
"content": [
{
"type": "text",
"text": "..."
}
]
}back_in_stock_settings_channels_update
Update back-in-stock notification channel toggles. Aliases: edit channels, change channels, modify channels, enable email notifications, turn on email alerts, disable email notifications, turn off email alerts, enable sms, turn on SMS alerts, enable text notifications, disable sms, turn off SMS alerts, stop text notifications, enable push notifications, turn on web push, disable push notifications, turn off web push. Note: Channel toggles are set via this PATCH: email.enabled, sms.enabled, push.enabled — e.g. { sms: { enabled: true } }. Enabling SMS for the first time triggers a restricted-content verification check; sends may be held until the shop is verified.
Parameters
emailanyargumentsmsanyargumentpushanyargumentReturns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "back_in_stock_settings_channels_update",
"arguments": {}
}
}const result = await client.callTool("back_in_stock_settings_channels_update", {});result = await session.call_tool("back_in_stock_settings_channels_update", arguments={}){
"content": [
{
"type": "text",
"text": "..."
}
]
}back_in_stock_settings_channels_read
Read back-in-stock notification channel settings. Aliases: get channels, show channels, view notification channels, which channels are enabled, channels.
Returns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "back_in_stock_settings_channels_read",
"arguments": {}
}
}const result = await client.callTool("back_in_stock_settings_channels_read", {});result = await session.call_tool("back_in_stock_settings_channels_read", arguments={}){
"content": [
{
"type": "text",
"text": "..."
}
]
}back_in_stock_settings_compliance_update
Update back-in-stock compliance settings (double opt-in). Aliases: edit compliance settings, change compliance settings, require double opt-in, enable double opt-in, turn on double opt-in, require opt-in confirmation, gdpr opt-in, disable double opt-in, turn off double opt-in, remove opt-in confirmation. Note: The double-opt-in toggle is set via this PATCH: optin_required — e.g. { optin_required: true }. When enabled, signups must confirm via email before they are eligible for notifications (GDPR double opt-in).
Parameters
optin_requiredanyargumentReturns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "back_in_stock_settings_compliance_update",
"arguments": {}
}
}const result = await client.callTool("back_in_stock_settings_compliance_update", {});result = await session.call_tool("back_in_stock_settings_compliance_update", arguments={}){
"content": [
{
"type": "text",
"text": "..."
}
]
}back_in_stock_settings_compliance_read
Read back-in-stock compliance settings (double opt-in). Aliases: get compliance settings, show compliance, view opt-in settings, is double opt-in enabled, compliance.
Returns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "back_in_stock_settings_compliance_read",
"arguments": {}
}
}const result = await client.callTool("back_in_stock_settings_compliance_read", {});result = await session.call_tool("back_in_stock_settings_compliance_read", arguments={}){
"content": [
{
"type": "text",
"text": "..."
}
]
}back_in_stock_settings_delivery_read
Read back-in-stock delivery settings (batching, stock threshold, locations, any-variant). Aliases: get delivery settings, show delivery settings, view batching, view stock threshold, view location filter, delivery.
Returns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "back_in_stock_settings_delivery_read",
"arguments": {}
}
}const result = await client.callTool("back_in_stock_settings_delivery_read", {});result = await session.call_tool("back_in_stock_settings_delivery_read", arguments={}){
"content": [
{
"type": "text",
"text": "..."
}
]
}back_in_stock_settings_delivery_update
Update back-in-stock delivery settings (batching, stock threshold, locations, any-variant). Aliases: edit delivery settings, change delivery settings, batch notifications, enable batching, turn on batching, disable batching, turn off batching, send all at once, set batch size, set batching multiplier, set batching mode, set wait between batches, set stock threshold, set minimum stock to notify, only notify when 5 in stock, require minimum quantity before notifying, filter by location, enable location filter, disable location filter, set notification locations, only count inventory at locations, notify for any variant, enable any variant notifications, disable any variant notifications, notify when any variant restocks. Note: Deep partial. Toggles set via this PATCH: batching.enabled, locations.filter_enabled, any_variant.enabled — e.g. { batching: { enabled: true } }. batching.mode is an enum: 'multiplier' (batch size = restocked quantity x batching.multiplier) or 'fixed' (batch size = batching.batch_size); batching.wait_hours is the wait between batches. stock_threshold is the minimum restocked quantity before notifications send (>= 1). locations.location_ids and any_variant.product_ids are arrays of Shopify numeric ids and are replaced wholesale when present.
Parameters
batchinganyargumentstock_thresholdanyargumentlocationsanyargumentany_variantanyargumentReturns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "back_in_stock_settings_delivery_update",
"arguments": {}
}
}const result = await client.callTool("back_in_stock_settings_delivery_update", {});result = await session.call_tool("back_in_stock_settings_delivery_update", arguments={}){
"content": [
{
"type": "text",
"text": "..."
}
]
}back_in_stock_settings_tagging_read
Read back-in-stock order tagging settings. Aliases: get tagging settings, show order tagging, view order tag, what tag is applied to recovered orders, tagging.
Returns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "back_in_stock_settings_tagging_read",
"arguments": {}
}
}const result = await client.callTool("back_in_stock_settings_tagging_read", {});result = await session.call_tool("back_in_stock_settings_tagging_read", arguments={}){
"content": [
{
"type": "text",
"text": "..."
}
]
}back_in_stock_settings_tagging_update
Update back-in-stock order tagging settings. Aliases: edit tagging settings, change tagging settings, tag recovered orders, enable order tagging, turn on order tagging, disable order tagging, turn off order tagging, set back in stock order tag, change order tag, rename order tag. Note: The toggle is set via this PATCH: order_tags.enabled — e.g. { order_tags: { enabled: true } }. order_tags.tag is the single tag applied to Shopify orders attributed to a back-in-stock notification (default 'STOQ-back-in-stock').
Parameters
order_tagsanyargumentReturns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "back_in_stock_settings_tagging_update",
"arguments": {}
}
}const result = await client.callTool("back_in_stock_settings_tagging_update", {});result = await session.call_tool("back_in_stock_settings_tagging_update", arguments={}){
"content": [
{
"type": "text",
"text": "..."
}
]
}back_in_stock_signups_create
Create a back-in-stock signup (add a customer to the waitlist for a variant). Aliases: create signup, add to waitlist, add customer to the notify me list, register a restock alert, sign someone up for back in stock. Note: email is required for the email channel, phone for sms. shopify_product_id is resolved from the variant when omitted. Returns 409 when a pending signup already exists for the same contact + variant + channel.
Parameters
channelanyemailsmsrequiredargumentshopify_variant_idanyrequiredargumentquantityintegerargumentshopify_product_idanyargumentemailanyargumentphoneanyargumentnameanyargumentReturns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "back_in_stock_signups_create",
"arguments": {
"channel": "email",
"quantity": 0
}
}
}const result = await client.callTool("back_in_stock_signups_create", {
"channel": "email",
"quantity": 0
});result = await session.call_tool("back_in_stock_signups_create", arguments={
"channel": "email",
"quantity": 0
}){
"content": [
{
"type": "text",
"text": "..."
}
]
}back_in_stock_signups_list
List back-in-stock signups (the waitlist) in this shop, paginated. Aliases: list signups, waitlist, show the waitlist, notify me list, who's waiting, back in stock signups, list waitlist entries, restock signups, customers waiting for restock. Note: status compiles notified_at / unsubscribed_at / blocked_at into one lifecycle value; email and phone filters match partial values on the signup or its customer.
Parameters
channelanyemailsmspushargumentstatusanypendingnotifiedunsubscribedargumentvariant_idanyargumentproduct_idanyargumentemailanyargumentphoneanyargumentfromanyargumenttoanyargumentpageanyargumentper_pageanyargumentReturns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "back_in_stock_signups_list",
"arguments": {
"channel": "email",
"status": "pending"
}
}
}const result = await client.callTool("back_in_stock_signups_list", {
"channel": "email",
"status": "pending"
});result = await session.call_tool("back_in_stock_signups_list", arguments={
"channel": "email",
"status": "pending"
}){
"content": [
{
"type": "text",
"text": "..."
}
]
}back_in_stock_signups_read
Read one back-in-stock signup's full representation. Aliases: show signup, get signup, look up waitlist entry, view restock signup, signup details.
Parameters
idstringrequiredargumentURL path parameter :id
Returns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "back_in_stock_signups_read",
"arguments": {
"id": "string"
}
}
}const result = await client.callTool("back_in_stock_signups_read", {
"id": "string"
});result = await session.call_tool("back_in_stock_signups_read", arguments={
"id": "string"
}){
"content": [
{
"type": "text",
"text": "..."
}
]
}back_in_stock_signups_delete
Delete a pending back-in-stock signup (remove the customer from the waitlist). Aliases: delete signup, remove from waitlist, remove waitlist entry, cancel restock alert, take customer off the notify me list. Note: Pending signups only; deleting an already-notified signup returns 409.
Parameters
idstringrequiredargumentURL path parameter :id
Returns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "back_in_stock_signups_delete",
"arguments": {
"id": "string"
}
}
}const result = await client.callTool("back_in_stock_signups_delete", {
"id": "string"
});result = await session.call_tool("back_in_stock_signups_delete", arguments={
"id": "string"
}){
"content": [
{
"type": "text",
"text": "..."
}
]
}back_in_stock_signups_notify
Send the back-in-stock notification for one signup now, regardless of stock state. Aliases: notify signup, send the restock email, notify this customer, send back in stock notification, resend restock notification. Note: 409 when the signup was already notified and allow_resend is not set.
Parameters
allow_resendanyargumentidstringrequiredargumentURL path parameter :id
Returns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "back_in_stock_signups_notify",
"arguments": {
"id": "string"
}
}
}const result = await client.callTool("back_in_stock_signups_notify", {
"id": "string"
});result = await session.call_tool("back_in_stock_signups_notify", arguments={
"id": "string"
}){
"content": [
{
"type": "text",
"text": "..."
}
]
}back_in_stock_signups_bulk_delete
Delete up to 1000 pending back-in-stock signups in one request. Aliases: bulk delete signups, clear the waitlist, delete waitlist entries, remove signups in bulk, purge pending restock signups. Note: Pending-only: 422 listing the offending ids when any signup was already notified.
Parameters
signup_idsArray<string>requiredargumentReturns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "back_in_stock_signups_bulk_delete",
"arguments": {
"signup_ids": [
"string"
]
}
}
}const result = await client.callTool("back_in_stock_signups_bulk_delete", {
"signup_ids": [
"string"
]
});result = await session.call_tool("back_in_stock_signups_bulk_delete", arguments={
"signup_ids": [
"string"
]
}){
"content": [
{
"type": "text",
"text": "..."
}
]
}back_in_stock_signups_bulk_notify
Send back-in-stock notifications for up to 1000 signups in one request. Aliases: bulk notify signups, notify the waitlist, notify everyone waiting, send restock emails to the whole waitlist, bulk send back in stock notifications. Note: Responds 200 when all succeed, 207 with { success, failed } on partial failure. Already-notified signups fail unless allow_resend is set.
Parameters
signup_idsArray<string>requiredargumentallow_resendanyargumentReturns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "back_in_stock_signups_bulk_notify",
"arguments": {
"signup_ids": [
"string"
]
}
}
}const result = await client.callTool("back_in_stock_signups_bulk_notify", {
"signup_ids": [
"string"
]
});result = await session.call_tool("back_in_stock_signups_bulk_notify", arguments={
"signup_ids": [
"string"
]
}){
"content": [
{
"type": "text",
"text": "..."
}
]
}back_in_stock_signups_transfer
Move back-in-stock signups from one variant to another (variant merges or replacements). Aliases: transfer signups, move the waitlist, move signups to another variant, merge waitlists, shift restock signups to a new variant. Note: scope picks which signups move: pending (default), notified, or all. Signups that would duplicate a pending signup on the target variant are dropped. from_shopify_product_id is resolved from the source variant when omitted.
Parameters
from_shopify_variant_idanyrequiredargumentto_shopify_variant_idanyrequiredargumentto_shopify_product_idanyrequiredargumentscopeanypendingnotifiedallargumentfrom_shopify_product_idanyargumentReturns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "back_in_stock_signups_transfer",
"arguments": {
"scope": "pending"
}
}
}const result = await client.callTool("back_in_stock_signups_transfer", {
"scope": "pending"
});result = await session.call_tool("back_in_stock_signups_transfer", arguments={
"scope": "pending"
}){
"content": [
{
"type": "text",
"text": "..."
}
]
}preorders_offers_list
List preorder offers in this shop, paginated. Aliases: list offers, show all offers, preorder offers, all preorders.
Parameters
pageanyargumentper_pageanyargumentReturns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "preorders_offers_list",
"arguments": {}
}
}const result = await client.callTool("preorders_offers_list", {});result = await session.call_tool("preorders_offers_list", arguments={}){
"content": [
{
"type": "text",
"text": "..."
}
]
}preorders_offers_create
Create a new preorder offer. Aliases: new offer, make a preorder, create preorder offer.
Parameters
nameanyargumentinternal_nameanyargumentReturns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "preorders_offers_create",
"arguments": {}
}
}const result = await client.callTool("preorders_offers_create", {});result = await session.call_tool("preorders_offers_create", arguments={}){
"content": [
{
"type": "text",
"text": "..."
}
]
}preorders_offers_update
Update top-level fields of a preorder offer. Aliases: edit offer, modify offer, change offer settings.
Parameters
nameanyargumentinternal_nameanyargumentidstringrequiredargumentURL path parameter :id
Returns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "preorders_offers_update",
"arguments": {
"id": "string"
}
}
}const result = await client.callTool("preorders_offers_update", {
"id": "string"
});result = await session.call_tool("preorders_offers_update", arguments={
"id": "string"
}){
"content": [
{
"type": "text",
"text": "..."
}
]
}preorders_offers_read
Read a preorder offer's full representation. Aliases: show offer, get preorder offer, look up offer, view offer.
Parameters
idstringrequiredargumentURL path parameter :id
Returns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "preorders_offers_read",
"arguments": {
"id": "string"
}
}
}const result = await client.callTool("preorders_offers_read", {
"id": "string"
});result = await session.call_tool("preorders_offers_read", arguments={
"id": "string"
}){
"content": [
{
"type": "text",
"text": "..."
}
]
}preorders_offers_advanced_update
Update advanced (power-user) settings on a preorder offer. Aliases: edit advanced, change advanced settings, modify advanced, enable line item property, include in line item properties, add cart property, show on cart line, disable line item property, exclude from line item properties, remove cart property, hide from cart line, clear button text override, remove button text override, reset button text for state, use default button text. Note: Deep partial. Toggles and clears are done via this PATCH: the line-item-property toggles are line_item_properties.include_shipping_text, .include_payment_breakdown, and .include_acknowledgement (true/false each). button_text_overrides is deep-partial per state — send null to clear an override for one state, e.g. { "button_text_overrides": { "out_of_stock": null } } removes that override (the read shape still emits all three states, with null for unset). custom_css is cleared by sending an empty string or null.
Parameters
line_item_propertiesanyargumentbutton_text_overridesanyargumentuse_shopify_selling_plananyargumentcustom_cssanyargumentidstringrequiredargumentURL path parameter :id
Returns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "preorders_offers_advanced_update",
"arguments": {
"id": "string"
}
}
}const result = await client.callTool("preorders_offers_advanced_update", {
"id": "string"
});result = await session.call_tool("preorders_offers_advanced_update", arguments={
"id": "string"
}){
"content": [
{
"type": "text",
"text": "..."
}
]
}preorders_offers_advanced_read
Read power-user settings for a preorder offer (line item properties, button text overrides, Shopify selling plan attachment). Aliases: get advanced, show advanced settings, view advanced settings, view line item properties, view advanced.
Parameters
idstringrequiredargumentURL path parameter :id
Returns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "preorders_offers_advanced_read",
"arguments": {
"id": "string"
}
}
}const result = await client.callTool("preorders_offers_advanced_read", {
"id": "string"
});result = await session.call_tool("preorders_offers_advanced_read", arguments={
"id": "string"
}){
"content": [
{
"type": "text",
"text": "..."
}
]
}preorders_offers_advanced_attach_to_shopify_selling_plan
Re-attach the offer to a Shopify selling plan group (resume syncing). Aliases: attach to shopify selling plan, use shopify selling plans, resume shopify sync, reattach to shopify.
Parameters
idstringrequiredargumentURL path parameter :id
Returns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "preorders_offers_advanced_attach_to_shopify_selling_plan",
"arguments": {
"id": "string"
}
}
}const result = await client.callTool("preorders_offers_advanced_attach_to_shopify_selling_plan", {
"id": "string"
});result = await session.call_tool("preorders_offers_advanced_attach_to_shopify_selling_plan", arguments={
"id": "string"
}){
"content": [
{
"type": "text",
"text": "..."
}
]
}preorders_offers_advanced_detach_from_shopify_selling_plan
Detach the offer from Shopify selling plan groups; Stoq continues to manage it via the storefront integration. Aliases: detach from shopify selling plan, stop using shopify selling plans, manage selling plan internally, bypass shopify selling plan. Note: Strongly discouraged for most merchants. Breaks Shopify-native integrations like checkout selling plan display and third-party subscription apps. Does not delete the existing Shopify selling plan group — it just stops syncing.
Parameters
idstringrequiredargumentURL path parameter :id
Returns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "preorders_offers_advanced_detach_from_shopify_selling_plan",
"arguments": {
"id": "string"
}
}
}const result = await client.callTool("preorders_offers_advanced_detach_from_shopify_selling_plan", {
"id": "string"
});result = await session.call_tool("preorders_offers_advanced_detach_from_shopify_selling_plan", arguments={
"id": "string"
}){
"content": [
{
"type": "text",
"text": "..."
}
]
}preorders_offers_advanced_set_custom_css
Set custom CSS overrides for this offer's storefront widget. Send an empty string to clear. Aliases: set custom css, add custom css, override widget css, customize widget styles, clear custom css.
Parameters
cssanyargumentidstringrequiredargumentURL path parameter :id
Returns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "preorders_offers_advanced_set_custom_css",
"arguments": {
"id": "string"
}
}
}const result = await client.callTool("preorders_offers_advanced_set_custom_css", {
"id": "string"
});result = await session.call_tool("preorders_offers_advanced_set_custom_css", arguments={
"id": "string"
}){
"content": [
{
"type": "text",
"text": "..."
}
]
}preorders_offers_advanced_set_custom_line_item_property
Set a free-text custom line item property added to every preorder cart line. Aliases: set custom line item property, set custom cart property, set custom cart text, add custom cart text.
Parameters
textanyargumentidstringrequiredargumentURL path parameter :id
Returns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "preorders_offers_advanced_set_custom_line_item_property",
"arguments": {
"id": "string"
}
}
}const result = await client.callTool("preorders_offers_advanced_set_custom_line_item_property", {
"id": "string"
});result = await session.call_tool("preorders_offers_advanced_set_custom_line_item_property", arguments={
"id": "string"
}){
"content": [
{
"type": "text",
"text": "..."
}
]
}preorders_offers_checkout_read
Read checkout settings for a preorder offer. Aliases: get checkout settings, show checkout, view terms, view mixed cart, view order tags, checkout.
Parameters
idstringrequiredargumentURL path parameter :id
Returns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "preorders_offers_checkout_read",
"arguments": {
"id": "string"
}
}
}const result = await client.callTool("preorders_offers_checkout_read", {
"id": "string"
});result = await session.call_tool("preorders_offers_checkout_read", arguments={
"id": "string"
}){
"content": [
{
"type": "text",
"text": "..."
}
]
}preorders_offers_checkout_update
Update checkout settings on a preorder offer. Aliases: edit checkout, change checkout settings, modify checkout, enable terms, require terms, require acknowledgement, show terms checkbox, turn on terms, disable terms, hide terms checkbox, remove terms requirement, turn off terms, enable disable until acknowledged, require acknowledgement before buying, lock button until terms accepted, grey out button until terms checked, disable disable until acknowledged, don't lock button on terms, allow buying without acknowledging first, keep button enabled before terms, include terms in line item properties, record terms acceptance on order, add acknowledgement to line items, show terms accepted on order, allow mixed cart, permit mixed cart, enable mixed cart, let preorders mix with regular items, block mixed cart, disable mixed cart, prevent mixed cart, force separate checkout. Note: Boolean toggles are set via this PATCH: terms.enabled, terms.disable_button_until_acknowledged, terms.include_in_line_item_properties, mixed_cart.allowed — this PATCH is how you turn these on/off, e.g. { terms: { enabled: true } } or { mixed_cart: { allowed: false } }.
Parameters
termsanyargumentmixed_cartanyargumentorder_tagsanyargumentidstringrequiredargumentURL path parameter :id
Returns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "preorders_offers_checkout_update",
"arguments": {
"id": "string"
}
}
}const result = await client.callTool("preorders_offers_checkout_update", {
"id": "string"
});result = await session.call_tool("preorders_offers_checkout_update", arguments={
"id": "string"
}){
"content": [
{
"type": "text",
"text": "..."
}
]
}preorders_offers_checkout_add_order_tag
Add a tag to the set applied to orders containing this offer. Aliases: add order tag, add tag to preorder orders, append order tag.
Parameters
taganyrequiredargumentidstringrequiredargumentURL path parameter :id
Returns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "preorders_offers_checkout_add_order_tag",
"arguments": {
"id": "string"
}
}
}const result = await client.callTool("preorders_offers_checkout_add_order_tag", {
"id": "string"
});result = await session.call_tool("preorders_offers_checkout_add_order_tag", arguments={
"id": "string"
}){
"content": [
{
"type": "text",
"text": "..."
}
]
}preorders_offers_checkout_remove_order_tag
Remove a tag from the set applied to orders containing this offer. Aliases: remove order tag, delete order tag, drop order tag.
Parameters
taganyrequiredargumentidstringrequiredargumentURL path parameter :id
Returns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "preorders_offers_checkout_remove_order_tag",
"arguments": {
"id": "string"
}
}
}const result = await client.callTool("preorders_offers_checkout_remove_order_tag", {
"id": "string"
});result = await session.call_tool("preorders_offers_checkout_remove_order_tag", arguments={
"id": "string"
}){
"content": [
{
"type": "text",
"text": "..."
}
]
}preorders_offers_checkout_set_mixed_cart_error_message
Set the error message shown when a blocked mixed cart reaches checkout. Aliases: set mixed cart error message, change mixed cart message, set mixed cart warning, customize mixed cart error.
Parameters
messageanyrequiredargumentidstringrequiredargumentURL path parameter :id
Returns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "preorders_offers_checkout_set_mixed_cart_error_message",
"arguments": {
"id": "string"
}
}
}const result = await client.callTool("preorders_offers_checkout_set_mixed_cart_error_message", {
"id": "string"
});result = await session.call_tool("preorders_offers_checkout_set_mixed_cart_error_message", arguments={
"id": "string"
}){
"content": [
{
"type": "text",
"text": "..."
}
]
}preorders_offers_checkout_set_terms_text
Set the terms-acceptance text shown next to the checkbox. Aliases: set terms text, change terms text, update terms, change acknowledgement text, set fine print.
Parameters
textanyrequiredargumentidstringrequiredargumentURL path parameter :id
Returns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "preorders_offers_checkout_set_terms_text",
"arguments": {
"id": "string"
}
}
}const result = await client.callTool("preorders_offers_checkout_set_terms_text", {
"id": "string"
});result = await session.call_tool("preorders_offers_checkout_set_terms_text", arguments={
"id": "string"
}){
"content": [
{
"type": "text",
"text": "..."
}
]
}preorders_offers_countdown_update
Update countdown timer settings on a preorder offer. Aliases: edit countdown, change timer, modify countdown settings, enable countdown, show timer, turn on countdown, enable countdown timer, disable countdown, hide timer, turn off countdown, disable countdown timer, set countdown text, set timer text, change countdown label, set timer label. Note: Deep partial. countdown.enabled is toggled via this PATCH (enabled true/false); text is an alias for ends_text — both write the same column, and an explicit ends_text wins when both are sent.
Parameters
enabledanyargumentmodeanyargumentcustom_end_dateanyargumentcustom_start_dateanyargumentformatanyargumenttextanyargumentstarts_textanyargumentends_textanyargumentunit_labelsanyargumentstyleanyargumentidstringrequiredargumentURL path parameter :id
Returns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "preorders_offers_countdown_update",
"arguments": {
"id": "string"
}
}
}const result = await client.callTool("preorders_offers_countdown_update", {
"id": "string"
});result = await session.call_tool("preorders_offers_countdown_update", arguments={
"id": "string"
}){
"content": [
{
"type": "text",
"text": "..."
}
]
}preorders_offers_countdown_read
Read the countdown timer configuration for a preorder offer. Aliases: get countdown, show timer, view countdown timer, view timer settings, countdown settings.
Parameters
idstringrequiredargumentURL path parameter :id
Returns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "preorders_offers_countdown_read",
"arguments": {
"id": "string"
}
}
}const result = await client.callTool("preorders_offers_countdown_read", {
"id": "string"
});result = await session.call_tool("preorders_offers_countdown_read", arguments={
"id": "string"
}){
"content": [
{
"type": "text",
"text": "..."
}
]
}preorders_offers_countdown_set_custom_end_date
Set the custom end date for the countdown timer. Aliases: set custom end date, set timer end date, change timer deadline. Note: Has no visible effect unless mode is to_custom_date.
Parameters
dateanyrequiredargumentidstringrequiredargumentURL path parameter :id
Returns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "preorders_offers_countdown_set_custom_end_date",
"arguments": {
"id": "string"
}
}
}const result = await client.callTool("preorders_offers_countdown_set_custom_end_date", {
"id": "string"
});result = await session.call_tool("preorders_offers_countdown_set_custom_end_date", arguments={
"id": "string"
}){
"content": [
{
"type": "text",
"text": "..."
}
]
}preorders_offers_countdown_set_ends_text
Set the text shown next to the countdown timer when the offer is closing. Aliases: set ends text, set timer end text, set 'ends in' text.
Parameters
textanyrequiredargumentidstringrequiredargumentURL path parameter :id
Returns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "preorders_offers_countdown_set_ends_text",
"arguments": {
"id": "string"
}
}
}const result = await client.callTool("preorders_offers_countdown_set_ends_text", {
"id": "string"
});result = await session.call_tool("preorders_offers_countdown_set_ends_text", arguments={
"id": "string"
}){
"content": [
{
"type": "text",
"text": "..."
}
]
}preorders_offers_countdown_set_mode
Set whether the countdown timer follows the offer's schedule or a custom date. Aliases: set countdown mode, change timer mode, use schedule for timer, use custom date for timer.
Parameters
modeanyto_schedule_endto_custom_daterequiredargumentidstringrequiredargumentURL path parameter :id
Returns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "preorders_offers_countdown_set_mode",
"arguments": {
"mode": "to_schedule_end",
"id": "string"
}
}
}const result = await client.callTool("preorders_offers_countdown_set_mode", {
"mode": "to_schedule_end",
"id": "string"
});result = await session.call_tool("preorders_offers_countdown_set_mode", arguments={
"mode": "to_schedule_end",
"id": "string"
}){
"content": [
{
"type": "text",
"text": "..."
}
]
}preorders_offers_countdown_set_starts_text
Set the text shown before the countdown timer when the offer hasn't started yet. Aliases: set starts text, set timer pre-launch text, set 'starts in' text.
Parameters
textanyrequiredargumentidstringrequiredargumentURL path parameter :id
Returns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "preorders_offers_countdown_set_starts_text",
"arguments": {
"id": "string"
}
}
}const result = await client.callTool("preorders_offers_countdown_set_starts_text", {
"id": "string"
});result = await session.call_tool("preorders_offers_countdown_set_starts_text", arguments={
"id": "string"
}){
"content": [
{
"type": "text",
"text": "..."
}
]
}preorders_offers_countdown_set_style
Set the countdown timer's visual style (type, colors, border radius). Aliases: set timer style, change timer style, set countdown style, change timer colors.
Parameters
typeanyargumenttext_coloranyargumentbackground_coloranyargumentborder_radiusanyargumentidstringrequiredargumentURL path parameter :id
Returns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "preorders_offers_countdown_set_style",
"arguments": {
"id": "string"
}
}
}const result = await client.callTool("preorders_offers_countdown_set_style", {
"id": "string"
});result = await session.call_tool("preorders_offers_countdown_set_style", arguments={
"id": "string"
}){
"content": [
{
"type": "text",
"text": "..."
}
]
}preorders_offers_countdown_set_unit_labels
Set the unit labels for the countdown timer (Days/Hours/Mins/Secs). Aliases: set unit labels, change timer labels, set countdown unit text, change timer unit text.
Parameters
daysanyargumenthoursanyargumentminutesanyargumentsecondsanyargumentidstringrequiredargumentURL path parameter :id
Returns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "preorders_offers_countdown_set_unit_labels",
"arguments": {
"id": "string"
}
}
}const result = await client.callTool("preorders_offers_countdown_set_unit_labels", {
"id": "string"
});result = await session.call_tool("preorders_offers_countdown_set_unit_labels", arguments={
"id": "string"
}){
"content": [
{
"type": "text",
"text": "..."
}
]
}preorders_offers_disable
Disable (pause) a preorder offer. Optionally flip attached variants' inventory policy back to DENY. Aliases: pause, turn off, deactivate, stop offer, end preorder, disable and stop overselling, close out preorder. Note: Variants are left at their existing inventory policy unless update_inventory_policy: true is passed.
Parameters
update_inventory_policyanyargumentvariant_idsanyargumentidstringrequiredargumentURL path parameter :id
Returns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "preorders_offers_disable",
"arguments": {
"id": "string"
}
}
}const result = await client.callTool("preorders_offers_disable", {
"id": "string"
});result = await session.call_tool("preorders_offers_disable", arguments={
"id": "string"
}){
"content": [
{
"type": "text",
"text": "..."
}
]
}preorders_offers_discard
Discard (soft-delete) a preorder offer. Aliases: delete, remove, archive, trash, soft delete. Note: Recoverable via restore indefinitely. Discarded offers are never hard-deleted.
Parameters
idstringrequiredargumentURL path parameter :id
Returns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "preorders_offers_discard",
"arguments": {
"id": "string"
}
}
}const result = await client.callTool("preorders_offers_discard", {
"id": "string"
});result = await session.call_tool("preorders_offers_discard", arguments={
"id": "string"
}){
"content": [
{
"type": "text",
"text": "..."
}
]
}preorders_offers_enable
Enable a preorder offer. Optionally flip attached variants' inventory policy to CONTINUE. Aliases: turn on, activate, launch, go live, start offer. Note: Variants are left at their existing inventory policy unless update_inventory_policy: true is passed.
Parameters
update_inventory_policyanyargumentvariant_idsanyargumentidstringrequiredargumentURL path parameter :id
Returns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "preorders_offers_enable",
"arguments": {
"id": "string"
}
}
}const result = await client.callTool("preorders_offers_enable", {
"id": "string"
});result = await session.call_tool("preorders_offers_enable", arguments={
"id": "string"
}){
"content": [
{
"type": "text",
"text": "..."
}
]
}preorders_offers_integrations_read
Read integration settings for a preorder offer (POS, B2B). Aliases: get integrations, show integrations, view pos settings, view b2b settings, integration settings.
Parameters
idstringrequiredargumentURL path parameter :id
Returns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "preorders_offers_integrations_read",
"arguments": {
"id": "string"
}
}
}const result = await client.callTool("preorders_offers_integrations_read", {
"id": "string"
});result = await session.call_tool("preorders_offers_integrations_read", arguments={
"id": "string"
}){
"content": [
{
"type": "text",
"text": "..."
}
]
}preorders_offers_integrations_update
Update integration settings on a preorder offer. Aliases: edit integrations, change integration settings, modify integrations, enable pos, turn on pos, allow in pos, enable point of sale, disable pos, turn off pos, block from pos, disable point of sale, enable pos skip inventory check, skip inventory check on pos, bypass inventory at pos, allow pos sale without inventory, disable pos skip inventory check, enforce inventory check at pos, stop bypassing inventory at pos, enable b2b, turn on b2b, allow b2b, enable wholesale, disable b2b, turn off b2b, block b2b, disable wholesale. Note: Boolean toggles are set via this PATCH: pos.enabled, pos.skip_inventory_check, b2b.enabled — e.g. { pos: { enabled: false } } or { b2b: { enabled: true } }.
Parameters
posanyargumentb2banyargumentidstringrequiredargumentURL path parameter :id
Returns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "preorders_offers_integrations_update",
"arguments": {
"id": "string"
}
}
}const result = await client.callTool("preorders_offers_integrations_update", {
"id": "string"
});result = await session.call_tool("preorders_offers_integrations_update", arguments={
"id": "string"
}){
"content": [
{
"type": "text",
"text": "..."
}
]
}preorders_offers_inventory_update
Update inventory settings on a preorder offer. Aliases: edit inventory, change inventory settings, modify inventory, enable continue selling, allow overselling, enable oversell, auto continue selling, auto-apply continue selling on attach, disable continue selling, stop auto continue selling, disable oversell, prevent overselling on attach, enable auto apply continue selling, auto continue selling on attach, auto-flip new variants to continue, apply oversell to new variants, disable auto apply continue selling, stop auto continue selling on attach, don't auto-flip new variants, no oversell on new variants. Note: Deep partial. Setting provider to 'shopify' will force product_variants_source to 'custom' via the model callback. Continue-selling is toggled via this PATCH: continue_selling.enabled and continue_selling.auto_apply_to_new_variants BOTH map to the single underlying inventory_policy_auto_enable flag — the auto-flip-on-attach intent (newly-attached variants get their Shopify inventory_policy flipped to CONTINUE). When both fields are present, auto_apply_to_new_variants wins. Neither field flips EXISTING variants — to flip variants that are already attached, use POST .../products/bulk_toggle_inventory_policy, or pass the update_inventory_policy flag to the offer lifecycle enable/disable actions.
Parameters
provideranyargumentreservationanyargumentcontinue_sellinganyargumentidstringrequiredargumentURL path parameter :id
Returns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "preorders_offers_inventory_update",
"arguments": {
"id": "string"
}
}
}const result = await client.callTool("preorders_offers_inventory_update", {
"id": "string"
});result = await session.call_tool("preorders_offers_inventory_update", arguments={
"id": "string"
}){
"content": [
{
"type": "text",
"text": "..."
}
]
}preorders_offers_inventory_read
Read the inventory configuration for a preorder offer. Aliases: get inventory settings, show inventory, view inventory policy, view reservation timing, view stock handling.
Parameters
idstringrequiredargumentURL path parameter :id
Returns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "preorders_offers_inventory_read",
"arguments": {
"id": "string"
}
}
}const result = await client.callTool("preorders_offers_inventory_read", {
"id": "string"
});result = await session.call_tool("preorders_offers_inventory_read", arguments={
"id": "string"
}){
"content": [
{
"type": "text",
"text": "..."
}
]
}preorders_offers_inventory_set_provider
Set the inventory provider for a preorder offer (stoq or shopify). Aliases: set inventory provider, switch inventory provider, use shopify inventory, use stoq inventory.
Parameters
provideranystoqshopifyrequiredargumentidstringrequiredargumentURL path parameter :id
Returns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "preorders_offers_inventory_set_provider",
"arguments": {
"provider": "stoq",
"id": "string"
}
}
}const result = await client.callTool("preorders_offers_inventory_set_provider", {
"provider": "stoq",
"id": "string"
});result = await session.call_tool("preorders_offers_inventory_set_provider", arguments={
"provider": "stoq",
"id": "string"
}){
"content": [
{
"type": "text",
"text": "..."
}
]
}preorders_offers_inventory_set_reservation_timing
Set when inventory is reserved (at sale or at fulfillment). Aliases: set reservation timing, reserve on sale, reserve on fulfillment, change inventory reservation, set when inventory is held.
Parameters
timinganyon_saleon_fulfillmentrequiredargumentidstringrequiredargumentURL path parameter :id
Returns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "preorders_offers_inventory_set_reservation_timing",
"arguments": {
"timing": "on_sale",
"id": "string"
}
}
}const result = await client.callTool("preorders_offers_inventory_set_reservation_timing", {
"timing": "on_sale",
"id": "string"
});result = await session.call_tool("preorders_offers_inventory_set_reservation_timing", arguments={
"timing": "on_sale",
"id": "string"
}){
"content": [
{
"type": "text",
"text": "..."
}
]
}preorders_offers_limits_read
Read order quantity limits for a preorder offer. Aliases: get limits, show limits, view quantity limits, view order min max, limits.
Parameters
idstringrequiredargumentURL path parameter :id
Returns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "preorders_offers_limits_read",
"arguments": {
"id": "string"
}
}
}const result = await client.callTool("preorders_offers_limits_read", {
"id": "string"
});result = await session.call_tool("preorders_offers_limits_read", arguments={
"id": "string"
}){
"content": [
{
"type": "text",
"text": "..."
}
]
}preorders_offers_limits_update
Update quantity limits on a preorder offer. Aliases: edit limits, change limits, modify quantity limits, clear max per customer, remove customer limit, no customer limit, unlimited per customer, clear total max, remove total cap, no total limit, uncap total preorders, enable show remaining, show remaining units, show stock left, display quantity remaining, disable show remaining, hide remaining units, hide stock left, stop showing quantity. Note: Deep partial. Toggles and clears are done via this PATCH: clear a limit by sending null — per_customer.max: null removes the per-customer limit, total.max: null removes the total cap; display.show_remaining (true/false) toggles the remaining-units display on the storefront. Note: per_customer.max and total.max are stored config — storefront enforcement of these limits is follow-up work and not live yet.
Parameters
per_orderanyargumentper_customeranyargumenttotalanyargumentdisplayanyargumentidstringrequiredargumentURL path parameter :id
Returns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "preorders_offers_limits_update",
"arguments": {
"id": "string"
}
}
}const result = await client.callTool("preorders_offers_limits_update", {
"id": "string"
});result = await session.call_tool("preorders_offers_limits_update", arguments={
"id": "string"
}){
"content": [
{
"type": "text",
"text": "..."
}
]
}preorders_offers_limits_set_max_per_customer
Set the maximum quantity a single customer can preorder across all their orders. Aliases: set max per customer, set customer limit, limit per customer, maximum per customer, one per customer. Note: Stored config only today — storefront enforcement of the per-customer limit is follow-up work and not live yet. Clear the limit via PATCH .../limits with per_customer.max: null.
Parameters
maxanyargumentidstringrequiredargumentURL path parameter :id
Returns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "preorders_offers_limits_set_max_per_customer",
"arguments": {
"id": "string"
}
}
}const result = await client.callTool("preorders_offers_limits_set_max_per_customer", {
"id": "string"
});result = await session.call_tool("preorders_offers_limits_set_max_per_customer", arguments={
"id": "string"
}){
"content": [
{
"type": "text",
"text": "..."
}
]
}preorders_offers_limits_set_max_per_order
Set the maximum quantity a customer can preorder per order. Aliases: set maximum per order, set max quantity, maximum order quantity, set order limit.
Parameters
maxanyargumentidstringrequiredargumentURL path parameter :id
Returns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "preorders_offers_limits_set_max_per_order",
"arguments": {
"id": "string"
}
}
}const result = await client.callTool("preorders_offers_limits_set_max_per_order", {
"id": "string"
});result = await session.call_tool("preorders_offers_limits_set_max_per_order", arguments={
"id": "string"
}){
"content": [
{
"type": "text",
"text": "..."
}
]
}preorders_offers_limits_set_min_per_order
Set the minimum quantity a customer must preorder per order. Aliases: set minimum per order, set min quantity, minimum order quantity, set order minimum.
Parameters
minanyargumentidstringrequiredargumentURL path parameter :id
Returns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "preorders_offers_limits_set_min_per_order",
"arguments": {
"id": "string"
}
}
}const result = await client.callTool("preorders_offers_limits_set_min_per_order", {
"id": "string"
});result = await session.call_tool("preorders_offers_limits_set_min_per_order", arguments={
"id": "string"
}){
"content": [
{
"type": "text",
"text": "..."
}
]
}preorders_offers_limits_set_total_max
Set the total quantity that can be preordered across all customers. Aliases: set total max, set total cap, cap total preorders, limit total units, set overall limit. Note: Stored config only today — storefront enforcement of the total cap is follow-up work and not live yet. Clear the cap via PATCH .../limits with total.max: null.
Parameters
maxanyargumentidstringrequiredargumentURL path parameter :id
Returns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "preorders_offers_limits_set_total_max",
"arguments": {
"id": "string"
}
}
}const result = await client.callTool("preorders_offers_limits_set_total_max", {
"id": "string"
});result = await session.call_tool("preorders_offers_limits_set_total_max", arguments={
"id": "string"
}){
"content": [
{
"type": "text",
"text": "..."
}
]
}preorders_offers_markets_update
Update market scoping on a preorder offer. Aliases: edit markets, change market scoping, modify markets, enable market scoping, turn on market scoping, scope to markets, enable markets, disable market scoping, turn off market scoping, remove market restrictions, global preorder, enable all markets, apply to all markets, all countries, available everywhere. Note: Deep partial. Scoping is toggled via this PATCH: enabled (true/false). The offer applies to ALL markets when scoping is off ({ "enabled": false }) or when scoping is on with an empty market list — the serializer compiles applies_to_all_markets from exactly that state. PATCH bodies: all markets → { "enabled": true, "market_ids": [] } (or { "enabled": true, "applies_to_all_markets": true }, which also clears the list); specific markets → { "enabled": true, "market_ids": ["gid://shopify/Market/1", ...] } (GIDs or numeric IDs). For incremental edits keep using add_market / remove_market / set_markets.
Parameters
enabledanyargumentapplies_to_all_marketsanyargumentmarket_idsanyargumentidstringrequiredargumentURL path parameter :id
Returns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "preorders_offers_markets_update",
"arguments": {
"id": "string"
}
}
}const result = await client.callTool("preorders_offers_markets_update", {
"id": "string"
});result = await session.call_tool("preorders_offers_markets_update", arguments={
"id": "string"
}){
"content": [
{
"type": "text",
"text": "..."
}
]
}preorders_offers_markets_read
Read market scoping for a preorder offer. Aliases: get markets, show market scoping, view markets, what markets, which countries, market settings.
Parameters
idstringrequiredargumentURL path parameter :id
Returns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "preorders_offers_markets_read",
"arguments": {
"id": "string"
}
}
}const result = await client.callTool("preorders_offers_markets_read", {
"id": "string"
});result = await session.call_tool("preorders_offers_markets_read", arguments={
"id": "string"
}){
"content": [
{
"type": "text",
"text": "..."
}
]
}preorders_offers_markets_add_market
Add a market to the preorder offer's scope. Aliases: add market, include market, add country, extend to market.
Parameters
market_idanyrequiredargumentidstringrequiredargumentURL path parameter :id
Returns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "preorders_offers_markets_add_market",
"arguments": {
"id": "string"
}
}
}const result = await client.callTool("preorders_offers_markets_add_market", {
"id": "string"
});result = await session.call_tool("preorders_offers_markets_add_market", arguments={
"id": "string"
}){
"content": [
{
"type": "text",
"text": "..."
}
]
}preorders_offers_markets_remove_market
Remove a market from the preorder offer's scope. Aliases: remove market, exclude market, drop market, remove country.
Parameters
market_idanyrequiredargumentidstringrequiredargumentURL path parameter :id
Returns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "preorders_offers_markets_remove_market",
"arguments": {
"id": "string"
}
}
}const result = await client.callTool("preorders_offers_markets_remove_market", {
"id": "string"
});result = await session.call_tool("preorders_offers_markets_remove_market", arguments={
"id": "string"
}){
"content": [
{
"type": "text",
"text": "..."
}
]
}preorders_offers_markets_set_markets
Replace the set of markets a preorder offer applies to. Aliases: set markets, change markets, restrict to markets, set countries, set regions.
Parameters
market_idsanyargumentidstringrequiredargumentURL path parameter :id
Returns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "preorders_offers_markets_set_markets",
"arguments": {
"id": "string"
}
}
}const result = await client.callTool("preorders_offers_markets_set_markets", {
"id": "string"
});result = await session.call_tool("preorders_offers_markets_set_markets", arguments={
"id": "string"
}){
"content": [
{
"type": "text",
"text": "..."
}
]
}preorders_offers_payments_read
Read the payment configuration for a preorder offer. Aliases: get payment settings, show payments, view billing, view deposit, view discount, payment options.
Parameters
idstringrequiredargumentURL path parameter :id
Returns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "preorders_offers_payments_read",
"arguments": {
"id": "string"
}
}
}const result = await client.callTool("preorders_offers_payments_read", {
"id": "string"
});result = await session.call_tool("preorders_offers_payments_read", arguments={
"id": "string"
}){
"content": [
{
"type": "text",
"text": "..."
}
]
}preorders_offers_payments_update
Update payment settings on a preorder offer. Aliases: edit payments, change payment settings, modify billing, change discount, update remaining balance settings, clear discount, remove discount, no discount, stop discount, remove preorder discount, enable auto collect, enable auto charge, auto-charge balance, automatically charge balance, turn on auto collect, disable auto collect, disable auto charge, stop auto charge, turn off auto collect, manual balance collection, enable auto collect on fulfillment, charge on fulfillment, auto charge at ship time, collect balance on ship, disable auto collect on fulfillment, don't charge on fulfillment, turn off charge at ship time, stop collecting on ship. Note: Use SetOptionCopy / EnableOption / DisableOption to edit individual payment options. Boolean toggles are set via this PATCH: remaining_balance.auto_collect, remaining_balance.auto_collect_on_fulfillment — e.g. { remaining_balance: { auto_collect: false } }. Clear the discount via { discount: { type: "no_discount" } } (the stored value is nulled automatically).
Parameters
discountanyargumentremaining_balanceanyargumentidstringrequiredargumentURL path parameter :id
Returns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "preorders_offers_payments_update",
"arguments": {
"id": "string"
}
}
}const result = await client.callTool("preorders_offers_payments_update", {
"id": "string"
});result = await session.call_tool("preorders_offers_payments_update", arguments={
"id": "string"
}){
"content": [
{
"type": "text",
"text": "..."
}
]
}preorders_offers_payments_disable_option
Remove a payment option (full or partial) from the offer. Aliases: disable payment option, remove full payment option, remove partial payment option, stop offering deposit, stop offering full payment. Note: Only valid on full_and_partial offers — an offer must keep at least one payment option. Use set_mode to switch a single-mode offer.
Parameters
option_typeanyfullpartialrequiredargumentidstringrequiredargumentURL path parameter :id
Returns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "preorders_offers_payments_disable_option",
"arguments": {
"option_type": "full",
"id": "string"
}
}
}const result = await client.callTool("preorders_offers_payments_disable_option", {
"option_type": "full",
"id": "string"
});result = await session.call_tool("preorders_offers_payments_disable_option", arguments={
"option_type": "full",
"id": "string"
}){
"content": [
{
"type": "text",
"text": "..."
}
]
}preorders_offers_payments_enable_option
Add a payment option (full or partial) to the offer. Aliases: enable payment option, add full payment option, add partial payment option, offer both payment options, let customers choose how to pay. Note: Idempotent. Newly added options start from the dashboard defaults — use set_deposit_percent / set_option_copy to fine-tune. Disable with disable_option.
Parameters
option_typeanyfullpartialrequiredargumentidstringrequiredargumentURL path parameter :id
Returns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "preorders_offers_payments_enable_option",
"arguments": {
"option_type": "full",
"id": "string"
}
}
}const result = await client.callTool("preorders_offers_payments_enable_option", {
"option_type": "full",
"id": "string"
});result = await session.call_tool("preorders_offers_payments_enable_option", arguments={
"option_type": "full",
"id": "string"
}){
"content": [
{
"type": "text",
"text": "..."
}
]
}preorders_offers_payments_set_deposit_percent
Set the deposit percentage charged at checkout on the partial payment option. Aliases: set deposit percent, set deposit percentage, change deposit amount, set upfront payment percent, change down payment. Note: Requires a partial payment option (mode partial or full_and_partial) — use set_mode first. Percent must be between 1 and 99; 100% upfront is the full payment mode.
Parameters
percentinteger[1, 99]requiredargumentidstringrequiredargumentURL path parameter :id
Returns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "preorders_offers_payments_set_deposit_percent",
"arguments": {
"percent": 1,
"id": "string"
}
}
}const result = await client.callTool("preorders_offers_payments_set_deposit_percent", {
"percent": 1,
"id": "string"
});result = await session.call_tool("preorders_offers_payments_set_deposit_percent", arguments={
"percent": 1,
"id": "string"
}){
"content": [
{
"type": "text",
"text": "..."
}
]
}preorders_offers_payments_set_discount
Set the preorder discount. Aliases: set discount, apply discount, change discount, set percentage off, set amount off.
Parameters
typeanypercentagepricefixed_amountno_discountrequiredargumentvalueanyargumentidstringrequiredargumentURL path parameter :id
Returns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "preorders_offers_payments_set_discount",
"arguments": {
"type": "percentage",
"id": "string"
}
}
}const result = await client.callTool("preorders_offers_payments_set_discount", {
"type": "percentage",
"id": "string"
});result = await session.call_tool("preorders_offers_payments_set_discount", arguments={
"type": "percentage",
"id": "string"
}){
"content": [
{
"type": "text",
"text": "..."
}
]
}preorders_offers_payments_set_discount_text
Set the discount blurb shown on the offer's payment options. Aliases: set discount text, change discount blurb, set discount message, change discount copy, set savings text. Note: Pass option_type (full | partial) to target one payment option; omit it to apply the text to every option. Supports the {{ discount }} placeholder.
Parameters
textanyrequiredargumentoption_typeanyfullpartialargumentidstringrequiredargumentURL path parameter :id
Returns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "preorders_offers_payments_set_discount_text",
"arguments": {
"option_type": "full",
"id": "string"
}
}
}const result = await client.callTool("preorders_offers_payments_set_discount_text", {
"option_type": "full",
"id": "string"
});result = await session.call_tool("preorders_offers_payments_set_discount_text", arguments={
"option_type": "full",
"id": "string"
}){
"content": [
{
"type": "text",
"text": "..."
}
]
}preorders_offers_payments_set_mode
Switch the offer between full, partial, and full-and-partial payment modes. Aliases: set payment mode, full payment only, partial payment only, deposit only, offer both full and partial payment, change payment options. Note: Idempotent. Collapsing from full_and_partial keeps the surviving option's copy; newly enabled modes start from the dashboard defaults. Use set_deposit_percent and set_option_copy afterwards to fine-tune.
Parameters
modeanyfullpartialfull_and_partialrequiredargumentidstringrequiredargumentURL path parameter :id
Returns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "preorders_offers_payments_set_mode",
"arguments": {
"mode": "full",
"id": "string"
}
}
}const result = await client.callTool("preorders_offers_payments_set_mode", {
"mode": "full",
"id": "string"
});result = await session.call_tool("preorders_offers_payments_set_mode", arguments={
"mode": "full",
"id": "string"
}){
"content": [
{
"type": "text",
"text": "..."
}
]
}preorders_offers_payments_set_option_copy
Set the merchant-facing copy on a payment option (title, description, discount text). Aliases: set option copy, set partial option copy, set full option copy, change billing title, set payment option text, set deposit option text.
Parameters
option_typeanyfullpartialrequiredargumentbilling_titleanyargumentbilling_descriptionanyargumentdiscount_textanyargumentidstringrequiredargumentURL path parameter :id
Returns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "preorders_offers_payments_set_option_copy",
"arguments": {
"option_type": "full",
"id": "string"
}
}
}const result = await client.callTool("preorders_offers_payments_set_option_copy", {
"option_type": "full",
"id": "string"
});result = await session.call_tool("preorders_offers_payments_set_option_copy", arguments={
"option_type": "full",
"id": "string"
}){
"content": [
{
"type": "text",
"text": "..."
}
]
}preorders_offers_products_read
Read the products configuration for a preorder offer (source rule + variant summary). Aliases: get products, show linked products, view variants on offer, view product source, what's on this offer.
Parameters
idstringrequiredargumentURL path parameter :id
Returns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "preorders_offers_products_read",
"arguments": {
"id": "string"
}
}
}const result = await client.callTool("preorders_offers_products_read", {
"id": "string"
});result = await session.call_tool("preorders_offers_products_read", arguments={
"id": "string"
}){
"content": [
{
"type": "text",
"text": "..."
}
]
}preorders_offers_products_update
Update the product selection on a preorder offer — set the source rule plus its matching sub-block. Aliases: edit products, change product selection, change variant source, set products, modify products on offer. Note: Delegates to the set_source_to_* actions; switching source resets the variant set. source 'all' requires confirm: true. Only the sub-block matching source may be provided.
Parameters
sourceanyallcollectioncustomrequiredargumentcustomnull | objectargumentcollectionnull | objectargumentallnull | objectargumentconfirmanyargumentidstringrequiredargumentURL path parameter :id
Returns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "preorders_offers_products_update",
"arguments": {
"source": "all",
"custom": null,
"collection": null,
"all": null,
"id": "string"
}
}
}const result = await client.callTool("preorders_offers_products_update", {
"source": "all",
"custom": null,
"collection": null,
"all": null,
"id": "string"
});result = await session.call_tool("preorders_offers_products_update", arguments={
"source": "all",
"custom": null,
"collection": null,
"all": null,
"id": "string"
}){
"content": [
{
"type": "text",
"text": "..."
}
]
}preorders_offers_products_add_variants
Attach variants to a custom-source preorder offer. Aliases: add variants, attach variants, add products to offer, link variants, include variants. Note: Custom source only. Runs through BulkVariantAdditionService (async).
Parameters
variant_idsanyargumentidstringrequiredargumentURL path parameter :id
Returns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "preorders_offers_products_add_variants",
"arguments": {
"id": "string"
}
}
}const result = await client.callTool("preorders_offers_products_add_variants", {
"id": "string"
});result = await session.call_tool("preorders_offers_products_add_variants", arguments={
"id": "string"
}){
"content": [
{
"type": "text",
"text": "..."
}
]
}preorders_offers_products_bulk_toggle_inventory_policy
Flip the Shopify inventory policy on variants attached to a preorder offer (CONTINUE or DENY). Aliases: flip inventory policy, toggle continue selling on variants, set inventory policy for variants, enable oversell on these variants, disable oversell on these variants. Note: Async via SellingPlans::BulkInventoryPolicyUpdateJob. Omit variant_ids to apply to all attached variants.
Parameters
policyanyCONTINUEDENYrequiredargumentvariant_idsanyargumentidstringrequiredargumentURL path parameter :id
Returns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "preorders_offers_products_bulk_toggle_inventory_policy",
"arguments": {
"policy": "CONTINUE",
"id": "string"
}
}
}const result = await client.callTool("preorders_offers_products_bulk_toggle_inventory_policy", {
"policy": "CONTINUE",
"id": "string"
});result = await session.call_tool("preorders_offers_products_bulk_toggle_inventory_policy", arguments={
"policy": "CONTINUE",
"id": "string"
}){
"content": [
{
"type": "text",
"text": "..."
}
]
}preorders_offers_products_remove_variants
Remove variants from a custom-source preorder offer. Aliases: remove variants, detach variants, remove products from offer, unlink variants, exclude variants. Note: Custom source only. Resets per-variant metafields on Shopify.
Parameters
variant_idsanyargumentidstringrequiredargumentURL path parameter :id
Returns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "preorders_offers_products_remove_variants",
"arguments": {
"id": "string"
}
}
}const result = await client.callTool("preorders_offers_products_remove_variants", {
"id": "string"
});result = await session.call_tool("preorders_offers_products_remove_variants", arguments={
"id": "string"
}){
"content": [
{
"type": "text",
"text": "..."
}
]
}preorders_offers_products_set_collection
Change the collection driving a collection-sourced preorder offer. Aliases: change collection, swap collection, use a different collection, update the collection on the offer. Note: Collection-sourced offers only — returns 409 Conflict otherwise. Use set_source_to_collection to switch a non-collection offer to collection source.
Parameters
collection_idanyrequiredargumentidstringrequiredargumentURL path parameter :id
Returns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "preorders_offers_products_set_collection",
"arguments": {
"id": "string"
}
}
}const result = await client.callTool("preorders_offers_products_set_collection", {
"id": "string"
});result = await session.call_tool("preorders_offers_products_set_collection", arguments={
"id": "string"
}){
"content": [
{
"type": "text",
"text": "..."
}
]
}preorders_offers_products_set_excluded_variants
Replace the explicit excluded-variant list for an all-source preorder offer. Aliases: set excluded variants, exclude variants list, block variants from offer. Note: All-source offers only.
Parameters
variant_idsanyargumentidstringrequiredargumentURL path parameter :id
Returns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "preorders_offers_products_set_excluded_variants",
"arguments": {
"id": "string"
}
}
}const result = await client.callTool("preorders_offers_products_set_excluded_variants", {
"id": "string"
});result = await session.call_tool("preorders_offers_products_set_excluded_variants", arguments={
"id": "string"
}){
"content": [
{
"type": "text",
"text": "..."
}
]
}preorders_offers_products_set_exclusion_tag
Set the exclusion tag for an all-source preorder offer (variants with this tag are excluded). Aliases: set exclusion tag, exclude by tag, set exclude tag. Note: All-source offers only.
Parameters
taganyargumentidstringrequiredargumentURL path parameter :id
Returns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "preorders_offers_products_set_exclusion_tag",
"arguments": {
"id": "string"
}
}
}const result = await client.callTool("preorders_offers_products_set_exclusion_tag", {
"id": "string"
});result = await session.call_tool("preorders_offers_products_set_exclusion_tag", arguments={
"id": "string"
}){
"content": [
{
"type": "text",
"text": "..."
}
]
}preorders_offers_products_set_source_to_all
Switch the offer to apply to every variant in the shop, minus exclusions. Requires confirm: true. Aliases: set source to all, apply to all products, auto-source, every variant, shop-wide preorder. Note: Requires confirm: true in the body. Resolution runs async over the entire catalog.
Parameters
confirmanyargumentexclusion_taganyargumentexcluded_variant_idsanyargumentidstringrequiredargumentURL path parameter :id
Returns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "preorders_offers_products_set_source_to_all",
"arguments": {
"id": "string"
}
}
}const result = await client.callTool("preorders_offers_products_set_source_to_all", {
"id": "string"
});result = await session.call_tool("preorders_offers_products_set_source_to_all", arguments={
"id": "string"
}){
"content": [
{
"type": "text",
"text": "..."
}
]
}preorders_offers_products_set_source_to_collection
Switch the offer to a collection-driven variant source. Aliases: set source to collection, use a collection, link to collection, set products from collection, drive variants from collection. Note: Resolution runs asynchronously. New variants added to the collection in Shopify are NOT auto-picked-up — call this action again to refresh.
Parameters
collection_idanyrequiredargumentidstringrequiredargumentURL path parameter :id
Returns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "preorders_offers_products_set_source_to_collection",
"arguments": {
"id": "string"
}
}
}const result = await client.callTool("preorders_offers_products_set_source_to_collection", {
"id": "string"
});result = await session.call_tool("preorders_offers_products_set_source_to_collection", arguments={
"id": "string"
}){
"content": [
{
"type": "text",
"text": "..."
}
]
}preorders_offers_products_set_source_to_custom
Switch the offer to a custom variant list. Optionally seed it with variant IDs. Aliases: set source to custom, use custom variants, custom product list, switch to custom. Note: Variant attachment runs through BulkVariantAdditionService and is async (202 + job_id).
Parameters
variant_idsanyargumentidstringrequiredargumentURL path parameter :id
Returns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "preorders_offers_products_set_source_to_custom",
"arguments": {
"id": "string"
}
}
}const result = await client.callTool("preorders_offers_products_set_source_to_custom", {
"id": "string"
});result = await session.call_tool("preorders_offers_products_set_source_to_custom", arguments={
"id": "string"
}){
"content": [
{
"type": "text",
"text": "..."
}
]
}preorders_offers_products_variants_list
List the variants attached to a preorder offer with their per-variant settings, paginated. Aliases: list variants on offer, variants attached to offer, show offer variants, attached variants, offer variant list.
Parameters
pageanyargumentper_pageanyargumentidstringrequiredargumentURL path parameter :id
Returns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "preorders_offers_products_variants_list",
"arguments": {
"id": "string"
}
}
}const result = await client.callTool("preorders_offers_products_variants_list", {
"id": "string"
});result = await session.call_tool("preorders_offers_products_variants_list", arguments={
"id": "string"
}){
"content": [
{
"type": "text",
"text": "..."
}
]
}preorders_offers_products_variants_read
Read the per-offer settings of a single variant attached to a preorder offer. Aliases: show variant settings on offer, view per-variant overrides, get variant on offer, variant settings.
Parameters
idstringrequiredargumentURL path parameter :id
variant_idstringrequiredargumentURL path parameter :variant_id
Returns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "preorders_offers_products_variants_read",
"arguments": {
"id": "string",
"variant_id": "string"
}
}
}const result = await client.callTool("preorders_offers_products_variants_read", {
"id": "string",
"variant_id": "string"
});result = await session.call_tool("preorders_offers_products_variants_read", arguments={
"id": "string",
"variant_id": "string"
}){
"content": [
{
"type": "text",
"text": "..."
}
]
}preorders_offers_products_variants_update_settings
Set per-offer overrides on an attached variant — shipping text, max preorder count, market-scoped overrides. Aliases: override variant settings, set shipping text for variant, set max count for variant, per-variant overrides. Note: null clears an override; the variant falls back to the offer-level value. market_overrides writes the per-market metafields (market_shipping_text, market_preorder_max_count) keyed by Shopify market GID.
Parameters
shipping_textnull | stringargumentmax_countnull | integerargumentmarket_overridesnull | objectargumentidstringrequiredargumentURL path parameter :id
variant_idstringrequiredargumentURL path parameter :variant_id
Returns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "preorders_offers_products_variants_update_settings",
"arguments": {
"shipping_text": null,
"max_count": null,
"market_overrides": null,
"id": "string",
"variant_id": "string"
}
}
}const result = await client.callTool("preorders_offers_products_variants_update_settings", {
"shipping_text": null,
"max_count": null,
"market_overrides": null,
"id": "string",
"variant_id": "string"
});result = await session.call_tool("preorders_offers_products_variants_update_settings", arguments={
"shipping_text": null,
"max_count": null,
"market_overrides": null,
"id": "string",
"variant_id": "string"
}){
"content": [
{
"type": "text",
"text": "..."
}
]
}preorders_offers_restore
Restore a discarded preorder offer. Aliases: undelete, undiscard, undo delete, bring back. Note: Variant attachments and metafields are not auto-restored. Re-attach via the products capability.
Parameters
idstringrequiredargumentURL path parameter :id
Returns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "preorders_offers_restore",
"arguments": {
"id": "string"
}
}
}const result = await client.callTool("preorders_offers_restore", {
"id": "string"
});result = await session.call_tool("preorders_offers_restore", arguments={
"id": "string"
}){
"content": [
{
"type": "text",
"text": "..."
}
]
}preorders_offers_schedule
Set the schedule window for a preorder offer. Aliases: set schedule, schedule launch, set start date, set end date, schedule offer. Note: Does not auto-enable. Storefront reads the schedule live.
Parameters
startanyargumentendanyargumentidstringrequiredargumentURL path parameter :id
Returns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "preorders_offers_schedule",
"arguments": {
"id": "string"
}
}
}const result = await client.callTool("preorders_offers_schedule", {
"id": "string"
});result = await session.call_tool("preorders_offers_schedule", arguments={
"id": "string"
}){
"content": [
{
"type": "text",
"text": "..."
}
]
}preorders_offers_shipping_update
Update shipping settings on a preorder offer. Aliases: edit shipping, change shipping settings, change delivery, change fulfillment, modify shipping, enable fulfillment hold, hold fulfillments, hold preorder fulfillments, turn on fulfillment hold, prevent shipping until released, disable fulfillment hold, release fulfillments, stop holding fulfillments, turn off fulfillment hold, let preorder ship immediately, enable shipping timeline, show shipping timeline, show detailed shipping, turn on timeline, disable shipping timeline, hide shipping timeline, show simplified shipping, turn off timeline, enable split, enable split orders, enable split fulfillments, turn on order splitting, separate preorder from regular, disable split, disable split orders, disable split fulfillments, turn off order splitting, stop separating preorders, enable split hold fulfillments, hold split order fulfillments, hold fulfillments on split order, don't ship split order immediately, disable split hold fulfillments, release split order fulfillments, ship split order immediately, stop holding split order, enable split sequential number, sequential split order numbers, number split orders sequentially, sequential order name for split, disable split sequential number, no sequential split order numbers, stop numbering split orders sequentially. Note: Deep partial. Prefer the intent-bearing actions (set_delivery_*, set_shipping_text, set_split_order_tag, set_split_transaction_gateway) for narrow edits. Toggles are done via this PATCH: fulfillment.hold (true/false) holds/releases fulfillment orders containing preorder items; display.show_shipping_timeline (true shows the detailed PDP timeline, false the simplified text); fulfillment.split.enabled (true/false) turns order splitting on/off (flips both split flags); fulfillment.split.hold_fulfillments (true/false) holds the split order's fulfillments; fulfillment.split.sequential_number (true/false) gives split orders a sequential order name.
Parameters
deliveryanyargumentdisplayanyargumentfulfillmentanyargumentidstringrequiredargumentURL path parameter :id
Returns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "preorders_offers_shipping_update",
"arguments": {
"id": "string"
}
}
}const result = await client.callTool("preorders_offers_shipping_update", {
"id": "string"
});result = await session.call_tool("preorders_offers_shipping_update", arguments={
"id": "string"
}){
"content": [
{
"type": "text",
"text": "..."
}
]
}preorders_offers_shipping_read
Read shipping settings for a preorder offer. Aliases: get shipping, show shipping, view delivery, view fulfillment, view shipping text, shipping settings.
Parameters
idstringrequiredargumentURL path parameter :id
Returns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "preorders_offers_shipping_read",
"arguments": {
"id": "string"
}
}
}const result = await client.callTool("preorders_offers_shipping_read", {
"id": "string"
});result = await session.call_tool("preorders_offers_shipping_read", arguments={
"id": "string"
}){
"content": [
{
"type": "text",
"text": "..."
}
]
}preorders_offers_shipping_set_delivery_asap
Set delivery to 'as soon as possible' (no specific date or window). Aliases: set delivery asap, ship asap, set delivery to asap, ship as soon as possible.
Parameters
idstringrequiredargumentURL path parameter :id
Returns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "preorders_offers_shipping_set_delivery_asap",
"arguments": {
"id": "string"
}
}
}const result = await client.callTool("preorders_offers_shipping_set_delivery_asap", {
"id": "string"
});result = await session.call_tool("preorders_offers_shipping_set_delivery_asap", arguments={
"id": "string"
}){
"content": [
{
"type": "text",
"text": "..."
}
]
}preorders_offers_shipping_set_delivery_date
Set an exact delivery date for the preorder. Aliases: set delivery date, ship on date, set ship date, set exact delivery date.
Parameters
dateanyrequiredargumentidstringrequiredargumentURL path parameter :id
Returns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "preorders_offers_shipping_set_delivery_date",
"arguments": {
"id": "string"
}
}
}const result = await client.callTool("preorders_offers_shipping_set_delivery_date", {
"id": "string"
});result = await session.call_tool("preorders_offers_shipping_set_delivery_date", arguments={
"id": "string"
}){
"content": [
{
"type": "text",
"text": "..."
}
]
}preorders_offers_shipping_set_delivery_window
Set a delivery window in days from checkout (e.g. 'ships within 14 days'). Aliases: set delivery window, ship within days, set delivery in days, set ship window.
Parameters
daysanyargumentidstringrequiredargumentURL path parameter :id
Returns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "preorders_offers_shipping_set_delivery_window",
"arguments": {
"id": "string"
}
}
}const result = await client.callTool("preorders_offers_shipping_set_delivery_window", {
"id": "string"
});result = await session.call_tool("preorders_offers_shipping_set_delivery_window", arguments={
"id": "string"
}){
"content": [
{
"type": "text",
"text": "..."
}
]
}preorders_offers_shipping_set_shipping_text
Set the customer-facing shipping text shown on the PDP. Aliases: set shipping text, change shipping text, update shipping message, set delivery text, change PDP shipping line.
Parameters
textanyrequiredargumentidstringrequiredargumentURL path parameter :id
Returns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "preorders_offers_shipping_set_shipping_text",
"arguments": {
"id": "string"
}
}
}const result = await client.callTool("preorders_offers_shipping_set_shipping_text", {
"id": "string"
});result = await session.call_tool("preorders_offers_shipping_set_shipping_text", arguments={
"id": "string"
}){
"content": [
{
"type": "text",
"text": "..."
}
]
}preorders_offers_shipping_set_split_order_tag
Set the tag applied to split orders on Shopify. Aliases: set split order tag, change split tag, set split order label.
Parameters
taganyrequiredargumentidstringrequiredargumentURL path parameter :id
Returns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "preorders_offers_shipping_set_split_order_tag",
"arguments": {
"id": "string"
}
}
}const result = await client.callTool("preorders_offers_shipping_set_split_order_tag", {
"id": "string"
});result = await session.call_tool("preorders_offers_shipping_set_split_order_tag", arguments={
"id": "string"
}){
"content": [
{
"type": "text",
"text": "..."
}
]
}preorders_offers_shipping_set_split_transaction_gateway
Set the payment gateway used for the split order transaction (e.g. 'Store Credit'). Aliases: set split transaction gateway, set split payment gateway, change split order gateway.
Parameters
gatewayanyrequiredargumentidstringrequiredargumentURL path parameter :id
Returns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "preorders_offers_shipping_set_split_transaction_gateway",
"arguments": {
"id": "string"
}
}
}const result = await client.callTool("preorders_offers_shipping_set_split_transaction_gateway", {
"id": "string"
});result = await session.call_tool("preorders_offers_shipping_set_split_transaction_gateway", arguments={
"id": "string"
}){
"content": [
{
"type": "text",
"text": "..."
}
]
}preorders_offers_translations_read
Read every translation override on a preorder offer, plus the full enumeration of translatable field paths. Aliases: get translations, show translations, view translations, list translations, view localized text, i18n, localization.
Parameters
idstringrequiredargumentURL path parameter :id
Returns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "preorders_offers_translations_read",
"arguments": {
"id": "string"
}
}
}const result = await client.callTool("preorders_offers_translations_read", {
"id": "string"
});result = await session.call_tool("preorders_offers_translations_read", arguments={
"id": "string"
}){
"content": [
{
"type": "text",
"text": "..."
}
]
}preorders_offers_translations_clear_locale
Remove all translation overrides for one locale on a preorder offer. Aliases: clear locale, remove locale, wipe locale, drop translations for locale, remove all translations for a language.
Parameters
localeanyrequiredargumentidstringrequiredargumentURL path parameter :id
Returns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "preorders_offers_translations_clear_locale",
"arguments": {
"id": "string"
}
}
}const result = await client.callTool("preorders_offers_translations_clear_locale", {
"id": "string"
});result = await session.call_tool("preorders_offers_translations_clear_locale", arguments={
"id": "string"
}){
"content": [
{
"type": "text",
"text": "..."
}
]
}preorders_offers_translations_set
Set a single translation override (one locale, one field) on a preorder offer. Aliases: set translation, add translation, translate field, localize a field, set localized text.
Parameters
localeanyrequiredargumentfieldanyrequiredargumentvalueanyargumentidstringrequiredargumentURL path parameter :id
Returns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "preorders_offers_translations_set",
"arguments": {
"id": "string"
}
}
}const result = await client.callTool("preorders_offers_translations_set", {
"id": "string"
});result = await session.call_tool("preorders_offers_translations_set", arguments={
"id": "string"
}){
"content": [
{
"type": "text",
"text": "..."
}
]
}preorders_offers_translations_set_many
Set many translation overrides for one locale on a preorder offer, atomically. Aliases: set many translations, translate offer, bulk translate, localize offer, translate to french, add translations. Note: All-or-nothing. Pre-validates every field path before writing.
Parameters
localeanyrequiredargumenttranslationsanyrequiredargumentidstringrequiredargumentURL path parameter :id
Returns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "preorders_offers_translations_set_many",
"arguments": {
"id": "string"
}
}
}const result = await client.callTool("preorders_offers_translations_set_many", {
"id": "string"
});result = await session.call_tool("preorders_offers_translations_set_many", arguments={
"id": "string"
}){
"content": [
{
"type": "text",
"text": "..."
}
]
}preorders_offers_translations_unset
Remove a translation override (one locale, one field) from a preorder offer. Aliases: unset translation, remove translation, clear translation, delete localized text, remove localized override.
Parameters
localeanyrequiredargumentfieldanyrequiredargumentidstringrequiredargumentURL path parameter :id
Returns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "preorders_offers_translations_unset",
"arguments": {
"id": "string"
}
}
}const result = await client.callTool("preorders_offers_translations_unset", {
"id": "string"
});result = await session.call_tool("preorders_offers_translations_unset", arguments={
"id": "string"
}){
"content": [
{
"type": "text",
"text": "..."
}
]
}preorders_offers_unschedule
Clear the schedule window on a preorder offer. Aliases: clear schedule, remove schedule, no schedule, unschedule offer.
Parameters
idstringrequiredargumentURL path parameter :id
Returns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "preorders_offers_unschedule",
"arguments": {
"id": "string"
}
}
}const result = await client.callTool("preorders_offers_unschedule", {
"id": "string"
});result = await session.call_tool("preorders_offers_unschedule", arguments={
"id": "string"
}){
"content": [
{
"type": "text",
"text": "..."
}
]
}preorders_offers_widget_read
Read the widget configuration for a preorder offer. Aliases: get widget, show widget, view button settings, view badge settings, view disclaimer settings, preorder ui.
Parameters
idstringrequiredargumentURL path parameter :id
Returns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "preorders_offers_widget_read",
"arguments": {
"id": "string"
}
}
}const result = await client.callTool("preorders_offers_widget_read", {
"id": "string"
});result = await session.call_tool("preorders_offers_widget_read", arguments={
"id": "string"
}){
"content": [
{
"type": "text",
"text": "..."
}
]
}preorders_offers_widget_update
Update any subset of the widget configuration on a preorder offer. Aliases: edit widget, change widget settings, modify widget, update preorder ui, enable badge, show badge, turn on badge, make badge visible, disable badge, hide badge, turn off badge, remove badge, enable disclaimer, show disclaimer, turn on disclaimer, show fine print, show shipping notice, disable disclaimer, hide disclaimer, turn off disclaimer, hide fine print, remove shipping notice, enable custom button colors, use custom button colors, turn on button colors, apply custom colors, disable custom button colors, use theme button colors, turn off button colors, revert to theme colors, enable billing widget, show payment breakdown, show payment widget, turn on billing widget, disable billing widget, hide payment breakdown, hide payment widget, turn off billing widget. Note: Deep partial. Use the intent-bearing widget actions for narrow edits. Boolean toggles are set via this PATCH: badge.enabled, disclaimer.enabled, button.colors.enabled, billing_widget.enabled — e.g. { badge: { enabled: false } }. Clearing a value: send null.
Parameters
buttonanyargumentdisclaimeranyargumentbadgeanyargumentbilling_widgetanyargumentidstringrequiredargumentURL path parameter :id
Returns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "preorders_offers_widget_update",
"arguments": {
"id": "string"
}
}
}const result = await client.callTool("preorders_offers_widget_update", {
"id": "string"
});result = await session.call_tool("preorders_offers_widget_update", arguments={
"id": "string"
}){
"content": [
{
"type": "text",
"text": "..."
}
]
}preorders_offers_widget_set_badge_colors
Set the preorder badge's text and background colors. Aliases: change badge colors, set badge color, customize badge colors, change badge background.
Parameters
text_coloranyargumentbackground_coloranyargumentidstringrequiredargumentURL path parameter :id
Returns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "preorders_offers_widget_set_badge_colors",
"arguments": {
"id": "string"
}
}
}const result = await client.callTool("preorders_offers_widget_set_badge_colors", {
"id": "string"
});result = await session.call_tool("preorders_offers_widget_set_badge_colors", arguments={
"id": "string"
}){
"content": [
{
"type": "text",
"text": "..."
}
]
}preorders_offers_widget_set_badge_text
Set the preorder badge text. Aliases: change badge text, set badge label, rename badge, change preorder badge text, update badge text. Note: Use enable_badge / disable_badge to control visibility.
Parameters
textanyrequiredargumentidstringrequiredargumentURL path parameter :id
Returns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "preorders_offers_widget_set_badge_text",
"arguments": {
"id": "string"
}
}
}const result = await client.callTool("preorders_offers_widget_set_badge_text", {
"id": "string"
});result = await session.call_tool("preorders_offers_widget_set_badge_text", arguments={
"id": "string"
}){
"content": [
{
"type": "text",
"text": "..."
}
]
}preorders_offers_widget_set_billing_widget_text
Set the billing widget's title and description (the PDP payment-breakdown block). Aliases: set billing widget title, set billing widget description, change payment breakdown text, edit billing widget copy. Note: These fields are shared with the first payment option's copy (see payments/set_option_copy). Use enable_billing_widget / disable_billing_widget to control visibility.
Parameters
titleanyargumentdescriptionanyargumentidstringrequiredargumentURL path parameter :id
Returns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "preorders_offers_widget_set_billing_widget_text",
"arguments": {
"id": "string"
}
}
}const result = await client.callTool("preorders_offers_widget_set_billing_widget_text", {
"id": "string"
});result = await session.call_tool("preorders_offers_widget_set_billing_widget_text", arguments={
"id": "string"
}){
"content": [
{
"type": "text",
"text": "..."
}
]
}preorders_offers_widget_set_disclaimer_style
Set the disclaimer banner's colors and border radius. Aliases: change disclaimer colors, set disclaimer style, style the disclaimer, set disclaimer border radius, change disclaimer background.
Parameters
text_coloranyargumentbackground_coloranyargumentborder_radiusinteger>= 0argumentidstringrequiredargumentURL path parameter :id
Returns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "preorders_offers_widget_set_disclaimer_style",
"arguments": {
"border_radius": 0,
"id": "string"
}
}
}const result = await client.callTool("preorders_offers_widget_set_disclaimer_style", {
"border_radius": 0,
"id": "string"
});result = await session.call_tool("preorders_offers_widget_set_disclaimer_style", arguments={
"border_radius": 0,
"id": "string"
}){
"content": [
{
"type": "text",
"text": "..."
}
]
}preorders_offers_widget_set_disclaimer_text
Set the disclaimer banner text shown under the preorder button. Aliases: change disclaimer text, set disclaimer text, edit disclaimer, change disclaimer message, set shipping disclaimer. Note: Use enable_disclaimer / disable_disclaimer to control visibility.
Parameters
textanyrequiredargumentidstringrequiredargumentURL path parameter :id
Returns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "preorders_offers_widget_set_disclaimer_text",
"arguments": {
"id": "string"
}
}
}const result = await client.callTool("preorders_offers_widget_set_disclaimer_text", {
"id": "string"
});result = await session.call_tool("preorders_offers_widget_set_disclaimer_text", arguments={
"id": "string"
}){
"content": [
{
"type": "text",
"text": "..."
}
]
}preorders_orders_list
List preorder orders in this shop, paginated. Aliases: list preorder orders, show all preorder orders, preorder orders, list orders.
Parameters
pageanyargumentper_pageanyargumentstateanyargumentoffer_idanyargumentvariant_idanyargumentcustomer_idanyargumentfromanyargumenttoanyargumentReturns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "preorders_orders_list",
"arguments": {}
}
}const result = await client.callTool("preorders_orders_list", {});result = await session.call_tool("preorders_orders_list", arguments={}){
"content": [
{
"type": "text",
"text": "..."
}
]
}preorders_orders_read
Read a preorder order's full representation. Aliases: show preorder order, get order, look up order, view preorder order.
Parameters
idstringrequiredargumentURL path parameter :id
Returns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "preorders_orders_read",
"arguments": {
"id": "string"
}
}
}const result = await client.callTool("preorders_orders_read", {
"id": "string"
});result = await session.call_tool("preorders_orders_read", arguments={
"id": "string"
}){
"content": [
{
"type": "text",
"text": "..."
}
]
}preorders_orders_cancel
Cancel a preorder. Optionally refund deposit / balance and notify the customer. Aliases: cancel order, cancel preorder, void preorder, stop this preorder. Note: Does not cancel the Shopify order; sets cancelled_at on the preorder attribution. Use the refund flags for refunds.
Parameters
refund_depositanyargumentrefund_balanceanyargumentnotify_customeranyargumentreasonanyargumentidstringrequiredargumentURL path parameter :id
Returns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "preorders_orders_cancel",
"arguments": {
"id": "string"
}
}
}const result = await client.callTool("preorders_orders_cancel", {
"id": "string"
});result = await session.call_tool("preorders_orders_cancel", arguments={
"id": "string"
}){
"content": [
{
"type": "text",
"text": "..."
}
]
}preorders_orders_fulfillment_update
Update fulfillment attributes on a preorder order. Only hold_reason_note is writable. Aliases: update fulfillment, edit fulfillment, change hold reason, update hold note. Note: Hold state changes go through release_holds / apply_holds. all_held, any_held, and fulfillment_orders are read-only. Delegates to SetHoldReason; existing holds on Shopify aren't re-written.
Parameters
hold_reason_notenull | stringargumentidstringrequiredargumentURL path parameter :id
Returns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "preorders_orders_fulfillment_update",
"arguments": {
"hold_reason_note": null,
"id": "string"
}
}
}const result = await client.callTool("preorders_orders_fulfillment_update", {
"hold_reason_note": null,
"id": "string"
});result = await session.call_tool("preorders_orders_fulfillment_update", arguments={
"hold_reason_note": null,
"id": "string"
}){
"content": [
{
"type": "text",
"text": "..."
}
]
}preorders_orders_fulfillment_read
Read the fulfillment hold state and fulfillment-order summary of a preorder order. Aliases: order fulfillment, shipping, hold state, fulfillment hold.
Parameters
idstringrequiredargumentURL path parameter :id
Returns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "preorders_orders_fulfillment_read",
"arguments": {
"id": "string"
}
}
}const result = await client.callTool("preorders_orders_fulfillment_read", {
"id": "string"
});result = await session.call_tool("preorders_orders_fulfillment_read", arguments={
"id": "string"
}){
"content": [
{
"type": "text",
"text": "..."
}
]
}preorders_orders_fulfillment_apply_holds
Apply fulfillment holds on the order's fulfillment orders. Idempotent. Aliases: apply holds, add holds to fulfillments, place fulfillments on hold.
Parameters
idstringrequiredargumentURL path parameter :id
Returns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "preorders_orders_fulfillment_apply_holds",
"arguments": {
"id": "string"
}
}
}const result = await client.callTool("preorders_orders_fulfillment_apply_holds", {
"id": "string"
});result = await session.call_tool("preorders_orders_fulfillment_apply_holds", arguments={
"id": "string"
}){
"content": [
{
"type": "text",
"text": "..."
}
]
}preorders_orders_fulfillment_release_holds
Release fulfillment holds on the order without applying offer-configured tags. Aliases: release holds, release fulfillments without tags, remove fulfillment hold only. Note: Use the top-level release action when you want tags applied too.
Parameters
idstringrequiredargumentURL path parameter :id
Returns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "preorders_orders_fulfillment_release_holds",
"arguments": {
"id": "string"
}
}
}const result = await client.callTool("preorders_orders_fulfillment_release_holds", {
"id": "string"
});result = await session.call_tool("preorders_orders_fulfillment_release_holds", arguments={
"id": "string"
}){
"content": [
{
"type": "text",
"text": "..."
}
]
}preorders_orders_fulfillment_set_hold_reason
Set the hold-reason note that will be used the next time the order is held. Aliases: set hold reason, change hold note, update fulfillment hold note. Note: Updates the note on the first attributed preorder offer. Existing holds on Shopify aren't re-written.
Parameters
reason_noteanyrequiredargumentidstringrequiredargumentURL path parameter :id
Returns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "preorders_orders_fulfillment_set_hold_reason",
"arguments": {
"id": "string"
}
}
}const result = await client.callTool("preorders_orders_fulfillment_set_hold_reason", {
"id": "string"
});result = await session.call_tool("preorders_orders_fulfillment_set_hold_reason", arguments={
"id": "string"
}){
"content": [
{
"type": "text",
"text": "..."
}
]
}preorders_orders_hold_fulfillments
Apply fulfillment holds on the preorder order's fulfillment orders. Aliases: hold order, hold fulfillments, re-hold fulfillments, pause fulfillment, stop the order from shipping.
Parameters
idstringrequiredargumentURL path parameter :id
Returns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "preorders_orders_hold_fulfillments",
"arguments": {
"id": "string"
}
}
}const result = await client.callTool("preorders_orders_hold_fulfillments", {
"id": "string"
});result = await session.call_tool("preorders_orders_hold_fulfillments", arguments={
"id": "string"
}){
"content": [
{
"type": "text",
"text": "..."
}
]
}preorders_orders_payments_read
Read the deposit, remaining balance, and refund state of a preorder order. Aliases: order payments, deposit, balance, remaining balance, refund.
Parameters
idstringrequiredargumentURL path parameter :id
Returns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "preorders_orders_payments_read",
"arguments": {
"id": "string"
}
}
}const result = await client.callTool("preorders_orders_payments_read", {
"id": "string"
});result = await session.call_tool("preorders_orders_payments_read", arguments={
"id": "string"
}){
"content": [
{
"type": "text",
"text": "..."
}
]
}preorders_orders_payments_charge_balance
Charge the remaining balance. auto uses the customer's saved payment method; manual just marks balance collected. Aliases: charge remaining balance, collect balance, auto-charge balance, take the balance now. Note: auto may fail if no saved payment method or declined; check the response or poll status.
Parameters
modeanyargumentidstringrequiredargumentURL path parameter :id
Returns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "preorders_orders_payments_charge_balance",
"arguments": {
"id": "string"
}
}
}const result = await client.callTool("preorders_orders_payments_charge_balance", {
"id": "string"
});result = await session.call_tool("preorders_orders_payments_charge_balance", arguments={
"id": "string"
}){
"content": [
{
"type": "text",
"text": "..."
}
]
}preorders_orders_payments_refund
Refund the entire preorder (deposit + balance). Aliases: refund order, refund preorder, full refund, give the customer their money back.
Parameters
notify_customeranyargumentnoteanyargumentidstringrequiredargumentURL path parameter :id
Returns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "preorders_orders_payments_refund",
"arguments": {
"id": "string"
}
}
}const result = await client.callTool("preorders_orders_payments_refund", {
"id": "string"
});result = await session.call_tool("preorders_orders_payments_refund", arguments={
"id": "string"
}){
"content": [
{
"type": "text",
"text": "..."
}
]
}preorders_orders_payments_refund_balance
Refund the remaining-balance portion of a preorder (only valid after the balance was collected). Aliases: refund balance, refund remaining balance, refund the rest.
Parameters
notify_customeranyargumentnoteanyargumentidstringrequiredargumentURL path parameter :id
Returns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "preorders_orders_payments_refund_balance",
"arguments": {
"id": "string"
}
}
}const result = await client.callTool("preorders_orders_payments_refund_balance", {
"id": "string"
});result = await session.call_tool("preorders_orders_payments_refund_balance", arguments={
"id": "string"
}){
"content": [
{
"type": "text",
"text": "..."
}
]
}preorders_orders_payments_refund_deposit
Refund the deposit portion of a preorder. Aliases: refund deposit, give the deposit back, refund up-front payment.
Parameters
notify_customeranyargumentnoteanyargumentidstringrequiredargumentURL path parameter :id
Returns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "preorders_orders_payments_refund_deposit",
"arguments": {
"id": "string"
}
}
}const result = await client.callTool("preorders_orders_payments_refund_deposit", {
"id": "string"
});result = await session.call_tool("preorders_orders_payments_refund_deposit", arguments={
"id": "string"
}){
"content": [
{
"type": "text",
"text": "..."
}
]
}preorders_orders_payments_send_collection_url
Send the remaining-balance payment-collection URL to the customer. Aliases: send payment link, request balance payment, send payment collection url, ask customer for balance, send collection email. Note: Idempotent — calling twice resends the email with a fresh URL.
Parameters
idstringrequiredargumentURL path parameter :id
Returns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "preorders_orders_payments_send_collection_url",
"arguments": {
"id": "string"
}
}
}const result = await client.callTool("preorders_orders_payments_send_collection_url", {
"id": "string"
});result = await session.call_tool("preorders_orders_payments_send_collection_url", arguments={
"id": "string"
}){
"content": [
{
"type": "text",
"text": "..."
}
]
}preorders_orders_release
Release the order's fulfillment holds and apply offer-configured order tags. Aliases: release order, release fulfillments, let it ship, unhold order, open fulfillments. Note: Returns 409 if balance hasn't been collected; pass force: true to override.
Parameters
forceanyargumenttag_withanyargumentidstringrequiredargumentURL path parameter :id
Returns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "preorders_orders_release",
"arguments": {
"id": "string"
}
}
}const result = await client.callTool("preorders_orders_release", {
"id": "string"
});result = await session.call_tool("preorders_orders_release", arguments={
"id": "string"
}){
"content": [
{
"type": "text",
"text": "..."
}
]
}preorders_orders_split_fulfillment_orders
Split the order's fulfillment orders so preorder items ship separately from regular items. Aliases: split order, separate preorder lines, split fulfillments, separate preorder from regular.
Parameters
idstringrequiredargumentURL path parameter :id
Returns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "preorders_orders_split_fulfillment_orders",
"arguments": {
"id": "string"
}
}
}const result = await client.callTool("preorders_orders_split_fulfillment_orders", {
"id": "string"
});result = await session.call_tool("preorders_orders_split_fulfillment_orders", arguments={
"id": "string"
}){
"content": [
{
"type": "text",
"text": "..."
}
]
}preorders_orders_bulk_cancel
Cancel many preorder orders (max 1000), with optional refund flags. Aliases: bulk cancel, cancel many orders, batch cancel preorders.
Parameters
order_idsanyargumentrefund_depositanyargumentrefund_balanceanyargumentnotify_customeranyargumentreasonanyargumentReturns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "preorders_orders_bulk_cancel",
"arguments": {}
}
}const result = await client.callTool("preorders_orders_bulk_cancel", {});result = await session.call_tool("preorders_orders_bulk_cancel", arguments={}){
"content": [
{
"type": "text",
"text": "..."
}
]
}preorders_orders_bulk_release
Release fulfillments on many preorder orders (max 1000). Aliases: bulk release, release many orders, batch release, release these orders.
Parameters
order_idsanyargumentforceanyargumenttag_withanyargumentReturns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "preorders_orders_bulk_release",
"arguments": {}
}
}const result = await client.callTool("preorders_orders_bulk_release", {});result = await session.call_tool("preorders_orders_bulk_release", arguments={}){
"content": [
{
"type": "text",
"text": "..."
}
]
}preorders_orders_bulk_send_payment_collection_url
Send payment-collection URLs to many preorder customers (max 1000). Aliases: bulk send payment collection url, request balance from many customers, send payment links in bulk, ask many customers for balance.
Parameters
order_idsanyargumentReturns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "preorders_orders_bulk_send_payment_collection_url",
"arguments": {}
}
}const result = await client.callTool("preorders_orders_bulk_send_payment_collection_url", {});result = await session.call_tool("preorders_orders_bulk_send_payment_collection_url", arguments={}){
"content": [
{
"type": "text",
"text": "..."
}
]
}preorders_orders_jobs_read
Check the status of a bulk-order job. Aliases: check bulk order job, poll bulk order job, get order job status.
Parameters
job_idstringrequiredargumentURL path parameter :job_id
Returns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "preorders_orders_jobs_read",
"arguments": {
"job_id": "string"
}
}
}const result = await client.callTool("preorders_orders_jobs_read", {
"job_id": "string"
});result = await session.call_tool("preorders_orders_jobs_read", arguments={
"job_id": "string"
}){
"content": [
{
"type": "text",
"text": "..."
}
]
}preorders_product_variants_list
List Shopify variants attached to any preorder offer in this shop. Aliases: list preorder variants, variants in preorder, find variants in preorder offers, preorder variants, all preorder variants.
Parameters
pageanyargumentper_pageanyargumentoffer_idanyargumentproduct_idanyargumentvariant_idsanyargumentReturns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "preorders_product_variants_list",
"arguments": {}
}
}const result = await client.callTool("preorders_product_variants_list", {});result = await session.call_tool("preorders_product_variants_list", arguments={}){
"content": [
{
"type": "text",
"text": "..."
}
]
}preorders_product_variants_read
Read a Shopify variant's preorder context: every offer it's in, aggregate counts, and current metafield state. Aliases: show preorder context for variant, look up variant preorders, variant preorder state, get preorder variant, show variant in preorders.
Parameters
variant_idstringrequiredargumentURL path parameter :variant_id
Returns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "preorders_product_variants_read",
"arguments": {
"variant_id": "string"
}
}
}const result = await client.callTool("preorders_product_variants_read", {
"variant_id": "string"
});result = await session.call_tool("preorders_product_variants_read", arguments={
"variant_id": "string"
}){
"content": [
{
"type": "text",
"text": "..."
}
]
}preorders_product_variants_detach_from_all_offers
Remove a variant from every preorder offer it's attached to. Customer orders are unaffected. Aliases: remove variant from all preorders, detach from preorder, kick variant out of offers, remove from all offers. Note: Destructive. Same effect as calling Offer::Products::RemoveVariants against every offer the variant is in.
Parameters
variant_idstringrequiredargumentURL path parameter :variant_id
Returns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "preorders_product_variants_detach_from_all_offers",
"arguments": {
"variant_id": "string"
}
}
}const result = await client.callTool("preorders_product_variants_detach_from_all_offers", {
"variant_id": "string"
});result = await session.call_tool("preorders_product_variants_detach_from_all_offers", arguments={
"variant_id": "string"
}){
"content": [
{
"type": "text",
"text": "..."
}
]
}preorders_product_variants_offers_list_offers
List the preorder offers a Shopify variant is attached to. Aliases: which offers is this variant in, find offers for variant, variant's preorder offers, what offers contain this variant.
Parameters
stateanyargumentvariant_idstringrequiredargumentURL path parameter :variant_id
Returns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "preorders_product_variants_offers_list_offers",
"arguments": {
"variant_id": "string"
}
}
}const result = await client.callTool("preorders_product_variants_offers_list_offers", {
"variant_id": "string"
});result = await session.call_tool("preorders_product_variants_offers_list_offers", arguments={
"variant_id": "string"
}){
"content": [
{
"type": "text",
"text": "..."
}
]
}preorders_product_variants_recalculate_preorder_count
Recompute preorder_count for a variant from active order line items, then push to Shopify. Aliases: recalculate preorder count from orders, fix preorder count, rebuild count, recompute preorder count, fix variant count drift.
Parameters
variant_idstringrequiredargumentURL path parameter :variant_id
Returns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "preorders_product_variants_recalculate_preorder_count",
"arguments": {
"variant_id": "string"
}
}
}const result = await client.callTool("preorders_product_variants_recalculate_preorder_count", {
"variant_id": "string"
});result = await session.call_tool("preorders_product_variants_recalculate_preorder_count", arguments={
"variant_id": "string"
}){
"content": [
{
"type": "text",
"text": "..."
}
]
}preorders_product_variants_reset_metafields
Clear all preorder-related Shopify metafields on a variant. Keeps the variant attached to its offers. Aliases: clear preorder metafields, wipe variant preorder data, reset variant metafields, clear variant metafields. Note: Doesn't detach. Next offer settings change will re-write the metafields from current state.
Parameters
variant_idstringrequiredargumentURL path parameter :variant_id
Returns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "preorders_product_variants_reset_metafields",
"arguments": {
"variant_id": "string"
}
}
}const result = await client.callTool("preorders_product_variants_reset_metafields", {
"variant_id": "string"
});result = await session.call_tool("preorders_product_variants_reset_metafields", arguments={
"variant_id": "string"
}){
"content": [
{
"type": "text",
"text": "..."
}
]
}preorders_product_variants_reset_preorder_count
Hard-reset the preorder_count metafield + DB columns on a variant to zero. Aliases: zero out preorder count, clear preorder count, reset count to zero. Note: Use recalculate_preorder_count for a recompute from real orders; this is a destructive zero.
Parameters
variant_idstringrequiredargumentURL path parameter :variant_id
Returns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "preorders_product_variants_reset_preorder_count",
"arguments": {
"variant_id": "string"
}
}
}const result = await client.callTool("preorders_product_variants_reset_preorder_count", {
"variant_id": "string"
});result = await session.call_tool("preorders_product_variants_reset_preorder_count", arguments={
"variant_id": "string"
}){
"content": [
{
"type": "text",
"text": "..."
}
]
}preorders_product_variants_sync_metafields
Force-resync every preorder metafield for a variant from local DB state to Shopify. Aliases: force resync to shopify, push metafields to shopify, refresh shopify metafields, fix shopify metafield drift. Note: Idempotent. Useful when a previous metafield write failed.
Parameters
variant_idstringrequiredargumentURL path parameter :variant_id
Returns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "preorders_product_variants_sync_metafields",
"arguments": {
"variant_id": "string"
}
}
}const result = await client.callTool("preorders_product_variants_sync_metafields", {
"variant_id": "string"
});result = await session.call_tool("preorders_product_variants_sync_metafields", arguments={
"variant_id": "string"
}){
"content": [
{
"type": "text",
"text": "..."
}
]
}preorders_product_variants_bulk_recalculate_preorder_counts
Recompute preorder_count for many variants in one job (max 5000). Aliases: recalculate counts for variants, bulk fix preorder counts, recalculate many variants, batch recompute counts.
Parameters
variant_idsanyargumentReturns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "preorders_product_variants_bulk_recalculate_preorder_counts",
"arguments": {}
}
}const result = await client.callTool("preorders_product_variants_bulk_recalculate_preorder_counts", {});result = await session.call_tool("preorders_product_variants_bulk_recalculate_preorder_counts", arguments={}){
"content": [
{
"type": "text",
"text": "..."
}
]
}preorders_product_variants_bulk_reset_metafields
Reset preorder metafields for many variants in one job (max 5000). Aliases: clear metafields for variants, bulk reset variant metafields, wipe metafields for many variants.
Parameters
variant_idsanyargumentReturns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "preorders_product_variants_bulk_reset_metafields",
"arguments": {}
}
}const result = await client.callTool("preorders_product_variants_bulk_reset_metafields", {});result = await session.call_tool("preorders_product_variants_bulk_reset_metafields", arguments={}){
"content": [
{
"type": "text",
"text": "..."
}
]
}preorders_product_variants_bulk_sync_metafields
Force-resync preorder metafields for many variants in one job (max 5000). Aliases: force resync many variants, bulk refresh metafields, push many variants to shopify.
Parameters
variant_idsanyargumentReturns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "preorders_product_variants_bulk_sync_metafields",
"arguments": {}
}
}const result = await client.callTool("preorders_product_variants_bulk_sync_metafields", {});result = await session.call_tool("preorders_product_variants_bulk_sync_metafields", arguments={}){
"content": [
{
"type": "text",
"text": "..."
}
]
}preorders_product_variants_jobs_read
Check the status of a bulk variant-admin job. Aliases: check bulk variant job status, poll bulk variant job, get variant job status.
Parameters
job_idstringrequiredargumentURL path parameter :job_id
Returns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "preorders_product_variants_jobs_read",
"arguments": {
"job_id": "string"
}
}
}const result = await client.callTool("preorders_product_variants_jobs_read", {
"job_id": "string"
});result = await session.call_tool("preorders_product_variants_jobs_read", arguments={
"job_id": "string"
}){
"content": [
{
"type": "text",
"text": "..."
}
]
}preorders_reports_list
List every available preorder report (name, description, aliases, url). Aliases: reports, list reports, available reports, what reports are there, report catalog.
Returns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "preorders_reports_list",
"arguments": {}
}
}const result = await client.callTool("preorders_reports_list", {});result = await session.call_tool("preorders_reports_list", arguments={}){
"content": [
{
"type": "text",
"text": "..."
}
]
}preorders_reports_balance_collection_read
Outstanding preorder balances and balance-collection performance metrics. Aliases: outstanding balances, balance collection, who hasn't paid, balance status, payment collection, outstanding payments.
Parameters
fromanyargumenttoanyargumentoffer_idanyargumentoffer_idsanyargumentcurrencyanyargumentReturns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "preorders_reports_balance_collection_read",
"arguments": {}
}
}const result = await client.callTool("preorders_reports_balance_collection_read", {});result = await session.call_tool("preorders_reports_balance_collection_read", arguments={}){
"content": [
{
"type": "text",
"text": "..."
}
]
}preorders_reports_balance_collection_export
Async CSV export of the balance-collection report. Aliases: export balance_collection, download outstanding balances, balance collection csv, export who hasn't paid.
Parameters
fromanyargumenttoanyargumentoffer_idanyargumentoffer_idsanyargumentproduct_idanyargumentvariant_idanyargumentmarket_idanyargumentcurrencyanyargumentgranularityanyargumentmetricsanyargumentinclude_depositsanyargumentinclude_balancesanyargumentpageanyargumentper_pageanyargumentReturns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "preorders_reports_balance_collection_export",
"arguments": {}
}
}const result = await client.callTool("preorders_reports_balance_collection_export", {});result = await session.call_tool("preorders_reports_balance_collection_export", arguments={}){
"content": [
{
"type": "text",
"text": "..."
}
]
}preorders_reports_by_date_read
Time-series of all preorder metrics at the chosen granularity (day/week/month). Aliases: time series, daily breakdown, trend, over time, preorder trend, show trend.
Parameters
fromanyargumenttoanyargumentoffer_idanyargumentoffer_idsanyargumentproduct_idanyargumentvariant_idanyargumentcurrencyanyargumentgranularityanyargumentmetricsanyargumentReturns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "preorders_reports_by_date_read",
"arguments": {}
}
}const result = await client.callTool("preorders_reports_by_date_read", {});result = await session.call_tool("preorders_reports_by_date_read", arguments={}){
"content": [
{
"type": "text",
"text": "..."
}
]
}preorders_reports_by_date_export
Async CSV export of the time-series preorder report. Aliases: export by_date, download time series, trend csv.
Parameters
fromanyargumenttoanyargumentoffer_idanyargumentoffer_idsanyargumentproduct_idanyargumentvariant_idanyargumentmarket_idanyargumentcurrencyanyargumentgranularityanyargumentmetricsanyargumentinclude_depositsanyargumentinclude_balancesanyargumentpageanyargumentper_pageanyargumentReturns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "preorders_reports_by_date_export",
"arguments": {}
}
}const result = await client.callTool("preorders_reports_by_date_export", {});result = await session.call_tool("preorders_reports_by_date_export", arguments={}){
"content": [
{
"type": "text",
"text": "..."
}
]
}preorders_reports_by_offer_read
Per-offer breakdown of preorder activity (orders, units, revenue, customers). Aliases: per-offer report, offer performance, which offers are working, compare offers, report by offer.
Parameters
fromanyargumenttoanyargumentoffer_idsanyargumentmarket_idanyargumentcurrencyanyargumentReturns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "preorders_reports_by_offer_read",
"arguments": {}
}
}const result = await client.callTool("preorders_reports_by_offer_read", {});result = await session.call_tool("preorders_reports_by_offer_read", arguments={}){
"content": [
{
"type": "text",
"text": "..."
}
]
}preorders_reports_by_offer_export
Async CSV export of the per-offer preorder report. Aliases: export by_offer, download by_offer, by offer csv.
Parameters
fromanyargumenttoanyargumentoffer_idanyargumentoffer_idsanyargumentproduct_idanyargumentvariant_idanyargumentmarket_idanyargumentcurrencyanyargumentgranularityanyargumentmetricsanyargumentinclude_depositsanyargumentinclude_balancesanyargumentpageanyargumentper_pageanyargumentReturns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "preorders_reports_by_offer_export",
"arguments": {}
}
}const result = await client.callTool("preorders_reports_by_offer_export", {});result = await session.call_tool("preorders_reports_by_offer_export", arguments={}){
"content": [
{
"type": "text",
"text": "..."
}
]
}preorders_reports_by_product_read
Per-product preorder performance, rolled up across variants. Aliases: per-product report, product performance, which products are preordering, report by product.
Parameters
fromanyargumenttoanyargumentoffer_idanyargumentoffer_idsanyargumentproduct_idanyargumentcurrencyanyargumentReturns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "preorders_reports_by_product_read",
"arguments": {}
}
}const result = await client.callTool("preorders_reports_by_product_read", {});result = await session.call_tool("preorders_reports_by_product_read", arguments={}){
"content": [
{
"type": "text",
"text": "..."
}
]
}preorders_reports_by_product_export
Async CSV export of the per-product preorder report. Aliases: export by_product, download by_product, by product csv.
Parameters
fromanyargumenttoanyargumentoffer_idanyargumentoffer_idsanyargumentproduct_idanyargumentvariant_idanyargumentmarket_idanyargumentcurrencyanyargumentgranularityanyargumentmetricsanyargumentinclude_depositsanyargumentinclude_balancesanyargumentpageanyargumentper_pageanyargumentReturns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "preorders_reports_by_product_export",
"arguments": {}
}
}const result = await client.callTool("preorders_reports_by_product_export", {});result = await session.call_tool("preorders_reports_by_product_export", arguments={}){
"content": [
{
"type": "text",
"text": "..."
}
]
}preorders_reports_by_variant_read
Per-variant preorder performance for a specific offer. Aliases: per-variant report, variant performance, which variants are selling, variant report. Note: Requires offer_id (or offer_ids[]). Variant-level data without an offer scope isn't supported.
Parameters
fromanyargumenttoanyargumentoffer_idanyargumentoffer_idsanyargumentproduct_idanyargumentvariant_idanyargumentcurrencyanyargumentReturns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "preorders_reports_by_variant_read",
"arguments": {}
}
}const result = await client.callTool("preorders_reports_by_variant_read", {});result = await session.call_tool("preorders_reports_by_variant_read", arguments={}){
"content": [
{
"type": "text",
"text": "..."
}
]
}preorders_reports_by_variant_export
Async CSV export of the per-variant preorder report. Aliases: export by_variant, download by_variant, by variant csv.
Parameters
fromanyargumenttoanyargumentoffer_idanyargumentoffer_idsanyargumentproduct_idanyargumentvariant_idanyargumentmarket_idanyargumentcurrencyanyargumentgranularityanyargumentmetricsanyargumentinclude_depositsanyargumentinclude_balancesanyargumentpageanyargumentper_pageanyargumentReturns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "preorders_reports_by_variant_export",
"arguments": {}
}
}const result = await client.callTool("preorders_reports_by_variant_export", {});result = await session.call_tool("preorders_reports_by_variant_export", arguments={}){
"content": [
{
"type": "text",
"text": "..."
}
]
}preorders_reports_cancellations_read
Preorder cancellation metrics with reason and per-offer breakdowns. Aliases: cancellations, refunds, how often do customers cancel, cancellation rate, cancellation report. Note: Reason breakdown requires the cancel_reason field on OrderAttribution. Reasons not yet captured will appear as 'unknown'.
Parameters
fromanyargumenttoanyargumentoffer_idanyargumentoffer_idsanyargumentcurrencyanyargumentReturns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "preorders_reports_cancellations_read",
"arguments": {}
}
}const result = await client.callTool("preorders_reports_cancellations_read", {});result = await session.call_tool("preorders_reports_cancellations_read", arguments={}){
"content": [
{
"type": "text",
"text": "..."
}
]
}preorders_reports_cancellations_export
Async CSV export of the cancellations report. Aliases: export cancellations, download cancellations, cancellations csv.
Parameters
fromanyargumenttoanyargumentoffer_idanyargumentoffer_idsanyargumentproduct_idanyargumentvariant_idanyargumentmarket_idanyargumentcurrencyanyargumentgranularityanyargumentmetricsanyargumentinclude_depositsanyargumentinclude_balancesanyargumentpageanyargumentper_pageanyargumentReturns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "preorders_reports_cancellations_export",
"arguments": {}
}
}const result = await client.callTool("preorders_reports_cancellations_export", {});result = await session.call_tool("preorders_reports_cancellations_export", arguments={}){
"content": [
{
"type": "text",
"text": "..."
}
]
}preorders_reports_customers_read
Paginated list of customers with preorder activity in the window. Aliases: customer list, who preordered, preorder customers, customers report, list customers.
Parameters
fromanyargumenttoanyargumentoffer_idanyargumentoffer_idsanyargumentcurrencyanyargumentpageanyargumentper_pageanyargumentReturns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "preorders_reports_customers_read",
"arguments": {}
}
}const result = await client.callTool("preorders_reports_customers_read", {});result = await session.call_tool("preorders_reports_customers_read", arguments={}){
"content": [
{
"type": "text",
"text": "..."
}
]
}preorders_reports_customers_export
Async CSV export of the customers report. Aliases: export customers, download customers, customers csv.
Parameters
fromanyargumenttoanyargumentoffer_idanyargumentoffer_idsanyargumentproduct_idanyargumentvariant_idanyargumentmarket_idanyargumentcurrencyanyargumentgranularityanyargumentmetricsanyargumentinclude_depositsanyargumentinclude_balancesanyargumentpageanyargumentper_pageanyargumentReturns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "preorders_reports_customers_export",
"arguments": {}
}
}const result = await client.callTool("preorders_reports_customers_export", {});result = await session.call_tool("preorders_reports_customers_export", arguments={}){
"content": [
{
"type": "text",
"text": "..."
}
]
}preorders_reports_exports_read
Check the status of an async report export and get the download URL when ready. Aliases: check export status, get export, poll export, download url for export, export status.
Parameters
job_idstringrequiredargumentURL path parameter :job_id
Returns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "preorders_reports_exports_read",
"arguments": {
"job_id": "string"
}
}
}const result = await client.callTool("preorders_reports_exports_read", {
"job_id": "string"
});result = await session.call_tool("preorders_reports_exports_read", arguments={
"job_id": "string"
}){
"content": [
{
"type": "text",
"text": "..."
}
]
}preorders_reports_revenue_read
Preorder revenue over a date window, bucketed by day/week/month. Aliases: revenue, how much money, sales, preorder revenue, how much did we make, what did we earn.
Parameters
fromanyargumenttoanyargumentoffer_idanyargumentoffer_idsanyargumentproduct_idanyargumentvariant_idanyargumentmarket_idanyargumentcurrencyanyargumentgranularityanyargumentinclude_depositsanyargumentinclude_balancesanyargumentReturns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "preorders_reports_revenue_read",
"arguments": {}
}
}const result = await client.callTool("preorders_reports_revenue_read", {});result = await session.call_tool("preorders_reports_revenue_read", arguments={}){
"content": [
{
"type": "text",
"text": "..."
}
]
}preorders_reports_revenue_export
Async CSV export of the preorder revenue report. Aliases: export revenue, download revenue, revenue csv.
Parameters
fromanyargumenttoanyargumentoffer_idanyargumentoffer_idsanyargumentproduct_idanyargumentvariant_idanyargumentmarket_idanyargumentcurrencyanyargumentgranularityanyargumentmetricsanyargumentinclude_depositsanyargumentinclude_balancesanyargumentpageanyargumentper_pageanyargumentReturns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "preorders_reports_revenue_export",
"arguments": {}
}
}const result = await client.callTool("preorders_reports_revenue_export", {});result = await session.call_tool("preorders_reports_revenue_export", arguments={}){
"content": [
{
"type": "text",
"text": "..."
}
]
}preorders_reports_summary_read
High-level overview of preorder activity over a date window. Aliases: summary, overview, how is preorder doing, preorder summary, dashboard stats, what's happening with preorders.
Parameters
fromanyargumenttoanyargumentoffer_idanyargumentoffer_idsanyargumentproduct_idanyargumentvariant_idanyargumentmarket_idanyargumentcurrencyanyargumentReturns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "preorders_reports_summary_read",
"arguments": {}
}
}const result = await client.callTool("preorders_reports_summary_read", {});result = await session.call_tool("preorders_reports_summary_read", arguments={}){
"content": [
{
"type": "text",
"text": "..."
}
]
}preorders_reports_summary_export
Async CSV export of the preorder summary report. Aliases: export summary, download summary, summary csv, export overview.
Parameters
fromanyargumenttoanyargumentoffer_idanyargumentoffer_idsanyargumentproduct_idanyargumentvariant_idanyargumentmarket_idanyargumentcurrencyanyargumentgranularityanyargumentmetricsanyargumentinclude_depositsanyargumentinclude_balancesanyargumentpageanyargumentper_pageanyargumentReturns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "preorders_reports_summary_export",
"arguments": {}
}
}const result = await client.callTool("preorders_reports_summary_export", {});result = await session.call_tool("preorders_reports_summary_export", arguments={}){
"content": [
{
"type": "text",
"text": "..."
}
]
}generate_storefront_widget
Generate a ready-to-paste STOQ storefront widget snippet for a variant — a preorder widget/button, a notify-me (back-in-stock) form, or event-tracking listeners. Returns code, not an API call. surface=sdk for headless/Hydrogen (@artossoftware/stoq-sdk); surface=theme for a Shopify theme running the STOQ app embed (window._RestockRocket + Liquid).
Parameters
surfacestringsdkthemeargumentsdk = headless/Hydrogen SDK. theme = Shopify theme app embed. Default sdk.
widgetstringpreordernotify_meproduct_pageeventsrequiredargumentWhich snippet to generate. events = analytics listeners for the stoq:* events.
formatstringcustom-elementscript-tagreactargumentFor surface=sdk only. Default custom-element; ignored for surface=theme.
variant_idstringargumentShopify variant id to embed (optional).
product_idstringargumentShopify product id — required for notify-me.
Returns
Returns MCP content array (text, image, or embedded resource).
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "generate_storefront_widget",
"arguments": {
"surface": "sdk",
"widget": "preorder",
"format": "custom-element",
"variant_id": "string",
"product_id": "string"
}
}
}const result = await client.callTool("generate_storefront_widget", {
"surface": "sdk",
"widget": "preorder",
"format": "custom-element",
"variant_id": "string",
"product_id": "string"
});result = await session.call_tool("generate_storefront_widget", arguments={
"surface": "sdk",
"widget": "preorder",
"format": "custom-element",
"variant_id": "string",
"product_id": "string"
}){
"content": [
{
"type": "text",
"text": "..."
}
]
}