---
title: "Shop"
description: "Personal Shop accounts, orders, carts and checkout preparation. Payment requires the shopper at the original Shop review URL. No payment completion or spend-card issuance."
---

> Documentation Index
> Fetch the complete documentation index at: https://help.tooluse.net/llms.txt
> Use this file to discover all available pages before exploring further.

# Shop

<p>Personal Shop accounts, orders, carts and checkout preparation. Payment requires the shopper at the original Shop review URL. No payment completion or spend-card issuance.</p>

<details data-command-index><summary>What you can do (8)</summary>
<h2>What you can do</h2>
<p>Available commands: 8 (4 read, 4 write). Enable only the commands your application needs.</p>
<div class="nb-table-scroll"><table>
<thead>
<tr>
<th>Command</th>
<th>Effect</th>
</tr>
</thead>
<tbody><tr>
<td><a href="https://help.tooluse.net/integrations/shop#command-shop-account-get">Read your Shop account</a> — <code>shop.account.get</code></td>
<td>Read</td>
</tr>
<tr>
<td><a href="https://help.tooluse.net/integrations/shop#command-shop-orders-search">Read one page of your Shop orders</a> — <code>shop.orders.search</code></td>
<td>Read</td>
</tr>
<tr>
<td><a href="https://help.tooluse.net/integrations/shop#command-shop-carts-create">Prepare a Shop cart</a> — <code>shop.carts.create</code></td>
<td>Write</td>
</tr>
<tr>
<td><a href="https://help.tooluse.net/integrations/shop#command-shop-carts-get">Read your Shop cart</a> — <code>shop.carts.get</code></td>
<td>Read</td>
</tr>
<tr>
<td><a href="https://help.tooluse.net/integrations/shop#command-shop-carts-update">Update your Shop cart</a> — <code>shop.carts.update</code></td>
<td>Write</td>
</tr>
<tr>
<td><a href="https://help.tooluse.net/integrations/shop#command-shop-checkouts-create">Prepare a Shop checkout</a> — <code>shop.checkouts.create</code></td>
<td>Write</td>
</tr>
<tr>
<td><a href="https://help.tooluse.net/integrations/shop#command-shop-checkouts-get">Read your Shop checkout</a> — <code>shop.checkouts.get</code></td>
<td>Read</td>
</tr>
<tr>
<td><a href="https://help.tooluse.net/integrations/shop#command-shop-checkouts-update">Update your Shop checkout</a> — <code>shop.checkouts.update</code></td>
<td>Write</td>
</tr>
</tbody></table>
</div>
</details>
<h2>Connect and use</h2>

<p><a href="https://www.tooluse.net/tools/integrations/shop">Connect and use</a></p>
<p>Open the integration&#39;s connection form to check the available credential source. The source has not been resolved for this documentation export. The instructions below apply when using your own provider account.</p>
<h2>Get your provider credentials</h2>
<p>Follow these steps for Shop, then enter the issued values in the connection form below.</p>
<ol>
<li>Use Shopify&#39;s documented Shop personal MCP authorization. Configure a supported OAuth client and exact redirect URI if required, save and authorize the personal account with personal_agent scope. Existing personal tokens are supported. Cart/checkout preparation does not authorize payment; review and complete it with the provider.</li>
</ol>
<p><a href="https://github.com/Shopify/shop#direct-mcp-integration">Official credential setup</a></p>
<h2>Where to enter credentials</h2>
<p>In the integration page, sign in, choose your workspace and open Connect. If a <strong>Credentials</strong> choice is shown, select <strong>Use my credentials</strong>. Fill the following connection fields and save. Provider credentials belong in this form, never in an MCP configuration or tool input.</p>
<div class="nb-table-scroll"><table>
<thead>
<tr>
<th>Connection field</th>
<th>Requirement</th>
</tr>
</thead>
<tbody><tr>
<td>OAuth callback</td>
<td>Optional</td>
</tr>
<tr>
<td>Shop OAuth client ID</td>
<td>Optional</td>
</tr>
<tr>
<td>Shop OAuth client secret</td>
<td>Optional</td>
</tr>
<tr>
<td>Personal access token</td>
<td>Optional</td>
</tr>
<tr>
<td>Granted scopes</td>
<td>Optional</td>
</tr>
<tr>
<td>Return URL after authorization</td>
<td>Optional</td>
</tr>
</tbody></table>
</div><p>Open API keys and create a Tooluse.net key for the enabled commands.</p>
<p>Set TOOLUSE_API_KEY in your client and use the shared MCP configuration.</p>
<p><a href="https://help.tooluse.net/clients">Configure Claude Code, Codex or Cursor once</a></p>

<h2>Permissions and results</h2>

