← 返回 Skills 市场
droneitgroup

Ecwid Ecommerce

作者 droneitgroup · GitHub ↗ · v1.0.2 · MIT-0
cross-platform ✓ 安全检测通过
110
总下载
0
收藏
0
当前安装
3
版本数
在 OpenClaw 中安装
/install ecwid-ecommerce
功能描述
Ecwid REST API v3 integration for managing e-commerce store data including products, orders, customers, categories, discount coupons, promotions, abandoned c...
使用说明 (SKILL.md)

Ecwid

Ecwid REST API v3 integration for managing e-commerce store data including products, orders, customers, categories, discount coupons, promotions, abandoned carts, and store profile.

Official docs: https://docs.ecwid.com/api-reference Publisher: https://github.com/droneitgroup


Connection Setup

Set up a Direct API (HTTP) connection with the following settings:

Setting Value
Service name Ecwid
Base URL https://app.ecwid.com/api/v3/{storeId} (replace {storeId} with your actual store ID)
Auth type Bearer token
Token Your store's secret API token (format: secret_xxxxx)
HTTP methods GET for read-only access. Add POST, PUT, DELETE for write operations.

Finding your Store ID and API token

  1. Log in to your Ecwid admin panel
  2. Go to Settings → API
  3. Your Store ID is displayed at the top
  4. Your Secret API token starts with secret_ — use this as the Bearer token

⚠️ Security best practices

  • Use the minimum scopes needed. If you only need to read data, create a token with read-only scopes (e.g. read_store_profile, read_catalog, read_orders, read_customers, read_discount_coupons) and set HTTP methods to GET only.
  • Never use a full admin token unless you specifically need write access.
  • Test with a sandbox/test store first before connecting a production store.
  • Rotate tokens if you suspect they've been exposed.
  • For more on Ecwid API permissions, see: https://docs.ecwid.com/api-reference/rest-api/authentication

Common Patterns

Pagination

All list endpoints return the same pagination envelope:

{
  "total": 150,
  "count": 100,
  "offset": 0,
  "limit": 100,
  "items": [...]
}

Use offset and limit query parameters to paginate. Maximum and default limit is 100.

Example: ?offset=0?offset=100?offset=200 ...

Response field filtering

All endpoints support the responseFields query parameter to limit which fields are returned:

?responseFields=total,items(id,name,price)

This reduces response size and speeds up requests.

Date formats

Date parameters accept both:

  • UNIX timestamps: 1447804800
  • Datetime strings: 2023-01-15 19:27:50

Authentication

All requests require the Authorization header:

Authorization: Bearer secret_xxxxx

Products

Scope required: read_catalog

Search/list products

GET /products

Query parameters

Name Type Description
keyword string Search term. Searches name, description, SKU, options, category name, gallery image descriptions, attribute values. Add * at end to disable exact match.
productId number Internal product IDs (comma-separated). If set, other search params are ignored.
sku string Exact product or variation SKU match. If set, other params ignored except productId.
category string Category ID to filter products by.
categories string Comma-separated category IDs, e.g. 0,123456,138470508.
includeProductsFromSubcategories boolean Set true to include products from subcategories.
priceFrom number Minimum product price.
priceTo number Maximum product price.
createdFrom number/string Product creation date lower bound.
createdTo number/string Product creation date upper bound.
updatedFrom number/string Product update date lower bound.
updatedTo number/string Product update date upper bound.
enabled boolean true for enabled only, false for disabled only.
inStock boolean true for in-stock only, false for out-of-stock only.
sortBy string One of: RELEVANCE (default), DEFINED_BY_STORE_OWNER, ADDED_TIME_DESC, ADDED_TIME_ASC, NAME_ASC, NAME_DESC, PRICE_ASC, PRICE_DESC, UPDATED_TIME_ASC, UPDATED_TIME_DESC.
offset number Pagination offset.
limit number Max items to return (max/default: 100).
responseFields string Limit response fields. Example: items(id,name,price,sku)

Key response fields (items)

