Commit Graph

165 Commits

Author SHA1 Message Date
5d775e8eb6 feat: fixed width and preloader for product view page 2025-12-08 13:59:27 +03:00
6ed2fd2062 feat: increase default per_page products 2025-12-08 02:34:48 +03:00
a35ec664a1 reformat: codestyle 2025-12-08 00:29:33 +03:00
8da91229fb reformat: codestyle 2025-12-08 00:29:33 +03:00
e73042bd2b reformat: codestyle 2025-12-08 00:29:33 +03:00
82ab8134e1 fix: order creation 2025-12-08 00:29:33 +03:00
4a3dcc11d1 feat(pulse): implement reliable event tracking and delivery system
Implement comprehensive event tracking system for TeleCart Pulse that ensures
all user interactions and order events are reliably captured and delivered to
the analytics platform, even in case of network failures or service outages.

Business Value:
- Guaranteed event delivery: All events are stored in database before sending,
  ensuring no data loss even if SaaS service is temporarily unavailable
- Automatic retry mechanism: Failed events are automatically retried with
  configurable attempts, reducing manual intervention
- Real-time monitoring: Admin dashboard displays event statistics (pending,
  sent, failed) to track system health and delivery status
- Data integrity: Idempotency keys prevent duplicate events, ensuring accurate
  analytics and metrics
- Performance optimization: Statistics are cached for 1 hour to reduce database
  load while maintaining visibility

Key Features:
- Event queue system: Events are queued in database with status tracking
  (pending/sent/failed)
- Asynchronous processing: Events are sent via background tasks, not blocking
  user interactions
- Error tracking: Failed events include detailed error reasons for debugging
- Campaign tracking: Only events with valid campaign_id and tracking_id are
  stored, ensuring data quality
- Admin visibility: Statistics dashboard shows delivery status at a glance