<p>If you have more than one workspace, check the selected workspace in the connection or API-key dialog before saving. Roles, enabled commands, expiry and revocation use Tooluse.net&#39;s existing permissions. Disabling a connection or revoking a key immediately prevents new calls.</p>

<p>Send one Claude tool_use block per request. Keep the same Idempotency-Key when retrying the same request; use a new key for a new call. The response includes the shared Tooluse.net receipt and Claude tool_result. Check both HTTP status and the returned tool result before treating a call as successful.</p>

<p>Your connection&#39;s daily allowance and key permissions also apply. Adding a connection does not make a provider request.</p>

<p>Calls return the shared execution receipt and a Claude tool_result. Provider output varies by operation; consult the provider documentation for its response fields. Unconfirmed calls should be checked before retrying.</p>

<h2>Call from your client</h2>

<p>Use the shared MCP configuration. Refresh your client&#39;s tool list after saving the connection or changing key permissions, then call the returned tool name with the example input below.</p>

<p><a href="https://help.tooluse.net/clients">Configure Claude Code, Codex or Cursor once</a></p>

<h2>Discover your enabled tools</h2>

<p>List permitted tools in Claude format. Read every page using page and size (maximum 100) until all results have been received. Use the returned name, not a catalog capability identifier, in the tool_use block.</p>

<pre><code class="language-bash">curl 'https://api.tooluse.net/v1/tools' \
  -H "Authorization: Bearer $TOOLUSE_API_KEY"
</code></pre>

<p>Find this command in the tool list permitted by your key. Replace svc_FROM_YOUR_TOOL_LIST with its returned name. Use a new Idempotency-Key for each new call and retain it when retrying that same call.</p>

<h2>HTTP call</h2>

<pre><code class="language-bash">curl 'https://api.tooluse.net/v1/tool-calls' \
  -H "Authorization: Bearer $TOOLUSE_API_KEY" \
  -H 'Content-Type: application/json' \
  -H 'Idempotency-Key: replace-with-a-new-call-id' \
  --data '{
  "type": "tool_use",
  "id": "toolu_example",
  "name": "svc_FROM_YOUR_TOOL_LIST",
  "input": {}
}'
</code></pre>

<p>Send one Claude tool_use block per request. Keep the same Idempotency-Key when retrying the same request; use a new key for a new call. The response includes the shared Tooluse.net receipt and Claude tool_result. Check both HTTP status and the returned tool result before treating a call as successful.</p>

<h2>Commands</h2>

<details id="command-shop-account-get">
<summary><span>Read your Shop account — <code>shop.<wbr>account.<wbr>get</code></span></summary>
<p>Run <strong>Read your Shop account</strong> with Shop. This is a read command; it does not grant access beyond the connected account&#39;s permissions.</p>

<p>This is a read operation. Provider rate limits and data access rules still apply.</p>

<p><a href="https://www.tooluse.net/tools/integrations/shop?command=shop.account.get">Connect and use</a></p>

<p><strong>Parameters</strong></p>

<p>Requiredness is local to the containing object. A required child is required only when its parent object or array item is provided. Alternative schemas are identified in the Constraints column; the linked full JSON Schema is authoritative.</p>

<p>This tool has no input parameters.</p>

<p><strong>Full JSON Schema</strong></p>

<p><a href="https://api.tooluse.net/v1/integrations/shop/commands/shop.account.get">Full JSON Schema</a></p>

<p><strong>Example input</strong></p>

<pre><code class="language-json">{}
</code></pre>

<p>At most 2 provider requests per invocation; timeout: 15 seconds.</p>

</details>
<details id="command-shop-orders-search">
<summary><span>Read one page of your Shop orders — <code>shop.<wbr>orders.<wbr>search</code></span></summary>
<p>Run <strong>Read one page of your Shop orders</strong> with Shop. This is a read command; it does not grant access beyond the connected account&#39;s permissions.</p>

<p>This is a read operation. Provider rate limits and data access rules still apply.</p>

<p><a href="https://www.tooluse.net/tools/integrations/shop?command=shop.orders.search">Connect and use</a></p>

<p><strong>Parameters</strong></p>

<p>Requiredness is local to the containing object. A required child is required only when its parent object or array item is provided. Alternative schemas are identified in the Constraints column; the linked full JSON Schema is authoritative.</p>