Field Type Description
id number Internal product ID.
sku string Product SKU.
name string Product name.
price number Base product price.
defaultDisplayedPrice number Price shown on storefront (includes taxes).
compareToPrice number Pre-sale / "compare to" price.
quantity number Stock quantity (absent if unlimited is true).
unlimited boolean Whether product has unlimited stock.
inStock boolean Whether in stock.
enabled boolean Whether visible on storefront.
weight number Product weight.
url string Storefront product page URL.
created string Creation datetime.
updated string Last update datetime.
createTimestamp number Creation UNIX timestamp.
updateTimestamp number Last update UNIX timestamp.
description string Product description (HTML).
categoryIds array IDs of assigned categories.
defaultCategoryId number Default category ID.
imageUrl string Main image URL (1200px).
thumbnailUrl string Thumbnail URL (400px).
originalImageUrl string Full-size image URL.
options array Product options (size, color, etc.).
combinations array Product variations.
attributes array Product attributes and values.
isGiftCard boolean Whether this is a gift card.

Example

curl 'https://app.ecwid.com/api/v3/1003/products?keyword=drone&limit=10' \
  -H 'Authorization: Bearer secret_token'

Get single product

GET /products/{productId}

Returns the full product object directly (not wrapped in pagination envelope). The productId is a number.


Orders

Scope required: read_orders

Search/list orders

GET /orders

Query parameters

Name Type Description
ids string Comma-separated order IDs, internal IDs, prefixes, and suffixes. Example: EG4H2,J77J8
keywords string Search order ID, transaction ID, addresses, email, tracking code, item SKUs/names, admin notes.
email string Customer email.
customerId number Customer's internal ID.
productId number/string Product IDs in order (comma-separated).
totalFrom number Minimum order total.
totalTo number Maximum order total.
createdFrom number/string Order placement datetime lower bound.
createdTo number/string Order placement datetime upper bound.
updatedFrom number/string Order update datetime lower bound.
updatedTo number/string Order update datetime upper bound.
paymentStatus string Payment status filter. Supports multiple comma-separated values: AWAITING_PAYMENT, PAID, CANCELLED, REFUNDED, PARTIALLY_REFUNDED, INCOMPLETE.
fulfillmentStatus string Fulfillment status filter. Supports multiple comma-separated values: AWAITING_PROCESSING, PROCESSING, SHIPPED, DELIVERED, WILL_NOT_DELIVER, RETURNED, READY_FOR_PICKUP, OUT_FOR_DELIVERY.
paymentMethod string Payment method name.
shippingMethod string Shipping method name.
couponCode string Discount coupon code applied to the order.
offset number Pagination offset.
limit number Max items to return (max/default: 100).
responseFields string Limit response fields. Example: items(id,email,total,paymentStatus)

Key response fields (items)

Field Type Description
id string Order ID (string, not number!) e.g. "ORD001", "XYZ99".
internalId number Internal numeric order ID.
email string Customer email.
total number Order total with all modifiers.
subtotal number Cost of products before modifiers.
tax number Sum of all taxes.
couponDiscount number Discount from coupon.
discount number Sum of all advanced discounts.
paymentStatus string Payment status.
fulfillmentStatus string Fulfillment status.
paymentMethod string Payment method name.
createDate string Order placement datetime.
updateDate string Last update datetime.
createTimestamp number Order placement UNIX timestamp.
updateTimestamp number Last update UNIX timestamp.
customerId number Internal customer ID.
items array Products in the order (with productId, name, price, quantity, sku).
shippingPerson object Shipping address (name, street, city, countryCode, postalCode, phone).
billingPerson object Billing address (same fields as shippingPerson).
shippingOption object Shipping details (shippingMethodName, shippingRate).
trackingNumber string Shipping tracking code.
privateAdminNotes string Private notes by store owner.
orderComments string Customer's order comments.

Example

curl 'https://app.ecwid.com/api/v3/1003/orders?paymentStatus=PAID&fulfillmentStatus=DELIVERED&limit=10' \
  -H 'Authorization: Bearer secret_token'

Get single order

GET /orders/{orderId}

Returns the full order object directly. Note: orderId is a string (e.g. "ORD001"), not a number.


Customers

Scope required: read_customers

Search/list customers

GET /customers

Query parameters