This system ensures reliable data collection for campaign analytics, A/B testing,
and performance metrics, providing accurate insights for business decisions.
2025-12-08 00:29:33 +03:00
1f5ef4353d build: fix cache hash for admin 2025-12-08 00:29:33 +03:00
16a258ab68 feat: add cron service to run telecart schedule tasks 2025-12-07 19:55:05 +03:00
10c1dfa5a3 Add comprehensive unit tests for scheduler components 2025-12-07 19:55:05 +03:00
64f2fc5364 reformat: fix codestyle 2025-12-07 19:55:05 +03:00
7372b9c330 feat: add UI for CRON Scheduler 2025-12-07 19:55:05 +03:00
65973d2d79 feat: add scheduler module 2025-12-07 19:55:05 +03:00
389b4ab186 wip 2025-12-07 19:55:05 +03:00
216ed7e522 build: fix cache hash for admin 2025-12-07 19:55:04 +03:00
9901d9e146 reformat: fix codestyle 2025-12-06 18:23:13 +03:00
615e8c54a6 feat: add aspect ratio selector for products_carousel 2025-12-06 18:18:34 +03:00
1fbbb7b6db feat(texts): add options to redefine text for zero product prices 2025-12-06 17:33:28 +03:00
f539bbfbbf feat: move getImage response to admin 2025-12-06 17:33:28 +03:00
cd060610fe feat(products-feed): replace fixed image dimensions with aspect ratio selection
- Added image aspect ratio selection (1:1, 4:5, 3:4, 2:3) to ProductsFeed block configuration in Admin panel
- Removed manual width/height input fields
- Updated ProductsFeed block in SPA to send aspect ratio parameter instead of dimensions
- Implemented backend logic to calculate image height based on selected aspect ratio and base width (300px)
- Updated default configuration for products_feed block
- Added descriptive help text for each aspect ratio option in the dropdown
2025-12-06 15:52:30 +03:00
13e5bce8a5 feat: better algorythm for image resize 2025-12-06 15:52:30 +03:00
f34c12e043 tests: tests for image tool 2025-12-06 13:07:19 +03:00
38668fb4a7 feat: image processing improve 2025-12-06 12:59:55 +03:00
4e416ead49 refactor: use Symfony Foundation to handle HTTP requests and responses 2025-12-05 15:36:19 +03:00
95dd545dc5 fix: pulse ingest 2025-12-05 02:38:46 +03:00
116821a209 feat: show module version in admin 2025-12-04 22:16:23 +03:00
f1a39eeb00 feat: expose module version 2025-12-04 22:07:41 +03:00
44d2af3b30 fix: settings numeric error 2025-12-04 14:46:30 +03:00
3423dd1727 fix(spa): remove html in price for some opencart custom themes 2025-12-04 14:01:16 +03:00
d6a43605ac fix(spa): remove html in price for some opencart custom themes 2025-12-04 13:00:56 +03:00
17865d8af4 feat(admin): add more details for admin errors 2025-12-04 11:25:02 +03:00
8f6af04e73 fix(admin): fix error when chat_id is string 2025-12-04 11:23:00 +03:00
418a2fc5bb chore: update module version 2025-12-03 23:12:47 +03:00
b60c77e453 feat: Add TeleCart Pulse heartbeat telemetry 2025-12-03 23:11:58 +03:00
0ab09aad10 fix: switch between code and visual for custom forms 2025-12-02 20:03:43 +03:00
64ead29583 feat(search): improve search UI with sticky bar and keyboard handling
- Add fixed search bar with glassmorphism effect (backdrop blur, semi-transparent)
- Implement clear search button in DaisyUI style
- Auto-hide keyboard on Enter key press and scroll events
- Remove search page title for cleaner UI
- Use DaisyUI theme-aware background colors instead of fixed white
- Add fixed padding offset for content below search bar
2025-12-01 21:55:16 +03:00
cedc49f0d5 feat: Use yaMetrika number in settings 2025-12-01 19:44:14 +03:00
c670e38392 reformat: fix codestyle 2025-12-01 18:18:29 +03:00
f02ef42cb7 refactor: use phpstan stubs instead of opencart sources 2025-12-01 18:17:32 +03:00
5fe4aac7eb refactor: correct static analyze errors 2025-12-01 18:04:54 +03:00
27c99d9966 reformat: correct codestyle 2025-12-01 17:37:30 +03:00
9f34315adb tests: fix order tests 2025-12-01 17:36:34 +03:00
3716e89811 feat: set environment variables 2025-12-01 17:28:49 +03:00
3b2e2cb656 fix: Fix errors and small improvements 2025-12-01 17:24:14 +03:00
49b0201b5f Improve TeleCart Pulse ETL, time handling and customer tracking
- Ensure Pulse store always prefers tracking_id from backend response when saving Telegram customer data.
- Route storeOrder calls through shared ftch helper instead of manual fetch.
- Remove legacy catalog controller extension/tgshop/handle and obsolete telecart_cache migration and setting mapping for Yandex Metrika.
- Update migrations framework to rely on Carbon, sort migration files deterministically and store executed_at as a Carbon timestamp without DEFAULT CURRENT_TIMESTAMP.
- Introduce DateUtils helper to convert timestamps between UTC and system time zone and use it in ETLHandler responses.
- Make TeleCartPulse PayloadSigner and TeleCartPulseService accept nullable secrets/API keys but fail fast when secret is missing.
- Normalize ETL customer payload shape and convert all date fields to UTC JSON timestamps.
- Default created order customer_id to 0 when no OpenCart customer id is available.
2025-12-01 16:11:40 +03:00
ef785654b9 feat: track and push TeleCart Pulse events 2025-11-30 16:52:32 +03:00
fc8044484e build: update Makefile and change files chmod 2025-11-30 12:08:17 +03:00
e8d0f8a819 feat: add TeleCartPulse telemetry system and ETL endpoints
- Add TeleCartPulse service for event tracking and analytics
  - Implement PayloadSigner for secure payload signing/verification
  - Add StartParamSerializer for campaign parameter handling
  - Create TeleCartPulseServiceProvider for dependency injection
  - Add PulseEvents constants and exception classes

- Add TelemetryHandler for ingesting client-side events
  - Implement /ingest endpoint for receiving webapp events
  - Support WEBAPP_OPEN event tracking with campaign metadata

- Add ETLHandler for customer data export
  - Implement /customers endpoint for ETL processes
  - Add /customers/meta endpoint for pagination metadata
  - Support filtering by updated_at timestamp
  - Include customer metrics: orders count, total spent, etc.

- Add InvalidApiTokenException for API key validation
- Update Request class to support API key extraction
- Add Utils helper methods for domain extraction
- Integrate telemetry in frontend SPA (webapp open event)
- Add TeleCartPulseView in admin panel for API key configuration
- Update routes to include new telemetry and ETL endpoints
2025-11-30 11:54:24 +03:00
51f462922e feat: provide current opencart timezone to App 2025-11-30 11:54:24 +03:00
74e062e6bb refactor: use Carbon for dates 2025-11-30 11:54:24 +03:00