Run a valid shopify.create_fulfillment call through the same SDK surface used by every toolkit.

Minimal tool call

ts
import { Eyeball } from "@eyeball/sdk";

const eyeball = new Eyeball({
  apiKey: process.env.EYEBALL_API_KEY!,
  baseUrl: process.env.EYEBALL_EXECUTOR_URL!,
});

const output = await eyeball.tools.run(
  "shopify.create_fulfillment",
  {
  "orderId": "example_orderId",
  "notifyCustomer": false
},
  { userId: "demo_user",
  idempotencyKey: "docs:shopify.create_fulfillment:demo-1" },
);
console.log(output);

The model receives canonical output. Your application retains the execution envelope through tools.execute or the execution APIs when it needs IDs, status, versions, and latency.

Supported canonical tools

ToolPurposeExecutionEffectVersion
shopify.create_fulfillmentCreate a fulfillment or shipment for an order. This can notify customers and change fulfillment state; verify items and tracking first.sync or asyncmutation1.0.0
shopify.create_productCreate a product and its initial variants. This changes the store catalog; verify publication status, pricing, and inventory before execution.sync or asyncmutation1.0.0
shopify.get_orderRetrieve one order with normalized line items, customer, totals, and fulfillment state.sync or asyncread1.0.0
shopify.get_productRetrieve one product with normalized variants, pricing, and inventory metadata.sync or asyncread1.0.0
shopify.list_customersList store customers using identity, time, and pagination filters with normalized order and spend summaries.sync or asyncread1.0.0
shopify.list_ordersList orders using customer, payment, fulfillment, time, and pagination filters.sync or asyncread1.0.0
shopify.list_productsList products using publication status and pagination filters, including normalized variants and inventory metadata.sync or asyncread1.0.0
shopify.update_inventorySet inventory for a product variant at a location. This overwrites the available quantity, so verify the target item, location, and count.sync or asyncmutation1.0.0
shopify.update_orderUpdate provider-supported order fields, payment or fulfillment state, note, and tags. Verify state transitions before execution.sync or asyncmutation1.0.0
shopify.update_productUpdate product content, pricing metadata, tags, or publication state. Repeating the same values has no additional effect.sync or asyncmutation1.0.0

Only the rows above are implemented. A capability tool omitted by this manifest returns not_supported; eyeball never synthesizes provider parity.

Supported canonical triggers

This manifest does not implement a canonical trigger.

Input and output schemas

shopify.create_fulfillment

Input schema

JSON
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "urn:eyeball:ecommerce:create_fulfillment:1.0.0:shopify",
  "type": "object",
  "description": "Order, fulfilled items, and tracking details.",
  "additionalProperties": false,
  "required": [
    "orderId"
  ],
  "properties": {
    "orderId": {
      "type": "string",
      "description": "Provider identifier of the order.",
      "minLength": 1
    },
    "lineItems": {
      "type": "array",
      "description": "Specific order lines to fulfill; omit to fulfill all remaining items.",
      "minItems": 1,
      "items": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "lineItemId",
          "quantity"
        ],
        "properties": {
          "lineItemId": {
            "type": "string",
            "description": "Provider identifier of the order line.",
            "minLength": 1
          },
          "quantity": {
            "type": "integer",
            "description": "Quantity to fulfill.",
            "minimum": 1
          }
        }
      }
    },
    "trackingCompany": {
      "type": "string",
      "description": "Carrier name."
    },
    "trackingNumber": {
      "type": "string",
      "description": "Carrier tracking number."
    },
    "trackingUrl": {
      "type": "string",
      "format": "uri",
      "description": "Carrier tracking URL when supported."
    },
    "notifyCustomer": {
      "type": "boolean",
      "description": "Whether the provider should notify the customer.",
      "default": false
    }
  }
}

Output schema

JSON
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "urn:eyeball:ecommerce:create_fulfillment:output:1.0.0:shopify",
  "type": "object",
  "description": "The newly created fulfillment.",
  "additionalProperties": false,
  "required": [
    "fulfillmentId",
    "orderId",
    "status",
    "lineItems",
    "createdAt"
  ],
  "properties": {
    "fulfillmentId": {
      "type": "string",
      "description": "Provider identifier of the fulfillment.",
      "minLength": 1
    },
    "orderId": {
      "type": "string",
      "description": "Provider identifier of the fulfilled order.",
      "minLength": 1
    },
    "status": {
      "type": "string",
      "description": "Fulfillment state."
    },
    "trackingCompany": {
      "type": "string",
      "description": "Carrier name."
    },
    "trackingNumber": {
      "type": "string",
      "description": "Carrier tracking number."
    },
    "lineItems": {
      "type": "array",
      "description": "Provider fulfillment line records.",
      "items": {
        "type": "object",
        "additionalProperties": true
      }
    },
    "createdAt": {
      "type": "string",
      "format": "date-time",
      "description": "Fulfillment creation timestamp."
    }
  }
}
shopify.create_product