Name Type Description
keyword string Search customer name and email.
name string Search customer name (billingPerson.name).
email string Search customer email.
useExactEmailMatch boolean true for exact email match (requires email param).
phone string Search customer phone number.
city string Search customer city in shipping address.
postalCode string Search customer ZIP code.
stateOrProvinceCode string Two-digit state code.
countryCodes string Country codes in shipping address.
companyName string Company name in shipping address.
acceptMarketing boolean Filter by marketing email acceptance.
customerGroupIds string Customer group IDs (comma-separated).
minOrderCount number Minimum number of customer orders.
maxOrderCount number Maximum number of customer orders.
minSalesValue number Minimum total order value.
maxSalesValue number Maximum total order value.
createdFrom number/string Registration datetime lower bound.
createdTo number/string Registration datetime upper bound.
updatedFrom number/string Last update datetime lower bound.
updatedTo number/string Last update datetime upper bound.
sortBy string One of: NAME_ASC, NAME_DESC, EMAIL_ASC, EMAIL_DESC, ORDER_COUNT_ASC, ORDER_COUNT_DESC, REGISTERED_DATE_DESC, REGISTERED_DATE_ASC, UPDATED_DATE_DESC, UPDATED_DATE_ASC, SALES_VALUE_ASC, SALES_VALUE_DESC.
offset number Pagination offset.
limit number Max items (max/default: 100).
responseFields string Limit response fields.

Key response fields (items)

Field Type Description
id number Internal customer ID.
email string Customer email.
name string Customer name.
totalOrderCount number Total orders placed.
registered string Registration datetime.
updated string Last update datetime.
billingPerson object Billing name/address.
shippingAddresses array Saved shipping addresses.
contacts array Contact info (email, phone, social media).
customerGroupId number Customer group ID.
customerGroupName string Customer group name.
taxExempt boolean Whether customer is tax exempt.
acceptMarketing boolean Whether customer accepted marketing emails.
stats object Sales stats: numberOfOrders, salesValue, averageOrderValue, firstOrderDate, lastOrderDate.
privateAdminNotes string Private admin notes.

The response also includes allCustomerCount (total unique customers in store) at the top level.

Example

curl 'https://app.ecwid.com/api/v3/1003/[email protected]' \
  -H 'Authorization: Bearer secret_token'

Get single customer

GET /customers/{customerId}

Returns the full customer object directly. customerId is a number.


Categories

Scope required: read_catalog

Search/list categories

GET /categories

Query parameters

Name Type Description
keyword string Search category name and description.
parent number Parent category ID — returns only direct children.
parentIds string Comma-separated parent category IDs for descendants search.
withSubcategories boolean true to get full category tree (subcategories of subcategories).
hidden_categories boolean true to include disabled categories.
offset number Pagination offset.
limit number Max items (max/default: 100).
responseFields string Limit response fields.

Key response fields (items)

Field Type Description
id number Internal category ID.
parentId number Parent category ID.
name string Category name.
url string Full storefront URL.
productCount number Products in category and subcategories.
enabledProductCount number Enabled products (requires productIds=true).
description string Category description (HTML).
enabled boolean Whether category is enabled.
imageUrl string Category image (1200px).
thumbnailUrl string Category thumbnail (400px).
orderBy number Sort order (starts from 10, increments by 10).
productIds array Product IDs in category (requires productIds=true query param).

Example

curl 'https://app.ecwid.com/api/v3/1003/categories?parent=0' \
  -H 'Authorization: Bearer secret_token'

Get single category

GET /categories/{categoryId}

Returns the full category object directly. categoryId is a number.


Discount Coupons

Scope required: read_discount_coupons

Search/list coupons

GET /discount_coupons

Query parameters

Name Type Description
code string Search by coupon code.
discount_type string Filter by type: ABS, PERCENT, SHIPPING, ABS_AND_SHIPPING, PERCENT_AND_SHIPPING.
availability string Filter by status: ACTIVE, PAUSED, EXPIRED, USEDUP.
createdFrom number/string Creation date lower bound.
createdTo number/string Creation date upper bound.
updatedFrom number/string Update date lower bound.
updatedTo number/string Update date upper bound.
offset number Pagination offset.
limit number Max items (max/default: 100).
responseFields string Limit response fields.

Key response fields (items)

