
Storepulse — store monitor with Telegram alerts
A standalone PHP application that watches your store from the outside and writes to Telegram when it goes down. It detects a database error, a Fatal error and a blank page even when the status code is 200. Free — 2 monitors with no time limit; Pro — no limits, SSL, digests, status page.
- Compatibility
- PHP 7.4+ · any hosting with cron · no database
- Licence
- one site, annual
- Trial
- 7 days, no card, one per site
What Free has,
and what Pro adds
The free version works with no time limit. Pro adds the rest of the features in the table.
What it looks like
Key points
How it differs from UptimeRobot
Ordinary monitors check the HTTP status code. But 200 does not mean “the store works”: a page can return 200 and still show the shopper a database error, a blank screen or a hosting stub.
What arrives in Telegram
The message carries not a dry error code but a reason in plain language and a theory about what to do.
How much it costs
Free — free forever: 2 monitors, a 5-minute interval, 1 Telegram chat, the full store-error detection, the event log and the retry before an alert.

The trial starts when you ask
A fresh install is the free version, nothing switches on by itself. The “Try Pro for 7 days” button → e-mail → the key right in the window and by e-mail.

One key — one site
Moving the store? Unbind the licence on the old domain and activate it on the new one yourself. If our server is unreachable, Pro keeps working for 14 more days. For studios — keys for 5 or 25 sites, or unlimited.
Technical requirements
PHP 7.4 or newer (tested on 7.4.33 and 8.3.31);
write access to the application folder and to data/;
cURL (without it, it falls back to file_get_contents);
OpenSSL — so that the bot token and the licence key are stored encrypted;
cron every minute; if the host has no cron, an external pinger on the tokenised URL;
no database required: no MySQL, no composer, no dependencies.
Version history
The Europe/Kyiv time zone only exists in tzdata 2022b and newer, so on PHP 7.4 and 8.0 every request emitted a notice and broke the session and the redirects; an unknown identifier is now…
HTTP checks of the storefront, cart, checkout and admin from 1 minute; store-error detection at status code 200; Telegram alerts with a hint; failure confirmation by a second check; SSL…
Frequently bought with Storepulse
4 modules in one order — 40% cheaper than separately


Nova Poshta Premium — a Nova Poshta module for OpenCart 2.3, 3.x and 4.x

LiqPay — Card Payments for OpenCart 2.3, 3.x and 4.x

