EasyStore MCP by usefulapi

Read EasyStore orders, products and customers; manage stock, fulfillments and customer records.

¿Debería usar esto?

Calidad y seguridad

A
Calidad de la descripción
100%
Integridad del esquema
91%
Calidad de los nombres
76%
Riesgo de envenenamiento
100%
Coincidencia de permisos
100%
Cumplimiento del protocolo
100%

Hallazgos (6)

  • LOWTool 'easystore_list_product_variants' name length outside 3-30 rangeen easystore_list_product_variants
  • LOWTool 'easystore_list_inventory_levels' name length outside 3-30 rangeen easystore_list_inventory_levels
  • LOWTool 'easystore_list_order_fulfillments' name length outside 3-30 rangeen easystore_list_order_fulfillments
  • LOWTool 'easystore_list_order_transactions' name length outside 3-30 rangeen easystore_list_order_transactions
  • LOWTool 'easystore_list_customer_addresses' name length outside 3-30 rangeen easystore_list_customer_addresses
  • LOWTool 'easystore_adjust_inventory_level' name length outside 3-30 rangeen easystore_adjust_inventory_level

Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.

Costo de contexto

~7,855Tokens (definiciones de herramientas)
~2.0 KBTamaño de respuesta típico
Impacto significativo en la atención (6.14% del contexto de 128k)

Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.

Instalar

Instalación con un clic

Agrega esto a tu archivo `claude_desktop_config.json`:

{
  "mcpServers": {
    "easystore": {
      "url": "https://easystore.usefulapi.io/mcp"
    }
  }
}

Puntos de conexión remotos

https://easystore.usefulapi.io/mcpstreamable-http

Qué puede hacer

Inventario de herramientas

Herramientas (29)

🟢 Solo lectura🟡 Escritura🔴 Eliminación⚪ Desconocido
🟢easystore_get_store

The store behind this access token: name, contact emails, easystore domain, plan, locale, country, time zone, currencies and locations. Needs no API access scope. GET /api/3.0/store.json.

Esquema de entrada