Field Type Description
id number Internal coupon ID.
name string Coupon name.
code string Coupon code used at checkout.
discountType string Type: ABS, PERCENT, SHIPPING, ABS_AND_SHIPPING, PERCENT_AND_SHIPPING.
status string Status: ACTIVE, PAUSED, EXPIRED, USEDUP.
discount number Discount value.
launchDate string Coupon launch date.
expirationDate string Coupon expiration date.
totalLimit number Minimum order subtotal for coupon to apply.
usesLimit string Uses limit: UNLIMITED, ONCEPERCUSTOMER, SINGLE.
applicationLimit string Application limit: UNLIMITED, NEW_CUSTOMER_ONLY, REPEAT_CUSTOMER_ONLY.
creationDate string Coupon creation date.
updateDate string Last update date.
orderCount number Number of orders using this coupon.
catalogLimit object Product/category limitations (products, categories arrays).

Example

curl 'https://app.ecwid.com/api/v3/1003/discount_coupons?availability=ACTIVE' \
  -H 'Authorization: Bearer secret_token'

Get single coupon

GET /discount_coupons/{couponId}

Returns the full coupon object directly. couponId is a number.


Promotions

Scope required: read_promotion

List promotions

GET /promotions

Query parameters

Name Type Description
responseFields string Limit response fields. Example: items(name,enabled)

Note: Promotions endpoint has minimal filtering — only responseFields is supported.

Key response fields (items)

Field Type Description
id number Internal promotion ID.
name string Promotion name visible at checkout.
enabled boolean Whether promotion is active.
discountBase string Discount base: ITEM, SUBTOTAL, SHIPPING.
discountType string Discount type: PERCENT, ABSOLUTE, FIXED_PRICE.
amount number Discount amount.
triggers object Trigger conditions (subtotal, startDate, endDate, customerGroups, minProductQuantityInCart, etc.).
targets object Target limitations (categories, products, shippingMethods, etc.).

Example

curl 'https://app.ecwid.com/api/v3/1003/promotions' \
  -H 'Authorization: Bearer secret_token'

Abandoned Carts

Scope required: read_orders

IMPORTANT: The endpoint path is /carts, NOT /abandoned_carts. Using /abandoned_carts returns a 404 error.

Search abandoned carts

GET /carts

Query parameters

Name Type Description
showHidden boolean Set false to exclude deleted carts.
totalFrom number Minimum cart total.
totalTo number Maximum cart total.
createdFrom number/string Cart creation datetime lower bound.
createdTo number/string Cart creation datetime upper bound.
updatedFrom number/string Cart update datetime lower bound.
updatedTo number/string Cart update datetime upper bound.
email string Customer email.
customerId number Customer's internal ID.
offset number Pagination offset.
limit number Max items (max: 100, default: 10).
responseFields string Limit response fields. Example: items(cartId,total,email)

Key response fields (items)

Field Type Description
cartId string Unique cart ID (UUID format), e.g. "6626E60A-A6F9-4CD5-8230-43D5F162E0CD".
email string Customer email.
total number Cart total.
subtotal number Cart subtotal.
tax number Total tax.
createDate string Cart creation datetime.
updateDate string Last update datetime.
createTimestamp number Creation UNIX timestamp.
updateTimestamp number Last update UNIX timestamp.
customerId number Internal customer ID.
paymentMethod string Selected payment method.
items array Products in cart (productId, name, price, quantity, sku).
billingPerson object Billing address.
shippingPerson object Shipping address.
shippingOption object Selected shipping option.
couponDiscount number Discount from coupon.
discount number Sum of all advanced discounts.
recoveredOrderId number Order ID if cart was recovered.
hidden boolean Whether cart is hidden from admin.

Example

curl 'https://app.ecwid.com/api/v3/1003/[email protected]' \
  -H 'Authorization: Bearer secret_token'

Get single abandoned cart

GET /carts/{cartId}

Returns the full cart object directly. cartId is a string (UUID format).


Store Profile

Scope required: read_store_profile

Get store profile

GET /profile

Returns store settings including general info, company details, languages, currencies, tax settings, and more.

No query parameters required (supports responseFields for filtering).

Example

curl 'https://app.ecwid.com/api/v3/1003/profile' \
  -H 'Authorization: Bearer secret_token'

Quick Reference

Resource List Endpoint Single Endpoint Scope
Products GET /products GET /products/{productId} read_catalog
Orders GET /orders GET /orders/{orderId} read_orders
Customers GET /customers GET /customers/{customerId} read_customers
Categories GET /categories GET /categories/{categoryId} read_catalog
Coupons GET /discount_coupons GET /discount_coupons/{couponId} read_discount_coupons
Promotions GET /promotions read_promotion
Abandoned Carts GET /carts GET /carts/{cartId} read_orders
Store Profile GET /profile read_store_profile