<div class="nb-table-scroll"><table>
<thead>
<tr>
<th>Parameter</th>
<th>Type</th>
<th>Required in parent</th>
<th>Description</th>
<th>Constraints</th>
</tr>
</thead>
<tbody><tr>
<td><code>orders</code></td>
<td>object</td>
<td>Required</td>
<td></td>
<td><code>additionalProperties: false</code></td>
</tr>
<tr>
<td><code>orders.query</code></td>
<td>string</td>
<td>Optional</td>
<td></td>
<td><code>maxLength: 200</code></td>
</tr>
<tr>
<td><code>orders.filters</code></td>
<td>object</td>
<td>Optional</td>
<td></td>
<td><code>additionalProperties: false</code></td>
</tr>
<tr>
<td><code>orders.filters.status</code></td>
<td>string</td>
<td>Optional</td>
<td></td>
<td><code>enum: [&quot;in_progress&quot;,&quot;all&quot;]</code></td>
</tr>
<tr>
<td><code>orders.filters.date</code></td>
<td>object</td>
<td>Optional</td>
<td></td>
<td><code>additionalProperties: false</code></td>
</tr>
<tr>
<td><code>orders.filters.date.from</code></td>
<td>string</td>
<td>Optional</td>
<td></td>
<td><code>format: &quot;date&quot;</code></td>
</tr>
<tr>
<td><code>orders.filters.date.to</code></td>
<td>string</td>
<td>Optional</td>
<td></td>
<td><code>format: &quot;date&quot;</code></td>
</tr>
<tr>
<td><code>orders.pagination</code></td>
<td>object</td>
<td>Optional</td>
<td></td>
<td><code>additionalProperties: false</code></td>
</tr>
<tr>
<td><code>orders.pagination.limit</code></td>
<td>integer</td>
<td>Optional</td>
<td></td>
<td><code>minimum: 1; maximum: 10</code></td>
</tr>
<tr>
<td><code>orders.pagination.cursor</code></td>
<td>string</td>
<td>Optional</td>
<td></td>
<td><code>minLength: 1; maxLength: 4000; pattern: &quot;^[^\\p{C}]+$&quot;</code></td>
</tr>
</tbody></table>
</div>
<p><strong>Full JSON Schema</strong></p>

<p><a href="https://api.tooluse.net/v1/integrations/shop/commands/shop.orders.search">Full JSON Schema</a></p>

<p><strong>Example input</strong></p>

<pre><code class="language-json">{
  "orders": {
    "pagination": {
      "limit": 5
    }
  }
}
</code></pre>

<p>At most 2 provider requests per invocation; timeout: 15 seconds.</p>

</details>
<details id="command-shop-carts-create">
<summary><span>Prepare a Shop cart — <code>shop.<wbr>carts.<wbr>create</code></span></summary>
<p>Run <strong>Prepare a Shop cart</strong> with Shop. This command can change provider data. Review the target and input before invoking it.</p>

<p>This operation can change provider data. Review the input before allowing an agent to call it.</p>

<p><a href="https://www.tooluse.net/tools/integrations/shop?command=shop.carts.create">Connect and use</a></p>

<p><strong>Parameters</strong></p>

<p>Requiredness is local to the containing object. A required child is required only when its parent object or array item is provided. Alternative schemas are identified in the Constraints column; the linked full JSON Schema is authoritative.</p>

