AgentStack
SKILL verified MIT Self-run

Woo Revenue By Period

skill-navarroido-woocommerce-skill-woo-revenue-by-period · by navarroido

Read-only: Aggregate gross revenue, refunds, and net revenue by day, week, or month using WooCommerce reports.

No reviews yet
0 installs
9 views
0.0% view→install

Install

$ agentstack add skill-navarroido-woocommerce-skill-woo-revenue-by-period

✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

Are you the author of Woo Revenue By Period? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

woo-revenue-by-period

Purpose

Generate a revenue summary report for WooCommerce aggregated by day, week, or month. Combines the /reports/sales endpoint with order-level data for accurate gross revenue, total refunds, and net revenue calculations. Useful for financial reporting, board updates, and trend analysis. Read-only.

Prerequisites

  • WooCommerce store with REST API enabled
  • Consumer Key with Read scope
  • Minimum WooCommerce version: 3.5.0

Parameters

| Parameter | Type | Required | Default | Description | |-----------|------|----------|---------|-------------| | store_url | string | yes | — | Base URL of the WooCommerce store | | consumer_key | string | yes | — | WooCommerce REST API consumer key (ck_...) | | consumer_secret | string | yes | — | WooCommerce REST API consumer secret (cs_...) | | dry_run | bool | no | false | No effect — read-only skill | | format | string | no | human | Output format: human or json | | date_after | string | yes | — | Start date (YYYY-MM-DD) | | date_before | string | yes | — | End date (YYYY-MM-DD) | | group_by | string | no | month | Granularity: day, week, or month | | include_taxes | bool | no | false | Include tax_total in revenue figure |

Authentication

WooCommerce uses OAuth 1.0a for HTTP and Basic Auth over HTTPS.

For HTTPS stores (recommended):

Authorization: Basic base64(consumer_key:consumer_secret)

For HTTP stores (development only): Use OAuth 1.0a — include oauthconsumerkey, oauthnonce, oauthsignature, oauthsignaturemethod=HMAC-SHA1, oauthtimestamp, oauthversion=1.0

Never log or output consumerkey or consumersecret values.

See docs/AUTHENTICATION.md for full setup instructions.

Safety

Read-only skill — no mutations are executed. Safe to run at any time.

Workflow Steps

Step 1 — Fetch WooCommerce sales report

GET /wp-json/wc/v3/reports/sales
  ?period=custom&date_min=&date_max=

Extract: total_sales, net_sales, total_orders, total_refunds, total_tax, total_shipping

Step 2 — Fetch orders for period breakdown

GET /wp-json/wc/v3/orders
  ?status=completed&after=T00:00:00Z&before=T23:59:59Z&per_page=100&page=1

Group total by group_by period (day/week/month of date_created).

Step 3 — Fetch refunds in same period

GET /wp-json/wc/v3/orders?status=refunded&after=...&before=...&per_page=100&page=1

Subtract from period totals.

Step 4 — Format and export

API Endpoints Used

GET  /wp-json/wc/v3/reports/sales   — aggregate sales report
GET  /wp-json/wc/v3/orders          — order-level detail for period breakdown

Pagination Strategy

WooCommerce REST API uses page/per_page pagination (not cursor-based).

Standard pattern:

page = 1
while True:
  response = GET /endpoint?per_page=100&page=page
  process(response)
  if len(response)                       ║
║  TIME:                     ║
║  MODE:  READ-ONLY                        ║
╚══════════════════════════════════════════╝

PER-OPERATION (emit after each API call batch):

[N/TOTAL]   →  records | params: =

COMPLETION (human format):

╔══════════════════════════════════════════╗
║  COMPLETE: woo-revenue-by-period         ║
║  RECORDS PROCESSED:                   ║
║  OUTPUT:                       ║
╚══════════════════════════════════════════╝

COMPLETION (json format):

{
  "skill": "woo-revenue-by-period",
  "store": "",
  "completed_at": "",
  "records_processed": ,
  "output_file": "",
  "dry_run": false
}

Output Format

CSV filename: woo-revenue-by-period__.csv Columns: period, orders, gross_revenue, refunds, net_revenue, tax_total, shipping_total

Error Handling

| Error | Cause | Resolution | |-------|-------|------------| | 401 Unauthorized | Invalid credentials | Verify consumerkey and consumersecret | | 403 Forbidden | Key lacks Read scope | Regenerate with Read scope | | 429 Too Many Requests | Rate limit | Wait 2 seconds and retry | | Empty result | No completed orders in range | Verify date range and order statuses |

Best Practices

  • Use group_by: month for monthly P&L reports and group_by: day for short-term trend analysis.
  • Always specify date_after and date_before aligned to full periods (e.g., full months) for clean comparisons.
  • Compare to the same period in the prior year for YoY growth analysis.

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet — be the first.

Versions

  • v0.1.0 Imported from the upstream source.