Input schema

JSON
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "urn:eyeball:ecommerce:create_product:1.0.0:shopify",
  "type": "object",
  "description": "Product content and initial variants.",
  "additionalProperties": false,
  "required": [
    "title"
  ],
  "properties": {
    "title": {
      "type": "string",
      "description": "Product title.",
      "minLength": 1
    },
    "descriptionHtml": {
      "type": "string",
      "description": "Product description serialized as HTML."
    },
    "vendor": {
      "type": "string",
      "description": "Product vendor or brand."
    },
    "productType": {
      "type": "string",
      "description": "Merchant product classification."
    },
    "handle": {
      "type": "string",
      "description": "Storefront handle or slug.",
      "minLength": 1
    },
    "status": {
      "type": "string",
      "description": "Initial publication state.",
      "enum": [
        "active",
        "draft",
        "archived"
      ],
      "default": "draft"
    },
    "tags": {
      "type": "array",
      "description": "Initial product tags.",
      "items": {
        "type": "string",
        "minLength": 1
      }
    },
    "variants": {
      "type": "array",
      "description": "Initial product variants; the provider creates a default variant when omitted.",
      "minItems": 1,
      "items": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "title": {
            "type": "string",
            "description": "Variant title."
          },
          "price": {
            "type": "number",
            "description": "Variant price in major currency units.",
            "minimum": 0
          },
          "sku": {
            "type": "string",
            "description": "Merchant stock-keeping unit."
          },
          "inventoryQuantity": {
            "type": "integer",
            "description": "Initial inventory quantity.",
            "default": 0
          }
        }
      }
    }
  }
}

Output schema

JSON
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "urn:eyeball:ecommerce:create_product:output:1.0.0:shopify",
  "type": "object",
  "description": "The newly created product.",
  "additionalProperties": false,
  "required": [
    "product"
  ],
  "properties": {
    "product": {
      "type": "object",
      "description": "A normalized e-commerce product.",
      "additionalProperties": false,
      "required": [
        "productId",
        "title",
        "status",
        "tags",
        "variants",
        "createdAt",
        "updatedAt"
      ],
      "properties": {
        "productId": {
          "type": "string",
          "description": "Provider identifier of the product.",
          "minLength": 1
        },
        "title": {
          "type": "string",
          "description": "Product title."
        },
        "descriptionHtml": {
          "type": "string",
          "description": "Product description serialized as HTML."
        },
        "vendor": {
          "type": "string",
          "description": "Product vendor or brand."
        },
        "productType": {
          "type": "string",
          "description": "Merchant product classification."
        },
        "handle": {
          "type": "string",
          "description": "Storefront handle or slug."
        },
        "status": {
          "type": "string",
          "description": "Product publication state."
        },
        "tags": {
          "type": "array",
          "description": "Product tags.",
          "items": {
            "type": "string",
            "minLength": 1
          }
        },
        "variants": {
          "type": "array",
          "description": "Product variants.",
          "items": {
            "type": "object",
            "description": "A normalized product variant.",
            "additionalProperties": false,
            "required": [
              "variantId",
              "title",
              "price",
              "inventoryItemId",
              "inventoryQuantity"
            ],
            "properties": {
              "variantId": {
                "type": "string",
                "description": "Provider identifier of the variant.",
                "minLength": 1
              },
              "title": {
                "type": "string",
                "description": "Variant title."
              },
              "price": {
                "type": "number",
                "description": "Variant price in major currency units.",
                "minimum": 0
              },
              "sku": {
                "type": "string",
                "description": "Merchant stock-keeping unit."
              },
              "inventoryItemId": {
                "type": "string",
                "description": "Provider inventory-item identifier.",
                "minLength": 1
              },
              "inventoryQuantity": {
                "type": "integer",
                "description": "Current inventory quantity reported by the product API."
              }
            }
          }
        },
        "createdAt": {
          "type": "string",
          "format": "date-time",
          "description": "Product creation timestamp."
        },
        "updatedAt": {
          "type": "string",
          "format": "date-time",
          "description": "Most recent product update timestamp."
        }
      }
    }
  }
}
shopify.get_order

Input schema