<div class="nb-table-scroll"><table>
<thead>
<tr>
<th>Parameter</th>
<th>Type</th>
<th>Required in parent</th>
<th>Description</th>
<th>Constraints</th>
</tr>
</thead>
<tbody><tr>
<td><code>shop</code></td>
<td>string</td>
<td>Required</td>
<td></td>
<td><code>maxLength: 253; pattern: &quot;^(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\\.)+[a-z](?:[a-z0-9-]*[a-z0-9])?$&quot;</code></td>
</tr>
<tr>
<td><code>cart</code></td>
<td>object</td>
<td>Required</td>
<td></td>
<td><code>additionalProperties: false</code></td>
</tr>
<tr>
<td><code>cart.line_items</code></td>
<td>array</td>
<td>Required</td>
<td></td>
<td><code>minItems: 1; maxItems: 25</code></td>
</tr>
<tr>
<td><code>cart.line_items[]</code></td>
<td>object</td>
<td>Optional</td>
<td></td>
<td><code>additionalProperties: false</code></td>
</tr>
<tr>
<td><code>cart.line_items[].id</code></td>
<td>string</td>
<td>Optional</td>
<td></td>
<td><code>minLength: 1; maxLength: 300; pattern: &quot;^[^\\p{C}]+$&quot;</code></td>
</tr>
<tr>
<td><code>cart.line_items[].parent_id</code></td>
<td>string</td>
<td>Optional</td>
<td></td>
<td><code>minLength: 1; maxLength: 300; pattern: &quot;^[^\\p{C}]+$&quot;</code></td>
</tr>
<tr>
<td><code>cart.line_items[].item</code></td>
<td>object</td>
<td>Required</td>
<td></td>
<td><code>additionalProperties: false</code></td>
</tr>
<tr>
<td><code>cart.line_items[].item.id</code></td>
<td>string</td>
<td>Required</td>
<td></td>
<td><code>minLength: 1; maxLength: 300; pattern: &quot;^[^\\p{C}]+$&quot;</code></td>
</tr>
<tr>
<td><code>cart.line_items[].item.quantity_unit</code></td>
<td>object</td>
<td>Optional</td>
<td></td>
<td><code>additionalProperties: false</code></td>
</tr>
<tr>
<td><code>cart.line_items[].item.quantity_unit.unit</code></td>
<td>string</td>
<td>Required</td>
<td></td>
<td><code>minLength: 1; maxLength: 32; pattern: &quot;^[^\\p{C}]+$&quot;</code></td>
</tr>
<tr>
<td><code>cart.line_items[].item.quantity_unit.display_text</code></td>
<td>string</td>
<td>Required</td>
<td></td>
<td><code>minLength: 1; maxLength: 100; pattern: &quot;^[^\\p{C}]+$&quot;</code></td>
</tr>
<tr>
<td><code>cart.line_items[].item.quantity_unit.scale</code></td>
<td>integer</td>
<td>Optional</td>
<td></td>
<td><code>minimum: 0; maximum: 15</code></td>
</tr>
<tr>
<td><code>cart.line_items[].item.quantity_unit.increment</code></td>
<td>integer</td>
<td>Optional</td>
<td></td>
<td><code>minimum: 1</code></td>
</tr>
<tr>
<td><code>cart.line_items[].quantity</code></td>
<td>integer</td>
<td>Required</td>
<td></td>
<td><code>minimum: 1; maximum: 1000000</code></td>
</tr>
<tr>
<td><code>cart.context</code></td>
<td>object</td>
<td>Optional</td>
<td></td>
<td><code>additionalProperties: false</code></td>
</tr>
<tr>
<td><code>cart.context.address_country</code></td>
<td>string</td>
<td>Optional</td>
<td></td>
<td><code>pattern: &quot;^[A-Z]{2}$&quot;</code></td>
</tr>
<tr>
<td><code>cart.context.address_region</code></td>
<td>string</td>
<td>Optional</td>
<td></td>
<td><code>minLength: 1; maxLength: 100; pattern: &quot;^[^\\p{C}]+$&quot;</code></td>
</tr>
<tr>
<td><code>cart.context.postal_code</code></td>
<td>string</td>
<td>Optional</td>
<td></td>
<td><code>minLength: 1; maxLength: 32; pattern: &quot;^[^\\p{C}]+$&quot;</code></td>
</tr>
<tr>
<td><code>cart.context.currency</code></td>
<td>string</td>
<td>Optional</td>
<td></td>
<td><code>pattern: &quot;^[A-Z]{3}$&quot;</code></td>
</tr>
<tr>
<td><code>cart.context.language</code></td>
<td>string</td>
<td>Optional</td>
<td></td>
<td><code>minLength: 1; maxLength: 35; pattern: &quot;^[^\\p{C}]+$&quot;</code></td>
</tr>
<tr>
<td><code>cart.discounts</code></td>
<td>object</td>
<td>Optional</td>
<td></td>
<td><code>additionalProperties: false</code></td>
</tr>
<tr>
<td><code>cart.discounts.codes</code></td>
<td>array</td>
<td>Required</td>
<td></td>
<td><code>maxItems: 10</code></td>
</tr>
<tr>
<td><code>cart.discounts.codes[]</code></td>
<td>string</td>
<td>Optional</td>
<td></td>
<td><code>minLength: 1; maxLength: 100; pattern: &quot;^[^\\p{C}]+$&quot;</code></td>
</tr>
</tbody></table>
</div>
<p><strong>Full JSON Schema</strong></p>

<p><a href="https://api.tooluse.net/v1/integrations/shop/commands/shop.carts.create">Full JSON Schema</a></p>

<p><strong>Example input</strong></p>

<pre><code class="language-json">{
  "shop": "synthetic.myshopify.com",
  "cart": {
    "line_items": [
      {
        "item": {
          "id": "gid://shopify/ProductVariant/123"
        },
        "quantity": 1
      }
    ]
  }
}
</code></pre>

<p>At most 2 provider requests per invocation; timeout: 15 seconds.</p>

</details>
<details id="command-shop-carts-get">
<summary><span>Read your Shop cart — <code>shop.<wbr>carts.<wbr>get</code></span></summary>
<p>Run <strong>Read your Shop cart</strong> with Shop. This is a read command; it does not grant access beyond the connected account&#39;s permissions.</p>

<p>This is a read operation. Provider rate limits and data access rules still apply.</p>

