# Shopify on boxd

> Shopify is an e-commerce platform. This toolkit is GraphQL-first for new Admin API automations while retaining legacy REST compatibility actions for older workflows and numeric-ID interoperability.

- Page: https://boxd.sh/integrations/shopify/
- CLI: `run shopify` (399 commands, 36 marked common)
- SDK: `import { shopify } from "@boxd/run"`; every parameter and response type is at `@boxd/run/shopify`
- Triggers: none
- Connect: `run auth shopify` (API key), or https://app.boxd.sh/integrations/detail/shopify
- All integrations: https://boxd.sh/integrations/ (Markdown: https://boxd.sh/integrations/index.md)

## From the shell

```sh
run auth shopify      # once: prints a link to connect your account
run shopify           # list its commands
run shopify list-order
```

Parameters are flags (`--flag value`); object and array parameters take a JSON string. Output is YAML, or JSON with `--json`. Calls use your own connection; `--scope <name>` uses a connection shared with your team.

## From a script

```ts
import { every, shopify } from "@boxd/run";

every("1 hour", async () => {
  const result = await shopify.listOrder({});
  console.log(result);
});
```

Run it with `run shopify.run.ts`. Shopify has no triggers; `every()` polls on a schedule, keeps the script running as a job, and wakes the machine when it is due.

## Commands

Required flags are listed; `run shopify <command> --help` lists the optional ones. "common" marks what `run shopify` shows without `--all`.

