@robinpath/woocommerce
Advanced tools
| import type { ModuleAdapter } from "@robinpath/core"; | ||
| declare const WoocommerceModule: ModuleAdapter; | ||
| export default WoocommerceModule; | ||
| export { WoocommerceModule }; | ||
| export { WoocommerceFunctions, WoocommerceFunctionMetadata, WoocommerceModuleMetadata, WoocommerceCredentialTypes, } from "./woocommerce.js"; | ||
| //# sourceMappingURL=index.d.ts.map |
| {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AASrD,QAAA,MAAM,iBAAiB,EAAE,aAQxB,CAAC;AAEF,eAAe,iBAAiB,CAAC;AACjC,OAAO,EAAE,iBAAiB,EAAE,CAAC;AAC7B,OAAO,EACL,oBAAoB,EACpB,2BAA2B,EAC3B,yBAAyB,EACzB,0BAA0B,GAC3B,MAAM,kBAAkB,CAAC"} |
| import { WoocommerceFunctions, WoocommerceFunctionMetadata, WoocommerceModuleMetadata, WoocommerceCredentialTypes, configureWoocommerce, } from "./woocommerce.js"; | ||
| const WoocommerceModule = { | ||
| name: "woocommerce", | ||
| functions: WoocommerceFunctions, | ||
| functionMetadata: WoocommerceFunctionMetadata, | ||
| moduleMetadata: WoocommerceModuleMetadata, | ||
| credentialTypes: WoocommerceCredentialTypes, | ||
| configure: configureWoocommerce, | ||
| global: false, | ||
| }; | ||
| export default WoocommerceModule; | ||
| export { WoocommerceModule }; | ||
| export { WoocommerceFunctions, WoocommerceFunctionMetadata, WoocommerceModuleMetadata, WoocommerceCredentialTypes, } from "./woocommerce.js"; | ||
| //# sourceMappingURL=index.js.map |
| {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,oBAAoB,EACpB,2BAA2B,EAC3B,yBAAyB,EACzB,0BAA0B,EAC1B,oBAAoB,GACrB,MAAM,kBAAkB,CAAC;AAE1B,MAAM,iBAAiB,GAAkB;IACvC,IAAI,EAAE,aAAa;IACnB,SAAS,EAAE,oBAAoB;IAC/B,gBAAgB,EAAE,2BAA2B;IAC7C,cAAc,EAAE,yBAAyB;IACzC,eAAe,EAAE,0BAA0B;IAC3C,SAAS,EAAE,oBAAoB;IAC/B,MAAM,EAAE,KAAK;CACd,CAAC;AAEF,eAAe,iBAAiB,CAAC;AACjC,OAAO,EAAE,iBAAiB,EAAE,CAAC;AAC7B,OAAO,EACL,oBAAoB,EACpB,2BAA2B,EAC3B,yBAAyB,EACzB,0BAA0B,GAC3B,MAAM,kBAAkB,CAAC"} |
| /** | ||
| * RobinPath WooCommerce Module (Node port) | ||
| * | ||
| * WooCommerce REST API v3 integration — products, orders and customers | ||
| * against any self-hosted WordPress store that has the WooCommerce plugin | ||
| * active and REST keys issued. | ||
| * | ||
| * Authentication is HTTP Basic with `consumer_key` as the username and | ||
| * `consumer_secret` as the password. The base URL is per-store — each | ||
| * credential carries its own `site_url` and key pair so one automation | ||
| * can juggle many stores. | ||
| * | ||
| * Credential type declared by this module: | ||
| * - woocommerce : { site_url, consumer_key, consumer_secret } | ||
| */ | ||
| import type { BuiltinHandler, CredentialTypeSchema, FunctionMetadata, ModuleHost, ModuleMetadata } from "@robinpath/core"; | ||
| export declare function configureWoocommerce(h: ModuleHost): void; | ||
| export declare const WoocommerceFunctions: Record<string, BuiltinHandler>; | ||
| export declare const WoocommerceCredentialTypes: CredentialTypeSchema[]; | ||
| export declare const WoocommerceFunctionMetadata: Record<string, FunctionMetadata>; | ||
| export declare const WoocommerceModuleMetadata: ModuleMetadata; | ||
| //# sourceMappingURL=woocommerce.d.ts.map |
| {"version":3,"file":"woocommerce.d.ts","sourceRoot":"","sources":["../src/woocommerce.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EACV,cAAc,EACd,oBAAoB,EACpB,gBAAgB,EAChB,UAAU,EACV,cAAc,EAEf,MAAM,iBAAiB,CAAC;AAezB,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,UAAU,GAAG,IAAI,CAExD;AAoWD,eAAO,MAAM,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAQ/D,CAAC;AAIF,eAAO,MAAM,0BAA0B,EAAE,oBAAoB,EAoC5D,CAAC;AA0EF,eAAO,MAAM,2BAA2B,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CA2NxE,CAAC;AAEF,eAAO,MAAM,yBAAyB,EAAE,cAiCvC,CAAC"} |
| /** | ||
| * RobinPath WooCommerce Module (Node port) | ||
| * | ||
| * WooCommerce REST API v3 integration — products, orders and customers | ||
| * against any self-hosted WordPress store that has the WooCommerce plugin | ||
| * active and REST keys issued. | ||
| * | ||
| * Authentication is HTTP Basic with `consumer_key` as the username and | ||
| * `consumer_secret` as the password. The base URL is per-store — each | ||
| * credential carries its own `site_url` and key pair so one automation | ||
| * can juggle many stores. | ||
| * | ||
| * Credential type declared by this module: | ||
| * - woocommerce : { site_url, consumer_key, consumer_secret } | ||
| */ | ||
| // ── Module-local state (populated by configure hook) ──────────────────── | ||
| const state = {}; | ||
| function host() { | ||
| if (!state.host) { | ||
| throw new Error("WooCommerce module not initialized. Pass the adapter to rp.registerModule() via loadModule so its configure() hook runs first."); | ||
| } | ||
| return state.host; | ||
| } | ||
| export function configureWoocommerce(h) { | ||
| state.host = h; | ||
| } | ||
| // ── Constants ────────────────────────────────────────────────────────── | ||
| const CREDENTIAL_TYPE = "woocommerce"; | ||
| const API_PATH = "/wp-json/wc/v3/"; | ||
| function errorReturn(error, code, extra = {}) { | ||
| return { error, code, ...extra }; | ||
| } | ||
| function isErr(x) { | ||
| return (typeof x === "object" && | ||
| x !== null && | ||
| "error" in x && | ||
| "code" in x); | ||
| } | ||
| function normalizeSiteUrl(raw) { | ||
| let url = raw.trim().replace(/\/+$/, ""); | ||
| if (url && !/^https?:\/\//i.test(url)) { | ||
| url = `https://${url}`; | ||
| } | ||
| return url; | ||
| } | ||
| async function resolveStore(credentialSlug) { | ||
| if (!credentialSlug) { | ||
| return errorReturn("Credential slug is required.", "credential_not_found"); | ||
| } | ||
| let fields; | ||
| try { | ||
| fields = await host().credentials.get(credentialSlug); | ||
| } | ||
| catch (e) { | ||
| return errorReturn(e instanceof Error ? e.message : String(e), "credential_not_found"); | ||
| } | ||
| if (!fields) { | ||
| return errorReturn(`Credential '${credentialSlug}' not found.`, "credential_not_found"); | ||
| } | ||
| const siteUrl = normalizeSiteUrl(String(fields.site_url ?? "")); | ||
| const consumerKey = String(fields.consumer_key ?? ""); | ||
| const consumerSecret = String(fields.consumer_secret ?? ""); | ||
| if (!siteUrl) { | ||
| return errorReturn("Credential has no `site_url` field.", "site_url_missing"); | ||
| } | ||
| if (!consumerKey) { | ||
| return errorReturn("Credential has no `consumer_key` field.", "consumer_key_missing"); | ||
| } | ||
| if (!consumerSecret) { | ||
| return errorReturn("Credential has no `consumer_secret` field.", "consumer_secret_missing"); | ||
| } | ||
| return { siteUrl, consumerKey, consumerSecret }; | ||
| } | ||
| function basicAuthHeader(key, secret) { | ||
| // Use Buffer in Node; fall back to btoa for bundlers without it. | ||
| const raw = `${key}:${secret}`; | ||
| if (typeof Buffer !== "undefined") { | ||
| return `Basic ${Buffer.from(raw, "utf8").toString("base64")}`; | ||
| } | ||
| return `Basic ${btoa(raw)}`; | ||
| } | ||
| // ── HTTP helper (normalized envelope, never throws for API errors) ───── | ||
| async function http(store, method, pathAndQuery, body) { | ||
| const url = `${store.siteUrl}${API_PATH}${pathAndQuery.replace(/^\/+/, "")}`; | ||
| const headers = { | ||
| Authorization: basicAuthHeader(store.consumerKey, store.consumerSecret), | ||
| Accept: "application/json", | ||
| }; | ||
| if (body !== undefined && body !== null) { | ||
| headers["Content-Type"] = "application/json"; | ||
| } | ||
| const init = { method, headers }; | ||
| if (body !== undefined && body !== null) | ||
| init.body = JSON.stringify(body); | ||
| let response; | ||
| try { | ||
| response = await fetch(url, init); | ||
| } | ||
| catch (e) { | ||
| return errorReturn(e instanceof Error ? e.message : String(e), "transport"); | ||
| } | ||
| const raw = await response.text(); | ||
| let decoded; | ||
| try { | ||
| decoded = raw ? JSON.parse(raw) : null; | ||
| } | ||
| catch { | ||
| decoded = { raw }; | ||
| } | ||
| if (response.status >= 200 && response.status < 300) { | ||
| return decoded ?? { ok: true }; | ||
| } | ||
| // WooCommerce error shape: { code: string, message: string, data: { status: number } } | ||
| let message = `WooCommerce returned HTTP ${response.status}.`; | ||
| if (decoded && typeof decoded === "object") { | ||
| const d = decoded; | ||
| if (typeof d.message === "string") | ||
| message = d.message; | ||
| } | ||
| let code = "woocommerce_error"; | ||
| if (response.status === 404) | ||
| code = "not_found"; | ||
| else if (response.status === 429) | ||
| code = "rate_limited"; | ||
| else if (response.status === 401 || response.status === 403) { | ||
| code = "unauthorized"; | ||
| } | ||
| return errorReturn(message, code, { | ||
| status: response.status, | ||
| woocommerce_error: decoded, | ||
| }); | ||
| } | ||
| // ── Query-string helper ──────────────────────────────────────────────── | ||
| function buildListQuery(opts, allowedKeys) { | ||
| const params = new URLSearchParams(); | ||
| for (const key of allowedKeys) { | ||
| const v = opts[key]; | ||
| if (v === undefined || v === null || v === "") | ||
| continue; | ||
| if (Array.isArray(v)) { | ||
| for (const item of v) | ||
| params.append(`${key}[]`, String(item)); | ||
| } | ||
| else { | ||
| params.set(key, String(v)); | ||
| } | ||
| } | ||
| const qs = params.toString(); | ||
| return qs ? `?${qs}` : ""; | ||
| } | ||
| function asString(v) { | ||
| if (v === undefined || v === null) | ||
| return ""; | ||
| return String(v); | ||
| } | ||
| function asOpts(v) { | ||
| return v && typeof v === "object" && !Array.isArray(v) | ||
| ? v | ||
| : {}; | ||
| } | ||
| // ── Handlers: Products ───────────────────────────────────────────────── | ||
| const PRODUCT_LIST_KEYS = [ | ||
| "context", | ||
| "page", | ||
| "per_page", | ||
| "search", | ||
| "after", | ||
| "before", | ||
| "exclude", | ||
| "include", | ||
| "offset", | ||
| "order", | ||
| "orderby", | ||
| "parent", | ||
| "parent_exclude", | ||
| "slug", | ||
| "status", | ||
| "type", | ||
| "sku", | ||
| "featured", | ||
| "category", | ||
| "tag", | ||
| "shipping_class", | ||
| "attribute", | ||
| "attribute_term", | ||
| "stock_status", | ||
| "on_sale", | ||
| "min_price", | ||
| "max_price", | ||
| ]; | ||
| const listProducts = async (args) => { | ||
| const cred = asString(args[0]); | ||
| const opts = asOpts(args[1]); | ||
| const store = await resolveStore(cred); | ||
| if (isErr(store)) | ||
| return store; | ||
| const qs = buildListQuery(opts, PRODUCT_LIST_KEYS); | ||
| return (await http(store, "GET", `products${qs}`)); | ||
| }; | ||
| const getProduct = async (args) => { | ||
| const cred = asString(args[0]); | ||
| const id = asString(args[1]); | ||
| if (!id) { | ||
| return errorReturn("`productId` is required.", "product_id_missing"); | ||
| } | ||
| const store = await resolveStore(cred); | ||
| if (isErr(store)) | ||
| return store; | ||
| return (await http(store, "GET", `products/${encodeURIComponent(id)}`)); | ||
| }; | ||
| const createProduct = async (args) => { | ||
| const cred = asString(args[0]); | ||
| const fields = asOpts(args[1]); | ||
| if (Object.keys(fields).length === 0) { | ||
| return errorReturn("`fields` is required.", "fields_missing"); | ||
| } | ||
| const store = await resolveStore(cred); | ||
| if (isErr(store)) | ||
| return store; | ||
| return (await http(store, "POST", "products", fields)); | ||
| }; | ||
| // ── Handlers: Orders ─────────────────────────────────────────────────── | ||
| const ORDER_LIST_KEYS = [ | ||
| "context", | ||
| "page", | ||
| "per_page", | ||
| "search", | ||
| "after", | ||
| "before", | ||
| "exclude", | ||
| "include", | ||
| "offset", | ||
| "order", | ||
| "orderby", | ||
| "parent", | ||
| "parent_exclude", | ||
| "status", | ||
| "customer", | ||
| "product", | ||
| "dp", | ||
| ]; | ||
| const listOrders = async (args) => { | ||
| const cred = asString(args[0]); | ||
| const opts = asOpts(args[1]); | ||
| const store = await resolveStore(cred); | ||
| if (isErr(store)) | ||
| return store; | ||
| const qs = buildListQuery(opts, ORDER_LIST_KEYS); | ||
| return (await http(store, "GET", `orders${qs}`)); | ||
| }; | ||
| const getOrder = async (args) => { | ||
| const cred = asString(args[0]); | ||
| const id = asString(args[1]); | ||
| if (!id) { | ||
| return errorReturn("`orderId` is required.", "order_id_missing"); | ||
| } | ||
| const store = await resolveStore(cred); | ||
| if (isErr(store)) | ||
| return store; | ||
| return (await http(store, "GET", `orders/${encodeURIComponent(id)}`)); | ||
| }; | ||
| const updateOrder = async (args) => { | ||
| const cred = asString(args[0]); | ||
| const id = asString(args[1]); | ||
| const fields = asOpts(args[2]); | ||
| if (!id) { | ||
| return errorReturn("`orderId` is required.", "order_id_missing"); | ||
| } | ||
| if (Object.keys(fields).length === 0) { | ||
| return errorReturn("`fields` is required.", "fields_missing"); | ||
| } | ||
| const store = await resolveStore(cred); | ||
| if (isErr(store)) | ||
| return store; | ||
| return (await http(store, "PUT", `orders/${encodeURIComponent(id)}`, fields)); | ||
| }; | ||
| // ── Handlers: Customers ──────────────────────────────────────────────── | ||
| const CUSTOMER_LIST_KEYS = [ | ||
| "context", | ||
| "page", | ||
| "per_page", | ||
| "search", | ||
| "exclude", | ||
| "include", | ||
| "offset", | ||
| "order", | ||
| "orderby", | ||
| "email", | ||
| "role", | ||
| ]; | ||
| const listCustomers = async (args) => { | ||
| const cred = asString(args[0]); | ||
| const opts = asOpts(args[1]); | ||
| const store = await resolveStore(cred); | ||
| if (isErr(store)) | ||
| return store; | ||
| const qs = buildListQuery(opts, CUSTOMER_LIST_KEYS); | ||
| return (await http(store, "GET", `customers${qs}`)); | ||
| }; | ||
| // ── Exports: functions map ───────────────────────────────────────────── | ||
| export const WoocommerceFunctions = { | ||
| listProducts, | ||
| getProduct, | ||
| createProduct, | ||
| listOrders, | ||
| getOrder, | ||
| updateOrder, | ||
| listCustomers, | ||
| }; | ||
| // ── Exports: credential types ────────────────────────────────────────── | ||
| export const WoocommerceCredentialTypes = [ | ||
| { | ||
| slug: CREDENTIAL_TYPE, | ||
| title: "WooCommerce REST API", | ||
| icon: "shopping-cart", | ||
| fields: [ | ||
| { | ||
| name: "site_url", | ||
| title: "Store URL", | ||
| type: "text", | ||
| required: true, | ||
| placeholder: "https://store.example.com", | ||
| description: "Base URL of the WordPress site hosting WooCommerce — no trailing slash. `https://` is added automatically if you omit the scheme.", | ||
| }, | ||
| { | ||
| name: "consumer_key", | ||
| title: "Consumer Key", | ||
| type: "password", | ||
| required: true, | ||
| placeholder: "ck_…", | ||
| description: "Generate under WooCommerce → Settings → Advanced → REST API → Add key. Grant Read/Write as needed.", | ||
| pattern: "^ck_", | ||
| }, | ||
| { | ||
| name: "consumer_secret", | ||
| title: "Consumer Secret", | ||
| type: "password", | ||
| required: true, | ||
| placeholder: "cs_…", | ||
| description: "Paired secret for the consumer key above.", | ||
| pattern: "^cs_", | ||
| }, | ||
| ], | ||
| }, | ||
| ]; | ||
| // ── Exports: metadata ────────────────────────────────────────────────── | ||
| const credentialParam = { | ||
| name: "credential", | ||
| title: "Credential", | ||
| description: "Slug of a saved `woocommerce` credential (site URL + key/secret pair).", | ||
| dataType: "string", | ||
| formInputType: "resource", | ||
| required: true, | ||
| allowExpression: true, | ||
| placeholder: "my_store", | ||
| resource: { | ||
| type: "credential", | ||
| listFn: "credential.list", | ||
| modes: ["list", "expression"], | ||
| searchable: true, | ||
| filter: { type: CREDENTIAL_TYPE }, | ||
| }, | ||
| }; | ||
| const productIdParam = { | ||
| name: "productId", | ||
| title: "Product ID", | ||
| description: "Numeric WooCommerce product ID.", | ||
| dataType: "string", | ||
| formInputType: "resource", | ||
| required: true, | ||
| allowExpression: true, | ||
| placeholder: "42", | ||
| resource: { | ||
| type: "woocommerce_product", | ||
| listFn: "woocommerce.listProducts", | ||
| modes: ["list", "byId", "expression"], | ||
| searchable: true, | ||
| }, | ||
| }; | ||
| const orderIdParam = { | ||
| name: "orderId", | ||
| title: "Order ID", | ||
| description: "Numeric WooCommerce order ID.", | ||
| dataType: "string", | ||
| formInputType: "resource", | ||
| required: true, | ||
| allowExpression: true, | ||
| placeholder: "1001", | ||
| resource: { | ||
| type: "woocommerce_order", | ||
| listFn: "woocommerce.listOrders", | ||
| modes: ["list", "byId", "expression"], | ||
| searchable: true, | ||
| }, | ||
| }; | ||
| const commonErrors = { | ||
| credential_not_found: "No credential with that slug exists in the vault.", | ||
| site_url_missing: "The credential exists but has no `site_url` field.", | ||
| consumer_key_missing: "The credential exists but has no `consumer_key` field.", | ||
| consumer_secret_missing: "The credential exists but has no `consumer_secret` field.", | ||
| product_id_missing: "Product ID is required.", | ||
| order_id_missing: "Order ID is required.", | ||
| fields_missing: "Fields payload is required.", | ||
| transport: "Network failure calling the store's REST endpoint.", | ||
| woocommerce_error: "WooCommerce returned an error — see `woocommerce_error.code` / `.message`.", | ||
| rate_limited: "WooCommerce (or a fronting firewall) rate limited the request.", | ||
| not_found: "Resource not found.", | ||
| unauthorized: "Consumer key/secret rejected — verify Read/Write permissions on the REST key.", | ||
| }; | ||
| export const WoocommerceFunctionMetadata = { | ||
| listProducts: { | ||
| title: "List products", | ||
| summary: "List products with filtering, pagination, search", | ||
| description: "Calls `GET /wp-json/wc/v3/products`. Supports the full filter set (status, category, tag, stock_status, on_sale, price range, …). Pagination via `page` + `per_page` (max 100).", | ||
| group: "products", | ||
| action: "query", | ||
| icon: "list", | ||
| capability: "manage_options", | ||
| sideEffects: ["makes_http_call"], | ||
| idempotent: true, | ||
| since: "1.0.0", | ||
| tags: ["woocommerce", "product", "list"], | ||
| parameters: [ | ||
| credentialParam, | ||
| { | ||
| name: "options", | ||
| title: "Options", | ||
| description: "Recognized keys:\n page, per_page (1–100)\n search\n status : 'any' | 'draft' | 'pending' | 'private' | 'publish'\n type : 'simple' | 'grouped' | 'external' | 'variable'\n category : term ID\n tag : term ID\n sku\n featured : bool\n on_sale : bool\n stock_status : 'instock' | 'outofstock' | 'onbackorder'\n min_price / max_price\n orderby : 'date' | 'id' | 'title' | 'slug' | 'price' | 'popularity' | 'rating'\n order : 'asc' | 'desc'\n include / exclude : array of IDs", | ||
| dataType: "object", | ||
| formInputType: "json", | ||
| required: false, | ||
| allowExpression: true, | ||
| language: "json", | ||
| rows: 6, | ||
| advanced: true, | ||
| }, | ||
| ], | ||
| returnType: "array", | ||
| returnDescription: "Array of product objects.", | ||
| errors: commonErrors, | ||
| example: 'woocommerce.listProducts "my_store" {per_page: 20, status: "publish"}', | ||
| }, | ||
| getProduct: { | ||
| title: "Get product", | ||
| summary: "Retrieve a product by ID", | ||
| description: "Calls `GET /wp-json/wc/v3/products/{id}`.", | ||
| group: "products", | ||
| action: "read", | ||
| icon: "package", | ||
| capability: "manage_options", | ||
| sideEffects: ["makes_http_call"], | ||
| idempotent: true, | ||
| since: "1.0.0", | ||
| tags: ["woocommerce", "product", "read"], | ||
| parameters: [credentialParam, productIdParam], | ||
| returnType: "object", | ||
| returnDescription: "Product object with variations, images, meta.", | ||
| errors: commonErrors, | ||
| example: 'woocommerce.getProduct "my_store" "42"', | ||
| }, | ||
| createProduct: { | ||
| title: "Create product", | ||
| summary: "Create a new product", | ||
| description: "Calls `POST /wp-json/wc/v3/products`. Pass a flat product object (`name`, `type`, `regular_price`, `description`, `categories`, `images`, …). For variable products, create variations via the dedicated endpoint afterwards.", | ||
| group: "products", | ||
| action: "write", | ||
| icon: "package-plus", | ||
| capability: "manage_options", | ||
| sideEffects: ["makes_http_call"], | ||
| idempotent: false, | ||
| since: "1.0.0", | ||
| tags: ["woocommerce", "product", "create"], | ||
| parameters: [ | ||
| credentialParam, | ||
| { | ||
| name: "fields", | ||
| title: "Product fields", | ||
| description: "Common keys:\n name : required\n type : 'simple' (default) | 'grouped' | 'external' | 'variable'\n regular_price : string (e.g. '19.99')\n sale_price : string\n description : HTML\n short_description : HTML\n sku\n stock_quantity : number\n manage_stock : bool\n status : 'draft' | 'pending' | 'private' | 'publish'\n categories : [{id}]\n tags : [{id}]\n images : [{src}]\n attributes : [{name, options: [...]}]", | ||
| dataType: "object", | ||
| formInputType: "json", | ||
| required: true, | ||
| allowExpression: true, | ||
| language: "json", | ||
| rows: 10, | ||
| placeholder: '{\n "name": "New Product",\n "type": "simple",\n "regular_price": "29.99",\n "description": "<p>Great.</p>"\n}', | ||
| }, | ||
| ], | ||
| returnType: "object", | ||
| returnDescription: "Created product object with `id`.", | ||
| errors: commonErrors, | ||
| example: 'woocommerce.createProduct "my_store" {name: "Widget", regular_price: "9.99"}', | ||
| }, | ||
| listOrders: { | ||
| title: "List orders", | ||
| summary: "List orders with filtering and pagination", | ||
| description: "Calls `GET /wp-json/wc/v3/orders`. Filter by `status` (any/pending/processing/on-hold/completed/cancelled/refunded/failed), `customer`, `product`, or date range via `after`/`before` (ISO 8601).", | ||
| group: "orders", | ||
| action: "query", | ||
| icon: "list", | ||
| capability: "manage_options", | ||
| sideEffects: ["makes_http_call"], | ||
| idempotent: true, | ||
| since: "1.0.0", | ||
| tags: ["woocommerce", "order", "list"], | ||
| parameters: [ | ||
| credentialParam, | ||
| { | ||
| name: "options", | ||
| title: "Options", | ||
| description: "Recognized keys:\n page, per_page (1–100)\n search\n status : 'any' | 'pending' | 'processing' | 'on-hold' | 'completed' | 'cancelled' | 'refunded' | 'failed'\n customer : customer user ID\n product : product ID (orders containing this product)\n after / before : ISO 8601\n orderby, order, include, exclude", | ||
| dataType: "object", | ||
| formInputType: "json", | ||
| required: false, | ||
| allowExpression: true, | ||
| language: "json", | ||
| rows: 5, | ||
| advanced: true, | ||
| }, | ||
| ], | ||
| returnType: "array", | ||
| returnDescription: "Array of order objects with line items and totals.", | ||
| errors: commonErrors, | ||
| example: 'woocommerce.listOrders "my_store" {status: "processing", per_page: 50}', | ||
| }, | ||
| getOrder: { | ||
| title: "Get order", | ||
| summary: "Retrieve an order by ID", | ||
| description: "Calls `GET /wp-json/wc/v3/orders/{id}`.", | ||
| group: "orders", | ||
| action: "read", | ||
| icon: "file-text", | ||
| capability: "manage_options", | ||
| sideEffects: ["makes_http_call"], | ||
| idempotent: true, | ||
| since: "1.0.0", | ||
| tags: ["woocommerce", "order", "read"], | ||
| parameters: [credentialParam, orderIdParam], | ||
| returnType: "object", | ||
| returnDescription: "Order object with `line_items`, `billing`, `shipping`, `meta_data`, `total`, `status`.", | ||
| errors: commonErrors, | ||
| example: 'woocommerce.getOrder "my_store" "1001"', | ||
| }, | ||
| updateOrder: { | ||
| title: "Update order", | ||
| summary: "Update an order — status, note, billing/shipping, meta", | ||
| description: "Calls `PUT /wp-json/wc/v3/orders/{id}`. Merge-style: only pass the fields you want to change. Common updates: `status` (e.g. `completed`), `customer_note`, `meta_data`.", | ||
| group: "orders", | ||
| action: "write", | ||
| icon: "edit-3", | ||
| capability: "manage_options", | ||
| sideEffects: ["makes_http_call"], | ||
| idempotent: true, | ||
| since: "1.0.0", | ||
| tags: ["woocommerce", "order", "update"], | ||
| parameters: [ | ||
| credentialParam, | ||
| orderIdParam, | ||
| { | ||
| name: "fields", | ||
| title: "Fields to update", | ||
| description: "Flat object. Common keys:\n status : 'pending' | 'processing' | 'on-hold' | 'completed' | 'cancelled' | 'refunded' | 'failed'\n customer_note\n billing : {first_name, last_name, address_1, …}\n shipping : {…}\n meta_data : [{key, value}]\n set_paid : bool", | ||
| dataType: "object", | ||
| formInputType: "json", | ||
| required: true, | ||
| allowExpression: true, | ||
| language: "json", | ||
| rows: 5, | ||
| placeholder: '{ "status": "completed" }', | ||
| }, | ||
| ], | ||
| returnType: "object", | ||
| errors: commonErrors, | ||
| example: 'woocommerce.updateOrder "my_store" "1001" {status: "completed"}', | ||
| }, | ||
| listCustomers: { | ||
| title: "List customers", | ||
| summary: "List customers with filtering and pagination", | ||
| description: "Calls `GET /wp-json/wc/v3/customers`. Filter by `email`, `role`, or search by name/email.", | ||
| group: "customers", | ||
| action: "query", | ||
| icon: "users", | ||
| capability: "manage_options", | ||
| sideEffects: ["makes_http_call"], | ||
| idempotent: true, | ||
| since: "1.0.0", | ||
| tags: ["woocommerce", "customer", "list"], | ||
| parameters: [ | ||
| credentialParam, | ||
| { | ||
| name: "options", | ||
| title: "Options", | ||
| description: "Recognized keys:\n page, per_page (1–100)\n search\n email\n role : 'all' | 'administrator' | 'customer' | 'subscriber' | …\n orderby : 'id' | 'include' | 'name' | 'registered_date'\n order : 'asc' | 'desc'\n include / exclude : array of IDs", | ||
| dataType: "object", | ||
| formInputType: "json", | ||
| required: false, | ||
| allowExpression: true, | ||
| language: "json", | ||
| rows: 4, | ||
| advanced: true, | ||
| }, | ||
| ], | ||
| returnType: "array", | ||
| returnDescription: "Array of customer objects.", | ||
| errors: commonErrors, | ||
| example: 'woocommerce.listCustomers "my_store" {per_page: 50}', | ||
| }, | ||
| }; | ||
| export const WoocommerceModuleMetadata = { | ||
| slug: "woocommerce", | ||
| title: "WooCommerce", | ||
| summary: "Products, orders and customers on any self-hosted WooCommerce store", | ||
| description: "WooCommerce REST API v3 client for self-hosted stores. Handles catalog reads/writes, order processing, and customer lookups.\n\nAuth is HTTP Basic with a `ck_…` / `cs_…` key pair generated under *WooCommerce → Settings → Advanced → REST API*. Every credential carries its own `site_url`, so a single automation can operate across many stores by swapping the credential slug.\n\nNote: this module intentionally focuses on the common operations — listProducts/getProduct/createProduct, listOrders/getOrder/updateOrder, listCustomers. For delete/variation/tax-class/coupon endpoints drop to `http.*` with the same credential via `credential.field`.", | ||
| category: "ecommerce", | ||
| icon: "icon.svg", | ||
| color: "#7F54B3", | ||
| version: "0.2.0", | ||
| docsUrl: "https://docs.robinpath.com/modules/woocommerce", | ||
| status: "stable", | ||
| requires: [], | ||
| minNodeVersion: "18.0.0", | ||
| credentialsType: CREDENTIAL_TYPE, | ||
| operationGroups: { | ||
| products: { | ||
| title: "Products", | ||
| description: "Catalog reads and writes.", | ||
| order: 1, | ||
| }, | ||
| orders: { | ||
| title: "Orders", | ||
| description: "Order lookup and status updates.", | ||
| order: 2, | ||
| }, | ||
| customers: { | ||
| title: "Customers", | ||
| description: "Customer directory.", | ||
| order: 3, | ||
| }, | ||
| }, | ||
| methods: Object.keys(WoocommerceFunctions), | ||
| }; | ||
| //# sourceMappingURL=woocommerce.js.map |
| {"version":3,"file":"woocommerce.js","sourceRoot":"","sources":["../src/woocommerce.ts"],"names":[],"mappings":"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"} |
+15
-7
| { | ||
| "name": "@robinpath/woocommerce", | ||
| "version": "0.1.1", | ||
| "version": "0.3.0", | ||
| "publishConfig": { | ||
@@ -23,9 +23,9 @@ "access": "public" | ||
| "peerDependencies": { | ||
| "@robinpath/core": ">=0.20.0" | ||
| "@robinpath/core": ">=0.40.0" | ||
| }, | ||
| "devDependencies": { | ||
| "@robinpath/core": "^0.30.1", | ||
| "@robinpath/core": "^0.40.0", | ||
| "typescript": "^5.6.0" | ||
| }, | ||
| "description": "WooCommerce module for RobinPath.", | ||
| "description": "WooCommerce REST API v3 — products, orders and customers on any self-hosted WooCommerce store. Uses the encrypted credential vault for per-store key/secret pairs.", | ||
| "keywords": [ | ||
@@ -38,6 +38,14 @@ "woocommerce", | ||
| "category": "ecommerce", | ||
| "type": "integration", | ||
| "auth": "api-key", | ||
| "functionCount": 23 | ||
| "type": "module", | ||
| "auth": "credential-vault", | ||
| "credentialType": "woocommerce", | ||
| "functionCount": 7, | ||
| "baseUrl": "/wp-json/wc/v3", | ||
| "language": "nodejs", | ||
| "platforms": [ | ||
| "cloud", | ||
| "cli", | ||
| "desktop" | ||
| ] | ||
| } | ||
| } |
+1
-1
@@ -22,3 +22,3 @@ # @robinpath/woocommerce | ||
| ```bash | ||
| npm install @robinpath/woocommerce | ||
| robinpath add @robinpath/woocommerce | ||
| ``` | ||
@@ -25,0 +25,0 @@ |
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
Network access
Supply chain riskThis module accesses the network.
Found 1 instance in 1 package
URL strings
Supply chain riskPackage contains fragments of external URLs or IP addresses, which the package may be accessing at runtime.
Found 1 instance in 1 package
Empty package
Supply chain riskPackage does not contain any code. It may be removed, is name squatting, or the result of a faulty package publish.
Found 1 instance in 1 package
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
49116
1135.93%10
400%684
Infinity%2
100%