ecwid_adjust_ product_ inventoryIncrease or decrease a product's in-stock quantity by a relative delta rather than setting an absolute value, which avoids race conditions when stock changes frequently.
Adjust stock, edit prices and variations, search orders by status, create coupons and pull an invoice — against the single store your secret token is scoped to.
PopMCPEcwid
Every catalog, order, customer, coupon and store-settings tool on this connection, plus the store events PopMCP can watch.
ecwid_adjust_ product_ inventoryIncrease or decrease a product's in-stock quantity by a relative delta rather than setting an absolute value, which avoids race conditions when stock changes frequently.
ecwid_create_ productCreate a new product in the store.
ecwid_delete_ productPermanently delete a product from the store by its numeric product id.
ecwid_get_ productGet all details of a single product by its numeric internal product id.
ecwid_get_ productsSearch or filter products in the store catalog, returning full product details.
ecwid_update_ productUpdate an existing product identified by its numeric product id.
ecwid_upload_ gallery_ imageAdd an image to the product's gallery (does not touch the main image).
ecwid_upload_ product_ imageUpload (or replace) the main image of a product.
ecwid_get_ payment_ optionsList all payment methods set up in the store.
ecwid_get_ shipping_ optionsList all shipping methods configured for the store.
ecwid_get_ store_ profileRetrieve the store profile: the complete store-settings object.
ecwid_update_ store_ profileUpdate the store profile / store settings.
ecwid_create_ orderCreate a new order in the store (useful for custom checkouts or backfilling past sales).
ecwid_delete_ orderPermanently delete an order, addressed by its orderNumber (use orderNumber, not vendorOrderNumber).
ecwid_get_ orderGet full details of a single order by its orderNumber (the numeric order identifier — use orderNumber here, NOT the human-facing vendorOrderNumber which may carry a store-defined prefix/suffix).
ecwid_get_ order_ invoice_ htmlGet the HTML code of the invoice for an order, addressed by its orderNumber (use orderNumber, not vendorOrderNumber).
ecwid_search_ ordersSearch and filter orders in the Ecwid store.
ecwid_update_ orderUpdate an existing order, addressed by its orderNumber (use orderNumber, not vendorOrderNumber).
ecwid_create_ product_ combinationCreate a new variation (combination) for the product identified by numeric productId.
ecwid_delete_ product_ combinationDelete a single variation (combination) identified by numeric combinationId from the product identified by numeric productId.
ecwid_get_ product_ combinationsRetrieve ALL variations (a.k.a.
ecwid_update_ product_ combinationUpdate an existing variation (combination) identified by numeric combinationId under the given numeric productId.
ecwid_create_ categoryCreate a new category in the store catalog.
ecwid_delete_ categoryDelete a category by its numeric categoryId.
ecwid_get_ categoriesSearch and list categories in the store catalog.
ecwid_get_ categoryRetrieve the complete details of a single category by its numeric id, including name, description, enabled status, parentId, orderBy, image URLs (thumbnailUrl/imageUrl/originalImageUrl/hdThumbnailUrl), and (if present) the productIds assigned to it plus name/description translations.
ecwid_update_ categoryUpdate an existing category, addressed by its numeric categoryId.
ecwid_create_ customerCreate a new customer account.
ecwid_create_ discount_ couponCreate a new discount coupon.
ecwid_delete_ customerPermanently delete a customer account by numeric customerId.
ecwid_delete_ discount_ couponDelete a discount coupon from the store.
ecwid_get_ customerRetrieve complete details for a single customer by their numeric customerId.
ecwid_get_ discount_ couponGet a single discount coupon.
ecwid_get_ discount_ couponsSearch and list discount coupons in the store with pagination.
ecwid_search_ customersSearch and list customer accounts in the store with filtering and pagination.
ecwid_update_ customerUpdate an existing customer identified by numeric customerId.
ecwid_update_ discount_ couponUpdate an existing discount coupon.
ecwid_calculate_ order_ detailsCalculate order details — shipping rates, taxes, discounts and totals — for a prospective order WITHOUT creating it.
ecwid_create_ customer_ groupCreates a new customer group in the store.
ecwid_get_ customer_ groupsRetrieves a paginated list of all customer groups in the store.
ecwid_get_ product_ typeRetrieve the details of a single product type (class) by its numeric classId.
ecwid_get_ product_ typesRetrieve all product types (called "classes" in the Ecwid API) defined in the store.
ecwid_search_ cartsSearch and list abandoned carts in the store.
ecwid_create_ batch_ requestSubmit multiple Ecwid REST API operations in a single batch request (up to 500 operations).
ecwid_delete_ all_ gallery_ imagesRemove all gallery images attached to a product in one call (the main image is not affected).
ecwid_delete_ all_ product_ filesRemove all downloadable files (e-goods) attached to a product in one call.
ecwid_delete_ gallery_ imageDelete a single gallery image from a product, identified by the numeric fileId of the gallery image.
ecwid_delete_ product_ fileDelete a single downloadable file (e-goods) from a product, identified by the numeric product id and the file's internal fileId.
ecwid_delete_ product_ imageDelete the main image of a product (gallery images are not affected).
ecwid_download_ product_ fileDownload a product's downloadable file (e-goods / digital product) by the numeric product id and the numeric internal fileId.
ecwid_get_ deleted_ productsLists products that were DELETED from the store, for sync/reconciliation.
ecwid_update_ product_ file_ descriptionEdit the description of an existing product file (e-goods), identified by the numeric product id and the file's internal fileId.
ecwid_upload_ product_ fileUpload a downloadable file (e-goods / digital product) to a product.
ecwid_create_ payment_ optionCreate a new payment option.
ecwid_create_ shipping_ optionCreate a new shipping option.
ecwid_delete_ email_ logoRemoves the email logo image from the store profile.
ecwid_delete_ invoice_ logoRemoves the invoice logo image from the store profile.
ecwid_delete_ store_ logoRemoves the currently set store logo image from the store profile.
ecwid_get_ latest_ statsReturns the timestamps of the most recent updates to each major store data domain — products, orders, profile, categories, discount coupons, abandoned sales, and customers (e.g.
ecwid_update_ payment_ optionUpdate an existing payment option, addressed by its optionId.
ecwid_update_ shipping_ optionUpdate an existing shipping option, addressed by its optionId.
ecwid_upload_ email_ logoUploads the logo image used in transactional store emails.
ecwid_upload_ invoice_ logoUploads the logo image printed on order invoices.
ecwid_upload_ store_ logoUploads the store logo image shown in the storefront.
ecwid_delete_ all_ item_ option_ filesDelete ALL files attached by the customer to an order item's file-upload option in one call.
ecwid_delete_ item_ option_ fileDelete a single file that a customer attached to an order item's file-upload option.
ecwid_get_ deleted_ ordersLists orders that were DELETED from the store, for sync/reconciliation.
ecwid_upload_ item_ option_ fileAttach a file to an order item's 'file upload' product option (the product option type must be FILES).
ecwid_adjust_ product_ combination_ inventoryAdjust the stock quantity of a single variation (combination) by a RELATIVE delta rather than setting an absolute value.
ecwid_delete_ all_ product_ combinationsDelete ALL variations (combinations) of the product identified by numeric productId in one call.
ecwid_delete_ product_ combination_ imageDelete the custom image of a single variation (combination), scoped by numeric productId and combinationId.
ecwid_get_ product_ combinationRetrieve a single product variation (combination) by its numeric combinationId, scoped to the given numeric productId.
ecwid_upload_ product_ combination_ imageUpload (set/replace) the custom image for a single variation (combination), scoped by numeric productId and combinationId.
ecwid_delete_ category_ imageRemove the image currently associated with the category identified by numeric categoryId.
ecwid_upload_ category_ imageUpload (or replace) the main image of a category identified by numeric categoryId.
ecwid_get_ deleted_ customersLists customers that were DELETED from the store, for sync/reconciliation.
ecwid_get_ deleted_ discount_ couponsLists discount coupons that were DELETED from the store, for sync/reconciliation.
ecwid_convert_ cart_ to_ orderConvert an abandoned cart into a completed (placed) order.
ecwid_create_ product_ typeCreate a new product type (class), optionally together with its attributes, in one call.
ecwid_create_ storage_ valueCreate or replace the value stored under a given key (upsert).
ecwid_delete_ customer_ groupDeletes a customer group by its numeric groupId.
ecwid_delete_ product_ typeDelete a product type (class) by its numeric classId.
ecwid_delete_ storage_ valueDelete a single application-storage entry by its key.
ecwid_get_ cartRetrieve full details of a single abandoned cart by its cartId.
ecwid_get_ customer_ groupRetrieves a single customer group by its numeric internal id.
ecwid_get_ starter_ siteReturns the Instant/Starter Site configuration for the store: cover image URLs and thumbnails (desktop and mobile), cover title/subtitle, customer quote block (quoteContent, quotePersonName, quotePersonTitle, quotePersonImageUrl), section visibility flags (showCoverImage, showQuote, etc.), and the cover button settings.
ecwid_get_ storage_ keysList ALL application-storage key/value pairs the app has set for this store.
ecwid_get_ storage_ valueGet a single application-storage entry by its key.
ecwid_update_ cartUpdate an abandoned cart identified by its string cartId (case-sensitive UUID).
ecwid_update_ customer_ groupUpdates an existing customer group identified by its numeric groupId.
ecwid_update_ product_ typeUpdate an existing product type (class) identified by its numeric classId, including renaming it and managing ALL of its attributes in one request.
ecwid_update_ starter_ siteUpdates the Instant/Starter Site configuration.
ecwid_update_ storage_ valueUpdate the value stored under a given key; per the docs, if the key does not yet exist the value is created (upsert).
ecwid_upload_ starter_ site_ coverUploads the Starter Site cover/background image.
ecwid_upload_ starter_ site_ owner_ portraitUploads the store-owner portrait image shown on the Starter Site.
ecwid_upload_ starter_ site_ quote_ personUploads the portrait image for the testimonial/quote person shown on the Starter Site.
ecwid_get_ batch_ request_ statusGet the execution status and results of a previously submitted batch request by its 'ticket'.
ecwid_get_ application_ statusGet the current installation, billing, and subscription status of YOUR application (the calling app) in this Ecwid store.
Credentials off one Ecwid screen, then an endpoint your client signs into. Nothing to deploy, and nothing to install.
Paste two values copied from your Ecwid account: Store ID and Secret token. No OAuth app, client secret, or redirect URL. The token is scoped to exactly one store, so the MCP is locked to that store.
12345678••••••••••••3f7aChoose read-only or full access, load the full catalog when you need the rarer tools, and keep approval on writes so deleting a product or an order — or rewriting store settings — waits for your yes.
Drop the PopMCP URL into Claude, ChatGPT, Codex or any other supported client. It signs in through PopMCP with OAuth, so your Ecwid credential never leaves the server.
app.popmcp.com/mcp/…Ask for something harmless before you turn writes on. Once it comes back clean, widen the tool set or switch the connection to full access.
Show me every unshipped order from last week and what's in each one
ecwid_search_ordersok
Then just ask for the work
“Show me every unshipped order from last week and what's in each one”
“Find our low-stock candle products and bump each one's inventory by 40”
“Add the new espresso blend as a product with its main image and a large size variation”
“Which customers in our wholesale group have ordered in the last 90 days?”
One hosted endpoint, registered once per client. The same tools and the same permissions, whichever window the request comes from.
Add the PopMCP URL under Settings → Connectors and the tools appear in every chat.
The same endpoint, registered in the browser. Nothing to install on the machine you are working from.
Register PopMCP as a custom connector, then let ChatGPT read and update the account.
Wire the endpoint into Codex or the Codex CLI when a task needs live business context, not a fixture.
Register the remote MCP server in OpenCode's config for terminal-first and scripted agent runs.
Add PopMCP as an MCP server in Z.ai's desktop app and work the account from the same window.
FAQ
What teams ask before putting Ecwid behind an AI client.
No. The connect form asks for two values you copy out of Ecwid: a Store ID and a Secret token. There is no OAuth app, client secret, or redirect URL to set up. That secret token is scoped to exactly one store, so the hosted server is locked to that store and cannot reach another.
Ecwid addresses orders by orderNumber, the numeric internal identifier. The vendorOrderNumber your customers and staff see can carry a store-defined prefix or suffix, so it is not what get_order, update_order, delete_order or get_order_invoice_html accept. If the agent only has the human-facing number, have it run search_orders first to resolve the real orderNumber.
Use adjust_product_inventory, which moves a product's in-stock quantity by a relative delta rather than writing an absolute value. That avoids the race where a checkout completes between the agent reading a count and writing a new one. update_product is still there when you genuinely want to set an exact figure, such as after a physical stock count.
Both. get_product_combinations returns all variations under a numeric productId, and create_product_combination, update_product_combination and delete_product_combination maintain them. For media, upload_product_image sets or replaces the main image, while upload_gallery_image adds to the gallery without touching the main image.
98 operations across 14 API modules, split 33 read and 65 write. 44 load into your client by default and the rest stay searchable, so clients with a tool-count ceiling are not flooded. The largest modules are Products, Store profile, Orders, Combinations and Categories. Even calculate_order_details, which prices shipping, taxes, discounts and totals for a prospective order, leaves nothing behind in the store.
They are polled, not pushed by webhook, so your store needs no callback endpoint. On the order side you can watch placed, updated, paid, shipped, refunded, cancelled and deleted. Products cover created, updated, deleted and out of stock against your reorder point, and customers cover created, updated and deleted.
No. PopMCP hosts it and gives you a Streamable HTTP MCP URL. There is nothing to deploy, no callback URL to register, and no infrastructure to keep running or patch.
Any client that supports a remote Streamable HTTP MCP server — Claude Desktop, Claude Web, ChatGPT custom connectors, Codex and the Codex CLI, OpenCode and Z.ai's ZCode, as well as editors such as Cursor, Windsurf and Zed. Your client signs in to PopMCP with OAuth; the provider credential never leaves the server.
Loading 98 tool definitions into every conversation burns context before the work starts. PopMCP loads a curated 44-tool set covering the everyday workflows and keeps the rest searchable, so your AI pulls a specialist tool only when a task needs it. You can switch a connection to the full catalog at any time.
A tool is something your AI calls — there are 98 here. A trigger is something PopMCP watches for you: 24 Ecwid events that can start work on the PopMCP side. Triggers never enter your AI client's context, and none of them ask you to paste a callback URL into Ecwid.
Launch a hosted MCP endpoint for Ecwid, keep tool access under control, and start testing real workflow prompts right away.