<p><a href="https://www.tooluse.net/tools/integrations/shop?command=shop.carts.get">Connect and use</a></p>

<p><strong>Parameters</strong></p>

<p>Requiredness is local to the containing object. A required child is required only when its parent object or array item is provided. Alternative schemas are identified in the Constraints column; the linked full JSON Schema is authoritative.</p>

<div class="nb-table-scroll"><table>
<thead>
<tr>
<th>Parameter</th>
<th>Type</th>
<th>Required in parent</th>
<th>Description</th>
<th>Constraints</th>
</tr>
</thead>
<tbody><tr>
<td><code>shop</code></td>
<td>string</td>
<td>Required</td>
<td></td>
<td><code>maxLength: 253; pattern: &quot;^(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\\.)+[a-z](?:[a-z0-9-]*[a-z0-9])?$&quot;</code></td>
</tr>
<tr>
<td><code>id</code></td>
<td>string</td>
<td>Required</td>
<td></td>
<td><code>minLength: 1; maxLength: 1000; pattern: &quot;^[^\\p{C}]+$&quot;</code></td>
</tr>
</tbody></table>
</div>
<p><strong>Full JSON Schema</strong></p>

<p><a href="https://api.tooluse.net/v1/integrations/shop/commands/shop.carts.get">Full JSON Schema</a></p>

<p><strong>Example input</strong></p>

<pre><code class="language-json">{
  "shop": "synthetic.myshopify.com",
  "id": "synthetic-resource"
}
</code></pre>

<p>At most 2 provider requests per invocation; timeout: 15 seconds.</p>

</details>
<details id="command-shop-carts-update">
<summary><span>Update your Shop cart — <code>shop.<wbr>carts.<wbr>update</code></span></summary>
<p>Run <strong>Update your Shop cart</strong> with Shop. This command can change provider data. Review the target and input before invoking it.</p>

<p>This operation can change provider data. Review the input before allowing an agent to call it.</p>

<p><a href="https://www.tooluse.net/tools/integrations/shop?command=shop.carts.update">Connect and use</a></p>

<p><strong>Parameters</strong></p>

<p>Requiredness is local to the containing object. A required child is required only when its parent object or array item is provided. Alternative schemas are identified in the Constraints column; the linked full JSON Schema is authoritative.</p>

<div class="nb-table-scroll"><table>
<thead>
<tr>
<th>Parameter</th>
<th>Type</th>
<th>Required in parent</th>
<th>Description</th>
<th>Constraints</th>
</tr>
</thead>
<tbody><tr>
<td><code>shop</code></td>
<td>string</td>
<td>Required</td>
<td></td>
<td><code>maxLength: 253; pattern: &quot;^(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\\.)+[a-z](?:[a-z0-9-]*[a-z0-9])?$&quot;</code></td>
</tr>
<tr>
<td><code>id</code></td>
<td>string</td>
<td>Required</td>
<td></td>
<td><code>minLength: 1; maxLength: 1000; pattern: &quot;^[^\\p{C}]+$&quot;</code></td>
</tr>
<tr>
<td><code>cart</code></td>
<td>object</td>
<td>Required</td>
<td></td>
<td><code>additionalProperties: true</code></td>
</tr>
<tr>
<td><code>cart.line_items</code></td>
<td>array</td>
<td>Required</td>
<td></td>
<td><code>minItems: 0; maxItems: 25</code></td>
</tr>
<tr>
<td><code>cart.line_items[]</code></td>
<td>object</td>
<td>Optional</td>
<td></td>
<td><code>additionalProperties: true</code></td>
</tr>
<tr>
<td><code>cart.line_items[].id</code></td>
<td>string</td>
<td>Optional</td>
<td></td>
<td><code>minLength: 1; maxLength: 300; pattern: &quot;^[^\\p{C}]+$&quot;</code></td>
</tr>
<tr>
<td><code>cart.line_items[].parent_id</code></td>
<td>string</td>
<td>Optional</td>
<td></td>
<td><code>minLength: 1; maxLength: 300; pattern: &quot;^[^\\p{C}]+$&quot;</code></td>
</tr>
<tr>
<td><code>cart.line_items[].item</code></td>
<td>object</td>
<td>Required</td>
<td></td>
<td><code>additionalProperties: true</code></td>
</tr>
<tr>
<td><code>cart.line_items[].item.id</code></td>
<td>string</td>
<td>Required</td>
<td></td>
<td><code>minLength: 1; maxLength: 300; pattern: &quot;^[^\\p{C}]+$&quot;</code></td>
</tr>
<tr>
<td><code>cart.line_items[].quantity</code></td>
<td>integer</td>
<td>Required</td>
<td></td>
<td><code>minimum: 1; maximum: 1000000</code></td>
</tr>
</tbody></table>
</div>
<p><strong>Full JSON Schema</strong></p>