JSON
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "urn:eyeball:ecommerce:get_order:1.0.0:shopify",
  "type": "object",
  "description": "Identifier of the order to retrieve.",
  "additionalProperties": false,
  "required": [
    "orderId"
  ],
  "properties": {
    "orderId": {
      "type": "string",
      "description": "Provider identifier of the order.",
      "minLength": 1
    }
  }
}

Output schema

JSON
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "urn:eyeball:ecommerce:get_order:output:1.0.0:shopify",
  "type": "object",
  "description": "The requested normalized order.",
  "additionalProperties": false,
  "required": [
    "order"
  ],
  "properties": {
    "order": {
      "type": "object",
      "description": "A normalized e-commerce order.",
      "additionalProperties": false,
      "required": [
        "orderId",
        "name",
        "financialStatus",
        "fulfillmentStatus",
        "lineItems",
        "total",
        "currency",
        "createdAt",
        "updatedAt"
      ],
      "properties": {
        "orderId": {
          "type": "string",
          "description": "Provider identifier of the order.",
          "minLength": 1
        },
        "name": {
          "type": "string",
          "description": "Human-readable order number or name."
        },
        "email": {
          "type": "string",
          "format": "email",
          "description": "Customer email address."
        },
        "customerId": {
          "type": "string",
          "description": "Provider identifier of the store customer.",
          "minLength": 1
        },
        "financialStatus": {
          "type": "string",
          "description": "Order payment state."
        },
        "fulfillmentStatus": {
          "type": [
            "string",
            "null"
          ],
          "description": "Order fulfillment state, or null when unfulfilled."
        },
        "lineItems": {
          "type": "array",
          "description": "Purchased order lines.",
          "items": {
            "type": "object",
            "description": "One normalized order line.",
            "additionalProperties": false,
            "required": [
              "lineItemId",
              "title",
              "quantity",
              "unitPrice"
            ],
            "properties": {
              "lineItemId": {
                "type": "string",
                "description": "Provider identifier of the order line.",
                "minLength": 1
              },
              "productId": {
                "type": "string",
                "description": "Provider identifier of the product.",
                "minLength": 1
              },
              "variantId": {
                "type": "string",
                "description": "Provider identifier of the product variant.",
                "minLength": 1
              },
              "title": {
                "type": "string",
                "description": "Purchased item title."
              },
              "quantity": {
                "type": "integer",
                "description": "Purchased quantity.",
                "minimum": 0
              },
              "unitPrice": {
                "type": "number",
                "description": "Price per item in major currency units.",
                "minimum": 0
              }
            }
          }
        },
        "total": {
          "type": "number",
          "description": "Order total in major currency units.",
          "minimum": 0
        },
        "currency": {
          "type": "string",
          "description": "ISO 4217 currency code.",
          "pattern": "^[A-Z]{3}$"
        },
        "note": {
          "type": [
            "string",
            "null"
          ],
          "description": "Merchant or customer order note."
        },
        "tags": {
          "type": "array",
          "description": "Order tags.",
          "items": {
            "type": "string",
            "minLength": 1
          }
        },
        "createdAt": {
          "type": "string",
          "format": "date-time",
          "description": "Order creation timestamp."
        },
        "updatedAt": {
          "type": "string",
          "format": "date-time",
          "description": "Most recent order update timestamp."
        }
      }
    }
  }
}
shopify.get_product

Input schema

JSON
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "urn:eyeball:ecommerce:get_product:1.0.0:shopify",
  "type": "object",
  "description": "Identifier of the product to retrieve.",
  "additionalProperties": false,
  "required": [
    "productId"
  ],
  "properties": {
    "productId": {
      "type": "string",
      "description": "Provider identifier of the product.",
      "minLength": 1
    }
  }
}

Output schema

