1c3aa85b8f
build: update package v0.314
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-23 12:34:26 +01:00
7904b09f9f
build: update package v0.313
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-23 11:45:45 +01:00
87ce6d1fb6
build: update package v0.312
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-23 11:12:33 +01:00
6376c559c6
build: update package v0.311
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-23 10:51:50 +01:00
e75a06cee9
build: update package v0.310
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-23 09:57:20 +01:00
e7b43b0df5
build: update package v0.309
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-23 09:32:51 +01:00
c7aaf60e47
build: update package v0.308
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-22 21:01:37 +01:00
f1e58d5e14
ver. 0.307: check-update button + auto-generated changelog
...
- Add "Sprawdź aktualizacje" refresh button in admin sidebar (AJAX check without page reload)
- Add UpdateController::checkUpdate() action clearing session cache and querying update server
- Replace hand-edited changelog.php with auto-generating script (reads manifests + legacy JSON)
- Migrate all legacy changelog entries (0.300-0.001) to changelog-legacy.json
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-22 18:01:12 +01:00
c082c72dc1
build: rebuild update packages v0.304, v0.305 with fixed .updateignore
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-22 17:16:26 +01:00
4e6962a569
build: update package v0.306
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-22 17:13:01 +01:00
04ba93eb9f
ver. 0.306: hide transport methods with no available payment methods
...
When all payment methods for a transport are filtered out by
min_order_amount/max_order_amount limits, the transport is now hidden
from the basket. Prevents showing delivery options with empty payment
method lists (e.g. "Kurier - płatność przy odbiorze" when COD exceeds
max amount).
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-22 17:09:38 +01:00
0ece86f5a8
build: update packages v0.304, v0.305
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-22 16:39:20 +01:00
fdb1423285
ver. 0.305: Fix permutation attribute sorting + free delivery progress bar
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-22 16:33:30 +01:00
5e0bf13960
build: update package v0.304
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-22 15:28:19 +01:00
6e6fc86451
build: update package v0.303
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-22 15:05:19 +01:00
6fdbe61916
ver. 0.302: REST API product variants, attributes dictionary, attribute filtering
...
- Add variant CRUD endpoints (variants, create_variant, update_variant, delete_variant)
- Add dictionaries/attributes endpoint with multilingual names and values
- Add attribute_* filter params for product list filtering by attribute values
- Enrich product detail attributes with translated names (attribute_names, value_names)
- Include variants array in product detail response for parent products
- Add price_brutto validation on product create
- Batch-load attribute/value translations (4 queries instead of N+1)
- Add 43 new unit tests (730 total, 2066 assertions)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-22 14:42:52 +01:00
38cc4f28c1
build: update package v0.301
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-22 13:58:59 +01:00
0c3b87d831
ver. 0.300: Manifest-based update system with checksum verification and file backup
...
Replaces the manual ZIP packaging workflow with an automated build script.
UpdateRepository now supports both manifest JSON format (new) and legacy
_sql.txt/_files.txt format (fallback), enabling a smooth transition for
existing client instances.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-21 23:30:58 +01:00
76042367f9
ver. 0.299: Table column visibility toggle with localStorage persistence
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-21 22:00:22 +01:00
846bad0085
Refactor code structure for improved readability and maintainability
2026-02-21 21:48:03 +01:00
29970ba4ee
ver. 0.297: REST API products endpoint — list, get, create, update
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-19 22:39:48 +01:00
8a633e375f
ver. 0.296: REST API for ordersPRO — orders management, dictionaries, API key auth
...
- New API layer: ApiRouter, OrdersApiController, DictionariesApiController
- Orders API: list (with filters/pagination/updated_since), details, change status, set paid/unpaid
- Dictionaries API: order statuses, transport methods, payment methods
- X-Api-Key authentication via pp_settings.api_key
- OrderRepository: listForApi(), findForApi(), touchUpdatedAt()
- updated_at column on pp_shop_orders for polling support
- api.php: skip session for API requests, route to ApiRouter
- SettingsController: api_key field in system tab
- 30 new tests (666 total, 1930 assertions)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-19 20:25:07 +01:00
ccff6155ce
ver. 0.295: Admin order product editing — add/remove/modify products, AJAX search, stock adjustment
...
- Order product CRUD in admin panel (add, delete, edit quantity/prices)
- AJAX product search endpoint for order edit form
- Automatic stock adjustment when editing order products
- Transport cost recalculation based on free delivery threshold
- Fix: promo price = 0 when equal to base price (no real promotion)
- Clean up stale temp/ build artifacts
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-19 19:30:38 +01:00
662c9f63de
ver. 0.294: Code review complete — 96/96 classes, 27 fixes across all layers
...
Full codebase review of autoload/ directory (96 classes, ~1144 methods).
Fixes: null safety (query/find guards), redundant DI bypass, undefined
variables, missing globals, and Imagick WebP mime type bug in Helpers.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-19 15:26:07 +01:00
dd39587f95
ver. 0.293: Code review fixes — 6 repositories, 16 fixes
...
- ArticleRepository: SQL injection fix (addslashes→parameterized), DRY refactor topArticles/newsListArticles
- AttributeRepository: dead class_exists('\S') blocking cache/temp clear
- CategoryRepository: dead class_exists('\S') blocking SEO link generation (critical)
- BannerRepository: parameterize $today in SQL + null guard on query()
- BasketCalculator: null guard checkProductQuantityInStock + optional DI params
- PromotionRepository: null guard on $basket (production fatal)
- OrderRepository/ShopBasketController/ajax.php: explicit DI in BasketCalculator callers
614 tests, 1821 assertions (+4 new)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-19 01:07:39 +01:00
54691d93e2
Fix update package: consolidate versions 0.292-0.294 into ver. 0.292
...
- Move ZIP to updates/0.20/ver_0.292.zip (correct location)
- Add ver_0.292_files.txt (12 deleted shop classes)
- Consolidate changelog entries (0.292+0.293+0.294 → single 0.292)
- Set versions.php $current_ver = 292
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-18 02:08:30 +01:00
e1cb421aaf
ver. 0.294: Remove all 12 legacy autoload/shop/ classes (~2363 lines)
...
Complete Domain-Driven Architecture migration:
- Phase 1-4: Transport, ProductSet, Coupon, Shop, Search, Basket,
ProductCustomField, Category, ProductAttribute, Promotion
- Phase 5: Order (~562 lines) + Product (~952 lines)
- ~20 Product methods migrated to ProductRepository
- Apilo sync migrated to OrderAdminService
- Production hotfixes: stale Redis cache (prices 0.00), unqualified
Product:: refs in LayoutEngine, object->array template conversion
- AttributeRepository::getAttributeValueById() Redis cache added
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-18 02:05:39 +01:00
3fd59ffa0d
ver. 0.293: front\controls\Site + front\view\Site → front\App + front\LayoutEngine
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-17 22:21:44 +01:00
d14018a5f3
ver. 0.292: ShopProduct + ShopPaymentMethod + ShopPromotion + ShopStatuses + ShopTransport frontend migration to Domain
...
Full migration of front\factory\ — entire directory removed (all 20 classes migrated).
ProductRepository +20 frontend methods, PromotionRepository +5 applyType methods,
TransportRepository +4 cached methods, PaymentMethodRepository +cached frontend methods.
Fix: broken transports_list() in ajax.php replaced with forPaymentMethod().
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-17 21:55:16 +01:00
6181ef958d
ver. 0.291: ShopProducer frontend migration to Domain + Controllers
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-17 20:32:07 +01:00
1ba0c12327
ver. 0.290: ShopCoupon + ShopOrder frontend migration to Domain + Controllers
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-17 19:54:21 +01:00
e671142cee
ver. 0.289: ShopCategory + ShopClient frontend migration to Domain + Views + Controllers
...
ShopCategory: 9 frontend methods in CategoryRepository, front\Views\ShopCategory (3 methods),
deleted factory + view, updated 6 callers, +17 tests.
ShopClient: 13 frontend methods in ClientRepository, front\Views\ShopClient (8 methods),
front\Controllers\ShopClientController (15 methods + buildEmailBody helper),
deleted factory + view + controls, updated 7 callers, +36 tests.
Security fix: removed hardcoded password bypass 'Legia1916'.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-17 10:41:40 +01:00
25348797da
ver. 0.288: BasketCalculator + ShopBasketController migration, cms\Layout removal
...
- Migrate front\factory\ShopBasket → Domain\Basket\BasketCalculator (4 static methods, 18 callers updated)
- Migrate front\controls\ShopBasket → front\Controllers\ShopBasketController (camelCase, instance methods)
- Add snake_case→camelCase action dispatch for new controllers in Site::route()
- Update title()/page_title() to check front\Controllers\ before fallback
- Remove cms\Layout class (replaced by $layoutsRepo->find())
- Add 8 tests for BasketCalculator (484 tests, 1528 assertions)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-17 09:38:45 +01:00
a7e44f23fa
ver. 0.287: Scontainers + ShopAttribute frontend migration to Domain
...
- Scontainers: frontScontainerDetails() with Redis cache in ScontainersRepository
- Scontainers: new front\Views\Scontainers VIEW, deleted factory + view legacy
- ShopAttribute: frontAttributeDetails(), frontValueDetails() with Redis cache in AttributeRepository
- ShopAttribute: clearFrontCache() per attribute/value + language
- ShopAttribute: deleted front\factory\ShopAttribute, updated 4 callers
- Tests: 476 OK, 1512 assertions (+6 frontend tests)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-17 08:47:21 +01:00
e2a821a10c
ver. 0.286: Layouts, Menu, Pages frontend migration to Domain
...
- Add 6 frontend methods to LayoutsRepository (Redis cache, 3-level fallback)
- Add 6 frontend methods to PagesRepository (Redis cache, recursive pages)
- Create front\Views\Menu (clean VIEW replacing front\view\Menu)
- Delete front\factory\Layouts, Menu, Pages + front\view\Menu + dead submenu.php
- Fix null $lang_id TypeError in check_url_params() (remove string type hint + ?? '')
- Optimize Helpers::htacces() from 3 layout calls to 1
- Tests: 470 OK, 1484 assertions (+16 new)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-17 08:21:53 +01:00
28b30c1e56
ver. 0.285: Tpl → Shared\Tpl namespace, CurlServer removal, thumb.php fix
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-17 00:13:59 +01:00
fc7d18123d
ver. 0.284: DbModel elimination, update packages for 0.283-0.284
...
- Removed class.DbModel.php — only consumer (shop\Promotion) now has
inlined constructor + __get()
- Created update packages: ver_0.283.zip (S→Helpers migration, ~130 files),
ver_0.284.zip (DbModel removal)
- Updated docs: CHANGELOG, PROJECT_STRUCTURE, FRONTEND_REFACTORING_PLAN
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-16 23:31:03 +01:00
285cbe5515
ver. 0.282: Banners frontend migration, Cache cleanup, Shared\Cache namespace
...
- Banners frontend: front\Views\Banners (new), BannerRepository +2 frontend methods,
front\view\Site przepięty, usunięte front\factory\Banners i front\view\Banners
- Cache cleanup: eliminacja legacy class.Cache.php (file-based cache),
13 metod front\factory przepiętych z \Cache::fetch/store na CacheHandler
- Shared\Cache namespace: CacheHandler i RedisConnection przeniesione do Shared\Cache\,
60 odwołań CacheHandler i 12 odwołań RedisConnection przepiętych,
usunięte backward-compat wrappery class.CacheHandler.php i class.RedisConnection.php
- Naprawione rozbieżności kluczy cache (random_products, category_name)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-16 21:25:50 +01:00
723cb1a5eb
ver. 0.280: Articles frontend migration, class.Article removal, Settings facade cleanup
...
- Add 8 frontend methods to ArticleRepository (with Redis cache)
- Create front\Views\Articles (rendering + utility methods)
- Rewire front\view\Site::show() and front\controls\Site::route() to repo + Views
- Update 5 article templates to use \front\Views\Articles::
- Convert front\factory\Articles and front\view\Articles to facades
- Remove class.Article (entity + static methods migrated to repo + Views)
- Remove front\factory\Settings facade (already migrated)
- Fix: eliminate global $lang from articleNoindex(), inline page sort query
- Tests: 450 OK, 1431 assertions (+13 new)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-16 15:52:03 +01:00
3b32ea0b9b
ver. 0.279: Newsletter frontend migration, Languages facade elimination, bug fix newsletter_unsubscribe
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-16 15:11:38 +01:00
59b36f48b1
ver. 0.278: Settings + Languages frontend migration, bug fix get_single_settings_value
...
- Add cached frontend methods to existing Domain repositories (allSettings, getSingleValue, defaultLanguage, activeLanguages, translations)
- Convert front\factory\Settings and Languages to facades delegating to Domain repositories
- Fix get_single_settings_value() - was hardcoded to 'firm_name', now uses $param correctly
- Add CacheHandler stub methods (get/set/exists) to test bootstrap
- Establish architectural rule: Domain classes are shared between admin and frontend
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-16 13:50:27 +01:00
74343b0f33
ver. 0.277: ShopProduct factory, Dashboard, Update migration, legacy cleanup, admin\App
...
- ShopProduct factory: full migration (~40 ProductRepository methods, ~30 controller actions)
- Dashboard: Domain+DI migration (DashboardRepository + DashboardController)
- Update: Domain+DI migration (UpdateRepository + UpdateController, template rewrite)
- Renamed admin\Site to admin\App, removed dead fallback routing
- Removed all legacy folders: admin/controls, admin/factory, admin/view
- Newsletter: switched from admin\factory\Articles to ArticleRepository
- 414 tests, 1335 assertions passing
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-16 01:06:29 +01:00
7cc0cadd6d
ver. 0.276: ShopOrder migration, Integrations cleanup, global admin search
2026-02-15 16:41:48 +01:00
698a25b6f3
chore(updates): add 0.275 changelog entry and bump versions
2026-02-15 15:34:52 +01:00
dc7751c9de
ver. 0.274 - ShopClients Domain+DI migration
2026-02-15 15:03:24 +01:00
618ba4f446
updates: add ver_0.273 package and release metadata
2026-02-15 11:44:01 +01:00
ca445d40d9
ver. 0.272 - ShopProductSets refactor + update package
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-15 10:29:21 +01:00
67b0a2bb6a
ver. 0.271 - ShopAttribute refactor + update package
2026-02-14 21:12:17 +01:00
137b15c97b
ver. 0.270 - Apilo payment/status sync hardening
2026-02-14 20:27:01 +01:00
818cd7f2c0
ver. 0.269: ShopPaymentMethod refactor + Apilo keepalive
2026-02-14 15:22:02 +01:00