claudeus-wp-mcp
Version:
The most comprehensive WordPress MCP server - 145 production-ready tools for complete WordPress management with AI
116 lines (115 loc) • 3.08 kB
TypeScript
import { BaseApiClient } from './base-client.js';
import { SecurityManager } from '../security/SecurityManager.js';
import { PaginatedResponse } from '../types/index.js';
export interface ProductFilters {
per_page?: number;
page?: number;
search?: string;
category?: number;
tag?: number;
status?: 'draft' | 'pending' | 'private' | 'publish';
featured?: boolean;
type?: 'simple' | 'grouped' | 'external' | 'variable';
[key: string]: string | number | boolean | undefined;
}
export interface OrderFilters {
per_page?: number;
page?: number;
search?: string;
status?: 'pending' | 'processing' | 'on-hold' | 'completed' | 'cancelled' | 'refunded' | 'failed';
customer?: number;
product?: number;
date_created_min?: string;
date_created_max?: string;
[key: string]: string | number | undefined;
}
export interface SalesFilters {
period?: 'day' | 'week' | 'month' | 'year';
date_min?: string;
date_max?: string;
product?: number;
category?: number;
[key: string]: string | number | undefined;
}
export interface Product {
id: number;
name: string;
slug: string;
permalink: string;
type: string;
status: string;
featured: boolean;
description: string;
short_description: string;
price: string;
regular_price: string;
sale_price: string;
date_created: string;
date_modified: string;
categories: Array<{
id: number;
name: string;
slug: string;
}>;
tags: Array<{
id: number;
name: string;
slug: string;
}>;
images: Array<{
id: number;
src: string;
name: string;
alt: string;
}>;
}
export interface Order {
id: number;
status: string;
currency: string;
date_created: string;
date_modified: string;
total: string;
customer_id: number;
billing: Record<string, string>;
shipping: Record<string, string>;
payment_method: string;
payment_method_title: string;
line_items: Array<{
id: number;
name: string;
product_id: number;
quantity: number;
subtotal: string;
total: string;
}>;
}
export interface SalesStats {
period: string;
date_start: string;
date_end: string;
totals: {
sales: string;
orders: number;
items: number;
tax: string;
shipping: string;
discount: string;
customers: number;
};
products: Array<{
product_id: number;
items_sold: number;
gross_sales: string;
net_sales: string;
}>;
}
export declare class ShopAPI extends BaseApiClient {
private security;
private wcClient;
constructor(client: BaseApiClient, security: SecurityManager);
private wcGet;
getProducts(filters?: ProductFilters): Promise<PaginatedResponse<Product[]>>;
getOrders(filters?: OrderFilters): Promise<PaginatedResponse<Order[]>>;
getSalesStats(filters?: SalesFilters): Promise<PaginatedResponse<SalesStats>>;
}