JSON
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "urn:eyeball:ecommerce:get_product:output:1.0.0:shopify",
  "type": "object",
  "description": "The requested normalized product.",
  "additionalProperties": false,
  "required": [
    "product"
  ],
  "properties": {
    "product": {
      "type": "object",
      "description": "A normalized e-commerce product.",
      "additionalProperties": false,
      "required": [
        "productId",
        "title",
        "status",
        "tags",
        "variants",
        "createdAt",
        "updatedAt"
      ],
      "properties": {
        "productId": {
          "type": "string",
          "description": "Provider identifier of the product.",
          "minLength": 1
        },
        "title": {
          "type": "string",
          "description": "Product title."
        },
        "descriptionHtml": {
          "type": "string",
          "description": "Product description serialized as HTML."
        },
        "vendor": {
          "type": "string",
          "description": "Product vendor or brand."
        },
        "productType": {
          "type": "string",
          "description": "Merchant product classification."
        },
        "handle": {
          "type": "string",
          "description": "Storefront handle or slug."
        },
        "status": {
          "type": "string",
          "description": "Product publication state."
        },
        "tags": {
          "type": "array",
          "description": "Product tags.",
          "items": {
            "type": "string",
            "minLength": 1
          }
        },
        "variants": {
          "type": "array",
          "description": "Product variants.",
          "items": {
            "type": "object",
            "description": "A normalized product variant.",
            "additionalProperties": false,
            "required": [
              "variantId",
              "title",
              "price",
              "inventoryItemId",
              "inventoryQuantity"
            ],
            "properties": {
              "variantId": {
                "type": "string",
                "description": "Provider identifier of the variant.",
                "minLength": 1
              },
              "title": {
                "type": "string",
                "description": "Variant title."
              },
              "price": {
                "type": "number",
                "description": "Variant price in major currency units.",
                "minimum": 0
              },
              "sku": {
                "type": "string",
                "description": "Merchant stock-keeping unit."
              },
              "inventoryItemId": {
                "type": "string",
                "description": "Provider inventory-item identifier.",
                "minLength": 1
              },
              "inventoryQuantity": {
                "type": "integer",
                "description": "Current inventory quantity reported by the product API."
              }
            }
          }
        },
        "createdAt": {
          "type": "string",
          "format": "date-time",
          "description": "Product creation timestamp."
        },
        "updatedAt": {
          "type": "string",
          "format": "date-time",
          "description": "Most recent product update timestamp."
        }
      }
    }
  }
}
shopify.list_customers

Input schema

JSON
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "urn:eyeball:ecommerce:list_customers:1.0.0:shopify",
  "type": "object",
  "description": "Customer identity filters and pagination.",
  "additionalProperties": false,
  "properties": {
    "query": {
      "type": "string",
      "description": "Case-insensitive customer name or email query.",
      "minLength": 1
    },
    "createdAfter": {
      "type": "string",
      "format": "date-time",
      "description": "Return customers created at or after this timestamp."
    },
    "createdBefore": {
      "type": "string",
      "format": "date-time",
      "description": "Return customers created before this timestamp."
    },
    "pageSize": {
      "type": "integer",
      "description": "Maximum number of customers to return in one page.",
      "minimum": 1,
      "maximum": 100,
      "default": 50
    },
    "pageToken": {
      "type": "string",
      "description": "Opaque continuation token from a previous customer page.",
      "minLength": 1
    }
  }
}

Output schema

JSON
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "urn:eyeball:ecommerce:list_customers:output:1.0.0:shopify",
  "type": "object",
  "description": "One page of normalized store customers.",
  "additionalProperties": false,
  "required": [
    "customers"
  ],
  "properties": {
    "customers": {
      "type": "array",
      "description": "Customers in provider order.",
      "items": {
        "type": "object",
        "description": "A normalized e-commerce customer.",
        "additionalProperties": false,
        "required": [
          "customerId",
          "firstName",
          "lastName",
          "email",
          "ordersCount",
          "totalSpent",
          "createdAt",
          "updatedAt"
        ],
        "properties": {
          "customerId": {
            "type": "string",
            "description": "Provider identifier of the store customer.",
            "minLength": 1
          },
          "firstName": {
            "type": "string",
            "description": "Customer given name."
          },
          "lastName": {
            "type": "string",
            "description": "Customer family name."
          },
          "email": {
            "type": "string",
            "format": "email",
            "description": "Customer email address."
          },
          "phone": {
            "type": "string",
            "description": "Customer phone number."
          },
          "ordersCount": {
            "type": "integer",
            "description": "Number of orders attributed to the customer.",
            "minimum": 0
          },
          "totalSpent": {
            "type": "number",
            "description": "Lifetime spend in major currency units.",
            "minimum": 0
          },
          "createdAt": {
            "type": "string",
            "format": "date-time",
            "description": "Customer creation timestamp."
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time",
            "description": "Most recent customer update timestamp."
          }
        }
      }
    },
    "nextPageToken": {
      "type": "string",
      "description": "Opaque token to request the next page of customers; absent when the result is complete.",
      "minLength": 1
    }
  }
}
shopify.list_orders

Input schema