<p><a href="https://api.tooluse.net/v1/integrations/shop/commands/shop.carts.update">Full JSON Schema</a></p>

<p><strong>Example input</strong></p>

<pre><code class="language-json">{
  "shop": "synthetic.myshopify.com",
  "id": "synthetic-resource",
  "cart": {
    "line_items": [
      {
        "item": {
          "id": "gid://shopify/ProductVariant/123"
        },
        "quantity": 1
      }
    ]
  }
}
</code></pre>

<p>At most 2 provider requests per invocation; timeout: 15 seconds.</p>

</details>
<details id="command-shop-checkouts-create">
<summary><span>Prepare a Shop checkout — <code>shop.<wbr>checkouts.<wbr>create</code></span></summary>
<p>Run <strong>Prepare a Shop checkout</strong> with Shop. This command can change provider data. Review the target and input before invoking it.</p>

<p>This operation can change provider data. Review the input before allowing an agent to call it.</p>

<p><a href="https://www.tooluse.net/tools/integrations/shop?command=shop.checkouts.create">Connect and use</a></p>

<p><strong>Parameters</strong></p>

<p>Requiredness is local to the containing object. A required child is required only when its parent object or array item is provided. Alternative schemas are identified in the Constraints column; the linked full JSON Schema is authoritative.</p>

<div class="nb-table-scroll"><table>
<thead>
<tr>
<th>Parameter</th>
<th>Type</th>
<th>Required in parent</th>
<th>Description</th>
<th>Constraints</th>
</tr>
</thead>
<tbody><tr>
<td><code>shop</code></td>
<td>string</td>
<td>Required</td>
<td></td>
<td><code>maxLength: 253; pattern: &quot;^(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\\.)+[a-z](?:[a-z0-9-]*[a-z0-9])?$&quot;</code></td>
</tr>
<tr>
<td><code>checkout</code></td>
<td>object</td>
<td>Required</td>
<td></td>
<td><code>additionalProperties: false</code></td>
</tr>
<tr>
<td><code>checkout.line_items</code></td>
<td>array</td>
<td>Required</td>
<td></td>
<td><code>minItems: 1; maxItems: 25</code></td>
</tr>
<tr>
<td><code>checkout.line_items[]</code></td>
<td>object</td>
<td>Optional</td>
<td></td>
<td><code>additionalProperties: false</code></td>
</tr>
<tr>
<td><code>checkout.line_items[].id</code></td>
<td>string</td>
<td>Optional</td>
<td></td>
<td><code>minLength: 1; maxLength: 300; pattern: &quot;^[^\\p{C}]+$&quot;</code></td>
</tr>
<tr>
<td><code>checkout.line_items[].parent_id</code></td>
<td>string</td>
<td>Optional</td>
<td></td>
<td><code>minLength: 1; maxLength: 300; pattern: &quot;^[^\\p{C}]+$&quot;</code></td>
</tr>
<tr>
<td><code>checkout.line_items[].item</code></td>
<td>object</td>
<td>Required</td>
<td></td>
<td><code>additionalProperties: false</code></td>
</tr>
<tr>
<td><code>checkout.line_items[].item.id</code></td>
<td>string</td>
<td>Required</td>
<td></td>
<td><code>minLength: 1; maxLength: 300; pattern: &quot;^[^\\p{C}]+$&quot;</code></td>
</tr>
<tr>
<td><code>checkout.line_items[].item.quantity_unit</code></td>
<td>object</td>
<td>Optional</td>
<td></td>
<td><code>additionalProperties: false</code></td>
</tr>
<tr>
<td><code>checkout.line_items[].item.quantity_unit.unit</code></td>
<td>string</td>
<td>Required</td>
<td></td>
<td><code>minLength: 1; maxLength: 32; pattern: &quot;^[^\\p{C}]+$&quot;</code></td>
</tr>
<tr>
<td><code>checkout.line_items[].item.quantity_unit.display_text</code></td>
<td>string</td>
<td>Required</td>
<td></td>
<td><code>minLength: 1; maxLength: 100; pattern: &quot;^[^\\p{C}]+$&quot;</code></td>
</tr>
<tr>
<td><code>checkout.line_items[].item.quantity_unit.scale</code></td>
<td>integer</td>
<td>Optional</td>
<td></td>
<td><code>minimum: 0; maximum: 15</code></td>
</tr>
<tr>
<td><code>checkout.line_items[].item.quantity_unit.increment</code></td>
<td>integer</td>
<td>Optional</td>
<td></td>
<td><code>minimum: 1</code></td>
</tr>
<tr>
<td><code>checkout.line_items[].quantity</code></td>
<td>integer</td>
<td>Required</td>
<td></td>
<td><code>minimum: 1; maximum: 1000000</code></td>
</tr>
<tr>
<td><code>checkout.context</code></td>
<td>object</td>
<td>Optional</td>
<td></td>
<td><code>additionalProperties: false</code></td>
</tr>
<tr>
<td><code>checkout.context.address_country</code></td>
<td>string</td>
<td>Optional</td>
<td></td>
<td><code>pattern: &quot;^[A-Z]{2}$&quot;</code></td>
</tr>
<tr>
<td><code>checkout.context.address_region</code></td>
<td>string</td>
<td>Optional</td>
<td></td>
<td><code>minLength: 1; maxLength: 100; pattern: &quot;^[^\\p{C}]+$&quot;</code></td>
</tr>
<tr>
<td><code>checkout.context.postal_code</code></td>
<td>string</td>
<td>Optional</td>
<td></td>
<td><code>minLength: 1; maxLength: 32; pattern: &quot;^[^\\p{C}]+$&quot;</code></td>
</tr>
<tr>
<td><code>checkout.context.currency</code></td>
<td>string</td>
<td>Optional</td>
<td></td>
<td><code>pattern: &quot;^[A-Z]{3}$&quot;</code></td>
</tr>
<tr>
<td><code>checkout.context.language</code></td>
<td>string</td>
<td>Optional</td>
<td></td>
<td><code>minLength: 1; maxLength: 35; pattern: &quot;^[^\\p{C}]+$&quot;</code></td>
</tr>
<tr>
<td><code>checkout.discounts</code></td>
<td>object</td>
<td>Optional</td>
<td></td>
<td><code>additionalProperties: false</code></td>
</tr>
<tr>
<td><code>checkout.discounts.codes</code></td>
<td>array</td>
<td>Required</td>
<td></td>
<td><code>maxItems: 10</code></td>
</tr>
<tr>
<td><code>checkout.discounts.codes[]</code></td>
<td>string</td>
<td>Optional</td>
<td></td>
<td><code>minLength: 1; maxLength: 100; pattern: &quot;^[^\\p{C}]+$&quot;</code></td>
</tr>
</tbody></table>
</div>
<p><strong>Full JSON Schema</strong></p>

