Price Tracker
Price Tracker is a WordPress plugin for monitoring product prices across multiple Turkish e-commerce platforms, sending Telegram notifications when prices drop, and offering a complete member-based front-end panel where registered users can manage their own tracked products. It is designed for sites that need automated price intelligence with full multi-user support.
Main purpose
The plugin fetches product prices from supported store pages on a distributed hourly schedule, compares each new price against the previously recorded value, and fires a Telegram message when the drop meets or exceeds your configured threshold. It gives site owners visibility into current prices, price change trends, and per-user tracking activity — all from a single admin area.
Why use this plugin?
- To monitor product prices on Epey and Trendyol automatically without visiting store pages manually.
- To receive instant Telegram alerts when a price drops by a defined percentage threshold.
- To open price tracking as a service to registered members of your site, each with their own product list and quota.
- To run on-demand price checks for any product at any time, in addition to the automatic schedule.
- To keep a full log of every price fetch, failure, cron run, and notification event for auditing and debugging.
- To manage per-user daily query limits, product limits, and link limits from a central admin panel.
Core features
Automated price checks
Prices are fetched hourly on a distributed queue spread between 10:00 and 23:00 to reduce load and avoid request spikes.
Telegram notifications
Sends a Telegram message when a price drops by the configured percentage. Target can be set globally, per user, or per product.
Multi-platform scraping
Dedicated scrapers for Epey and Trendyol handle each site's HTML structure, price normalisation, and cooldown logic independently.
Member panel
A front-end shortcode panel lets registered, approved members manage their own products and links without WordPress admin access.
Proxy pool support
Route requests through a pool of HTTP/HTTPS or SOCKS5 proxies in mixed or proxy-only mode for reliable high-frequency checking.
User approval system
New registrations are held as pending until an admin approves them. Approval triggers automatic email and Telegram confirmation to the user.
How the plugin works
- The plugin stores products and their store links in custom database tables, each link recording both the current and previous price.
- WordPress cron fires every hour and distributes link checks across the 10:00–23:00 window, divided into 12 equal daily slots.
- For each link, the appropriate platform scraper fetches the live price, normalises the value (handling Turkish number formatting such as
1.299,00 TL), and saves it.
- The new price is compared against the previously stored price. If the drop percentage meets the threshold, a Telegram message is sent to the resolved target username.
- All fetch results, failures, cron events, and notification outcomes are written to the log table for review.
Admin pages and settings
1) All Products
The main product management screen. Each product is a named container that groups one or more store links across different platforms.
- Product Name: A human-readable label for the item being tracked (e.g. Dyson V10, TCL 65C6K).
- Lowest Price: The minimum current price across all active links for that product, pulled live from the database.
- Owner: The WordPress user who created the product, shown when multiple members share the system.
- Status: Active or Inactive. Inactive products are skipped during scheduled cron checks.
- Actions: Pause or activate tracking, open Link Management, or permanently delete the product and all its links.
2) Link Management
Per-product detail page for adding, editing, and removing individual store links. Also controls notification settings for that product.
- Store Links: Add one or more URLs per supported platform. Each link accepts an optional label such as
Blue 128GB to distinguish product variants.
- Check Prices Now: Triggers an immediate manual price fetch for all links on this product. Consumes the user's daily query quota.
- Price Table: Shows Store, Label, Previous Price, Current Price, trend indicator (↑ ↓ →), Last Check timestamp, and a per-link check button.
- Notification Threshold: The minimum percentage drop required before a Telegram alert fires for this product. Overrides the global default.
- Telegram Username: Per-product notification target. Leave empty to fall back to the user-level or global default username.
3) Users
Admin panel for approving and managing members who use the public-facing shortcode panel.
- Approval Status: New registrations are held as Pending until an admin explicitly approves them. Unapproved users cannot log in to the tracking panel.
- Daily Query Limit: How many price check requests a user can trigger per day. Default is 25. Adjustable per user from this panel.
- Usage Summary: Each user's product count, link count, quota used today, remaining quota, and account status at a glance.
- Approval Notifications: Approving an account automatically sends the user both an email and a Telegram message to confirm access.
4) Settings
Central configuration for all plugin behaviour, split into four groups.
Telegram
- Bot Token: The token received from BotFather. All notifications are sent through this bot.
- Bot Username: The bot username users must message first to activate private notifications. Used to generate the
/start link.
- Default Telegram Username: Fallback notification target used when no product-specific or user-specific username is set.
General Settings
- Check Schedule: Hourly distributed queue. Checks are spread between 10:00 and 23:00 in 12 equal daily slots.
- Default Notification Threshold (%): The minimum price drop percentage that triggers an alert. Product-level settings override this value.
- Delay Between Requests (Seconds): Wait time after each link request to reduce back-to-back hits on store servers. 2–5 seconds is recommended.
Proxy Settings
- Use Proxy for Requests: Enable or disable proxy routing for all store price requests.
- Proxy Behavior: Mixed alternates between direct and proxy connections. Proxy Only routes all requests through the pool.
- Proxy Type: HTTP / HTTPS or SOCKS5. For Webshare and most commercial providers, HTTP is correct.
- Default Host / Port / Username / Password: Used as the fallback when a pool entry does not specify its own credentials.
- Proxy Pool: Multi-line list of proxies in
host:port or user:pass@host:port format. Entries without credentials inherit the default username and password.
Public Usage Settings
- Product Limit Per User: Maximum number of products a single member can add in public usage mode (1–500).
- Link Limit Per Product: Maximum number of store links allowed under a single product record (1–100).
- Product List Page URL: Full URL of the page containing the
[fiyat_takip_paneli] shortcode.
- Link Management Page URL: Only needed if you split the panel into two separate pages instead of using the all-in-one shortcode.
- ScraperAPI Key: Optional API key used as a fallback for specific platform scraping methods.
5) Logs
Running record of all plugin activity, updated after every fetch attempt, cron run, manual check, and approval event.
- Price Fetch Success: Logged with store name, product name, link label, normalised price value, and request metadata (proxy used, response method).
- Price Fetch Failure: Logged with the URL and error reason. Triggers a site-level cooldown to prevent repeated failing requests to the same store.
- Cron Events: Trigger timestamps, queue distribution decisions, and skipped products (inactive or over-quota) are all recorded.
- Approval Events: User approval actions, email send results, and Telegram notification outcomes are written to the log.
Front-end member panel
The plugin exposes a shortcode-based panel so registered members can manage their own tracked products from the public side of the site. Three shortcodes are available.
[fiyat_takip_paneli] — Recommended. All-in-one panel that handles the product list and link management from a single page. Logged-in approved users see their full tracking interface. Non-logged-in visitors see a login prompt.
[fiyat_takip_listesi] — Renders only the product list view. Use this if you prefer to split the list and management into separate pages.
[fiyat_takip_link_yonetimi] — Renders only the link management interface for a selected product. Pair with the list shortcode when using two separate pages.
The panel supports adding products, adding and labelling store links per platform, viewing current and previous prices with trend indicators, triggering manual checks, and updating per-product notification thresholds and Telegram targets — all without WordPress admin access.
Telegram notification flow
Notifications are delivered through a Telegram bot you create and configure. The target username is resolved in priority order: product-level username → user-level username → global default username. The target user must send /start to the bot before private messages can be delivered. Use the Send Test Telegram Message button in Settings to verify delivery after initial bot setup.
User registration and approval flow
- A visitor creates a WordPress account. The account is immediately set to pending — the user cannot log in to the tracking panel yet.
- The plugin sends the site administrator an email notification that a new account is awaiting approval.
- The admin visits the Users page in the Price Tracker menu and approves the account, optionally adjusting the daily query limit.
- Upon approval, the plugin automatically sends the user both an email and a Telegram message confirming that access has been granted.
- The user logs in, accesses the shortcode panel, adds products and store links, and begins receiving price alerts.
Recommended usage flow
- Create a Telegram bot via @BotFather, copy the token, and paste it into the Telegram section of Settings.
- Set a Default Telegram Username and send
/start to your bot from Telegram. Use the Send Test Telegram Message button to confirm delivery works.
- In All Products, add a product name. Open Link Management for that product, paste a store URL from Epey or Trendyol, and optionally add a label.
- Click Check Prices Now to verify that a price is fetched correctly. Review the Logs page if a fetch fails.
- Set your notification threshold — either globally in Settings or per product in Link Management.
- If you want public member access, create a WordPress page, add the
[fiyat_takip_paneli] shortcode, enable WordPress user registration, and enter the page URL in Settings.
- Use the Users page to approve new registrations and manage per-user daily query limits as needed.
Why this plugin is useful
- It turns price monitoring into an automated, set-and-forget workflow with full visibility into every result and failure.
- It delivers alerts through Telegram — no dashboards to check, no email clients — just a direct message when the price moves.
- It supports multi-user operation with per-user quotas and approval gating, making it suitable for community or membership sites.
- It works well for personal price intelligence, group buying scenarios, and any site where tracking product costs over time matters.
Plugin package note: this readme describes the features bundled in the plugin interface and explains how each section should be used in daily operation. Version 11.2.