JSON
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "urn:eyeball:ecommerce:list_orders:1.0.0:shopify",
  "type": "object",
  "description": "Order filters and pagination.",
  "additionalProperties": false,
  "properties": {
    "customerId": {
      "type": "string",
      "description": "Provider identifier of the store customer.",
      "minLength": 1
    },
    "financialStatus": {
      "type": "string",
      "description": "Order payment state to match.",
      "minLength": 1
    },
    "fulfillmentStatus": {
      "type": "string",
      "description": "Fulfillment state to match.",
      "minLength": 1
    },
    "createdAfter": {
      "type": "string",
      "format": "date-time",
      "description": "Return orders created at or after this timestamp."
    },
    "createdBefore": {
      "type": "string",
      "format": "date-time",
      "description": "Return orders created before this timestamp."
    },
    "pageSize": {
      "type": "integer",
      "description": "Maximum number of orders to return in one page.",
      "minimum": 1,
      "maximum": 100,
      "default": 50
    },
    "pageToken": {
      "type": "string",
      "description": "Opaque continuation token from a previous order page.",
      "minLength": 1
    }
  }
}

Output schema

JSON
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "urn:eyeball:ecommerce:list_orders:output:1.0.0:shopify",
  "type": "object",
  "description": "One page of normalized orders.",
  "additionalProperties": false,
  "required": [
    "orders"
  ],
  "properties": {
    "orders": {
      "type": "array",
      "description": "Orders in provider order.",
      "items": {
        "type": "object",
        "description": "A normalized e-commerce order.",
        "additionalProperties": false,
        "required": [
          "orderId",
          "name",
          "financialStatus",
          "fulfillmentStatus",
          "lineItems",
          "total",
          "currency",
          "createdAt",
          "updatedAt"
        ],
        "properties": {
          "orderId": {
            "type": "string",
            "description": "Provider identifier of the order.",
            "minLength": 1
          },
          "name": {
            "type": "string",
            "description": "Human-readable order number or name."
          },
          "email": {
            "type": "string",
            "format": "email",
            "description": "Customer email address."
          },
          "customerId": {
            "type": "string",
            "description": "Provider identifier of the store customer.",
            "minLength": 1
          },
          "financialStatus": {
            "type": "string",
            "description": "Order payment state."
          },
          "fulfillmentStatus": {
            "type": [
              "string",
              "null"
            ],
            "description": "Order fulfillment state, or null when unfulfilled."
          },
          "lineItems": {
            "type": "array",
            "description": "Purchased order lines.",
            "items": {
              "type": "object",
              "description": "One normalized order line.",
              "additionalProperties": false,
              "required": [
                "lineItemId",
                "title",
                "quantity",
                "unitPrice"
              ],
              "properties": {
                "lineItemId": {
                  "type": "string",
                  "description": "Provider identifier of the order line.",
                  "minLength": 1
                },
                "productId": {
                  "type": "string",
                  "description": "Provider identifier of the product.",
                  "minLength": 1
                },
                "variantId": {
                  "type": "string",
                  "description": "Provider identifier of the product variant.",
                  "minLength": 1
                },
                "title": {
                  "type": "string",
                  "description": "Purchased item title."
                },
                "quantity": {
                  "type": "integer",
                  "description": "Purchased quantity.",
                  "minimum": 0
                },
                "unitPrice": {
                  "type": "number",
                  "description": "Price per item in major currency units.",
                  "minimum": 0
                }
              }
            }
          },
          "total": {
            "type": "number",
            "description": "Order total in major currency units.",
            "minimum": 0
          },
          "currency": {
            "type": "string",
            "description": "ISO 4217 currency code.",
            "pattern": "^[A-Z]{3}$"
          },
          "note": {
            "type": [
              "string",
              "null"
            ],
            "description": "Merchant or customer order note."
          },
          "tags": {
            "type": "array",
            "description": "Order tags.",
            "items": {
              "type": "string",
              "minLength": 1
            }
          },
          "createdAt": {
            "type": "string",
            "format": "date-time",
            "description": "Order creation timestamp."
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time",
            "description": "Most recent order update timestamp."
          }
        }
      }
    },
    "nextPageToken": {
      "type": "string",
      "description": "Opaque token to request the next page of orders; absent when the result is complete.",
      "minLength": 1
    }
  }
}
shopify.list_products

Input schema

JSON
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "urn:eyeball:ecommerce:list_products:1.0.0:shopify",
  "type": "object",
  "description": "Product filters and pagination.",
  "additionalProperties": false,
  "properties": {
    "status": {
      "type": "string",
      "description": "Product publication state to match.",
      "minLength": 1
    },
    "collectionId": {
      "type": "string",
      "description": "Provider collection identifier when supported.",
      "minLength": 1
    },
    "pageSize": {
      "type": "integer",
      "description": "Maximum number of products to return in one page.",
      "minimum": 1,
      "maximum": 100,
      "default": 50
    },
    "pageToken": {
      "type": "string",
      "description": "Opaque continuation token from a previous product page.",
      "minLength": 1
    }
  }
}