Telegram notifications and Viber/SMS for customers for OpenCart
Full module description
Storepulse is an uptime monitor for your online store with alerts in Telegram. It is not a plugin — it is a standalone PHP application you install on your own hosting, and it watches the store from the outside. Every minute it opens your pages the same way a shopper does, and when the store stops working it writes to Telegram: what exactly broke, when, and what to do about it.
🔴 The main rule: do not install it on the store’s server
This is the most common mistake that makes monitoring go silent exactly when you need it. If the monitor sits on the same hosting as the store, it goes down together with the store — and there is nobody left to send the alert. That is why Store Uptime is a separate application and not a WooCommerce or OpenCart plugin: a plugin inside the store physically cannot report that the store is unreachable.
Put it on any other hosting: a cheap shared account, a subdomain of another project, a VPS. It barely uses any resources — all it needs is PHP and cron. The installer and the readme inside the archive say this explicitly.
How it differs from UptimeRobot
Ordinary monitors check the HTTP status code. But 200 does not mean “the store works”: a page can return 200 and still show the shopper a database error, a blank screen or a hosting stub. Store Uptime looks at what the shopper sees and recognises in the response body:
- the WordPress database error (“Error establishing a database connection”) and the OpenCart one;
Fatal error,Parse errorand the WordPress critical error served with code 200;- “Account Suspended”, hosting limits exceeded, Resource Limit;
- a parked-domain stub — in other words, a domain that has expired;
- a blank page: an empty response or a sharp drop in size below the threshold;
- a redirect to a foreign domain — a sign of hijacked DNS or a breach;
- a keyword disappearing from the page (“Cart”, “Checkout”);
- maintenance mode that someone forgot to switch off;
- a directory listing instead of the store page.
Plus two things classic monitors do not have at all. First: a failure is confirmed by a second check a few seconds later, so one lost packet will not wake you up at night. Second: downtime of the monitoring itself is caught separately — if cron stayed silent for more than 30 minutes, that is an event and a message, not a fake “100% uptime”.
What arrives in Telegram
The message carries not a dry error code but a reason in plain language and a theory about what to do. For example:
- “Code 200, but the page shows a database error. Hint: looks like the MySQL connection limit is exhausted — a question for the host”;
- “Empty response (blank page). Hint: looks like a fresh plugin or theme update”;
- “The store responds again. Downtime: 14 min” — after a recovery;
- “Cron was silent for 2 h 14 min — nobody checked the store during that time”.
With Pro you can also write to the bot: /status returns a summary of every monitor, /pause and /resume turn the checks off and on — handy before planned maintenance.
How it works, step by step
- You unpack the archive into a folder on hosting that does not run your store and open it in a browser.
- The installer checks the requirements, asks for a login, password, language and time zone, and writes
config.php. - In “Settings → Telegram” you paste the bot token and the chat_id, press “Send a test message” and confirm the alert arrives.
- You add a monitor: the page URL, the interval and a word that must be present on a working page.
- You add a cron job every minute — from that moment the checks run by themselves.
- The store goes down → the check fails → the monitor retries 20 seconds later → the failure is confirmed → an alert with the reason flies to Telegram. The store comes back → a recovery message arrives with the outage duration.
How much it costs
Free — free forever: 2 monitors, a 5-minute interval, 1 Telegram chat, the full store-error detection, the event log and the retry before an alert.
Pro — 890 UAH per year for one copy of the application. A longer term is cheaper: 2 years — 1690 UAH, 3 years — 2350 UAH, 4 years — 2920 UAH, 5 years — 3340 UAH. There are no automatic charges; renewal is manual, with reminders by e-mail 14, 7, 3 and 1 day before the end. When the term expires the application and its Pro features keep running — only updates and support stop.
OpenCart stores get a lifetime licence. For OpenCart, Pro costs 890 UAH once: no term, no renewals, no reminders. It has its own “Buy for OpenCart” button. The yearly licence with a 1–5 year choice applies to WooCommerce / WordPress.
Before buying there is a 7-day Pro trial: one button in “Settings → Licence”, no card required.
Under the hood
Storage is JSON files with flock: a ring buffer of results per monitor plus daily rollups, so “uptime over 30 days” stays true even on a one-minute interval. Concurrent cron runs are separated by tick.lock — no duplicate alerts. Error signatures are searched in the first 20,000 characters of the response body. The panel has its own login, and 5 failed attempts lock the form for 15 minutes. The data/ folder is closed with .htaccess, and the readme has an nginx snippet. The interface and the alerts are available in Ukrainian, Russian and English.
How to install
- Download the archive with the button at the top of this page.
- Unpack it into a folder on hosting that does not serve your store — for example
/uptime/on a subdomain. - Open that address in a browser and go through the installer.
- Set up Telegram and add your first monitor.
- Add the cron job:
* * * * * /usr/bin/php /path/to/uptime/cron.php >/dev/null 2>&1
Updating means replacing the application files; config.php and data/ are left alone, so settings and history survive.
Questions
about the module
Didn't find the answer? Message us on Telegram and we'll reply within a business day.
Is this a WooCommerce or OpenCart plugin?
No. It is a standalone PHP application installed on hosting that watches the store from the outside. A plugin inside the store goes down together with it and never gets to send anything — so a plugin simply cannot do this job. The store itself can be anything: WooCommerce, OpenCart, a hosted platform or a custom build.
Why can it not sit next to the store?
Because then the monitor goes silent when the server fails, and you learn about the outage from your customers. Install it on any other hosting: it needs very little, and the cheapest shared account with PHP and cron is enough.
Why is it better than UptimeRobot?
UptimeRobot looks at the HTTP status code. A store can return 200 and still show the shopper a database error, a blank page or a hosting stub — to an ordinary monitor that is "all good". Store Uptime reads the page body, recognises those cases and puts the reason and a hint into the alert instead of a bare code.
What does the hosting need?
PHP 7.4 or newer, write access to the application folder and a cron job every minute. No database is required — the data lives in JSON files. If the host has no cron, the "Cron" section gives you a tokenised URL for an external pinger.
How many stores can one copy monitor?
Free gives two monitors (two pages of one store, or two different stores); Pro has no limit. The licence is bound to the copy of the application, not to the number of stores.
My store runs on OpenCart — which licence do I get?
A lifetime one: 890 UAH once, with no term and no renewals. Use the “Buy for OpenCart” button. The 1–5 year licence is for WooCommerce / WordPress only.
What happens when the licence expires?
This is about the yearly WooCommerce / WordPress licence — OpenCart has no term. The application keeps running and sending alerts, and the Pro features (the 1-minute interval, extra chats, SSL, quiet hours, the digest and the status page) stay on — only updates and support stop. The free mode has no time limit.
Can I try Pro before buying?
Yes, for 7 days. The trial starts with one button in "Settings → Licence", and no card is required.
No reviews yet. Be the first.
No questions yet. Ask one — we answer within 24 hours.
Not quite what you are looking for?
We build custom modules for WordPress, WooCommerce, OpenCart and Shopify. Tell us about the task and we'll prepare an estimate.
Order a custom module
Buying the module
—