eCellar MCP by usefulapi
Read orders, customers, club and stock; add tracking, mark shipped and adjust stock in eCellar.
사용해야 할까요
품질 및 안전성
발견 사항 (6)
- LOWecellar_search_products에서
- LOWecellar_search_product_categories에서
- LOWecellar_search_club_tiers에서
- LOWecellar_search_reservations에서
- LOWecellar_search_product_categories에서
- LOWecellar_search_club_subscriptions에서
도구 정의와 프로토콜 준수에 대한 자동 분석을 기반으로 합니다.
컨텍스트 비용
이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.
설치
원클릭 설치
`claude_desktop_config.json` 파일에 다음을 추가하세요:
{
"mcpServers": {
"ecellar": {
"url": "https://ecellar.usefulapi.io/mcp"
}
}
}원격 엔드포인트
https://ecellar.usefulapi.io/mcpstreamable-http할 수 있는 일
도구 목록
도구 (19)
🟢ecellar_get_reference_data(kind)
Lookup lists of the winery's eCellar account: brands = brands (brand_key + name); locations = locations (location_id, name, timezone); customer_types = customer types; customer_sources = customer sources; customer_tags = customer tags; order_tags = order tags (tag groups and tags); reservation_types = reservation types; terminals = POS terminals; billing_statuses = billing statuses (enum values for the orders filter billing_statuses); purchase_statuses = order statuses (enum values for the orders filter purchase_statuses); purchase_sources = order sources (Web, POS, club, phone...); carriers = carriers (enum values for ecellar_add_order_tracking carrier_enum); payment_types = payment types; card_types = card types; note_types = customer note types; product_availabilities = product availabilities; product_statuses = product statuses; reservation_statuses = reservation statuses; fulfillment_companies = fulfillment companies; state_codes = state codes; country_codes = country codes. Use brands first: the brand_key values filter orders, club tiers, events and reservations. GET /client/* or /types/*.
입력 스키마
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"enum": [
"brands",
"locations",
"customer_types",
"customer_sources",
"customer_tags",
"order_tags",
"reservation_types",
"terminals",
"billing_statuses",
"purchase_statuses",
"purchase_sources",
"carriers",
"payment_types",
"card_types",
"note_types",
"product_availabilities",
"product_statuses",
"reservation_statuses",
"fulfillment_companies",
"state_codes",
"country_codes"
],
"description": "Which list to return."
}
},
"required": [
"kind"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢ecellar_search_customers(customer_ids, customer_type_ids, signup_date_start, signup_date_end, modified_date_start, ...)
Customers (club members and buyers) with contact details, type, source, tags, email consent and default addresses. Personal data: use only what the task needs. POST /customers.
입력 스키마
{
"type": "object",
"properties": {
"customer_ids": {
"description": "Only these customer ids.",
"minItems": 1,
"maxItems": 500,
"type": "array",
"items": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"customer_type_ids": {
"description": "Only these customer type ids.",
"minItems": 1,
"maxItems": 500,
"type": "array",
"items": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"signup_date_start": {
"description": "signup date start (inclusive range bound). ISO date or date-time (e.g. 2026-01-31 or 2026-01-31T14:00:00Z; a date means 00:00 UTC).",
"type": "string",
"maxLength": 40
},
"signup_date_end": {
"description": "signup date end (inclusive range bound). ISO date or date-time (e.g. 2026-01-31 or 2026-01-31T14:00:00Z; a date means 00:00 UTC).",
"type": "string",
"maxLength": 40
},
"modified_date_start": {
"description": "modified date start (inclusive range bound). ISO date or date-time (e.g. 2026-01-31 or 2026-01-31T14:00:00Z; a date means 00:00 UTC).",
"type": "string",
"maxLength": 40
},
"modified_date_end": {
"description": "modified date end (inclusive range bound). ISO date or date-time (e.g. 2026-01-31 or 2026-01-31T14:00:00Z; a date means 00:00 UTC).",
"type": "string",
"maxLength": 40
},
"page": {
"description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100000
},
"page_size": {
"description": "Rows per page (default 25, max 200).",
"type": "integer",
"minimum": 1,
"maximum": 200
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢ecellar_search_addresses(customer_ids, address_ids, create_date_start, create_date_end, modified_date_start, ...)
Customer billing and shipping addresses. POST /addresses.
입력 스키마
{
"type": "object",
"properties": {
"customer_ids": {
"description": "Only these customer ids.",
"minItems": 1,
"maxItems": 500,
"type": "array",
"items": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"address_ids": {
"description": "Only these address ids.",
"minItems": 1,
"maxItems": 500,
"type": "array",
"items": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"create_date_start": {
"description": "create date start (inclusive range bound). ISO date or date-time (e.g. 2026-01-31 or 2026-01-31T14:00:00Z; a date means 00:00 UTC).",
"type": "string",
"maxLength": 40
},
"create_date_end": {
"description": "create date end (inclusive range bound). ISO date or date-time (e.g. 2026-01-31 or 2026-01-31T14:00:00Z; a date means 00:00 UTC).",
"type": "string",
"maxLength": 40
},
"modified_date_start": {
"description": "modified date start (inclusive range bound). ISO date or date-time (e.g. 2026-01-31 or 2026-01-31T14:00:00Z; a date means 00:00 UTC).",
"type": "string",
"maxLength": 40
},
"modified_date_end": {
"description": "modified date end (inclusive range bound). ISO date or date-time (e.g. 2026-01-31 or 2026-01-31T14:00:00Z; a date means 00:00 UTC).",
"type": "string",
"maxLength": 40
},
"page": {
"description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100000
},
"page_size": {
"description": "Rows per page (default 25, max 200).",
"type": "integer",
"minimum": 1,
"maximum": 200
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢ecellar_search_notes(customer_ids, create_date_start, create_date_end, modified_date_start, modified_date_end, ...)
Notes on customer records (type, text, dates). POST /notes.
입력 스키마
{
"type": "object",
"properties": {
"customer_ids": {
"description": "Only these customer ids.",
"minItems": 1,
"maxItems": 500,
"type": "array",
"items": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"create_date_start": {
"description": "create date start (inclusive range bound). ISO date or date-time (e.g. 2026-01-31 or 2026-01-31T14:00:00Z; a date means 00:00 UTC).",
"type": "string",
"maxLength": 40
},
"create_date_end": {
"description": "create date end (inclusive range bound). ISO date or date-time (e.g. 2026-01-31 or 2026-01-31T14:00:00Z; a date means 00:00 UTC).",
"type": "string",
"maxLength": 40
},
"modified_date_start": {
"description": "modified date start (inclusive range bound). ISO date or date-time (e.g. 2026-01-31 or 2026-01-31T14:00:00Z; a date means 00:00 UTC).",
"type": "string",
"maxLength": 40
},
"modified_date_end": {
"description": "modified date end (inclusive range bound). ISO date or date-time (e.g. 2026-01-31 or 2026-01-31T14:00:00Z; a date means 00:00 UTC).",
"type": "string",
"maxLength": 40
},
"page": {
"description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100000
},
"page_size": {
"description": "Rows per page (default 25, max 200).",
"type": "integer",
"minimum": 1,
"maximum": 200
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢ecellar_search_orders(brand_keys, purchase_ids, customer_ids, purchase_statuses, billing_statuses, ...)
Orders (web, POS, club and phone) with totals, status, billing and shipping details, and their lines, payments, tracking records and tags. Statuses are the enum values from ecellar_get_reference_data purchase_statuses / billing_statuses. Contains customer personal data. POST /orders.
입력 스키마
{
"type": "object",
"properties": {
"brand_keys": {
"description": "Only these brands (brand_key values from ecellar_list_brands).",
"minItems": 1,
"maxItems": 50,
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 50
}
},
"purchase_ids": {
"description": "Only these order ids.",
"minItems": 1,
"maxItems": 500,
"type": "array",
"items": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"customer_ids": {
"description": "Only these customer ids.",
"minItems": 1,
"maxItems": 500,
"type": "array",
"items": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"purchase_statuses": {
"description": "Only orders in these statuses (enum values).",
"minItems": 1,
"maxItems": 30,
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 50
}
},
"billing_statuses": {
"description": "Only orders with these billing statuses (enum values).",
"minItems": 1,
"maxItems": 30,
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 50
}
},
"create_date_start": {
"description": "create date start (inclusive range bound). ISO date or date-time (e.g. 2026-01-31 or 2026-01-31T14:00:00Z; a date means 00:00 UTC).",
"type": "string",
"maxLength": 40
},
"create_date_end": {
"description": "create date end (inclusive range bound). ISO date or date-time (e.g. 2026-01-31 or 2026-01-31T14:00:00Z; a date means 00:00 UTC).",
"type": "string",
"maxLength": 40
},
"close_date_start": {
"description": "close date start (inclusive range bound). ISO date or date-time (e.g. 2026-01-31 or 2026-01-31T14:00:00Z; a date means 00:00 UTC).",
"type": "string",
"maxLength": 40
},
"close_date_end": {
"description": "close date end (inclusive range bound). ISO date or date-time (e.g. 2026-01-31 or 2026-01-31T14:00:00Z; a date means 00:00 UTC).",
"type": "string",
"maxLength": 40
},
"funds_captured_date_start": {
"description": "funds captured date start (inclusive range bound). ISO date or date-time (e.g. 2026-01-31 or 2026-01-31T14:00:00Z; a date means 00:00 UTC).",
"type": "string",
"maxLength": 40
},
"funds_captured_date_end": {
"description": "funds captured date end (inclusive range bound). ISO date or date-time (e.g. 2026-01-31 or 2026-01-31T14:00:00Z; a date means 00:00 UTC).",
"type": "string",
"maxLength": 40
},
"modified_date_start": {
"description": "modified date start (inclusive range bound). ISO date or date-time (e.g. 2026-01-31 or 2026-01-31T14:00:00Z; a date means 00:00 UTC).",
"type": "string",
"maxLength": 40
},
"modified_date_end": {
"description": "modified date end (inclusive range bound). ISO date or date-time (e.g. 2026-01-31 or 2026-01-31T14:00:00Z; a date means 00:00 UTC).",
"type": "string",
"maxLength": 40
},
"page": {
"description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100000
},
"page_size": {
"description": "Rows per page (default 25, max 200).",
"type": "integer",
"minimum": 1,
"maximum": 200
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢ecellar_search_order_lines(purchase_ids, create_date_start, create_date_end, modified_date_start, modified_date_end, ...)
Order lines (product, SKU, quantity, price, discount, tax) across orders. POST /orders/lines.
입력 스키마
{
"type": "object",
"properties": {
"purchase_ids": {
"description": "Only these order ids.",
"minItems": 1,
"maxItems": 500,
"type": "array",
"items": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"create_date_start": {
"description": "create date start (inclusive range bound). ISO date or date-time (e.g. 2026-01-31 or 2026-01-31T14:00:00Z; a date means 00:00 UTC).",
"type": "string",
"maxLength": 40
},
"create_date_end": {
"description": "create date end (inclusive range bound). ISO date or date-time (e.g. 2026-01-31 or 2026-01-31T14:00:00Z; a date means 00:00 UTC).",
"type": "string",
"maxLength": 40
},
"modified_date_start": {
"description": "modified date start (inclusive range bound). ISO date or date-time (e.g. 2026-01-31 or 2026-01-31T14:00:00Z; a date means 00:00 UTC).",
"type": "string",
"maxLength": 40
},
"modified_date_end": {
"description": "modified date end (inclusive range bound). ISO date or date-time (e.g. 2026-01-31 or 2026-01-31T14:00:00Z; a date means 00:00 UTC).",
"type": "string",
"maxLength": 40
},
"page": {
"description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100000
},
"page_size": {
"description": "Rows per page (default 25, max 200).",
"type": "integer",
"minimum": 1,
"maximum": 200
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢ecellar_search_order_payments(purchase_ids, billing_statuses, create_date_start, create_date_end, funds_captured_date_start, ...)
Order payments (amount, type, billing status, dates, card brand, last digits and expiry; no card numbers). POST /orders/payments.
입력 스키마
{
"type": "object",
"properties": {
"purchase_ids": {
"description": "Only these order ids.",
"minItems": 1,
"maxItems": 500,
"type": "array",
"items": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"billing_statuses": {
"description": "Only payments with these billing statuses (enum values).",
"minItems": 1,
"maxItems": 30,
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 50
}
},
"create_date_start": {
"description": "create date start (inclusive range bound). ISO date or date-time (e.g. 2026-01-31 or 2026-01-31T14:00:00Z; a date means 00:00 UTC).",
"type": "string",
"maxLength": 40
},
"create_date_end": {
"description": "create date end (inclusive range bound). ISO date or date-time (e.g. 2026-01-31 or 2026-01-31T14:00:00Z; a date means 00:00 UTC).",
"type": "string",
"maxLength": 40
},
"funds_captured_date_start": {
"description": "funds captured date start (inclusive range bound). ISO date or date-time (e.g. 2026-01-31 or 2026-01-31T14:00:00Z; a date means 00:00 UTC).",
"type": "string",
"maxLength": 40
},
"funds_captured_date_end": {
"description": "funds captured date end (inclusive range bound). ISO date or date-time (e.g. 2026-01-31 or 2026-01-31T14:00:00Z; a date means 00:00 UTC).",
"type": "string",
"maxLength": 40
},
"modified_date_start": {
"description": "modified date start (inclusive range bound). ISO date or date-time (e.g. 2026-01-31 or 2026-01-31T14:00:00Z; a date means 00:00 UTC).",
"type": "string",
"maxLength": 40
},
"modified_date_end": {
"description": "modified date end (inclusive range bound). ISO date or date-time (e.g. 2026-01-31 or 2026-01-31T14:00:00Z; a date means 00:00 UTC).",
"type": "string",
"maxLength": 40
},
"page": {
"description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100000
},
"page_size": {
"description": "Rows per page (default 25, max 200).",
"type": "integer",
"minimum": 1,
"maximum": 200
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢ecellar_search_order_trackings(purchase_ids, create_date_start, create_date_end, modified_date_start, modified_date_end, ...)
Carrier tracking records of orders (carrier, tracking number, shipped and delivered dates). POST /orders/trackings.
입력 스키마
{
"type": "object",
"properties": {
"purchase_ids": {
"description": "Only these order ids.",
"minItems": 1,
"maxItems": 500,
"type": "array",
"items": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"create_date_start": {
"description": "create date start (inclusive range bound). ISO date or date-time (e.g. 2026-01-31 or 2026-01-31T14:00:00Z; a date means 00:00 UTC).",
"type": "string",
"maxLength": 40
},
"create_date_end": {
"description": "create date end (inclusive range bound). ISO date or date-time (e.g. 2026-01-31 or 2026-01-31T14:00:00Z; a date means 00:00 UTC).",
"type": "string",
"maxLength": 40
},
"modified_date_start": {
"description": "modified date start (inclusive range bound). ISO date or date-time (e.g. 2026-01-31 or 2026-01-31T14:00:00Z; a date means 00:00 UTC).",
"type": "string",
"maxLength": 40
},
"modified_date_end": {
"description": "modified date end (inclusive range bound). ISO date or date-time (e.g. 2026-01-31 or 2026-01-31T14:00:00Z; a date means 00:00 UTC).",
"type": "string",
"maxLength": 40
},
"page": {
"description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100000
},
"page_size": {
"description": "Rows per page (default 25, max 200).",
"type": "integer",
"minimum": 1,
"maximum": 200
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢ecellar_search_products(create_date_start, create_date_end, modified_date_start, modified_date_end, page, ...)
Products (wines and merchandise): name, SKU, price, vintage-related fields, categories and inventory SKUs. POST /products.
입력 스키마
{
"type": "object",
"properties": {
"create_date_start": {
"description": "create date start (inclusive range bound). ISO date or date-time (e.g. 2026-01-31 or 2026-01-31T14:00:00Z; a date means 00:00 UTC).",
"type": "string",
"maxLength": 40
},
"create_date_end": {
"description": "create date end (inclusive range bound). ISO date or date-time (e.g. 2026-01-31 or 2026-01-31T14:00:00Z; a date means 00:00 UTC).",
"type": "string",
"maxLength": 40
},
"modified_date_start": {
"description": "modified date start (inclusive range bound). ISO date or date-time (e.g. 2026-01-31 or 2026-01-31T14:00:00Z; a date means 00:00 UTC).",
"type": "string",
"maxLength": 40
},
"modified_date_end": {
"description": "modified date end (inclusive range bound). ISO date or date-time (e.g. 2026-01-31 or 2026-01-31T14:00:00Z; a date means 00:00 UTC).",
"type": "string",
"maxLength": 40
},
"page": {
"description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100000
},
"page_size": {
"description": "Rows per page (default 25, max 200).",
"type": "integer",
"minimum": 1,
"maximum": 200
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢ecellar_search_product_categories(create_date_start, create_date_end, modified_date_start, modified_date_end, page, ...)
Product categories (tree: parent_category_id, category_id, name). POST /products/categories.
입력 스키마
{
"type": "object",
"properties": {
"create_date_start": {
"description": "create date start (inclusive range bound). ISO date or date-time (e.g. 2026-01-31 or 2026-01-31T14:00:00Z; a date means 00:00 UTC).",
"type": "string",
"maxLength": 40
},
"create_date_end": {
"description": "create date end (inclusive range bound). ISO date or date-time (e.g. 2026-01-31 or 2026-01-31T14:00:00Z; a date means 00:00 UTC).",
"type": "string",
"maxLength": 40
},
"modified_date_start": {
"description": "modified date start (inclusive range bound). ISO date or date-time (e.g. 2026-01-31 or 2026-01-31T14:00:00Z; a date means 00:00 UTC).",
"type": "string",
"maxLength": 40
},
"modified_date_end": {
"description": "modified date end (inclusive range bound). ISO date or date-time (e.g. 2026-01-31 or 2026-01-31T14:00:00Z; a date means 00:00 UTC).",
"type": "string",
"maxLength": 40
},
"page": {
"description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100000
},
"page_size": {
"description": "Rows per page (default 25, max 200).",
"type": "integer",
"minimum": 1,
"maximum": 200
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢ecellar_get_inventory_counts(skus, location_ids, location_names)
Current inventory per SKU and location: on_hand, on_hold, invoiced and available. Filter by SKUs and/or locations (ids or names from ecellar_get_reference_data locations); with no filter every SKU and location is returned. POST /inventory/counts.
입력 스키마
{
"type": "object",
"properties": {
"skus": {
"description": "Only these SKUs.",
"minItems": 1,
"maxItems": 200,
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 50
}
},
"location_ids": {
"description": "Only these locations (36-character location_id values).",
"minItems": 1,
"maxItems": 50,
"type": "array",
"items": {
"type": "string",
"minLength": 36,
"maxLength": 36
}
},
"location_names": {
"description": "Only these locations, by name.",
"minItems": 1,
"maxItems": 50,
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 100
}
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢ecellar_search_club_subscriptions(customer_ids, club_tier_ids, signup_date_start, signup_date_end, cancel_date_start, ...)
Wine club subscriptions of customers: tier, signup/cancel/hold dates, billing and shipping address, card brand, last digits and expiry (no card numbers). POST /subscriptions.
입력 스키마
{
"type": "object",
"properties": {
"customer_ids": {
"description": "Only these customer ids.",
"minItems": 1,
"maxItems": 500,
"type": "array",
"items": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"club_tier_ids": {
"description": "Only these club tier ids.",
"minItems": 1,
"maxItems": 500,
"type": "array",
"items": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"signup_date_start": {
"description": "signup date start (inclusive range bound). ISO date or date-time (e.g. 2026-01-31 or 2026-01-31T14:00:00Z; a date means 00:00 UTC).",
"type": "string",
"maxLength": 40
},
"signup_date_end": {
"description": "signup date end (inclusive range bound). ISO date or date-time (e.g. 2026-01-31 or 2026-01-31T14:00:00Z; a date means 00:00 UTC).",
"type": "string",
"maxLength": 40
},
"cancel_date_start": {
"description": "cancel date start (inclusive range bound). ISO date or date-time (e.g. 2026-01-31 or 2026-01-31T14:00:00Z; a date means 00:00 UTC).",
"type": "string",
"maxLength": 40
},
"cancel_date_end": {
"description": "cancel date end (inclusive range bound). ISO date or date-time (e.g. 2026-01-31 or 2026-01-31T14:00:00Z; a date means 00:00 UTC).",
"type": "string",
"maxLength": 40
},
"cc_expiration_date_start": {
"description": "cc expiration date start (inclusive range bound). ISO date or date-time (e.g. 2026-01-31 or 2026-01-31T14:00:00Z; a date means 00:00 UTC).",
"type": "string",
"maxLength": 40
},
"cc_expiration_date_end": {
"description": "cc expiration date end (inclusive range bound). ISO date or date-time (e.g. 2026-01-31 or 2026-01-31T14:00:00Z; a date means 00:00 UTC).",
"type": "string",
"maxLength": 40
},
"modified_date_start": {
"description": "modified date start (inclusive range bound). ISO date or date-time (e.g. 2026-01-31 or 2026-01-31T14:00:00Z; a date means 00:00 UTC).",
"type": "string",
"maxLength": 40
},
"modified_date_end": {
"description": "modified date end (inclusive range bound). ISO date or date-time (e.g. 2026-01-31 or 2026-01-31T14:00:00Z; a date means 00:00 UTC).",
"type": "string",
"maxLength": 40
},
"page": {
"description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100000
},
"page_size": {
"description": "Rows per page (default 25, max 200).",
"type": "integer",
"minimum": 1,
"maximum": 200
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢ecellar_search_club_tiers(brand_keys, create_date_start, create_date_end, modified_date_start, modified_date_end, ...)
Wine club tiers (id, name, description, brand). POST /club/tiers.
입력 스키마
{
"type": "object",
"properties": {
"brand_keys": {
"description": "Only these brands (brand_key values from ecellar_list_brands).",
"minItems": 1,
"maxItems": 50,
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 50
}
},
"create_date_start": {
"description": "create date start (inclusive range bound). ISO date or date-time (e.g. 2026-01-31 or 2026-01-31T14:00:00Z; a date means 00:00 UTC).",
"type": "string",
"maxLength": 40
},
"create_date_end": {
"description": "create date end (inclusive range bound). ISO date or date-time (e.g. 2026-01-31 or 2026-01-31T14:00:00Z; a date means 00:00 UTC).",
"type": "string",
"maxLength": 40
},
"modified_date_start": {
"description": "modified date start (inclusive range bound). ISO date or date-time (e.g. 2026-01-31 or 2026-01-31T14:00:00Z; a date means 00:00 UTC).",
"type": "string",
"maxLength": 40
},
"modified_date_end": {
"description": "modified date end (inclusive range bound). ISO date or date-time (e.g. 2026-01-31 or 2026-01-31T14:00:00Z; a date means 00:00 UTC).",
"type": "string",
"maxLength": 40
},
"page": {
"description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100000
},
"page_size": {
"description": "Rows per page (default 25, max 200).",
"type": "integer",
"minimum": 1,
"maximum": 200
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢ecellar_search_club_events(brand_keys, club_event_date_start, club_event_date_end, create_date_start, create_date_end, ...)
Club events / shipments (name, date, ship group, tier, pickup location, product totals, remix window). POST /club/events.
입력 스키마
{
"type": "object",
"properties": {
"brand_keys": {
"description": "Only these brands (brand_key values from ecellar_list_brands).",
"minItems": 1,
"maxItems": 50,
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 50
}
},
"club_event_date_start": {
"description": "club event date start (inclusive range bound). ISO date or date-time (e.g. 2026-01-31 or 2026-01-31T14:00:00Z; a date means 00:00 UTC).",
"type": "string",
"maxLength": 40
},
"club_event_date_end": {
"description": "club event date end (inclusive range bound). ISO date or date-time (e.g. 2026-01-31 or 2026-01-31T14:00:00Z; a date means 00:00 UTC).",
"type": "string",
"maxLength": 40
},
"create_date_start": {
"description": "create date start (inclusive range bound). ISO date or date-time (e.g. 2026-01-31 or 2026-01-31T14:00:00Z; a date means 00:00 UTC).",
"type": "string",
"maxLength": 40
},
"create_date_end": {
"description": "create date end (inclusive range bound). ISO date or date-time (e.g. 2026-01-31 or 2026-01-31T14:00:00Z; a date means 00:00 UTC).",
"type": "string",
"maxLength": 40
},
"modified_date_start": {
"description": "modified date start (inclusive range bound). ISO date or date-time (e.g. 2026-01-31 or 2026-01-31T14:00:00Z; a date means 00:00 UTC).",
"type": "string",
"maxLength": 40
},
"modified_date_end": {
"description": "modified date end (inclusive range bound). ISO date or date-time (e.g. 2026-01-31 or 2026-01-31T14:00:00Z; a date means 00:00 UTC).",
"type": "string",
"maxLength": 40
},
"page": {
"description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100000
},
"page_size": {
"description": "Rows per page (default 25, max 200).",
"type": "integer",
"minimum": 1,
"maximum": 200
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢ecellar_search_reservations(reservation_ids, create_date_start, create_date_end, modified_date_start, modified_date_end, ...)
Tasting-room and experience reservations (party, times, status, host, notes, contact phone and email). POST /reservations.
입력 스키마
{
"type": "object",
"properties": {
"reservation_ids": {
"description": "Only these reservation ids.",
"minItems": 1,
"maxItems": 500,
"type": "array",
"items": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"create_date_start": {
"description": "create date start (inclusive range bound). ISO date or date-time (e.g. 2026-01-31 or 2026-01-31T14:00:00Z; a date means 00:00 UTC).",
"type": "string",
"maxLength": 40
},
"create_date_end": {
"description": "create date end (inclusive range bound). ISO date or date-time (e.g. 2026-01-31 or 2026-01-31T14:00:00Z; a date means 00:00 UTC).",
"type": "string",
"maxLength": 40
},
"modified_date_start": {
"description": "modified date start (inclusive range bound). ISO date or date-time (e.g. 2026-01-31 or 2026-01-31T14:00:00Z; a date means 00:00 UTC).",
"type": "string",
"maxLength": 40
},
"modified_date_end": {
"description": "modified date end (inclusive range bound). ISO date or date-time (e.g. 2026-01-31 or 2026-01-31T14:00:00Z; a date means 00:00 UTC).",
"type": "string",
"maxLength": 40
},
"page": {
"description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100000
},
"page_size": {
"description": "Rows per page (default 25, max 200).",
"type": "integer",
"minimum": 1,
"maximum": 200
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴ecellar_mark_order_shipped(order_id, date_shipped)
WRITE: set the shipped date and status of ONE order, to be used when ALL its packages have shipped. eCellar refuses it unless the order status is EXPORTED, HOLD_SHIP, SHIPPED, TO_PICKUP or UNSHIPPED, the date is not before the order date, and the date matches the latest tracking ship date. Check the order and its tracking records first. PATCH /order/{order_id}/shipped.
입력 스키마
{
"type": "object",
"properties": {
"order_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "eCellar order id (order_id from ecellar_search_orders)."
},
"date_shipped": {
"type": "string",
"description": "Date the order fully shipped (YYYY-MM-DD)."
}
},
"required": [
"order_id",
"date_shipped"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴ecellar_mark_order_delivered(order_id, date_delivered)
WRITE: set the delivered date and status of ONE order, to be used when ALL its packages were delivered. eCellar refuses it unless the order status is DELIVERED or SHIPPED and the date matches the latest tracking delivered date. PATCH /order/{order_id}/delivered.
입력 스키마
{
"type": "object",
"properties": {
"order_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "eCellar order id."
},
"date_delivered": {
"type": "string",
"description": "Date the order was fully delivered (YYYY-MM-DD)."
}
},
"required": [
"order_id",
"date_delivered"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟡ecellar_add_order_tracking(order_id, carrier_enum, carrier_tracking_number, date_shipped, date_delivered)
WRITE: add a carrier tracking record (carrier + tracking number, optional shipped/delivered dates) to ONE order. Adds a record each call; a duplicate tracking number on the same order is refused by eCellar. Get carrier_enum from ecellar_get_reference_data carriers. POST /order/{order_id}/tracking.
입력 스키마
{
"type": "object",
"properties": {
"order_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "eCellar order id."
},
"carrier_enum": {
"type": "string",
"minLength": 1,
"maxLength": 50,
"description": "Carrier enum value (from the carriers reference list)."
},
"carrier_tracking_number": {
"type": "string",
"minLength": 1,
"maxLength": 255,
"description": "Carrier tracking number."
},
"date_shipped": {
"type": "string",
"description": "Date shipped via the carrier (YYYY-MM-DD)."
},
"date_delivered": {
"type": "string",
"description": "Date delivered by the carrier (YYYY-MM-DD)."
}
},
"required": [
"order_id",
"carrier_enum",
"carrier_tracking_number"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴ecellar_adjust_inventory_count(sku, on_hand_adjustment, location_id, location_name)
WRITE: change the on-hand count of ONE SKU at ONE location by a signed amount (+12 adds, -3 removes; it is a delta, not a new total, so repeating it repeats the change). Pass location_id or location_name; eCellar refuses an unknown or ambiguous location, a SKU that is not at that location, or a result below zero. Check ecellar_get_inventory_counts first. PATCH /inventory/counts/{SKU}.
입력 스키마
{
"type": "object",
"properties": {
"sku": {
"type": "string",
"minLength": 1,
"maxLength": 50,
"description": "The SKU (SKU from ecellar_search_products inventory_skus or ecellar_get_inventory_counts)."
},
"on_hand_adjustment": {
"type": "integer",
"minimum": -1000000,
"maximum": 1000000,
"description": "Signed change of the on-hand count."
},
"location_id": {
"description": "Inventory location id (36 characters).",
"type": "string",
"minLength": 36,
"maxLength": 36
},
"location_name": {
"description": "Inventory location name (use instead of location_id).",
"type": "string",
"minLength": 1,
"maxLength": 100
}
},
"required": [
"sku",
"on_hand_adjustment"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}커뮤니티
증거