Output schema

JSON
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "urn:eyeball:ecommerce:list_products:output:1.0.0:shopify",
  "type": "object",
  "description": "One page of normalized products.",
  "additionalProperties": false,
  "required": [
    "products"
  ],
  "properties": {
    "products": {
      "type": "array",
      "description": "Products in provider order.",
      "items": {
        "type": "object",
        "description": "A normalized e-commerce product.",
        "additionalProperties": false,
        "required": [
          "productId",
          "title",
          "status",
          "tags",
          "variants",
          "createdAt",
          "updatedAt"
        ],
        "properties": {
          "productId": {
            "type": "string",
            "description": "Provider identifier of the product.",
            "minLength": 1
          },
          "title": {
            "type": "string",
            "description": "Product title."
          },
          "descriptionHtml": {
            "type": "string",
            "description": "Product description serialized as HTML."
          },
          "vendor": {
            "type": "string",
            "description": "Product vendor or brand."
          },
          "productType": {
            "type": "string",
            "description": "Merchant product classification."
          },
          "handle": {
            "type": "string",
            "description": "Storefront handle or slug."
          },
          "status": {
            "type": "string",
            "description": "Product publication state."
          },
          "tags": {
            "type": "array",
            "description": "Product tags.",
            "items": {
              "type": "string",
              "minLength": 1
            }
          },
          "variants": {
            "type": "array",
            "description": "Product variants.",
            "items": {
              "type": "object",
              "description": "A normalized product variant.",
              "additionalProperties": false,
              "required": [
                "variantId",
                "title",
                "price",
                "inventoryItemId",
                "inventoryQuantity"
              ],
              "properties": {
                "variantId": {
                  "type": "string",
                  "description": "Provider identifier of the variant.",
                  "minLength": 1
                },
                "title": {
                  "type": "string",
                  "description": "Variant title."
                },
                "price": {
                  "type": "number",
                  "description": "Variant price in major currency units.",
                  "minimum": 0
                },
                "sku": {
                  "type": "string",
                  "description": "Merchant stock-keeping unit."
                },
                "inventoryItemId": {
                  "type": "string",
                  "description": "Provider inventory-item identifier.",
                  "minLength": 1
                },
                "inventoryQuantity": {
                  "type": "integer",
                  "description": "Current inventory quantity reported by the product API."
                }
              }
            }
          },
          "createdAt": {
            "type": "string",
            "format": "date-time",
            "description": "Product creation timestamp."
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time",
            "description": "Most recent product update timestamp."
          }
        }
      }
    },
    "nextPageToken": {
      "type": "string",
      "description": "Opaque token to request the next page of products; absent when the result is complete.",
      "minLength": 1
    }
  }
}
shopify.update_inventory

Input schema

JSON
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "urn:eyeball:ecommerce:update_inventory:1.0.0:shopify",
  "type": "object",
  "description": "Inventory item, location, and absolute available quantity.",
  "additionalProperties": false,
  "required": [
    "inventoryItemId",
    "locationId",
    "quantity"
  ],
  "properties": {
    "inventoryItemId": {
      "type": "string",
      "description": "Provider inventory-item identifier.",
      "minLength": 1
    },
    "locationId": {
      "type": "string",
      "description": "Provider inventory-location identifier.",
      "minLength": 1
    },
    "quantity": {
      "type": "integer",
      "description": "Absolute available quantity to set."
    }
  }
}

Output schema

JSON
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "urn:eyeball:ecommerce:update_inventory:output:1.0.0:shopify",
  "type": "object",
  "description": "The resulting inventory level.",
  "additionalProperties": false,
  "required": [
    "inventoryItemId",
    "locationId",
    "quantity",
    "updatedAt"
  ],
  "properties": {
    "inventoryItemId": {
      "type": "string",
      "description": "Provider inventory-item identifier.",
      "minLength": 1
    },
    "locationId": {
      "type": "string",
      "description": "Provider inventory-location identifier.",
      "minLength": 1
    },
    "quantity": {
      "type": "integer",
      "description": "Available quantity after the update."
    },
    "updatedAt": {
      "type": "string",
      "format": "date-time",
      "description": "Inventory update timestamp."
    }
  }
}
shopify.update_order

Input schema

