Install
This is the repository archive. It installs, but the folder name will carry the branch suffix and updates will not flow.
Install straight from GitHub with WP-CLI:
wp plugin install https://github.com/baturkacamak/uciki-deals-engine/archive/refs/heads/main.zipuciki-deals-engine is a custom WordPress plugin for sourcing game deals and free games, storing normalized offer data, and publishing market-aware content for uciki.com.
The plugin currently focuses on:
- IsThereAnyDeal-powered deal discovery
- daily deals digests
- free-game posts
- multi-store offer normalization
- market/language-aware publishing
- dynamic snapshot-backed digest pages
What Changed
This repository is no longer just a simple “scrape and publish” plugin.
It now includes:
- a normalized
uciki_deals_*data model for stores, games, offers, snapshots, runs, and generated posts - a native WordPress settings screen instead of ad-hoc config-only behavior
- runtime/debug state in wp-admin
- ITAD session bootstrap logic
- store URL normalization and redirect cleanup
- store/CDN image resolution strategies
- score/review enrichment for digest cards
- dynamic
uciki_deals_digestpages backed by stored snapshots instead ofpost_content
Architecture
High-level flow:
- Source payloads are loaded from plugin settings.
- ITAD data is fetched and normalized into
uciki_deals_*tables. - Daily and free-game flows are selected separately.
- Publishing creates:
- standard posts for free games
uciki_deals_digestentries for daily deal pages
- Daily digest pages render from
_uciki_deals_snapshot_payloadat request time.
Key components:
inc/Core/Settings/SettingsRepository.phpinc/Core/Settings/MarketTargetRepository.phpinc/Core/Settings/RuntimeStateRepository.phpinc/Core/Utility/Scraper.phpinc/Core/Utility/GameInformationDatabase.phpinc/Core/Utility/OfferSelectionService.phpinc/Core/Utility/OfferImageResolver.phpinc/Core/Utility/GameReviewLookup.phpinc/Modules/AdminSettingsModule.phpinc/Modules/SetupModule.phpinc/Modules/ScheduleModule.phpinc/Modules/DigestModule.phpinc/Post/Poster.phpinc/Post/Strategy/DailyDigestPostStrategy.phpinc/Post/Strategy/FreeGamesPostStrategy.phpinc/Post/DailyDigestSnapshotRenderer.php
Data Model
The plugin keeps uciki_deals_source_* tables for imported source records and uses normalized uciki_deals_* tables for publishing and runtime operations.
See:
docs/data-model.md
Core tables include:
uciki_deals_storesuciki_deals_market_targetsuciki_deals_gamesuciki_deals_offersuciki_deals_offer_snapshotsuciki_deals_generated_postsuciki_deals_runs
Publishing Model
Daily digests
- stored as
uciki_deals_digest - URL is still a normal WordPress permalink
- visual content is rendered dynamically from snapshot data
post_contentis no longer the source of truth
Free games
- published as regular WordPress posts
- triggered independently from the daily digest flow
Admin Features
The plugin includes a native settings page under WordPress admin.
Current admin features:
- general plugin settings
- source payload management
- market target defaults
- separate posting settings for daily and free-game flows
- runtime summaries
- test actions
- manual run actions
- draft cleanup helpers
Source Notes
The current source implementation is centered on IsThereAnyDeal.
Important behavior:
- ITAD session bootstrap is automatic
- redirects are resolved to canonical store URLs
- tracking query strings are removed
- store image resolution prefers known store/CDN patterns
- Epic uses catalog lookup where possible and falls back when required
Local Theme Note
This repository is the plugin only.
Theme-side rendering and styling changes used by uciki.local live outside this repository, inside the site theme.
Docs
docs/data-model.mddocs/market-rollout.md