{
  "type": "object",
  "properties": {},
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢easystore_list_locations(page, limit)

The store's stock and pickup locations (warehouses, outlets) with address, phone, is_primary and pickup settings. Use the ids for inventory levels. Needs read_locations. GET /api/3.0/locations.json.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "page": {
      "description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100000
    },
    "limit": {
      "description": "Results per page, 1-100 (default 25).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢easystore_list_products(collection_ids, skus, visibility, is_bundle, created_at_min, ...)

List products with variants, prices, SKUs, stock, images and collections. Filter by collection, SKU, published status or dates. Needs read_products. GET /api/3.0/products.json.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "collection_ids": {
      "description": "Only products in these collection ids, comma-separated, e.g. 2311217,2311218.",
      "type": "string",
      "pattern": "^\\d+(\\s*,\\s*\\d+)*$"
    },
    "skus": {
      "description": "Only products with these SKUs, comma-separated.",
      "type": "string",
      "minLength": 1,
      "maxLength": 500
    },
    "visibility": {
      "description": "Only published or only unpublished products.",
      "type": "string",
      "enum": [
        "published",
        "unpublished"
      ]
    },
    "is_bundle": {
      "description": "true = only bundle products, false = no bundle products.",
      "type": "boolean"
    },
    "created_at_min": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}([ T]\\d{2}:\\d{2}(:\\d{2})?)?$",
      "description": "yyyy-mm-dd or yyyy-mm-dd hh:mm:ss, read in the store's own time zone."
    },
    "created_at_max": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}([ T]\\d{2}:\\d{2}(:\\d{2})?)?$",
      "description": "yyyy-mm-dd or yyyy-mm-dd hh:mm:ss, read in the store's own time zone."
    },
    "updated_at_min": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}([ T]\\d{2}:\\d{2}(:\\d{2})?)?$",
      "description": "yyyy-mm-dd or yyyy-mm-dd hh:mm:ss, read in the store's own time zone."
    },
    "updated_at_max": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}([ T]\\d{2}:\\d{2}(:\\d{2})?)?$",
      "description": "yyyy-mm-dd or yyyy-mm-dd hh:mm:ss, read in the store's own time zone."
    },
    "since_id": {
      "description": "Start at this product id (inclusive: id >= since_id).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "sort": {
      "description": "Sort as field.asc or field.desc, e.g. id.asc (a stable order for paging through everything).",
      "type": "string",
      "pattern": "^[a-z_]{1,40}\\.(asc|desc)$"
    },
    "page": {
      "description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100000
    },
    "limit": {
      "description": "Results per page, 1-100 (default 25).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢easystore_get_product(product_id)

One product by id with its variants, options, images and collections. Needs read_products. GET /api/3.0/products/{id}.json.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "product_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "EasyStore product id."
    }
  },
  "required": [
    "product_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢easystore_list_product_variants(product_id)

The variants of one product (price, SKU, barcode, stock, weight, enabled flag). Needs read_products. GET /api/3.0/products/{id}/variants.json.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "product_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "EasyStore product id."
    }
  },
  "required": [
    "product_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢easystore_list_collections(ids, visibility, since_id, sort, page, ...)

List product collections. Needs read_products. GET /api/3.0/collections.json.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "ids": {
      "description": "Only these collection ids, comma-separated.",
      "type": "string",
      "pattern": "^\\d+(\\s*,\\s*\\d+)*$"
    },
    "visibility": {
      "description": "true = only published collections.",
      "type": "boolean"
    },
    "since_id": {
      "description": "Start at this collection id (inclusive).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "sort": {
      "description": "Sort as field.asc or field.desc, e.g. id.asc (a stable order for paging through everything).",
      "type": "string",
      "pattern": "^[a-z_]{1,40}\\.(asc|desc)$"
    },
    "page": {
      "description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100000
    },
    "limit": {
      "description": "Results per page, 1-100 (default 25).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢easystore_get_collection(collection_id)

One collection by id. Needs read_products. GET /api/3.0/collections/{id}.json.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "collection_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "EasyStore collection id."
    }
  },
  "required": [
    "collection_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢easystore_list_inventory_levels(variant_ids, location_ids, page, limit)

Stock per variant per location: available (inventory_quantity), committed, incoming and reserved. Pass variant_ids or location_ids (at least one is required). Needs read_products. GET /api/4.0/inventory_levels.json.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "variant_ids": {
      "description": "Variant ids, comma-separated (see easystore_list_product_variants).",
      "type": "string",
      "pattern": "^\\d+(\\s*,\\s*\\d+)*$"
    },
    "location_ids": {
      "description": "Location ids, comma-separated (see easystore_list_locations).",
      "type": "string",
      "pattern": "^\\d+(\\s*,\\s*\\d+)*$"
    },
    "page": {
      "description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100000
    },
    "limit": {
      "description": "Results per page, 1-100 (default 25).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢easystore_list_orders(financial_status, fulfillment_status, customer_id, ids, processed_at_min, ...)

List orders from every sales channel with customer, items, totals, payment and fulfillment status. Filter by payment or fulfillment status, customer, or dates (store time zone). Needs read_orders. GET /api/3.0/orders.json.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "financial_status": {
      "description": "Payment status.",
      "type": "string",
      "enum": [
        "paid",
        "partially_paid",
        "unpaid",
        "cod"
      ]
    },
    "fulfillment_status": {
      "description": "Shipping status.",
      "type": "string",
      "enum": [
        "fulfilled",
        "partially_fulfilled",
        "unfulfilled"
      ]
    },
    "customer_id": {
      "description": "Only this customer's orders.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "ids": {
      "description": "Only these order ids, comma-separated.",
      "type": "string",
      "pattern": "^\\d+(\\s*,\\s*\\d+)*$"
    },
    "processed_at_min": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}([ T]\\d{2}:\\d{2}(:\\d{2})?)?$",
      "description": "yyyy-mm-dd or yyyy-mm-dd hh:mm:ss, read in the store's own time zone."
    },
    "processed_at_max": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}([ T]\\d{2}:\\d{2}(:\\d{2})?)?$",
      "description": "yyyy-mm-dd or yyyy-mm-dd hh:mm:ss, read in the store's own time zone."
    },
    "created_at_min": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}([ T]\\d{2}:\\d{2}(:\\d{2})?)?$",
      "description": "yyyy-mm-dd or yyyy-mm-dd hh:mm:ss, read in the store's own time zone."
    },
    "created_at_max": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}([ T]\\d{2}:\\d{2}(:\\d{2})?)?$",
      "description": "yyyy-mm-dd or yyyy-mm-dd hh:mm:ss, read in the store's own time zone."
    },
    "updated_at_min": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}([ T]\\d{2}:\\d{2}(:\\d{2})?)?$",
      "description": "yyyy-mm-dd or yyyy-mm-dd hh:mm:ss, read in the store's own time zone."
    },
    "updated_at_max": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}([ T]\\d{2}:\\d{2}(:\\d{2})?)?$",
      "description": "yyyy-mm-dd or yyyy-mm-dd hh:mm:ss, read in the store's own time zone."
    },
    "since_id": {
      "description": "Start at this order id (inclusive: id >= since_id). Use with sort=id.asc.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "sort": {
      "description": "Sort as field.asc or field.desc, e.g. id.asc (a stable order for paging through everything).",
      "type": "string",
      "pattern": "^[a-z_]{1,40}\\.(asc|desc)$"
    },
    "page": {
      "description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100000
    },
    "limit": {
      "description": "Results per page, 1-100 (default 25).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢easystore_get_order(order_id, fields)

One order by id. Ask for extra sections with fields: items, addresses, transactions, fulfillments, refunds, taxes, customer, shipping_fees, discounts, points, cancellation, note_attributes. Needs read_orders. GET /api/3.0/orders/{id}.json.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "order_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "EasyStore order id (not the order number)."
    },
    "fields": {
      "description": "Comma-separated extra sections, e.g. items,addresses,fulfillments.",
      "type": "string",
      "pattern": "^[a-z_]+(\\s*,\\s*[a-z_]+)*$"
    }
  },
  "required": [
    "order_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢easystore_list_order_fulfillments(order_id)

The fulfillments (shipments with tracking details and status) of one order. Needs read_fulfillments. GET /api/3.0/orders/{id}/fulfillments.json.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "order_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "EasyStore order id."
    }
  },
  "required": [
    "order_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢easystore_list_order_transactions(order_id)

The payment transactions of one order (gateway, amount, status). Needs read_orders. GET /api/3.0/orders/{id}/transactions.json.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "order_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "EasyStore order id."
    }
  },
  "required": [
    "order_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢easystore_list_checkouts(since_id, page, limit)

List checkouts (carts in progress or abandoned). Cart tokens are not returned. Needs read_orders. GET /api/3.0/checkouts.json.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "since_id": {
      "description": "Start at this checkout id (inclusive).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "page": {
      "description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100000
    },
    "limit": {
      "description": "Results per page, 1-50 (default 25).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 50
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢easystore_list_customers(query, ids, created_at_min, created_at_max, updated_at_min, ...)

List customers with contact details, order count, total spent, groups and store credit. Search by name or email with query. Needs read_customers. GET /api/3.0/customers.json.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "query": {
      "description": "Match on first name, last name or email.",
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "ids": {
      "description": "Only these customer ids, comma-separated.",
      "type": "string",
      "pattern": "^\\d+(\\s*,\\s*\\d+)*$"
    },
    "created_at_min": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}([T ]\\d{2}:\\d{2}(:\\d{2}(\\.\\d{1,9})?)?(Z|[+-]\\d{2}:\\d{2})?)?$",
      "description": "ISO 8601 date or date-time, e.g. 2026-10-01 or 2026-10-01T00:00:00+08:00."
    },
    "created_at_max": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}([T ]\\d{2}:\\d{2}(:\\d{2}(\\.\\d{1,9})?)?(Z|[+-]\\d{2}:\\d{2})?)?$",
      "description": "ISO 8601 date or date-time, e.g. 2026-10-01 or 2026-10-01T00:00:00+08:00."
    },
    "updated_at_min": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}([T ]\\d{2}:\\d{2}(:\\d{2}(\\.\\d{1,9})?)?(Z|[+-]\\d{2}:\\d{2})?)?$",
      "description": "ISO 8601 date or date-time, e.g. 2026-10-01 or 2026-10-01T00:00:00+08:00."
    },
    "updated_at_max": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}([T ]\\d{2}:\\d{2}(:\\d{2}(\\.\\d{1,9})?)?(Z|[+-]\\d{2}:\\d{2})?)?$",
      "description": "ISO 8601 date or date-time, e.g. 2026-10-01 or 2026-10-01T00:00:00+08:00."
    },
    "since_id": {
      "description": "Start at this customer id (inclusive).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "sort": {
      "description": "Sort as field.asc or field.desc, e.g. id.asc (a stable order for paging through everything).",
      "type": "string",
      "pattern": "^[a-z_]{1,40}\\.(asc|desc)$"
    },
    "page": {
      "description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100000
    },
    "limit": {
      "description": "Results per page, 1-100 (default 25).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢easystore_search_customers(email, phone, code, page, limit)

Find customers by exact email, phone number or customer code. Pass at least one. Needs read_customers. GET /api/3.0/customers/search.json.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "email": {
      "description": "Exact email address.",
      "type": "string",
      "minLength": 3,
      "maxLength": 254
    },
    "phone": {
      "description": "Phone number as stored, e.g. 601110768827.",
      "type": "string",
      "minLength": 3,
      "maxLength": 40
    },
    "code": {
      "description": "Customer code.",
      "type": "string",
      "minLength": 1,
      "maxLength": 100
    },
    "page": {
      "description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100000
    },
    "limit": {
      "description": "Results per page, 1-100 (default 25).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢easystore_get_customer(customer_id, fields)

One customer by id. Add fields=points,membership for loyalty data. Needs read_customers. GET /api/3.0/customers/{id}.json.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "customer_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "EasyStore customer id."
    },
    "fields": {
      "description": "Extra sections, e.g. points,membership.",
      "type": "string",
      "pattern": "^[a-z_]+(\\s*,\\s*[a-z_]+)*$"
    }
  },
  "required": [
    "customer_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢easystore_list_customer_addresses(customer_id, page, limit)

The saved addresses of one customer. Needs read_customers. GET /api/3.0/customers/{id}/addresses.json.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "customer_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "EasyStore customer id."
    },
    "page": {
      "description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100000
    },
    "limit": {
      "description": "Results per page, 1-100 (default 25).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    }
  },
  "required": [
    "customer_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢easystore_get_customer_points(customer_id)

The loyalty points balance of one customer. Needs read_customers. GET /api/3.0/customers/{id}/points.json.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "customer_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "EasyStore customer id."
    }
  },
  "required": [
    "customer_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢easystore_list_customer_groups

List customer groups (for example VIP). Needs read_customers. GET /api/3.0/groups.json.

Esquema de entrada

{
  "type": "object",
  "properties": {},
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢easystore_list_pages(page, limit)

List the store's content pages. Needs read_content. GET /api/3.0/pages.json.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "page": {
      "description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100000
    },
    "limit": {
      "description": "Results per page, 1-100 (default 25).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢easystore_list_blogs(visibility, page, limit)

List the store's blogs. Needs read_content. GET /api/3.0/blogs.json.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "visibility": {
      "description": "Only published or unpublished blogs.",
      "type": "string",
      "enum": [
        "published",
        "unpublished"
      ]
    },
    "page": {
      "description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100000
    },
    "limit": {
      "description": "Results per page, 1-100 (default 25).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢easystore_list_articles(visibility, page, limit)

List blog articles. Needs read_content. GET /api/3.0/articles.json.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "visibility": {
      "description": "Only published or unpublished articles.",
      "type": "string",
      "enum": [
        "published",
        "unpublished"
      ]
    },
    "page": {
      "description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100000
    },
    "limit": {
      "description": "Results per page, 1-100 (default 25).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴easystore_set_inventory_level(variant_id, location_id, quantity)

WRITE. Set the stock of one variant at one location to an exact number (quantity 0 or more). Omit location_id for the primary location. Overwrites the current quantity; use easystore_adjust_inventory_level for a relative change. Needs write_products. PUT /api/4.0/inventory_levels/set.json.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "variant_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "Variant id (see easystore_list_product_variants)."
    },
    "location_id": {
      "description": "Location id (see easystore_list_locations). Default: the primary location.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "quantity": {
      "type": "integer",
      "minimum": 0,
      "maximum": 1000000000,
      "description": "The exact available quantity to set."
    }
  },
  "required": [
    "variant_id",
    "quantity"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴easystore_adjust_inventory_level(variant_id, location_id, adjustment_quantity)

WRITE. Add to or remove from the stock of one variant at one location by a relative amount (positive adds, negative removes; 0 is rejected). Not idempotent: repeating it changes the stock again. Omit location_id for the primary location. Needs write_products. PUT /api/4.0/inventory_levels/adjust.json.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "variant_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "Variant id (see easystore_list_product_variants)."
    },
    "location_id": {
      "description": "Location id (see easystore_list_locations). Default: the primary location.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "adjustment_quantity": {
      "type": "integer",
      "minimum": -1000000000,
      "maximum": 1000000000,
      "description": "Relative change: 5 adds 5, -5 removes 5."
    }
  },
  "required": [
    "variant_id",
    "adjustment_quantity"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴easystore_update_variant(product_id, variant_id, price, compare_at_price, cost_price, ...)

WRITE. Change one variant's price, compare-at price, cost price, SKU, barcode or enabled flag. Only the fields you pass change. To change stock use the inventory tools. Needs write_products. PUT /api/3.0/products/{product_id}/variants.json.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "product_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "The product the variant belongs to."
    },
    "variant_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "Variant id."
    },
    "price": {
      "description": "Selling price in the store's primary currency.",
      "type": "number",
      "minimum": 0,
      "maximum": 1000000000
    },
    "compare_at_price": {
      "description": "Original price shown struck through.",
      "type": "number",
      "minimum": 0,
      "maximum": 1000000000
    },
    "cost_price": {
      "description": "Cost price.",
      "type": "number",
      "minimum": 0,
      "maximum": 1000000000
    },
    "sku": {
      "description": "SKU.",
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "barcode": {
      "description": "Barcode.",
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "is_enabled": {
      "description": "Whether the variant can be sold.",
      "type": "boolean"
    }
  },
  "required": [
    "product_id",
    "variant_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴easystore_cancel_order(order_id, reason)

WRITE, hard to undo. Cancel an order, with an optional reason. Confirm the order id and number with the user first. Needs write_orders. POST /api/3.0/orders/{id}/cancel.json.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "order_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "EasyStore order id (not the order number)."
    },
    "reason": {
      "description": "Why the order is cancelled, e.g. Damaged item.",
      "type": "string",
      "minLength": 1,
      "maxLength": 500
    }
  },
  "required": [
    "order_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴easystore_create_fulfillment(order_id, tracking_company, tracking_number, tracking_url, status, ...)

WRITE. Mark an order (or some of its line items) as shipped, with tracking details. Not idempotent: calling it twice creates two fulfillments. With notify_customer true the customer is emailed. Needs write_fulfillments. POST /api/3.0/orders/{id}/fulfillments.json.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "order_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "EasyStore order id."
    },
    "tracking_company": {
      "description": "Courier name, e.g. DHL.",
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "tracking_number": {
      "description": "Tracking number.",
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "tracking_url": {
      "description": "Tracking page URL.",
      "type": "string",
      "maxLength": 2000,
      "format": "uri"
    },
    "status": {
      "description": "Shipment status.",
      "type": "string",
      "enum": [
        "label_printed",
        "label_purchased",
        "attempted_delivery",
        "available_for_pickup",
        "successful_pickup",
        "pending_pickup",
        "arrived_sorting_hub",
        "pending",
        "open",
        "in_transit",
        "out_for_delivery",
        "delivered",
        "failure",
        "cancelled",
        "fulfilled"
      ]
    },
    "message": {
      "description": "Note about this fulfillment.",
      "type": "string",
      "minLength": 1,
      "maxLength": 1000
    },
    "notify_customer": {
      "description": "Email the customer (default false).",
      "type": "boolean"
    },
    "line_items": {
      "description": "Only these line items and quantities; omit to fulfill the whole order.",
      "minItems": 1,
      "maxItems": 200,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "exclusiveMinimum": 0,
            "maximum": 9007199254740991,
            "description": "Order line item id."
          },
          "quantity": {
            "type": "integer",
            "exclusiveMinimum": 0,
            "maximum": 1000000
          }
        },
        "required": [
          "id",
          "quantity"
        ]
      }
    }
  },
  "required": [
    "order_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟡easystore_create_customer(first_name, last_name, email, phone, birthdate, ...)

WRITE. Create a customer. Pass at least one of first_name, last_name, email or phone. Not idempotent. Needs write_customers. POST /api/3.0/customers.json.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "first_name": {
      "description": "First name.",
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "last_name": {
      "description": "Last name.",
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "email": {
      "description": "Email (unique per store).",
      "type": "string",
      "maxLength": 254,
      "format": "email",
      "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
    },
    "phone": {
      "description": "Phone number, e.g. +60192233445.",
      "type": "string",
      "minLength": 3,
      "maxLength": 40
    },
    "birthdate": {
      "description": "yyyy-mm-dd.",
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
    },
    "gender": {
      "description": "Gender.",
      "type": "string",
      "enum": [
        "male",
        "female"
      ]
    },
    "country_code": {
      "description": "Two-letter country code, e.g. MY.",
      "type": "string",
      "pattern": "^[A-Za-z]{2}$"
    },
    "code": {
      "description": "Your own customer code.",
      "type": "string",
      "minLength": 1,
      "maxLength": 100
    },
    "groups": {
      "description": "Group names to assign, e.g. [\"VIP\"].",
      "maxItems": 50,
      "type": "array",
      "items": {
        "type": "string",
        "minLength": 1,
        "maxLength": 200
      }
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴easystore_update_customer(customer_id, first_name, last_name, email, phone, ...)

WRITE. Change fields of an existing customer; only the fields you pass change. Needs write_customers. PUT /api/3.0/customers/{id}.json.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "customer_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "EasyStore customer id."
    },
    "first_name": {
      "description": "First name.",
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "last_name": {
      "description": "Last name.",
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "email": {
      "description": "Email (unique per store).",
      "type": "string",
      "maxLength": 254,
      "format": "email",
      "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
    },
    "phone": {
      "description": "Phone number, e.g. +60192233445.",
      "type": "string",
      "minLength": 3,
      "maxLength": 40
    },
    "birthdate": {
      "description": "yyyy-mm-dd.",
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
    },
    "gender": {
      "description": "Gender.",
      "type": "string",
      "enum": [
        "male",
        "female"
      ]
    },
    "country_code": {
      "description": "Two-letter country code, e.g. MY.",
      "type": "string",
      "pattern": "^[A-Za-z]{2}$"
    },
    "code": {
      "description": "Your own customer code.",
      "type": "string",
      "minLength": 1,
      "maxLength": 100
    },
    "groups": {
      "description": "Group names to assign, e.g. [\"VIP\"].",
      "maxItems": 50,
      "type": "array",
      "items": {
        "type": "string",
        "minLength": 1,
        "maxLength": 200
      }
    }
  },
  "required": [
    "customer_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Comunidad

Califica este servidor

Evidencia

Observaciones recientes

verificadoversión no registrada29 herramientas