JSON
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "urn:eyeball:ecommerce:update_order:1.0.0:shopify",
  "type": "object",
  "description": "Order identifier and fields to update.",
  "additionalProperties": false,
  "required": [
    "orderId"
  ],
  "properties": {
    "orderId": {
      "type": "string",
      "description": "Provider identifier of the order.",
      "minLength": 1
    },
    "email": {
      "type": "string",
      "format": "email",
      "description": "Updated customer email address."
    },
    "financialStatus": {
      "type": "string",
      "description": "Updated payment state."
    },
    "fulfillmentStatus": {
      "type": [
        "string",
        "null"
      ],
      "description": "Updated fulfillment state, or null when unfulfilled."
    },
    "note": {
      "type": [
        "string",
        "null"
      ],
      "description": "Updated merchant or customer order note."
    },
    "tags": {
      "type": "array",
      "description": "Replacement order tags.",
      "items": {
        "type": "string",
        "minLength": 1
      }
    }
  },
  "minProperties": 2
}

Output schema

JSON
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "urn:eyeball:ecommerce:update_order:output:1.0.0:shopify",
  "type": "object",
  "description": "The updated order.",
  "additionalProperties": false,
  "required": [
    "order"
  ],
  "properties": {
    "order": {
      "type": "object",
      "description": "A normalized e-commerce order.",
      "additionalProperties": false,
      "required": [
        "orderId",
        "name",
        "financialStatus",
        "fulfillmentStatus",
        "lineItems",
        "total",
        "currency",
        "createdAt",
        "updatedAt"
      ],
      "properties": {
        "orderId": {
          "type": "string",
          "description": "Provider identifier of the order.",
          "minLength": 1
        },
        "name": {
          "type": "string",
          "description": "Human-readable order number or name."
        },
        "email": {
          "type": "string",
          "format": "email",
          "description": "Customer email address."
        },
        "customerId": {
          "type": "string",
          "description": "Provider identifier of the store customer.",
          "minLength": 1
        },
        "financialStatus": {
          "type": "string",
          "description": "Order payment state."
        },
        "fulfillmentStatus": {
          "type": [
            "string",
            "null"
          ],
          "description": "Order fulfillment state, or null when unfulfilled."
        },
        "lineItems": {
          "type": "array",
          "description": "Purchased order lines.",
          "items": {
            "type": "object",
            "description": "One normalized order line.",
            "additionalProperties": false,
            "required": [
              "lineItemId",
              "title",
              "quantity",
              "unitPrice"
            ],
            "properties": {
              "lineItemId": {
                "type": "string",
                "description": "Provider identifier of the order line.",
                "minLength": 1
              },
              "productId": {
                "type": "string",
                "description": "Provider identifier of the product.",
                "minLength": 1
              },
              "variantId": {
                "type": "string",
                "description": "Provider identifier of the product variant.",
                "minLength": 1
              },
              "title": {
                "type": "string",
                "description": "Purchased item title."
              },
              "quantity": {
                "type": "integer",
                "description": "Purchased quantity.",
                "minimum": 0
              },
              "unitPrice": {
                "type": "number",
                "description": "Price per item in major currency units.",
                "minimum": 0
              }
            }
          }
        },
        "total": {
          "type": "number",
          "description": "Order total in major currency units.",
          "minimum": 0
        },
        "currency": {
          "type": "string",
          "description": "ISO 4217 currency code.",
          "pattern": "^[A-Z]{3}$"
        },
        "note": {
          "type": [
            "string",
            "null"
          ],
          "description": "Merchant or customer order note."
        },
        "tags": {
          "type": "array",
          "description": "Order tags.",
          "items": {
            "type": "string",
            "minLength": 1
          }
        },
        "createdAt": {
          "type": "string",
          "format": "date-time",
          "description": "Order creation timestamp."
        },
        "updatedAt": {
          "type": "string",
          "format": "date-time",
          "description": "Most recent order update timestamp."
        }
      }
    }
  }
}
shopify.update_product

Input schema

JSON
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "urn:eyeball:ecommerce:update_product:1.0.0:shopify",
  "type": "object",
  "description": "Product identifier and fields to update.",
  "additionalProperties": false,
  "required": [
    "productId"
  ],
  "properties": {
    "productId": {
      "type": "string",
      "description": "Provider identifier of the product.",
      "minLength": 1
    },
    "title": {
      "type": "string",
      "description": "Updated product title."
    },
    "descriptionHtml": {
      "type": "string",
      "description": "Updated product description serialized as HTML."
    },
    "vendor": {
      "type": "string",
      "description": "Updated vendor or brand."
    },
    "productType": {
      "type": "string",
      "description": "Updated merchant product classification."
    },
    "status": {
      "type": "string",
      "description": "Updated publication state.",
      "enum": [
        "active",
        "draft",
        "archived"
      ]
    },
    "tags": {
      "type": "array",
      "description": "Replacement product tags.",
      "items": {
        "type": "string",
        "minLength": 1
      }
    }
  },
  "minProperties": 2
}