<p><a href="https://api.tooluse.net/v1/integrations/shop/commands/shop.checkouts.create">Full JSON Schema</a></p>

<p><strong>Example input</strong></p>

<pre><code class="language-json">{
  "shop": "synthetic.myshopify.com",
  "checkout": {
    "line_items": [
      {
        "item": {
          "id": "gid://shopify/ProductVariant/123"
        },
        "quantity": 1
      }
    ]
  }
}
</code></pre>

<p>At most 2 provider requests per invocation; timeout: 15 seconds.</p>

</details>
<details id="command-shop-checkouts-get">
<summary><span>Read your Shop checkout — <code>shop.<wbr>checkouts.<wbr>get</code></span></summary>
<p>Run <strong>Read your Shop checkout</strong> with Shop. This is a read command; it does not grant access beyond the connected account&#39;s permissions.</p>

<p>This is a read operation. Provider rate limits and data access rules still apply.</p>

<p><a href="https://www.tooluse.net/tools/integrations/shop?command=shop.checkouts.get">Connect and use</a></p>

<p><strong>Parameters</strong></p>

<p>Requiredness is local to the containing object. A required child is required only when its parent object or array item is provided. Alternative schemas are identified in the Constraints column; the linked full JSON Schema is authoritative.</p>

<div class="nb-table-scroll"><table>
<thead>
<tr>
<th>Parameter</th>
<th>Type</th>
<th>Required in parent</th>
<th>Description</th>
<th>Constraints</th>
</tr>
</thead>
<tbody><tr>
<td><code>shop</code></td>
<td>string</td>
<td>Required</td>
<td></td>
<td><code>maxLength: 253; pattern: &quot;^(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\\.)+[a-z](?:[a-z0-9-]*[a-z0-9])?$&quot;</code></td>
</tr>
<tr>
<td><code>id</code></td>
<td>string</td>
<td>Required</td>
<td></td>
<td><code>minLength: 1; maxLength: 1000; pattern: &quot;^[^\\p{C}]+$&quot;</code></td>
</tr>
</tbody></table>
</div>
<p><strong>Full JSON Schema</strong></p>

<p><a href="https://api.tooluse.net/v1/integrations/shop/commands/shop.checkouts.get">Full JSON Schema</a></p>

<p><strong>Example input</strong></p>

<pre><code class="language-json">{
  "shop": "synthetic.myshopify.com",
  "id": "synthetic-resource"
}
</code></pre>