| Command | SDK method | Required flags | Optional | Description |
|---|---|---|---|---|
| `activate-one-time-charge` | `shopify.activateOneTimeCharge()` | `--application-charge-id` | 0 | Activate a one-time application charge in Shopify |
| `add-product-to-collection` ·deprecated | `shopify.addProductToCollection()` | `--collection-id` `--product-id` | 1 | Use SHOPIFY_ADDS_A_PRODUCT_TO_A_CUSTOM_COLLECTION instead |
| `add-product-to-custom-collection` | `shopify.addProductToCustomCollection()` | `--collection-id` `--product-id` | 0 | Add a product to a custom collection by creating a collect resource |
| `adjust-inventory-level` | `shopify.adjustInventoryLevel()` | `--available-adjustment` `--inventory-item-id` `--location-id` | 0 | Adjust the inventory level of an inventory item at a single location |
| `apply-fulfillment-hold` | `shopify.applyFulfillmentHold()` | `--fulfillment-order-id` `--reason` | 2 | Applies a fulfillment hold to an open fulfillment order, halting all fulfillment work |
| `approve-comment` | `shopify.approveComment()` | `--comment-id` | 0 | Approves a pending comment and publishes it to a blog article, making it publicly visible to readers |
| `bulk-create-products` ·common | `shopify.bulkCreateProducts()` | `--products` | 2 | Creates many products (20-50+) in one asynchronous Shopify bulk mutation job |
| `bulk-delete-customer-addresses` | `shopify.bulkDeleteCustomerAddresses()` | `--address-ids` `--customer-id` | 1 | Bulk delete multiple customer addresses in a single operation |
| `bulk-delete-metafields` | `shopify.bulkDeleteMetafields()` | `--metafields` | 0 | Deletes multiple metafields in bulk using their owner ID, namespace, and key |
| `bulk-delete-metaobjects` | `shopify.bulkDeleteMetaobjects()` | `--where` | 0 | Asynchronously delete metaobjects and their associated metafields in bulk |
| `bulk-query-operation` ·common | `shopify.bulkQueryOperation()` | `--query` | 3 | Run a Shopify GraphQL bulk query operation and return the result file URL and operation metadata |
| `calculate-refund` | `shopify.calculateRefund()` | `--order-id` | 3 | Calculate accurate refund amounts, taxes, and transactions for a Shopify order before creating an actual refund |
| `cancel-app-subscription` | `shopify.cancelAppSubscription()` | `--id` | 1 | Cancel an app subscription in Shopify using the appSubscriptionCancel GraphQL mutation |
| `cancel-bulk-operation` ·common | `shopify.cancelBulkOperation()` | `--id` | 0 | Cancel a running Shopify bulk operation |
| `cancel-fulfillment` | `shopify.cancelFulfillment()` | `--fulfillment-id` | 0 | Cancels an existing fulfillment by its ID, reverting all line items to an unfulfilled state |
| `cancel-fulfillment-order` | `shopify.cancelFulfillmentOrder()` | `--fulfillment-order-id` | 0 | Cancels a fulfillment order in Shopify and marks it as closed |
| `cancel-order` | `shopify.cancelOrder()` | `--order-id` | 6 | Cancels a Shopify order and optionally restocks items and sends email notifications |
| `close-order` | `shopify.closeOrder()` | `--order-id` | 0 | Closes an open Shopify order |
| `complete-draft-order` | `shopify.completeDraftOrder()` | `--draft-order-id` | 1 | Complete a draft order in Shopify and transition it to an actual order |
| `connect-inventory-level` | `shopify.connectInventoryLevel()` | `--inventory-item-id` `--location-id` | 1 | Connects an inventory item to a location, establishing where the item can be stocked and fulfilled |
| `count-articles` | `shopify.countArticles()` | `--blog-id` | 7 | Retrieves a count of all articles from a blog |
| `count-blogs` | `shopify.countBlogs()` | — | 0 | Retrieves the total count of all blogs in a Shopify store |
| `count-custom-collections` | `shopify.countCustomCollections()` | — | 7 | Retrieves a count of custom collections with optional filters |
| `count-draft-orders` | `shopify.countDraftOrders()` | — | 3 | Retrieves a count of draft orders from a Shopify store |
| `count-events` | `shopify.countEvents()` | — | 4 | Count all events in a Shopify store with comprehensive filtering |
| `count-fulfillments` | `shopify.countFulfillments()` | `--order-id` | 4 | Retrieves a count of fulfillments associated with a specific order |
| `count-location` | `shopify.countLocation()` | — | 0 | Retrieves a count of locations |
| `count-metafields` | `shopify.countMetafields()` | — | 0 | Retrieves the shop-level count of metafields |
| `count-order` ·deprecated | `shopify.countOrder()` | — | 8 | Use SHOPIFY_RETRIEVES_ORDER_COUNT instead |
| `count-pages` | `shopify.countPages()` | — | 8 | Retrieve the total count of pages in a Shopify store |
| `count-price-rules` | `shopify.countPriceRules()` | — | 0 | Retrieves a count of all price rules |
| `count-product-images` ·common | `shopify.countProductImages()` | `--product-id` | 0 | Retrieves the total count of images for a specific Shopify product |
| `count-product-variants` | `shopify.countProductVariants()` | `--product-id` | 0 | Retrieves the total count of variants for a Shopify product |
| `count-products` | `shopify.countProducts()` | — | 11 | Retrieve a count of products in the Shopify store |
| `count-script-tags` | `shopify.countScriptTags()` | — | 1 | Retrieves a count of all script tags in the shop |
| `count-webhooks` | `shopify.countWebhooks()` | — | 2 | Retrieves a count of existing webhook subscriptions |
| `create-app-subscription` | `shopify.createAppSubscription()` | `--lineItems` `--name` `--returnUrl` | 3 | Create a recurring or usage-based app subscription for charging Shopify merchants |
| `create-article` | `shopify.createArticle()` | `--blog-id` `--title` | 8 | Create an article for a blog in Shopify |
| `create-article-comment` | `shopify.createArticleComment()` | `--article-id` `--author` `--blog-id` `--body` `--email` | 2 | Create a comment for an article in Shopify |
| `create-blog` | `shopify.createBlog()` | `--title` | 4 | Create a new blog in Shopify |
| `create-country` | `shopify.createCountry()` | `--code` | 1 | Create a country with tax configuration for the Shopify store |
| `create-custom-collection` ·common | `shopify.createCustomCollection()` | `--title` | 9 | Create a new custom (manually curated) collection in Shopify |
| `create-customer` ·common | `shopify.createCustomer()` | — | 12 | Create a new customer in Shopify |
| `create-customer-account-activation-url` | `shopify.createCustomerAccountActivationUrl()` | `--customer-id` | 0 | Generate a one-time account activation URL for a customer whose account is in 'disabled' state (not yet activated) |
| `create-customer-address` | `shopify.createCustomerAddress()` | `--address` `--customer-id` | 0 | Create a new address for a customer |
| `create-delegate-access-token` | `shopify.createDelegateAccessToken()` | `--delegate-access-scope` | 1 | Create a delegate access token with a subset of the parent token's permissions |
| `create-discount-code` | `shopify.createDiscountCode()` | `--code` `--price-rule-id` | 0 | Creates a discount code for an existing price rule |
| `create-discount-code-batch` | `shopify.createDiscountCodeBatch()` | `--discount-codes` `--price-rule-id` | 0 | Create a discount code creation job for batch processing |
| `create-draft-order` | `shopify.createDraftOrder()` | `--line-items` | 12 | Create a draft order in Shopify |
| `create-event-bridge-webhook-subscription` | `shopify.createEventBridgeWebhookSubscription()` | `--topic` `--webhook-subscription` | 0 | Create an AWS EventBridge webhook subscription in Shopify |
| `create-fulfillment` | `shopify.createFulfillment()` | `--line-items-by-fulfillment-order` | 4 | Creates a fulfillment for one or many fulfillment orders for a specific order |
| `create-fulfillment-event` | `shopify.createFulfillmentEvent()` | `--fulfillment-id` `--order-id` `--status` | 9 | Creates a tracking event for a fulfillment to update shipment status |
| `create-gift-card` | `shopify.createGiftCard()` | `--gift-card` | 0 | Create a gift card for a Shopify store |
| `create-marketing-engagements` | `shopify.createMarketingEngagements()` | `--engagements` `--marketing-event-id` | 0 | Create engagement data for a marketing event in Shopify |
| `create-marketing-event` | `shopify.createMarketingEvent()` | `--event-type` `--marketing-channel` `--started-at` | 15 | Create a marketing event in Shopify to track promotional actions |
| `create-metafield` | `shopify.createMetafield()` | `--blog-id` `--key` `--namespace` `--type` `--value` | 1 | Creates a new metafield for a Shopify blog |
| `create-new-product-image` | `shopify.createNewProductImage()` | `--image` `--product-id` | 0 | Create a new product image for a Shopify product |
| `create-one-time-application-charge` | `shopify.createOneTimeApplicationCharge()` | `--name` `--price` `--return-url` | 1 | Create a new one-time application charge in Shopify |
| `create-order` ·common | `shopify.createOrder()` | `--line-items` | 17 | Create a fully committed (real) order in Shopify without payment processing |
| `create-order-risk` | `shopify.createOrderRisk()` | `--order-id` | 6 | Creates a risk assessment record for a Shopify order, documenting fraud detection findings or security concerns |
| `create-order-transaction` | `shopify.createOrderTransaction()` | `--kind` `--order-id` | 7 | Creates a transaction for an order to process payment operations |
| `create-page` | `shopify.createPage()` | `--title` | 7 | Create a static web page in Shopify |
| `create-price-rule` | `shopify.createPriceRule()` | `--allocation-method` `--customer-selection` `--starts-at` `--target-selection` `--target-type` `--title` `--value` `--value-type` | 17 | Creates a price rule that defines discount logic for Shopify orders |
| `create-product` ·common ·deprecated | `shopify.createProduct()` | `--title` | 4 | Use SHOPIFY_CREATES_NEW_PRODUCT instead |
| `create-product-image` ·common ·deprecated | `shopify.createProductImage()` | `--image` `--product-id` | 0 | Use SHOPIFY_CREATE_NEW_PRODUCT_IMAGE instead |
| `create-product-metafield` | `shopify.createProductMetafield()` | `--key` `--namespace` `--product-id` `--value` | 2 | Creates a new metafield for a specific Shopify product |
| `create-product-variant` | `shopify.createProductVariant()` | `--product-id` `--variant` | 0 | Create a new product variant for an existing product |
| `create-pub-sub-webhook-subscription` | `shopify.createPubSubWebhookSubscription()` | `--topic` `--webhook-subscription` | 0 | Create a Google Cloud Pub/Sub webhook subscription in Shopify |
| `create-redirect` | `shopify.createRedirect()` | `--path` `--target` | 0 | Create a URL redirect in Shopify |
| `create-refund` | `shopify.createRefund()` | `--order-id` | 7 | Creates a refund for a Shopify order |
| `create-resource-feedback` ·common | `shopify.createResourceFeedback()` | `--feedback-generated-at` `--state` | 1 | Creates shop-level resource feedback to notify Shopify merchants about app setup requirements or successful configuration |
| `create-script-tag` | `shopify.createScriptTag()` | `--event` `--src` | 2 | Create a new script tag in Shopify to load remote JavaScript into your online store |
| `create-smart-collections` | `shopify.createSmartCollections()` | `--rules` `--title` | 6 | Create a new smart collection with automated product rules |
| `create-storefront-access-token` | `shopify.createStorefrontAccessToken()` | `--title` | 0 | Creates a new storefront access token for unauthenticated Storefront API access |
| `create-theme` | `shopify.createTheme()` | `--name` | 2 | Creates a new theme in Shopify from a ZIP file containing theme assets |
| `create-webhook` | `shopify.createWebhook()` | `--address` `--topic` | 3 | Creates a new webhook subscription in Shopify to receive real-time notifications when specific events occur in the store |
| `create-webhook-subscription` | `shopify.createWebhookSubscription()` | `--topic` `--webhookSubscription` | 0 | Create a webhook subscription that notifies your app when specific events occur in a Shopify store |
| `creates-new-product` ·common | `shopify.createsNewProduct()` | `--title` | 11 | Create a new product in Shopify |
| `creates-or-updates-asset-for-theme` | `shopify.createsOrUpdatesAssetForTheme()` | `--key` `--theme-id` | 4 | Creates or updates a theme asset file (templates, stylesheets, scripts, or images) within a Shopify theme |
| `delete-article` | `shopify.deleteArticle()` | `--article-id` `--blog-id` | 0 | Delete an article from a blog in Shopify |
| `delete-blog` | `shopify.deleteBlog()` | `--blog-id` | 0 | Permanently deletes a blog from a Shopify store using its `blog_id`; this action is irreversible and requires the 'content' access scope |
| `delete-collect` | `shopify.deleteCollect()` | `--collect-id` | 0 | Removes a product from a custom collection by deleting the collect |
| `delete-comment` | `shopify.deleteComment()` | `--comment-id` | 0 | Remove a comment from a Shopify blog |
| `delete-country` | `shopify.deleteCountry()` | `--country-id` | 0 | Deletes a country from the shop's tax configuration |
| `delete-custom-collection` ·deprecated | `shopify.deleteCustomCollection()` | `--collection-id` | 0 | Use SHOPIFY_DELETES_CUSTOM_COLLECTION instead |
| `delete-customer` | `shopify.deleteCustomer()` | `--customer-id` | 0 | Deletes a customer from the Shopify store |
| `delete-customer-address` | `shopify.deleteCustomerAddress()` | `--address-id` `--customer-id` | 0 | Removes an address from a customer's address list |
| `delete-draft-order` | `shopify.deleteDraftOrder()` | `--draft-order-id` | 0 | Delete a draft order from Shopify |
| `delete-fulfillment-event` | `shopify.deleteFulfillmentEvent()` | `--event-id` `--fulfillment-id` `--order-id` | 0 | Deletes a fulfillment event (tracking status update) from an order's fulfillment |
| `delete-fulfillment-service` | `shopify.deleteFulfillmentService()` | `--fulfillment-service-id` | 0 | Remove an existing fulfillment service from a Shopify store |
| `delete-inventory-level` | `shopify.deleteInventoryLevel()` | `--inventory-item-id` `--location-id` | 0 | Deletes an inventory level of an inventory item at a location |
| `delete-marketing-event` | `shopify.deleteMarketingEvent()` | `--marketing-event-id` | 0 | Delete a marketing event from Shopify |
| `delete-metafield` | `shopify.deleteMetafield()` | `--metafield-id` `--resource` `--resource-id` | 0 | Deletes a metafield by its ID from any Shopify resource |
| `delete-metaobject` | `shopify.deleteMetaobject()` | `--id` | 0 | Deletes a metaobject and its associated metafields using GraphQL mutation |
| `delete-metaobject-definition` | `shopify.deleteMetaobjectDefinition()` | `--id` | 0 | Delete a metaobject definition and all its associated data |
| `delete-order` | `shopify.deleteOrder()` | `--order-id` | 0 | Permanently delete an order from Shopify |
| `delete-order-risk` | `shopify.deleteOrderRisk()` | `--order-id` `--risk-id` | 0 | Deletes an order risk from an order |
| `delete-page` | `shopify.deletePage()` | `--page-id` | 0 | Delete a page from a Shopify store permanently |
| `delete-price-rule` | `shopify.deletePriceRule()` | `--price-rule-id` | 0 | Deletes an existing price rule from the Shopify store permanently |
| `delete-product` | `shopify.deleteProduct()` | `--product-id` | 0 | Permanently deletes a product from a Shopify store by its product ID |
| `delete-product-image` | `shopify.deleteProductImage()` | `--image-id` `--product-id` | 0 | Deletes a specific image from a product in Shopify, requiring the `product_id` of an existing product and the `image_id` of an image currently associated with that product |
| `delete-product-metafield` | `shopify.deleteProductMetafield()` | `--metafield-id` `--product-id` | 0 | Deletes a specific metafield from a Shopify product using the product ID and metafield ID |
| `delete-product-variant` | `shopify.deleteProductVariant()` | `--product-id` `--variant-id` | 0 | Deletes a specific product variant from a Shopify store using its unique product ID and variant ID; this action is irreversible |
| `delete-redirect` | `shopify.deleteRedirect()` | `--redirect-id` | 0 | Permanently deletes a URL redirect from a Shopify store |
| `delete-saved-search` | `shopify.deleteSavedSearch()` | `--id` | 0 | Delete a saved search in Shopify |
| `delete-script-tag` | `shopify.deleteScriptTag()` | `--script-tag-id` | 0 | Delete a script tag from your Shopify store |
| `delete-smart-collection` | `shopify.deleteSmartCollection()` | `--smart-collection-id` | 0 | Permanently removes a smart collection from a Shopify store using its `smart_collection_id`; this action is irreversible and requires a valid, existing smart collection ID |
| `delete-storefront-access-token` | `shopify.deleteStorefrontAccessToken()` | `--storefront-access-token-id` | 0 | Delete an existing storefront access token from a Shopify store |
| `delete-theme` | `shopify.deleteTheme()` | `--theme-id` | 0 | Deletes a theme from the Shopify store by its ID |
| `delete-theme-asset` | `shopify.deleteThemeAsset()` | `--asset-key` `--theme-id` | 0 | Delete an asset from a Shopify theme |
| `delete-web-presence` | `shopify.deleteWebPresence()` | `--id` | 0 | Delete a web presence from Shopify |
| `delete-webhook` | `shopify.deleteWebhook()` | `--webhook-id` | 0 | Delete a webhook subscription from Shopify |
| `delete-webhook-subscription` | `shopify.deleteWebhookSubscription()` | `--id` | 0 | Delete a webhook subscription and stop all future webhooks to its endpoint |
| `deletes-custom-collection` | `shopify.deletesCustomCollection()` | `--custom-collection-id` | 0 | Permanently delete a custom collection from a Shopify store |
| `deletes-discount-code` | `shopify.deletesDiscountCode()` | `--discount-code-id` `--price-rule-id` | 0 | Delete a discount code from a price rule |
| `disable-gift-card` | `shopify.disableGiftCard()` | `--gift-card-id` | 0 | Disable a gift card in Shopify |
| `enable-standard-metaobject-definition` | `shopify.enableStandardMetaobjectDefinition()` | `--type` | 0 | Enable a standard metaobject definition from its template |
| `get-abandonment` | `shopify.getAbandonment()` | `--id` | 0 | Retrieves an abandonment record from Shopify using its unique ID |
| `get-abandonment-by-abandoned-checkout-id` | `shopify.getAbandonmentByAbandonedCheckoutId()` | `--abandoned-checkout-id` | 0 | Query abandonment information by abandoned checkout ID using Shopify's GraphQL Admin API |
| `get-access-scopes` | `shopify.getAccessScopes()` | — | 0 | Retrieves a list of access scopes associated with the access token |
| `get-app` | `shopify.getApp()` | — | 1 | Query information about a Shopify app using the GraphQL API |
| `get-app-by-handle` | `shopify.getAppByHandle()` | `--handle` | 0 | Query app information by handle using the Shopify Admin GraphQL API |
| `get-app-installation` | `shopify.getAppInstallation()` | — | 1 | Query a specific app installation on a Shopify store |
| `get-application-charge-by-id` | `shopify.getApplicationChargeById()` | `--id` | 1 | Retrieve a single application charge by its unique identifier |
| `get-application-charges` | `shopify.getApplicationCharges()` | — | 2 | Retrieves a list of one-time application charges for the current app installation |
| `get-application-credits` | `shopify.getApplicationCredits()` | — | 1 | Retrieve all application credits for a shop |
| `get-article` | `shopify.getArticle()` | `--article-id` `--blog-id` | 1 | Retrieves a single article from a Shopify blog by its ID |
| `get-batch-discount-codes` | `shopify.getBatchDiscountCodes()` | `--batch-id` `--price-rule-id` | 0 | Retrieves discount codes from a batch creation job, showing which succeeded and which failed |
| `get-blog` | `shopify.getBlog()` | `--blog-id` | 1 | Retrieve a single blog by its unique identifier |
| `get-blog-article-tags` | `shopify.getBlogArticleTags()` | `--blog-id` | 2 | Retrieve a list of all article tags from a specific blog |
| `get-bulk-operation` | `shopify.getBulkOperation()` | `--id` | 0 | Query the status and details of a Shopify bulk operation by its ID |
| `get-carrier-services` | `shopify.getCarrierServices()` | — | 0 | Retrieves all active carrier services configured in a Shopify store |
| `get-catalogs-count` | `shopify.getCatalogsCount()` | — | 2 | Query the count of catalogs in the Shopify store |
| `get-checkout-profile` | `shopify.getCheckoutProfile()` | `--id` | 0 | Retrieves a checkout profile from Shopify using its unique ID |
| `get-checkouts-count` | `shopify.getCheckoutsCount()` | — | 6 | Retrieves a count of abandoned checkouts from the past 90 days |
| `get-collect-by-id` | `shopify.getCollectById()` | `--collect-id` | 1 | Retrieves a specific collect by its ID |
| `get-collection-by-id` | `shopify.getCollectionById()` | `--collection-id` | 1 | Retrieves a specific Shopify collection by its `collection_id`, optionally filtering returned data to specified `fields` |
| `get-collection-by-identifier` | `shopify.getCollectionByIdentifier()` | `--identifier` | 0 | Query a collection by identifier (ID or handle) using the Shopify GraphQL Admin API |
| `get-collects` | `shopify.getCollects()` | — | 5 | Retrieves a list of collects from a Shopify store, where a collect links a product to a custom collection |
| `get-collects-count` | `shopify.getCollectsCount()` | — | 2 | Retrieves a count of collects (product-collection relationships) |
| `get-comments-count` | `shopify.getCommentsCount()` | — | 10 | Retrieves a count of comments |
| `get-consent-policy` | `shopify.getConsentPolicy()` | — | 5 | Query consent policies for privacy compliance requirements |
| `get-countries` | `shopify.getCountries()` | — | 2 | Retrieve a list of countries configured in the Shopify store with tax rates and provinces |
| `get-countries-count` | `shopify.getCountriesCount()` | — | 0 | Retrieves the count of countries configured in a Shopify store |
| `get-countries-param-country-id-provinces-count` | `shopify.getCountriesParamCountryIdProvincesCount()` | `--country-id` | 0 | Retrieves a count of provinces for a country |
| `get-countries-param-country-id-provinces-param-provi` | `shopify.getCountriesParamCountryIdProvincesParamProvi()` | `--country-id` `--province-id` | 1 | Get Province for Country |
| `get-country` | `shopify.getCountry()` | `--country-id` | 1 | Retrieve a specific country by its ID from Shopify |
| `get-country-provinces` | `shopify.getCountryProvinces()` | `--country-id` | 2 | Retrieve a list of provinces for a specified country |
| `get-currencies` | `shopify.getCurrencies()` | — | 0 | Retrieve a list of currencies enabled on a Shopify store |
| `get-custom-collection-by-id` | `shopify.getCustomCollectionById()` | `--custom-collection-id` | 1 | Retrieve a single custom collection by its unique ID from Shopify |
| `get-custom-collections` | `shopify.getCustomCollections()` | — | 12 | Retrieves a list of custom collections from a Shopify store |
| `get-custom-collections-count` | `shopify.getCustomCollectionsCount()` | — | 7 | Retrieves the total count of custom collections in a Shopify store with optional filters |
| `get-customer` ·common | `shopify.getCustomer()` | `--customer-id` | 1 | Retrieve a single customer by their unique identifier |
| `get-customer-address` | `shopify.getCustomerAddress()` | `--address-id` `--customer-id` | 0 | Retrieve details of a single customer address from Shopify |
| `get-customer-addresses` | `shopify.getCustomerAddresses()` | `--customer-id` | 1 | Retrieves all addresses associated with a specific customer |
| `get-customer-orders` | `shopify.getCustomerOrders()` | `--customer-id` | 4 | Retrieves all orders for a specific, existing customer in Shopify using their unique customer ID |
| `get-customers-count` | `shopify.getCustomersCount()` | — | 4 | Retrieves a count of all customers |
| `get-customers-search` ·common | `shopify.getCustomersSearch()` | `--query` | 3 | Search for customers matching a supplied query |
| `get-discount-code` | `shopify.getDiscountCode()` | `--discount-code-id` `--price-rule-id` | 0 | Retrieves a single discount code for a price rule |
| `get-discount-code-batch-job` | `shopify.getDiscountCodeBatchJob()` | `--batch-id` `--price-rule-id` | 0 | Retrieves the status and progress of an asynchronous batch discount code creation job for a specific price rule |
| `get-discount-codes-count` | `shopify.getDiscountCodesCount()` | — | 3 | Retrieves a count of discount codes for a shop |
| `get-discount-codes-lookup` | `shopify.getDiscountCodesLookup()` | `--code` | 0 | Look up a discount code by its code name and retrieve its resource location and IDs |
| `get-draft-order` | `shopify.getDraftOrder()` | `--draft-order-id` | 1 | Retrieve detailed information for a specific draft order from a Shopify store |
| `get-event` | `shopify.getEvent()` | `--event-id` | 1 | Retrieve a specific Shopify event by its ID |
| `get-events` | `shopify.getEvents()` | — | 7 | Retrieves a list of audit trail events from a Shopify store |
| `get-fulfillment` | `shopify.getFulfillment()` | `--fulfillment-order-id` | 0 | Retrieves all fulfillments (shipments) associated with a specific fulfillment order |
| `get-fulfillment-event` | `shopify.getFulfillmentEvent()` | `--event-id` `--fulfillment-id` `--order-id` | 0 | Retrieves a specific fulfillment event by its ID, providing detailed shipment tracking information |
| `get-fulfillment-events` | `shopify.getFulfillmentEvents()` | `--fulfillment-id` `--order-id` | 0 | Retrieves tracking events for a specific fulfillment, showing shipment status updates (e.g., in_transit, out_for_delivery, delivered) with timestamps and location information |
| `get-fulfillment-order` | `shopify.getFulfillmentOrder()` | `--order-id` | 2 | Retrieve all fulfillment orders for a specific order |
| `get-fulfillment-order-fulfillments` | `shopify.getFulfillmentOrderFulfillments()` | `--fulfillment-order-id` | 0 | Retrieves all fulfillments associated with a specific fulfillment order |
| `get-fulfillment-order-locations-for-move` | `shopify.getFulfillmentOrderLocationsForMove()` | `--fulfillment-order-id` | 0 | Retrieve locations that a fulfillment order can potentially move to |
| `get-fulfillment-order-move-locations` | `shopify.getFulfillmentOrderMoveLocations()` | `--fulfillment-order-id` | 0 | Retrieve a list of locations that a fulfillment order can potentially move to |
| `get-fulfillment-orders-for-order` | `shopify.getFulfillmentOrdersForOrder()` | `--order-id` | 2 | Retrieves a list of fulfillment orders for a specific order |
| `get-fulfillment-services` | `shopify.getFulfillmentServices()` | — | 1 | Retrieve a list of fulfillment services available on the Shopify store |
| `get-gift-card-by-id` | `shopify.getGiftCardById()` | `--gift-card-id` | 0 | Retrieves detailed information about a specific gift card by its ID |
| `get-gift-cards` | `shopify.getGiftCards()` | — | 4 | Retrieve a list of gift cards from Shopify |
| `get-gift-cards-count` | `shopify.getGiftCardsCount()` | — | 1 | Retrieves the total count of gift cards in the store |
| `get-inventory-item` | `shopify.getInventoryItem()` | `--inventory-item-id` | 0 | Retrieves a single inventory item by ID |
| `get-inventory-items` | `shopify.getInventoryItems()` | `--ids` | 1 | Retrieves a list of inventory items by specified IDs |
| `get-inventory-levels` | `shopify.getInventoryLevels()` | — | 4 | Retrieves a list of inventory levels for specified items and locations |
| `get-inventory-levels-for-location` | `shopify.getInventoryLevelsForLocation()` | `--location-id` | 4 | Retrieves a list of inventory levels for a specific location |
| `get-location` | `shopify.getLocation()` | `--location-id` | 0 | Retrieve a single location by its ID |
| `get-locations-count` | `shopify.getLocationsCount()` | — | 0 | Query the count of locations in a Shopify store using the GraphQL API |
| `get-marketing-event` | `shopify.getMarketingEvent()` | `--marketing-event-id` | 0 | Retrieves detailed information about a specific marketing event by its ID |
| `get-marketing-events-count` | `shopify.getMarketingEventsCount()` | — | 0 | Retrieves a count of all marketing events in the store |
| `get-metafield` | `shopify.getMetafield()` | `--blog-id` | 10 | Retrieve a list of metafields from a blog resource |
| `get-metafield-by-id` | `shopify.getMetafieldById()` | `--metafield-id` | 1 | Retrieve a single metafield from a resource by its ID |
| `get-metafields` | `shopify.getMetafields()` | — | 11 | Retrieve a list of metafields |
| `get-metafields-count` | `shopify.getMetafieldsCount()` | — | 0 | Retrieves the count of shop-level metafields only |
| `get-order` ·common | `shopify.getOrder()` | `--order-id` | 1 | Retrieve a specific order using its unique identifier |
| `get-order-fulfillments` | `shopify.getOrderFulfillments()` | `--order-id` | 7 | Retrieve fulfillments associated with a Shopify order |
| `get-order-list` | `shopify.getOrderList()` | — | 16 | Retrieves a list of orders from Shopify with optional filters and pagination |
| `get-order-refund-by-id` | `shopify.getOrderRefundById()` | `--order-id` `--refund-id` | 2 | Retrieves a specific refund by refund ID for an order |
| `get-order-refunds` | `shopify.getOrderRefunds()` | `--order-id` | 3 | Retrieves a list of all refunds for a specific order |
| `get-order-risk` | `shopify.getOrderRisk()` | `--order-id` | 0 | Retrieves all fraud risk assessments for a specific order |
| `get-order-risks` | `shopify.getOrderRisks()` | `--order-id` | 0 | Retrieves all fraud risk assessments for a specific order |
| `get-order-transactions-count` | `shopify.getOrderTransactionsCount()` | `--order-id` | 0 | Retrieve a count of an order's transactions in Shopify |
| `get-orders-with-filters` | `shopify.getOrdersWithFilters()` | — | 16 | Retrieves Shopify orders filtered by dates and other filters |
| `get-ordersby-id` | `shopify.getOrdersbyId()` | `--order-id` | 1 | Retrieves a specific Shopify order by its unique ID, which must correspond to an existing order |
| `get-page-by-id` | `shopify.getPageById()` | `--page-id` | 1 | Retrieve a single Shopify page by its unique ID |
| `get-policies` | `shopify.getPolicies()` | — | 0 | Retrieve a list of the shop's policies |
| `get-price-rule` | `shopify.getPriceRule()` | `--price-rule-id` | 0 | Retrieves a single price rule by ID from Shopify |
| `get-price-rule-batch-info` | `shopify.getPriceRuleBatchInfo()` | `--price-rule-id` | 0 | Checks if batch listing is supported for a price rule and provides guidance on alternatives |
| `get-price-rule-discount-codes` | `shopify.getPriceRuleDiscountCodes()` | `--price-rule-id` | 0 | Retrieve a list of discount codes for a price rule |
| `get-product` | `shopify.getProduct()` | `--product-id` | 0 | Retrieves details for an existing Shopify product using its unique product ID |
| `get-product-image` | `shopify.getProductImage()` | `--image-id` `--product-id` | 0 | Retrieve a single product image by ID for a specific product |
| `get-product-images` | `shopify.getProductImages()` | `--product-id` | 2 | Retrieves all images for a Shopify product, specified by its `product_id` which must correspond to an existing product |
| `get-product-metafield` | `shopify.getProductMetafield()` | `--metafield-id` `--product-id` | 0 | Retrieves a specific metafield for a Shopify product using the product ID and metafield ID |
| `get-product-metafields` | `shopify.getProductMetafields()` | `--product-id` | 2 | Retrieves all metafields for a specific Shopify product |
| `get-product-variant` | `shopify.getProductVariant()` | `--variant-id` | 1 | Retrieves detailed information about a single product variant by its ID from Shopify |
| `get-products` | `shopify.getProducts()` | — | 4 | Retrieves a list of products from a Shopify store |
| `get-products-in-collection` | `shopify.getProductsInCollection()` | `--collection-id` | 1 | Retrieves products that belong to a specific Shopify collection |
| `get-products-paginated` | `shopify.getProductsPaginated()` | — | 3 | List products with Shopify cursor-based pagination |
| `get-recurring-application-charges` | `shopify.getRecurringApplicationCharges()` | — | 2 | Retrieve a list of recurring application charges for the app |
| `get-redirect` | `shopify.getRedirect()` | `--redirect-id` | 1 | Retrieve details of a specific URL redirect by its ID |
| `get-redirect-by-id` | `shopify.getRedirectById()` | `--redirect-id` | 1 | Retrieve a single redirect by its ID |
| `get-redirects` | `shopify.getRedirects()` | — | 5 | Retrieve a list of URL redirects from a Shopify store |
| `get-redirects-count` | `shopify.getRedirectsCount()` | — | 2 | Retrieves a count of URL redirects in the store |
| `get-refund` | `shopify.getRefund()` | `--order-id` `--refund-id` | 2 | Retrieves detailed information about a specific refund for an order |
| `get-scripttag` | `shopify.getScripttag()` | `--script-tag-id` | 1 | Retrieves a single script tag by its ID |
| `get-segments-count` | `shopify.getSegmentsCount()` | — | 0 | Query the number of segments for a shop |
| `get-shipping-zones` | `shopify.getShippingZones()` | — | 1 | Retrieve all configured shipping zones with countries, provinces, tax rates, and shipping rates |
| `get-shop-billing-address` | `shopify.getShopBillingAddress()` | — | 0 | Retrieves the billing address for the shop via GraphQL query |
| `get-shop-configuration` ·common ·deprecated | `shopify.getShopConfiguration()` | — | 0 | Use get-shop-details instead |
| `get-shop-details` ·common | `shopify.getShopDetails()` | — | 0 | Retrieves comprehensive administrative information about the authenticated Shopify store |
| `get-shop-metafield` | `shopify.getShopMetafield()` | `--metafield-id` | 1 | Retrieve a metafield by its ID directly |
| `get-shop-metafields` ·deprecated | `shopify.getShopMetafields()` | — | 12 | Use get-metafields instead (apps/shopify/actions/get_metafields.py) |
| `get-smart-collection` | `shopify.getSmartCollection()` | `--smart-collection-id` | 1 | Retrieve a single smart collection by its ID from Shopify |
| `get-smart-collection-by-id` | `shopify.getSmartCollectionById()` | `--smart-collection-id` | 1 | Retrieve a single smart collection by its ID |
| `get-smart-collections` | `shopify.getSmartCollections()` | — | 12 | Retrieve a list of smart collections from a Shopify store |
| `get-smart-collections-count` | `shopify.getSmartCollectionsCount()` | — | 7 | Retrieve a count of smart collections in a Shopify store |
| `get-storefront-access-tokens` | `shopify.getStorefrontAccessTokens()` | — | 0 | Retrieves a list of storefront access tokens that have been issued for the shop |
| `get-tender-transactions` | `shopify.getTenderTransactions()` | — | 6 | Retrieve a list of tender transactions from Shopify |
| `get-theme` | `shopify.getTheme()` | `--theme-id` | 1 | Retrieves a single Shopify theme by its unique ID |
| `get-themes` | `shopify.getThemes()` | — | 1 | Retrieves a list of themes from a Shopify store |
| `get-themes-param-theme-id-assets` | `shopify.getThemesParamThemeIdAssets()` | `--asset-key` `--theme-id` | 1 | Retrieve a single asset for a theme by its key |
| `get-transaction` | `shopify.getTransaction()` | `--order-id` `--transaction-id` | 2 | Retrieve a specific transaction for an order |
| `get-webhook` | `shopify.getWebhook()` | `--webhook-id` | 1 | Retrieves a single webhook subscription by its ID |
| `get-webhook-subscriptions-count` | `shopify.getWebhookSubscriptionsCount()` | — | 1 | Query the number of webhook subscriptions for a shop |
| `graph-ql-admin-execute` ·common | `shopify.graphQlAdminExecute()` | `--document` | 5 | Execute any Shopify Admin GraphQL query or mutation with variables |
| `graph-ql-collections` | `shopify.graphQlCollections()` | `--operation` | 14 | Shopify GraphQL collections and publication-ready collection reads |
| `graph-ql-customers` ·common | `shopify.graphQlCustomers()` | `--operation` | 14 | Shopify GraphQL customers and customer search |
| `graph-ql-discounts` ·common | `shopify.graphQlDiscounts()` | `--operation` | 14 | Shopify GraphQL discounts and discount search |
| `graph-ql-draft-orders` | `shopify.graphQlDraftOrders()` | `--operation` | 14 | Shopify GraphQL draft orders |
| `graph-ql-inventory` ·common | `shopify.graphQlInventory()` | `--operation` | 14 | Shopify GraphQL inventory items and levels |
| `graph-ql-metafields-metaobjects` | `shopify.graphQlMetafieldsMetaobjects()` | `--operation` | 8 | Canonical GraphQL read surface for metafields, metafield definitions, and metaobjects |
| `graph-ql-orders` ·common | `shopify.graphQlOrders()` | `--operation` | 14 | Shopify GraphQL orders and order search |
| `graph-ql-products` ·common | `shopify.graphQlProducts()` | `--operation` | 12 | GraphQL-first product toolkit: products, variants, options, media, and publications |
| `graph-ql-query` | `shopify.graphQlQuery()` | `--query` | 1 | Executes a GraphQL query against the Shopify Admin API for flexible data retrieval and mutations including metafields |
| `graph-ql-shop` | `shopify.graphQlShop()` | — | 5 | GraphQL-first shop, app installation, and configuration read action |
| `graph-ql-webhooks` | `shopify.graphQlWebhooks()` | `--operation` | 14 | Shopify GraphQL webhook subscriptions |
| `graph-ql-write-operations` ·common | `shopify.graphQlWriteOperations()` | `--operation` | 6 | Canonical GraphQL write surface for Shopify orders, customers, inventory, discounts, collections, webhooks, fulfillments, metafields, and bulk operations |
| `list-abandoned-checkouts` | `shopify.listAbandonedCheckouts()` | — | 7 | Retrieves a list of abandoned checkouts with customer contact information |
| `list-application-credits` | `shopify.listApplicationCredits()` | — | 1 | Retrieve all application credits issued to a shop by your app |
| `list-article-authors` | `shopify.listArticleAuthors()` | — | 0 | Retrieve a list of all article authors from the store |
| `list-article-tags` | `shopify.listArticleTags()` | — | 2 | Retrieve a list of all article tags from the store |
| `list-available-locales` | `shopify.listAvailableLocales()` | — | 0 | Query available locales for the Shopify store using the Admin GraphQL API |
| `list-blog-articles` | `shopify.listBlogArticles()` | `--blog-id` | 10 | Retrieves a list of all articles from a blog |
| `list-blogs` | `shopify.listBlogs()` | — | 4 | Retrieve a list of all blogs from a Shopify store |
| `list-bulk-operations` | `shopify.listBulkOperations()` | — | 7 | Retrieve a paginated list of bulk operations from Shopify |
| `list-channels` | `shopify.listChannels()` | — | 5 | Retrieves a list of sales channels available in the Shopify store using GraphQL |
| `list-checkout-profiles` | `shopify.listCheckoutProfiles()` | — | 7 | Query checkout profiles from Shopify |
| `list-collection-products` | `shopify.listCollectionProducts()` | `--collection-id` | 4 | Retrieve a list of products belonging to a collection |
| `list-collects` | `shopify.listCollects()` | — | 5 | Retrieve a list of collects (product-collection associations) |
| `list-comments` | `shopify.listComments()` | — | 11 | Retrieve a list of comments from Shopify |
| `list-countries` | `shopify.listCountries()` | — | 2 | Retrieve a list of all countries where the merchant sells products with tax rates |
| `list-currencies` | `shopify.listCurrencies()` | — | 0 | Retrieves a list of currencies enabled on a Shopify store |
| `list-custom-collections` | `shopify.listCustomCollections()` | — | 12 | Retrieve a list of custom collections from Shopify |
| `list-customer-orders` | `shopify.listCustomerOrders()` | `--customer-id` | 12 | Retrieves all orders for a specific customer from Shopify |
| `list-customers` ·common | `shopify.listCustomers()` | — | 10 | Retrieve a list of customers from a Shopify store |
| `list-draft-orders` | `shopify.listDraftOrders()` | — | 7 | Retrieve a list of draft orders from Shopify |
| `list-inventory-levels` | `shopify.listInventoryLevels()` | — | 4 | Retrieves a list of inventory levels for specified items and locations |
| `list-locations` | `shopify.listLocations()` | — | 1 | Retrieve a list of locations for a Shopify store |
| `list-marketing-events` | `shopify.listMarketingEvents()` | — | 1 | Retrieves a paginated list of marketing events from a Shopify store |
| `list-order` ·common | `shopify.listOrder()` | — | 15 | Retrieves a list of orders from Shopify with optional filtering by status, dates, and other criteria |
| `list-order-refunds` | `shopify.listOrderRefunds()` | `--order-id` | 3 | Retrieve a list of refunds for a Shopify order |
| `list-orders` ·common | `shopify.listOrders()` | — | 14 | Retrieves a list of orders from Shopify |
| `list-pages` | `shopify.listPages()` | — | 12 | Retrieve a list of all pages from a Shopify store |
| `list-payment-terms-templates` | `shopify.listPaymentTermsTemplates()` | — | 1 | Query payment terms templates from Shopify using the GraphQL API |
| `list-product-images` | `shopify.listProductImages()` | `--product-id` | 3 | Retrieve all images for a Shopify product |
| `list-product-variants` | `shopify.listProductVariants()` | `--product-id` | 4 | Retrieve all variants for a specified product |
| `list-resource-feedbacks` | `shopify.listResourceFeedbacks()` | — | 0 | Retrieves the current resource feedback for the shop |
| `list-script-tags` | `shopify.listScriptTags()` | — | 8 | Retrieves a list of all script tags |
| `list-theme-assets` | `shopify.listThemeAssets()` | `--theme-id` | 2 | Retrieves metadata for theme assets (files that make up a theme: templates, images, stylesheets, snippets) |
| `list-transactions` | `shopify.listTransactions()` | `--order-id` | 3 | Retrieves all transactions for a specific order |
| `mark-comment-as-not-spam` | `shopify.markCommentAsNotSpam()` | `--comment-id` | 0 | Marks a comment as not spam in Shopify, restoring it to published or unapproved state |
| `mark-comment-as-spam` | `shopify.markCommentAsSpam()` | `--comment-id` | 0 | Mark a comment as spam in Shopify |
| `modify-existing-product-variant` | `shopify.modifyExistingProductVariant()` | `--variant-id` | 14 | Update an existing product variant in Shopify |
| `modify-existing-webhook` | `shopify.modifyExistingWebhook()` | `--webhook-id` | 4 | Modify an existing webhook subscription's address or other properties |
| `move-fulfillment-order` | `shopify.moveFulfillmentOrder()` | `--fulfillment-order-id` `--new-location-id` | 1 | Move a fulfillment order from one merchant managed location to another |
| `pin-metafield-definition` | `shopify.pinMetafieldDefinition()` | — | 2 | Pin a metafield definition in Shopify admin |
| `query-app-by-key` | `shopify.queryAppByKey()` | `--api-key` | 0 | Query app information by API key using Shopify's GraphQL Admin API |
| `query-business-entities` | `shopify.queryBusinessEntities()` | — | 0 | Retrieve all business entities associated with the shop |
| `query-business-entity` | `shopify.queryBusinessEntity()` | — | 1 | Query business entity information from Shopify |
| `query-catalogs` | `shopify.queryCatalogs()` | — | 8 | Queries catalogs from Shopify using the GraphQL Admin API |
| `query-channel` | `shopify.queryChannel()` | `--id` | 0 | Query a single Shopify channel by ID |
| `query-consent-policy-regions` | `shopify.queryConsentPolicyRegions()` | — | 0 | Query the list of countries and regions for which consent policies can be created in Shopify |
| `query-current-app-installation` ·common | `shopify.queryCurrentAppInstallation()` | — | 0 | Query the currently authenticated app installation on a Shopify store |
| `query-current-bulk-operation` | `shopify.queryCurrentBulkOperation()` | — | 1 | Query the current Shopify bulk operation status |
| `query-customer-account-pages` | `shopify.queryCustomerAccountPages()` | — | 5 | Queries customer account pages from Shopify using the GraphQL Admin API |
| `query-deletion-events` | `shopify.queryDeletionEvents()` | — | 8 | Query deletion events from Shopify |
| `query-disputes` | `shopify.queryDisputes()` | — | 6 | Query Shopify Payments disputes using the GraphQL Admin API |
| `query-domain` | `shopify.queryDomain()` | `--id` | 0 | Query a specific domain by its ID from Shopify |
| `query-events` | `shopify.queryEvents()` | — | 7 | Query events from Shopify using the GraphQL Admin API |
| `query-events-count` | `shopify.queryEventsCount()` | — | 1 | Query the count of events in Shopify using the GraphQL Admin API |
| `query-functions` | `shopify.queryFunctions()` | — | 7 | Query Shopify Functions owned by the API client installed on the shop |
| `query-job` | `shopify.queryJob()` | `--id` | 0 | Query a single job by its ID using Shopify's GraphQL API |
| `query-metafield-definition` | `shopify.queryMetafieldDefinition()` | `--id` | 0 | Query metafield definition details by ID using Shopify's GraphQL Admin API |
| `query-metafield-definition-types` | `shopify.queryMetafieldDefinitionTypes()` | — | 0 | Queries all available metafield definition types from Shopify using the GraphQL Admin API |
| `query-metafield-definitions` | `shopify.queryMetafieldDefinitions()` | `--ownerType` | 4 | Query metafield definitions from Shopify using the GraphQL Admin API |
| `query-node` | `shopify.queryNode()` | `--id` | 1 | Query any Shopify resource by its global ID using the node query |
| `query-nodes` | `shopify.queryNodes()` | `--ids` | 0 | Query nodes by their IDs from the Shopify GraphQL Admin API |
| `query-online-store` | `shopify.queryOnlineStore()` | — | 0 | Query online store settings from Shopify using the GraphQL Admin API |
| `query-product-duplicate-job` | `shopify.queryProductDuplicateJob()` | `--id` | 0 | Query a product duplicate job by its ID using Shopify's GraphQL API |
| `query-public-api-versions` | `shopify.queryPublicApiVersions()` | — | 0 | Query available public API versions from Shopify using the GraphQL Admin API |
| `query-publication` | `shopify.queryPublication()` | `--id` | 0 | Query a single publication by ID using Shopify's GraphQL Admin API |
| `query-server-pixel` | `shopify.queryServerPixel()` | — | 0 | Query the server pixel configuration in Shopify |
| `query-shop` ·common | `shopify.queryShop()` | — | 1 | Retrieve shop information using the Shopify GraphQL Admin API |
| `query-shop-billing-preferences` | `shopify.queryShopBillingPreferences()` | — | 0 | Query the shop's billing preferences from Shopify using the GraphQL Admin API |
| `query-shop-pay-payment-request-receipts` | `shopify.queryShopPayPaymentRequestReceipts()` | — | 7 | Query Shop Pay payment request receipts from Shopify using the GraphQL Admin API |
| `query-standard-metafield-definition-templates` | `shopify.queryStandardMetafieldDefinitionTemplates()` | — | 8 | Query standard metafield definition templates from Shopify using the GraphQL Admin API |
| `query-taxonomy` | `shopify.queryTaxonomy()` | — | 8 | Query Shopify's product taxonomy using the GraphQL Admin API |
| `query-webhook-subscription` | `shopify.queryWebhookSubscription()` | `--id` | 0 | Retrieve webhook subscription details by ID using the Shopify GraphQL Admin API |
| `query-webhook-subscriptions` | `shopify.queryWebhookSubscriptions()` | — | 3 | Query webhook subscriptions from Shopify using the GraphQL Admin API |
| `receive-count-of-all-product-images` | `shopify.receiveCountOfAllProductImages()` | `--product-id` | 0 | Retrieves the total count of images for a Shopify product |
| `receive-single-fulfillment` | `shopify.receiveSingleFulfillment()` | `--fulfillment-id` `--order-id` | 0 | Retrieve detailed information about a specific fulfillment for an order |
| `receive-single-webhook` | `shopify.receiveSingleWebhook()` | `--webhook-id` | 1 | Retrieves detailed information about a specific webhook subscription by its ID |
| `release-fulfillment-hold` | `shopify.releaseFulfillmentHold()` | `--fulfillment-order-id` | 0 | Releases the fulfillment hold on a fulfillment order, allowing fulfillment work to proceed |
| `release-fulfillment-order-hold` | `shopify.releaseFulfillmentOrderHold()` | `--fulfillment-order-id` | 0 | Release all fulfillment holds on a fulfillment order |
| `reopen-closed-order` | `shopify.reopenClosedOrder()` | `--order-id` | 0 | Reopens a previously closed Shopify order |
| `restore-comment` | `shopify.restoreComment()` | `--comment-id` | 0 | Restores a previously removed comment, changing its status back to 'published' |
| `retrieve-list-metafields-resource-s-endpoint` | `shopify.retrieveListMetafieldsResourceSEndpoint()` | `--resource` `--resource-id` | 10 | Retrieve metafields attached to any Shopify resource by using the resource's endpoint |
| `retrieve-specific-fulfillment-order` | `shopify.retrieveSpecificFulfillmentOrder()` | `--fulfillment-order-id` | 2 | Retrieve a specific fulfillment order by its ID |
| `retrieve-specific-metafield` | `shopify.retrieveSpecificMetafield()` | `--metafield-id` `--resource-type` | 2 | Retrieve a metafield by specifying the ID |
| `retrieves-list-all-article-tags-specific-blog` | `shopify.retrievesListAllArticleTagsSpecificBlog()` | `--blog-id` | 2 | Retrieve a list of all article tags from a specific blog |
| `retrieves-list-discount-codes-discount-code` | `shopify.retrievesListDiscountCodesDiscountCode()` | `--batch-id` `--price-rule-id` | 0 | Retrieve a list of discount codes for a discount code creation job |
| `retrieves-list-of-abandoned-checkouts` | `shopify.retrievesListOfAbandonedCheckouts()` | — | 7 | Retrieves a list of abandoned checkouts from Shopify |
| `retrieves-list-of-all-article-tags` | `shopify.retrievesListOfAllArticleTags()` | — | 2 | Retrieves all article tags used across all blogs in the Shopify shop |
| `retrieves-list-of-price-rules` | `shopify.retrievesListOfPriceRules()` | — | 11 | Retrieve a list of price rules from a Shopify store |
| `retrieves-list-of-products` ·common | `shopify.retrievesListOfProducts()` | — | 16 | Retrieve a list of products from Shopify |
| `retrieves-list-of-webhooks` | `shopify.retrievesListOfWebhooks()` | — | 9 | Retrieve a list of webhook subscriptions for a Shopify shop |
| `retrieves-list-storefront-access-tokens-that-have` | `shopify.retrievesListStorefrontAccessTokensThatHave()` | — | 0 | Retrieves a list of storefront access tokens that have been issued for the shop |
| `retrieves-order-count` | `shopify.retrievesOrderCount()` | — | 11 | Retrieves the count of orders matching specified filters |
| `retrieves-shop-s-configuration` | `shopify.retrievesShopSConfiguration()` | — | 1 | Retrieve the shop's configuration and general business settings |
| `retrieves-single-location-by-its-id` | `shopify.retrievesSingleLocationByItsId()` | `--location-id` | 0 | Retrieves detailed information about a specific Shopify location by its ID |
| `retrieves-single-order-risk-by-its-id` | `shopify.retrievesSingleOrderRiskByItsId()` | `--order-id` `--risk-id` | 0 | Retrieves a single order risk assessment by its unique ID |
| `retrieves-single-price-rule` | `shopify.retrievesSinglePriceRule()` | `--price-rule-id` | 0 | Retrieves a single price rule by its unique identifier |
| `retrieves-single-product` ·common | `shopify.retrievesSingleProduct()` | `--product-id` | 1 | Retrieves a single product by its unique product ID |
| `retrieves-specific-fulfillment-event` | `shopify.retrievesSpecificFulfillmentEvent()` | `--event-id` `--fulfillment-id` `--order-id` | 0 | Retrieves a specific fulfillment event by its ID |
| `revoke-app-access-scopes` | `shopify.revokeAppAccessScopes()` | `--scopes` | 0 | Revoke previously granted access scopes from an app installation |
| `run-bulk-mutation-operation` | `shopify.runBulkMutationOperation()` | `--mutation` `--staged-upload-path` | 1 | Create and run a bulk operation to import data asynchronously by executing a GraphQL mutation multiple times |
| `run-bulk-operation-query` ·common | `shopify.runBulkOperationQuery()` | `--query` | 1 | Create and start a Shopify GraphQL bulk operation for asynchronous data fetching |
| `searches-for-gift-cards` | `shopify.searchesForGiftCards()` | — | 9 | Search for gift cards that match a supplied query |
| `send-customer-account-invite` | `shopify.sendCustomerAccountInvite()` | `--customer-id` | 5 | Sends an account activation invite email to an existing customer, allowing them to set up their online store account |
| `send-customer-invite` | `shopify.sendCustomerInvite()` | `--customer-id` | 5 | Sends an account invitation email to a customer, allowing them to create or activate their Shopify account |
| `send-invoice` | `shopify.sendInvoice()` | `--draft-order-id` | 1 | Send an invoice email for a draft order to a customer |
| `set-default-customer-address` | `shopify.setDefaultCustomerAddress()` | `--address-id` `--customer-id` | 0 | Set a specific address as the default address for a customer |
| `set-fulfillment-orders-deadline` | `shopify.setFulfillmentOrdersDeadline()` | `--fulfillment-deadline` `--fulfillment-order-ids` | 0 | Set the latest fulfillment deadline for multiple fulfillment orders |
| `set-inventory-level` | `shopify.setInventoryLevel()` | `--available` `--inventory-item-id` `--location-id` | 1 | Set inventory level for an item at a location |
| `set-metafields` | `shopify.setMetafields()` | `--metafields` | 0 | Create or update multiple metafields in a single operation using the metafieldsSet GraphQL mutation |
| `trigger-flow` | `shopify.triggerFlow()` | — | 2 | Trigger Shopify Flow workflows that begin with the specified trigger handle |
| `update-app-subscription-line-item` | `shopify.updateAppSubscriptionLineItem()` | `--cappedAmount` `--id` | 0 | Update the capped amount on usage-based billing for an app subscription line item |
| `update-article` | `shopify.updateArticle()` | `--article-id` `--blog-id` | 9 | Update an existing article in a Shopify blog |
| `update-blog` | `shopify.updateBlog()` | `--blog-id` | 7 | Updates an existing blog's configuration in your Shopify store |
| `update-comment` | `shopify.updateComment()` | `--comment-id` | 4 | Update an existing comment on a blog article in Shopify |
| `update-countries-param-country-id` ·deprecated | `shopify.updateCountriesParamCountryId()` | `--country-id` | 1 | Updates an existing country's tax configuration in Shopify |
| `update-countries-param-country-id-provinces-param-pr` | `shopify.updateCountriesParamCountryIdProvincesParamPr()` | `--country-id` `--province-id` | 3 | Update Province Tax Information |
| `update-country` | `shopify.updateCountry()` | `--country-id` | 1 | Update an existing country's tax configuration in Shopify |
| `update-custom-collection` | `shopify.updateCustomCollection()` | `--custom-collection-id` | 9 | Update an existing custom collection in Shopify |
| `update-customer` ·common | `shopify.updateCustomer()` | `--customer-id` | 15 | Update an existing customer in Shopify |
| `update-customer-address` | `shopify.updateCustomerAddress()` | `--address-id` `--customer-id` | 10 | Updates an existing address for a Shopify customer |
| `update-customers-param-customer-id-addresses-set` | `shopify.updateCustomersParamCustomerIdAddressesSet()` | `--address-ids` `--customer-id` `--operation` | 0 | Performs bulk operations on multiple customer addresses |
| `update-draft-order` | `shopify.updateDraftOrder()` | `--draft-order-id` | 17 | Update an existing draft order in Shopify |
| `update-event-bridge-webhook-subscription` | `shopify.updateEventBridgeWebhookSubscription()` | `--id` `--webhookSubscription` | 0 | Update an Amazon EventBridge webhook subscription in Shopify |
| `update-fulfillment-tracking` | `shopify.updateFulfillmentTracking()` | `--fulfillment` `--fulfillment-id` | 0 | Updates tracking information (carrier company, tracking number, or custom URL) for an existing fulfillment |
| `update-gift-card` | `shopify.updateGiftCard()` | `--gift-card-id` | 4 | Updates an existing gift card in Shopify |
| `update-inventory-item` | `shopify.updateInventoryItem()` | `--inventory-item` `--inventory-item-id` | 0 | Updates properties of an inventory item in Shopify |
| `update-marketing-event` | `shopify.updateMarketingEvent()` | `--marketing-event-id` | 17 | Updates an existing marketing event in Shopify |
| `update-metafield` | `shopify.updateMetafield()` | `--blog-id` `--metafield-id` | 3 | Update an existing metafield for a blog |
| `update-metafield-by-id` | `shopify.updateMetafieldById()` | `--metafield-id` | 3 | Update an existing Shopify metafield by its ID |
| `update-metafield-definition` ·common | `shopify.updateMetafieldDefinition()` | `--key` `--namespace` `--ownerType` | 7 | Update a Shopify metafield definition's configuration including name, description, validation rules, access settings, and capabilities |
| `update-metafield-generic` | `shopify.updateMetafieldGeneric()` | `--metafield-id` `--resource-id` `--resource-type` | 3 | Update an existing metafield for any Shopify resource type |
| `update-metafield-resource` | `shopify.updateMetafieldResource()` | `--metafield-id` `--owner-id` `--owner-resource` | 3 | Update an existing metafield for any Shopify resource |
| `update-order` | `shopify.updateOrder()` | `--id` | 13 | Updates mutable fields on an existing Shopify order |
| `update-order-risk` | `shopify.updateOrderRisk()` | `--order-id` `--risk-id` | 5 | Updates an order risk assessment for fraud detection in Shopify |
| `update-page` | `shopify.updatePage()` | `--page-id` | 6 | Updates an existing page in a Shopify store |
| `update-price-rule` | `shopify.updatePriceRule()` | `--price-rule-id` | 26 | Update an existing price rule (discount) in Shopify |
| `update-product-image` | `shopify.updateProductImage()` | `--image` `--image-id` `--product-id` | 0 | Modify an existing product image |
| `update-product-metafield` | `shopify.updateProductMetafield()` | `--metafield-id` `--product-id` | 3 | Updates an existing metafield for a specific Shopify product |
| `update-product-variants-bulk` ·common | `shopify.updateProductVariantsBulk()` | `--variants` | 2 | Updates many product variants (20-50+) in one asynchronous Shopify bulk mutation job |
| `update-products-param-product-id` ·common ·deprecated | `shopify.updateProductsParamProductId()` | `--product-id` | 15 | Use SHOPIFY_UPDATES_PRODUCT instead |
| `update-province` | `shopify.updateProvince()` | `--country-id` `--province-id` | 7 | Updates an existing province for a country in Shopify |
| `update-pub-sub-webhook-subscription` | `shopify.updatePubSubWebhookSubscription()` | `--id` | 3 | Updates a Google Cloud Pub/Sub webhook subscription configuration |
| `update-redirect` | `shopify.updateRedirect()` | `--redirect-id` | 2 | Update an existing Shopify redirect |
| `update-redirect-alt` | `shopify.updateRedirectAlt()` | `--redirect-id` | 2 | Update an existing Shopify redirect |
| `update-script-tag` | `shopify.updateScriptTag()` | `--script-tag-id` | 4 | Modify an existing script tag in Shopify |
| `updates-article` ·deprecated | `shopify.updatesArticle()` | `--article-id` `--blog-id` | 10 | Use update-article instead |
| `updates-existing-discount-code` | `shopify.updatesExistingDiscountCode()` | `--code` `--discount-code-id` `--price-rule-id` | 0 | Updates the code value of an existing discount code associated with a price rule |
| `updates-product` ·common | `shopify.updatesProduct()` | `--product-id` | 15 | Updates a product and its variants and images |

## Docs

- [run CLI](https://docs.boxd.sh/cli/run): Call connected integrations from the shell, connect new ones, and run automations.
- [Quickstart](https://docs.boxd.sh/guides/integrations/quickstart): Connect an integration, call it from the shell, and turn a script into an automation.
- [Connections](https://docs.boxd.sh/guides/integrations/connections): Connect an account once, for yourself or for your whole organization.
- [Scripts](https://docs.boxd.sh/guides/automations/scripts): Typed integrations, triggers, schedules and state in a .run.ts file.
- [Jobs](https://docs.boxd.sh/guides/automations/jobs): How a script becomes a background job: states, retries, sleep and wake.
- [Beyond the catalog](https://docs.boxd.sh/guides/automations/beyond-the-catalog): Reach your own APIs, databases and cloud accounts from a script.
