On a schedule
Email a weekly Wix Stores sales summary
Every Monday an email shows last week's Wix Stores order count, revenue, average order value and the five best-selling products.
- Runs
- On a schedule
- Apps
- Wix
- AI
- Not needed
- Access
- read (Wix eCommerce orders)
Send this to your assistant
Create a ClickRuntime automation: every Monday at 8am, email me last week's Wix Stores sales: number of orders, total revenue, average order value and the top five products by quantity.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
Wix has sales analytics, but most shop owners do not open them every week. A short Monday email with the numbers that matter is easier to keep up with.
This pulls last week's approved orders from Wix eCommerce, totals them and lists your best-selling products. It also remembers the previous week so you can see the direction at a glance.
It suits small online shops, makers selling on a Wix site, and anyone who reports weekly sales to a partner or investor.
What you get out of it
The week in one look
Orders, revenue and average order value sit on three lines. You know how the week went before your first meeting.
Best sellers by quantity
The top-five list shows what is actually moving, which helps with reordering stock and choosing what to promote.
Week-on-week comparison
Last week's figures are shown next to this week's, so a dip or jump is clear without opening a chart.
No dashboard login
The numbers come to your inbox. You can read them on your phone and forward them as they are.
Read-only access
The API key only needs to read orders. The automation cannot change products, prices or orders.
How it works
What happens, step by step
Every Monday morning ClickRuntime loads all Wix Stores orders from the previous seven days.
It adds up revenue, counts orders and works out the average order value.
Line items are totalled per product to find the five best sellers.
The summary arrives as one email with last week's figures for comparison.
Before it runs live
- Connect Wix
What you get
Build your own
Need it to work differently?
Your own rules
Conditions, thresholds, filters and exceptions, written the way you'd explain them to a colleague.
Any number of apps
One automation can read from one app and update several others. Over 248 apps are ready, and anything with an API works too.
AI where it helps
Summaries, classification, extraction and drafts use ClickRuntime's built-in AI, with no extra key.
On a schedule or on each event
Runs as often as every 5 minutes, or the moment an app sends an event, and keeps track of what it already handled.
Changes you can ask for
- Run it at a different time, more or less often, or only on weekdays
- Add an AI step, for example to summarize, sort or draft a reply
- Add another app, for example also send it to Slack
- Combine it with other Wix steps into one automation
Under the hood
The code that runs this automation
from collections import Counter
from datetime import datetime, timezone, timedelta
from clickruntime import on_trigger, credentials, http, state, notify
SITE_ID = "your-site-id"
@on_trigger
def run(event):
since = (datetime.now(timezone.utc) - timedelta(days=7)).isoformat()
orders, cursor = [], None
while True:
paging = {"limit": 100, **({"cursor": cursor} if cursor else {})}
resp = http.post("https://www.wixapis.com/ecom/v1/orders/search",
headers={"Authorization": credentials.secret("WIX_API_KEY"), "wix-site-id": SITE_ID},
json={"search": {"filter": {"createdDate": {"$gt": since}, "status": "APPROVED"}, "cursorPaging": paging}})
resp.raise_for_status()
body = resp.json()
orders += body.get("orders", [])
cursor = body.get("metadata", {}).get("cursors", {}).get("next")
if not cursor:
break
revenue = sum(float(o["priceSummary"]["total"]["amount"]) for o in orders)
currency = orders[0]["currency"] if orders else ""
products = Counter()
for o in orders:
for i in o["lineItems"]:
products[i["productName"]["original"]] += i["quantity"]
prev = state.get("prev") or {}
state.set("prev", {"orders": len(orders), "revenue": revenue})
top = "\n".join(f"{n}. {name}: {q}" for n, (name, q) in enumerate(products.most_common(5), 1))
text = (f"Orders: {len(orders)} (previous week {prev.get('orders', 'n/a')})\n"
f"Revenue: {currency} {revenue:,.2f} (previous week {currency} {prev.get('revenue', 0):,.2f})\n"
f"Average order: {currency} {revenue / len(orders) if orders else 0:,.2f}\n\nTop products\n{top or 'No sales'}")
notify.email_me(f"Wix sales last week: {len(orders)} orders, {currency} {revenue:,.2f}", text)
return {"orders": len(orders), "revenue": revenue}FAQ
Common questions
Are refunded or cancelled orders counted?
Can it send the summary to my business partner too?
Does it include taxes and shipping?
What permissions does it need?
Does it need AI?
How many runs does it use?
Can I change how it works?
Related
You might also like
Get a daily email of Wix form submissions
Each morning at 8am one email lists every Wix form submission from the past 24 hours, grouped by form, with name, email and message.
See how it worksGet alerts when Wix Stores products run low
Every morning, Wix Stores products with tracked stock below your threshold are posted to Slack with the quantity left, and each product is reported once until it is restocked.
See how it worksGet Wix form submissions in Slack
A few minutes after someone fills in a form on your site, every field is in Slack.
See how it worksKeep exploring
Set up “Email a weekly Wix Stores sales summary” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.