<p>At most 2 provider requests per invocation; timeout: 15 seconds.</p>

</details>
<details id="command-shop-checkouts-update">
<summary><span>Update your Shop checkout — <code>shop.<wbr>checkouts.<wbr>update</code></span></summary>
<p>Run <strong>Update your Shop checkout</strong> with Shop. This command can change provider data. Review the target and input before invoking it.</p>

<p>This operation can change provider data. Review the input before allowing an agent to call it.</p>

<p><a href="https://www.tooluse.net/tools/integrations/shop?command=shop.checkouts.update">Connect and use</a></p>

<p><strong>Parameters</strong></p>

<p>Requiredness is local to the containing object. A required child is required only when its parent object or array item is provided. Alternative schemas are identified in the Constraints column; the linked full JSON Schema is authoritative.</p>

<div class="nb-table-scroll"><table>
<thead>
<tr>
<th>Parameter</th>
<th>Type</th>
<th>Required in parent</th>
<th>Description</th>
<th>Constraints</th>
</tr>
</thead>
<tbody><tr>
<td><code>shop</code></td>
<td>string</td>
<td>Required</td>
<td></td>
<td><code>maxLength: 253; pattern: &quot;^(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\\.)+[a-z](?:[a-z0-9-]*[a-z0-9])?$&quot;</code></td>
</tr>
<tr>
<td><code>id</code></td>
<td>string</td>
<td>Required</td>
<td></td>
<td><code>minLength: 1; maxLength: 1000; pattern: &quot;^[^\\p{C}]+$&quot;</code></td>
</tr>
<tr>
<td><code>checkout</code></td>
<td>object</td>
<td>Required</td>
<td></td>
<td><code>additionalProperties: true</code></td>
</tr>
<tr>
<td><code>checkout.line_items</code></td>
<td>array</td>
<td>Required</td>
<td></td>
<td><code>minItems: 0; maxItems: 25</code></td>
</tr>
<tr>
<td><code>checkout.line_items[]</code></td>
<td>object</td>
<td>Optional</td>
<td></td>
<td><code>additionalProperties: true</code></td>
</tr>
<tr>
<td><code>checkout.line_items[].id</code></td>
<td>string</td>
<td>Optional</td>
<td></td>
<td><code>minLength: 1; maxLength: 300; pattern: &quot;^[^\\p{C}]+$&quot;</code></td>
</tr>
<tr>
<td><code>checkout.line_items[].parent_id</code></td>
<td>string</td>
<td>Optional</td>
<td></td>
<td><code>minLength: 1; maxLength: 300; pattern: &quot;^[^\\p{C}]+$&quot;</code></td>
</tr>
<tr>
<td><code>checkout.line_items[].item</code></td>
<td>object</td>
<td>Required</td>
<td></td>
<td><code>additionalProperties: true</code></td>
</tr>
<tr>
<td><code>checkout.line_items[].item.id</code></td>
<td>string</td>
<td>Required</td>
<td></td>
<td><code>minLength: 1; maxLength: 300; pattern: &quot;^[^\\p{C}]+$&quot;</code></td>
</tr>
<tr>
<td><code>checkout.line_items[].quantity</code></td>
<td>integer</td>
<td>Required</td>
<td></td>
<td><code>minimum: 1; maximum: 1000000</code></td>
</tr>
</tbody></table>
</div>
<p><strong>Full JSON Schema</strong></p>

<p><a href="https://api.tooluse.net/v1/integrations/shop/commands/shop.checkouts.update">Full JSON Schema</a></p>

<p><strong>Example input</strong></p>

<pre><code class="language-json">{
  "shop": "synthetic.myshopify.com",
  "id": "synthetic-resource",
  "checkout": {
    "line_items": [
      {
        "item": {
          "id": "gid://shopify/ProductVariant/123"
        },
        "quantity": 1
      }
    ]
  }
}
</code></pre>

<p>At most 2 provider requests per invocation; timeout: 15 seconds.</p>

</details>
<h2>Errors</h2>

<p>Check the key&#39;s expiry, revocation, workspace and allowed operations.</p>

<p>Reuse the same idempotency key only for the same request.</p>

<p>The connection or provider limit has been reached. Check the receipt before retrying.</p>

<h2>Test the connection</h2>

<p>Open the integration&#39;s commands below to inspect parameters and examples. Start with a read command for an account or resource you can access. Refresh your client&#39;s tool list, use the returned tool name, and check the execution result and usage. Provider charges and permissions still apply. Never test a write against production data without reviewing it.</p>

<p><a href="https://github.com/Shopify/shop#direct-mcp-integration">Official provider documentation</a></p>

Source: https://help.tooluse.net/integrations/shop/index.mdx