ID Types

Resource ID Type Example
Products number 12345678
Orders string "ORD001"
Customers number 177737165
Categories number 9691094
Coupons number 162428889
Abandoned Carts string (UUID) "6626E60A-A6F9-4CD5-8230-43D5F162E0CD"
安全使用建议
This skill appears coherent and low-risk for its purpose, but treat the ECWID_SECRET_TOKEN as sensitive: only provide tokens with the minimum scopes needed (prefer read-only tokens for read tasks), test against a sandbox store first, don't paste or share full admin tokens, rotate tokens if you suspect exposure, and confirm the publisher (the SKILL.md points to https://github.com/droneitgroup). Because this is instruction-only, there's no installed code to inspect — the main risk is accidental use of an overly-permissive token or network calls using your token, so review what token you supply before enabling the skill.
功能分析
Type: OpenClaw Skill Name: ecwid-ecommerce Version: 1.0.2 The skill bundle is a legitimate integration for the Ecwid e-commerce REST API v3. SKILL.md provides detailed, well-structured documentation for managing products, orders, and customers using standard environment variables (ECWID_SECRET_TOKEN). A desktop.ini file is present but appears to be a harmless artifact from the developer's local environment (Google Drive sync) and contains no executable logic or malicious instructions.
能力评估
Purpose & Capability
Name/description match the requested artifacts: the skill is an Ecwid API integration and only asks for ECWID_STORE_ID and ECWID_SECRET_TOKEN, which are exactly what's needed to call the Ecwid REST API.
Instruction Scope
SKILL.md contains only API usage patterns, endpoints, parameters, and authentication instructions for Ecwid. It does not instruct reading local files, other environment variables, or sending data to third-party endpoints outside Ecwid.
Install Mechanism
No install spec and no code files — instruction-only skills have low disk/write risk. The skill relies on HTTP calls (curl or direct API) which is expected.
Credentials
Only two env vars are required (store ID and secret token) and the primary credential is the Ecwid secret token — this is proportional to the stated purpose. The README even recommends using minimal scopes for read-only needs.
Persistence & Privilege
Skill does not request always:true and is user-invocable only. There is no evidence it modifies other skills or system-wide settings.
如何使用
  1. 确保已安装 OpenClaw(本地或 Docker 部署)
  2. 在对话框中输入安装命令:/install ecwid-ecommerce
  3. 安装完成后,直接呼叫该 Skill 的名称或使用 /ecwid-ecommerce 触发
  4. 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
版本历史
v1.0.2
Ecwid REST API v3 skill covering 12 verified endpoints: products, orders, customers, categories, discount coupons, promotions, abandoned carts, and store profile. All endpoints tested against a live Ecwid store. Includes YAML frontmatter with credential declarations, security best practices section recommending read-only token scopes, and full parameter/response documentation sourced from official Ecwid docs.
v1.0.1
Now includes a security best practices section that explicitly recommends: ✅ Using read-only scopes and GET only by default ✅ Never using a full admin token unnecessarily ✅ Testing with a sandbox store first ✅ Rotating tokens if exposed ✅ Link to official Ecwid auth docs
v1.0.0
kmlkbjlhvjgchfxjdghzsfzdfxfcj
元数据
Slug ecwid-ecommerce
版本 1.0.2
许可证 MIT-0
累计安装 0
当前安装数 0
历史版本数 3
常见问题

Ecwid Ecommerce 是什么?

Ecwid REST API v3 integration for managing e-commerce store data including products, orders, customers, categories, discount coupons, promotions, abandoned c... 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 110 次。

如何安装 Ecwid Ecommerce?

在 OpenClaw 或 Claude Code 对话框中运行命令「/install ecwid-ecommerce」即可一键安装,无需额外配置。

Ecwid Ecommerce 是免费的吗?

是的,Ecwid Ecommerce 完全免费,采用 MIT-0 许可证,可自由下载、安装和使用。

Ecwid Ecommerce 支持哪些平台?

Ecwid Ecommerce 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。

谁开发了 Ecwid Ecommerce?

由 droneitgroup(@droneitgroup)开发并维护,当前版本 v1.0.2。

💬 留言讨论