Output schema

JSON
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "urn:eyeball:ecommerce:update_product:output:1.0.0:shopify",
  "type": "object",
  "description": "The updated product.",
  "additionalProperties": false,
  "required": [
    "product"
  ],
  "properties": {
    "product": {
      "type": "object",
      "description": "A normalized e-commerce product.",
      "additionalProperties": false,
      "required": [
        "productId",
        "title",
        "status",
        "tags",
        "variants",
        "createdAt",
        "updatedAt"
      ],
      "properties": {
        "productId": {
          "type": "string",
          "description": "Provider identifier of the product.",
          "minLength": 1
        },
        "title": {
          "type": "string",
          "description": "Product title."
        },
        "descriptionHtml": {
          "type": "string",
          "description": "Product description serialized as HTML."
        },
        "vendor": {
          "type": "string",
          "description": "Product vendor or brand."
        },
        "productType": {
          "type": "string",
          "description": "Merchant product classification."
        },
        "handle": {
          "type": "string",
          "description": "Storefront handle or slug."
        },
        "status": {
          "type": "string",
          "description": "Product publication state."
        },
        "tags": {
          "type": "array",
          "description": "Product tags.",
          "items": {
            "type": "string",
            "minLength": 1
          }
        },
        "variants": {
          "type": "array",
          "description": "Product variants.",
          "items": {
            "type": "object",
            "description": "A normalized product variant.",
            "additionalProperties": false,
            "required": [
              "variantId",
              "title",
              "price",
              "inventoryItemId",
              "inventoryQuantity"
            ],
            "properties": {
              "variantId": {
                "type": "string",
                "description": "Provider identifier of the variant.",
                "minLength": 1
              },
              "title": {
                "type": "string",
                "description": "Variant title."
              },
              "price": {
                "type": "number",
                "description": "Variant price in major currency units.",
                "minimum": 0
              },
              "sku": {
                "type": "string",
                "description": "Merchant stock-keeping unit."
              },
              "inventoryItemId": {
                "type": "string",
                "description": "Provider inventory-item identifier.",
                "minLength": 1
              },
              "inventoryQuantity": {
                "type": "integer",
                "description": "Current inventory quantity reported by the product API."
              }
            }
          }
        },
        "createdAt": {
          "type": "string",
          "format": "date-time",
          "description": "Product creation timestamp."
        },
        "updatedAt": {
          "type": "string",
          "format": "date-time",
          "description": "Most recent product update timestamp."
        }
      }
    }
  }
}

Authentication

PropertyValue
Auth classoauth2
Required scopesNone
Optional scopesread_products
write_products
read_orders
write_fulfillments
write_inventory
Credential fieldsNone

Credentials are resolved inside the executor by CredentialProvider. They never belong in tool input, x_provider, model context, logs, or execution output.

Provider-specific extensions

This manifest declares no provider-specific schema extensions. Use only canonical fields.

Provider differences may appear only under x_provider.shopify and only when the schema above declares them.

Sync and async behavior

All tools are synchronous by nature, but callers may choose mode: "async" to queue them.

Mutations require a stable Idempotency-Key. The TypeScript SDK accepts it as idempotencyKey; it is never part of the JSON request body.

REST example

Bash
curl "$EYEBALL_EXECUTOR_URL/v1/execute" \
  -H "Authorization: Bearer $EYEBALL_API_KEY" \
  -H 'Content-Type: application/json' \
  -H 'Idempotency-Key: docs:shopify.create_fulfillment:demo-1' \
  --data '{"tool":"shopify.create_fulfillment","userId":"demo_user","input":{"orderId":"example_orderId","notifyCustomer":false},"mode":"sync"}'

Mock support

Point EYEBALL_EXECUTOR_URL at a mock-configured executor to run through the real catalog, validation, credential seam, adapter, normalized errors, and execution records with no Shopify account. Mock selection changes the executor endpoint and trusted provider base-URL configuration, never the execute request.

Limitations

  • This page describes the manifest's explicit P0 subset, not every operation offered by the provider.
  • Provider account policy, consent UI, quota details, and current wire compatibility still require a real-provider certification pass.
  • Fields outside the canonical schemas and declared x_provider extensions are rejected.

Versions

ContractVersion
Runtime catalog1.1
Manifest catalog1.0
Manifest schema1.0
Sourceactivepieces-bridge
TierP0
Capabilitiesecommerce

Next

Use Testing with mocks to exercise this toolkit before connecting a live provider account.