Latest Releases
These releases come straight from our repositories. Latest releases may not be published yet.
breezefront / module-breeze-content-builder-migration
1.0.0 Aprbreezefront / module-breeze-theme-editor
1.0.0-beta.3 Aprswissup / argento-breeze
2.11.0 Apr-
2.11.0
Report (rev.4)
An exception was thrown with the following message and trace:
404: Not Found
#0 /vendor/php-http/httplug/src/Promise/HttpFulfilledPromise.php(31): Github\HttpClient\Plugin\GithubExceptionThrower->Github\HttpClient\Plugin\{closure}() #1 /vendor/knplabs/github-api/lib/Github/HttpClient/Plugin/GithubExceptionThrower.php(28): Http\Client\Promise\HttpFulfilledPromise->then() #2 /vendor/php-http/client-common/src/PluginChain.php(46): Github\HttpClient\Plugin\GithubExceptionThrower->handleRequest() #3 /vendor/php-http/client-common/src/PluginChain.php(61): Http\Client\Common\PluginChain->Http\Client\Common\{closure}() #4 /vendor/php-http/client-common/src/Plugin/RedirectPlugin.php(204): Http\Client\Common\PluginChain->__invoke() #5 /vendor/php-http/httplug/src/Promise/HttpFulfilledPromise.php(31): Http\Client\Common\Plugin\RedirectPlugin->Http\Client\Common\Plugin\{closure}() #6 /vendor/php-http/client-common/src/Plugin/RedirectPlugin.php(175): Http\Client\Promise\HttpFulfilledPromise->then() #7 /vendor/php-http/client-common/src/PluginChain.php(46): Http\Client\Common\Plugin\RedirectPlugin->handleRequest() #8 /vendor/php-http/client-common/src/Plugin/HistoryPlugin.php(39): Http\Client\Common\PluginChain->Http\Client\Common\{closure}() #9 /vendor/php-http/client-common/src/PluginChain.php(46): Http\Client\Common\Plugin\HistoryPlugin->handleRequest() #10 /vendor/knplabs/github-api/lib/Github/HttpClient/Plugin/GithubExceptionThrower.php(28): Http\Client\Common\PluginChain->Http\Client\Common\{closure}() #11 /vendor/php-http/client-common/src/PluginChain.php(46): Github\HttpClient\Plugin\GithubExceptionThrower->handleRequest() #12 /vendor/php-http/client-common/src/PluginChain.php(61): Http\Client\Common\PluginChain->Http\Client\Common\{closure}() #13 /vendor/php-http/client-common/src/PluginClient.php(87): Http\Client\Common\PluginChain->__invoke() #14 /vendor/php-http/client-common/src/HttpMethodsClient.php(148): Http\Client\Common\PluginClient->sendRequest() #15 /vendor/php-http/client-common/src/HttpMethodsClient.php(107): Http\Client\Common\HttpMethodsClient->sendRequest() #16 /vendor/php-http/client-common/src/HttpMethodsClient.php(55): Http\Client\Common\HttpMethodsClient->send() #17 /vendor/knplabs/github-api/lib/Github/Api/AbstractApi.php(92): Http\Client\Common\HttpMethodsClient->get() #18 /vendor/knplabs/github-api/lib/Github/Api/AcceptHeaderTrait.php(19): Github\Api\AbstractApi->get() #19 /vendor/knplabs/github-api/lib/Github/Api/Repository/Contents.php(259): Github\Api\Repository\Contents->get() #20 /app/Jobs/GeneratePackage.php(246): Github\Api\Repository\Contents->archive() #21 /app/Jobs/GeneratePackage.php(99): App\Jobs\GeneratePackage->_download() #22 /app/Jobs/GeneratePackage.php(63): App\Jobs\GeneratePackage->download() #23 /vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): App\Jobs\GeneratePackage->handle() #24 /vendor/laravel/framework/src/Illuminate/Container/Util.php(41): Illuminate\Container\BoundMethod::Illuminate\Container\{closure}() #25 /vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(93): Illuminate\Container\Util::unwrapIfClosure() #26 /vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\Container\BoundMethod::callBoundMethod() #27 /vendor/laravel/framework/src/Illuminate/Container/Container.php(661): Illuminate\Container\BoundMethod::call() #28 /vendor/laravel/framework/src/Illuminate/Bus/Dispatcher.php(128): Illuminate\Container\Container->call() #29 /vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(141): Illuminate\Bus\Dispatcher->Illuminate\Bus\{closure}() #30 /vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(116): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}() #31 /vendor/laravel/framework/src/Illuminate/Bus/Dispatcher.php(132): Illuminate\Pipeline\Pipeline->then() #32 /vendor/laravel/framework/src/Illuminate/Queue/CallQueuedHandler.php(123): Illuminate\Bus\Dispatcher->dispatchNow() #33 /vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(141): Illuminate\Queue\CallQueuedHandler->Illuminate\Queue\{closure}() #34 /vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(116): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}() #35 /vendor/laravel/framework/src/Illuminate/Queue/CallQueuedHandler.php(122): Illuminate\Pipeline\Pipeline->then() #36 /vendor/laravel/framework/src/Illuminate/Queue/CallQueuedHandler.php(70): Illuminate\Queue\CallQueuedHandler->dispatchThroughMiddleware() #37 /vendor/laravel/framework/src/Illuminate/Queue/Jobs/Job.php(98): Illuminate\Queue\CallQueuedHandler->call() #38 /vendor/laravel/framework/src/Illuminate/Queue/Worker.php(434): Illuminate\Queue\Jobs\Job->fire() #39 /vendor/laravel/framework/src/Illuminate/Queue/Worker.php(384): Illuminate\Queue\Worker->process() #40 /vendor/laravel/framework/src/Illuminate/Queue/Worker.php(175): Illuminate\Queue\Worker->runJob() #41 /vendor/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php(135): Illuminate\Queue\Worker->daemon() #42 /vendor/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php(118): Illuminate\Queue\Console\WorkCommand->runWorker() #43 /vendor/laravel/horizon/src/Console/WorkCommand.php(51): Illuminate\Queue\Console\WorkCommand->handle() #44 /vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Laravel\Horizon\Console\WorkCommand->handle() #45 /vendor/laravel/framework/src/Illuminate/Container/Util.php(41): Illuminate\Container\BoundMethod::Illuminate\Container\{closure}() #46 /vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(93): Illuminate\Container\Util::unwrapIfClosure() #47 /vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\Container\BoundMethod::callBoundMethod() #48 /vendor/laravel/framework/src/Illuminate/Container/Container.php(661): Illuminate\Container\BoundMethod::call() #49 /vendor/laravel/framework/src/Illuminate/Console/Command.php(194): Illuminate\Container\Container->call() #50 /vendor/symfony/console/Command/Command.php(312): Illuminate\Console\Command->execute() #51 /vendor/laravel/framework/src/Illuminate/Console/Command.php(163): Symfony\Component\Console\Command\Command->run() #52 /vendor/symfony/console/Application.php(1022): Illuminate\Console\Command->run() #53 /vendor/symfony/console/Application.php(314): Symfony\Component\Console\Application->doRunCommand() #54 /vendor/symfony/console/Application.php(168): Symfony\Component\Console\Application->doRun() #55 /vendor/laravel/framework/src/Illuminate/Console/Application.php(102): Symfony\Component\Console\Application->run() #56 /vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(155): Illuminate\Console\Application->run() #57 /artisan(35): Illuminate\Foundation\Console\Kernel->handle() #58 {main}
swissup / argento-m2
1.53.1 Apr-
1.53.1
Report (rev.1)
Package was generated and uploaded to GitHub on with the following dependencies:
swissup/module-ajaxpro:1.7.34
swissup/module-ajaxsearch:1.14.6
swissup/module-amp:1.6.0
swissup/module-askit:1.14.21
swissup/module-attributepages:1.8.1
swissup/module-chat-gpt-assistant:1.1.4
swissup/module-compare:1.2.8
swissup/module-easy-slide:1.8.16
swissup/module-easybanner:1.9.23
swissup/module-easycatalogimg:1.5.13
swissup/module-easytabs:1.13.2
swissup/module-fblike:1.3.9
swissup/module-featured-attributes:1.1.9
swissup/module-font-awesome:1.4.4
swissup/module-gdpr:1.8.5
swissup/module-gdpr-askit:1.1.3
swissup/module-gdpr-reviewreminder:1.0.0
swissup/module-gdpr-testimonials:1.1.1
swissup/module-highlight:1.11.9
swissup/module-hover-gallery:1.3.15
swissup/module-hreflang:1.6.11
swissup/module-hreflang-import-export:1.0.1
swissup/module-lightboxpro:1.3.10
swissup/module-navigationpro:1.17.35
swissup/module-pagespeed:1.17.3
swissup/module-pro-labels:1.8.1
swissup/module-pro-labels-configurable-product:1.0.9
swissup/module-quantity-switcher:1.2.1
swissup/module-reviewreminder:1.1.19
swissup/module-rich-snippets:1.7.18
swissup/module-seo-canonical:1.11.9
swissup/module-seo-core:1.3.10
swissup/module-seo-cross-links:1.1.26
swissup/module-seo-html-sitemap:1.1.21
swissup/module-seo-images:1.3.21
swissup/module-seo-pager:1.3.5
swissup/module-seo-templates:1.7.10
swissup/module-seo-urls:1.5.54
swissup/module-seo-xml-sitemap:1.1.16
swissup/module-sold-together:1.11.3
swissup/module-sold-together-custom-options:1.0.2
swissup/module-sold-together-email:1.0.0
swissup/module-sold-together-import-export:1.0.1
swissup/module-testimonials:1.4.0
swissup/module-theme-editor-argento-chic:1.7.4
swissup/module-theme-editor-argento-essence:1.7.3
swissup/module-theme-editor-argento-flat:1.7.3
swissup/module-theme-editor-argento-force:1.4.2
swissup/module-theme-editor-argento-home:1.2.3
swissup/module-theme-editor-argento-luxury:1.7.2
swissup/module-theme-editor-argento-mall:1.7.3
swissup/module-theme-editor-argento-marketplace:1.7.3
swissup/module-theme-editor-argento-pure2:1.6.4
swissup/module-theme-editor-argento-stripes:1.7.5
swissup/theme-frontend-argento-blank:1.49.4
swissup/theme-frontend-argento-chic:1.48.2
swissup/theme-frontend-argento-essence:1.46.3
swissup/theme-frontend-argento-flat:1.46.5
swissup/theme-frontend-argento-force:1.48.2
swissup/theme-frontend-argento-home:1.48.4
swissup/theme-frontend-argento-luxury:1.48.1
swissup/theme-frontend-argento-mall:1.48.1
swissup/theme-frontend-argento-marketplace:1.48.3
swissup/theme-frontend-argento-pure2:1.46.5
swissup/theme-frontend-argento-stripes:1.48.2
swissup/module-core:1.12.26
swissup/module-suggestpage:1.2.14
swissup/module-image-optimizer:1.0.11
swissup/module-theme-editor:1.11.6
Changelog (autogenerated)
swissup/module-lightboxpro — 1.3.10 (was 1.3.9)
swissup/theme-frontend-argento-home — 1.48.4 (was 1.48.3)
-
1.53.0
Report (rev.1)
Package was generated and uploaded to GitHub on with the following dependencies:
swissup/module-ajaxpro:1.7.34
swissup/module-ajaxsearch:1.14.6
swissup/module-amp:1.6.0
swissup/module-askit:1.14.21
swissup/module-attributepages:1.8.1
swissup/module-chat-gpt-assistant:1.1.4
swissup/module-compare:1.2.8
swissup/module-easy-slide:1.8.16
swissup/module-easybanner:1.9.23
swissup/module-easycatalogimg:1.5.13
swissup/module-easytabs:1.13.2
swissup/module-fblike:1.3.9
swissup/module-featured-attributes:1.1.9
swissup/module-font-awesome:1.4.4
swissup/module-gdpr:1.8.5
swissup/module-gdpr-askit:1.1.3
swissup/module-gdpr-reviewreminder:1.0.0
swissup/module-gdpr-testimonials:1.1.1
swissup/module-highlight:1.11.9
swissup/module-hover-gallery:1.3.15
swissup/module-hreflang:1.6.11
swissup/module-hreflang-import-export:1.0.1
swissup/module-lightboxpro:1.3.9
swissup/module-navigationpro:1.17.35
swissup/module-pagespeed:1.17.3
swissup/module-pro-labels:1.8.1
swissup/module-pro-labels-configurable-product:1.0.9
swissup/module-quantity-switcher:1.2.1
swissup/module-reviewreminder:1.1.19
swissup/module-rich-snippets:1.7.18
swissup/module-seo-canonical:1.11.9
swissup/module-seo-core:1.3.10
swissup/module-seo-cross-links:1.1.26
swissup/module-seo-html-sitemap:1.1.21
swissup/module-seo-images:1.3.21
swissup/module-seo-pager:1.3.5
swissup/module-seo-templates:1.7.10
swissup/module-seo-urls:1.5.54
swissup/module-seo-xml-sitemap:1.1.16
swissup/module-sold-together:1.11.3
swissup/module-sold-together-custom-options:1.0.2
swissup/module-sold-together-email:1.0.0
swissup/module-sold-together-import-export:1.0.1
swissup/module-testimonials:1.4.0
swissup/module-theme-editor-argento-chic:1.7.4
swissup/module-theme-editor-argento-essence:1.7.3
swissup/module-theme-editor-argento-flat:1.7.3
swissup/module-theme-editor-argento-force:1.4.2
swissup/module-theme-editor-argento-home:1.2.3
swissup/module-theme-editor-argento-luxury:1.7.2
swissup/module-theme-editor-argento-mall:1.7.3
swissup/module-theme-editor-argento-marketplace:1.7.3
swissup/module-theme-editor-argento-pure2:1.6.4
swissup/module-theme-editor-argento-stripes:1.7.5
swissup/theme-frontend-argento-blank:1.49.4
swissup/theme-frontend-argento-chic:1.48.2
swissup/theme-frontend-argento-essence:1.46.3
swissup/theme-frontend-argento-flat:1.46.5
swissup/theme-frontend-argento-force:1.48.2
swissup/theme-frontend-argento-home:1.48.3
swissup/theme-frontend-argento-luxury:1.48.1
swissup/theme-frontend-argento-mall:1.48.1
swissup/theme-frontend-argento-marketplace:1.48.3
swissup/theme-frontend-argento-pure2:1.46.5
swissup/theme-frontend-argento-stripes:1.48.2
swissup/module-core:1.12.26
swissup/module-suggestpage:1.2.14
swissup/module-image-optimizer:1.0.11
swissup/module-theme-editor:1.11.6
Changelog (autogenerated)
swissup/module-ajaxpro — 1.7.34 (was 1.7.33)
swissup/module-ajaxsearch — 1.14.6 (was 1.13.30)
-
Version 1.14.6 53fedd
-
feat: add Backpressure rate limiting with cross-version compatibility (v1.14.5)
- Add Model/Backpressure/Compat/ stubs for Magento < 2.4.4 compatibility
- Add RequestTypeExtractor and LimitConfigManager with class_alias pattern
- Register ajaxsearch/ajaxsearchCategoryOptions fields as rate-limited
- Add backpressure DI config (CompositeRequestTypeExtractor + CompositeLimitConfigManager)
- Add backpressure config defaults: 100 req/hour, configurable via Admin
- Add Admin UI group: Stores > Config > Ajaxsearch > Rate Limiting 457137 -
Version 1.14.5 7b926b
-
Version 1.14.4 6ccc28
-
refactor: remove Backpressure integration (v1.14.4)
Removed GraphQL Backpressure rate limiting functionality due to backward
compatibility challenges across Magento versions 2.3.x - 2.4.x.
The conditional class loading approach caused DI compilation failures on
various Magento versions because:
- PhpScanner parses all Model/* files regardless of conditional checks
- 'use' statements trigger autoloader before conditional returns execute
- Fully Qualified Names (FQN) don't prevent DI compiler from trying to
instantiate classes that implement non-existent interfaces
Removed:
- Model/Backpressure/RequestTypeExtractor.php
- Model/Backpressure/LimitConfigManager.php
- Backpressure DI configuration from etc/di.xml (lines 73-111)
- Backpressure default config from etc/config.xml
- Backpressure admin panel section from etc/adminhtml/system.xml
Kept (working on ALL Magento versions):
- Security validation (search ≥2 chars OR category >0)
- GraphQL schema improvements
- Custom exception handling and logging
- All resolver validation logic
Version: 1.14.4
Reason: Versions 1.14.0-1.14.3 had compatibility issues
Future: Backpressure rate limiting may be released as a separate
optional module for Magento 2.4.4+ installations. d07274 -
Version 1.14.3 87c236
-
refactor: move backpressure DI config to commented section in di.xml
Instead of separate sample file, add backpressure DI configuration as
commented section in main etc/di.xml. This makes it easier for users
to enable rate limiting - just uncomment the section.
Changes:
- Remove etc/di_backpressure.xml.sample
- Add commented backpressure DI blocks to etc/di.xml with instructions
- Users on Magento 2.4.4+ can simply uncomment to enable rate limiting
Instructions are now in the same file where they're needed. b5095c -
Fix autoloader issues: Use FQN instead of 'use' statements for Backpressure classes
- Removed 'use' statements for Backpressure classes that don't exist on Magento < 2.4.4
- Replaced with Fully Qualified Names (FQN) throughout both files
- PHP processes 'use' statements before conditional 'return', causing Fatal Errors on old Magento
- Using FQN prevents autoloader from trying to load non-existent classes
- Conditional interface_exists() check at top of files still prevents class creation on old Magento
- DI compilation succeeds on Magento 2.4.8
Files changed:
- Model/Backpressure/LimitConfigManager.php: Removed 3 'use' statements, added FQN in implements, method signatures, constants, and object instantiation
- Model/Backpressure/RequestTypeExtractor.php: Removed 1 'use' statement, added FQN in implements 7b9a0c -
chore: remove unused Compatibility classes
Remove Model/Backpressure/Compatibility/* directory as these classes are
no longer needed. The current implementation uses conditional class loading
with early return instead of class_alias() approach.
Changes:
- Delete Model/Backpressure/Compatibility/RequestTypeExtractorInterface.php
- Delete Model/Backpressure/Compatibility/LimitConfigManagerInterface.php
- Delete Model/Backpressure/Compatibility/ContextInterface.php
- Delete Model/Backpressure/Compatibility/LimitConfig.php
On old Magento (< 2.4.4): Backpressure classes don't load at all (early return)
On new Magento (2.4.4+): Real Magento interfaces are used directly
Removes ~220 lines of obsolete fallback code. 166b09 -
fix: use conditional class loading for Backpressure compatibility
Wrap Backpressure classes in conditional checks - only create them on
Magento 2.4.4+ where the Backpressure API exists. On older Magento versions,
these classes won't be created at all, preventing Fatal Errors during DI compilation.
Changes:
- Add 'return' statement if Backpressure interfaces don't exist
- Remove DI registration from etc/di.xml (now opt-in via sample file)
- Add etc/di_backpressure.xml.sample for manual activation on Magento 2.4.4+
- Remove declare(strict_types=1) from compatibility classes for flexibility
- Remove class_alias() approach (didn't solve type hint conflicts)
This fixes Fatal Error on old Magento:
"Declaration of LimitConfigManager::readLimit() must be compatible..."
On Magento < 2.4.4:
- Security validation works (2+ char search requirement)
- Rate limiting won't work (no infrastructure)
- No Fatal Errors during deployment
On Magento 2.4.4+:
- Copy di_backpressure.xml.sample to di_backpressure.xml to enable rate limiting
- Both security validation and rate limiting work 071573 -
Version 1.14.2 fa1f32
-
fix: remove class type hints from compatibility interfaces
Remove type hints for class parameters in fallback interfaces to prevent
Fatal Error on old Magento versions. When using class_alias(), PHP sees
different class names in the type hints and throws compatibility errors.
Keep return type hints for scalar types (?string) as they work correctly.
Real implementation classes keep full type hints for Magento 2.4.4+.
This fixes: Declaration of LimitConfigManager::readLimit() must be
compatible with Compatibility\LimitConfigManagerInterface::readLimit() c8fe66 -
Version 1.14.1 2f05d0
-
feat: add backward compatibility layer for Magento < 2.4.4
Add class_alias() fallback pattern to support older Magento versions that lack
the Backpressure API. This allows the module to install and function on all
Magento 2.3.x - 2.4.x versions without Fatal Errors.
- Create compatibility stubs for Backpressure interfaces/classes
- Add class_alias() checks in RequestTypeExtractor and LimitConfigManager
- Revert composer.json constraint to support magento/module-graph-ql >=100.3
- Rate limiting will only function on Magento 2.4.4+, but security validation works on all versions bafb37 -
Version 1.14.0 c3e536
-
feat(security): add GraphQL validation and rate limiting v1.14.0
- Add validation: search >= 2 chars OR category required
- Add rate limiting via Magento Backpressure mechanism
- Add logging for suspicious query attempts
- Add admin configuration for rate limits
- Limit pageSize to 20 for short/empty search queries
BREAKING CHANGE: Empty or single-character search queries without category filter will now return GraphQlSecurityException c2b4ec -
feat(security): add GraphQL validation and rate limiting v1.14.0
- Add validation: search >= 2 chars OR category required
- Add rate limiting via Magento Backpressure mechanism
- Add logging for suspicious query attempts
- Add admin configuration for rate limits
- Limit pageSize to 20 for short/empty search queries
BREAKING CHANGE: Empty or single-character search queries without category filter will now return GraphQlSecurityException 69d3fc
swissup/module-askit — 1.14.21 (was 1.14.20)
swissup/module-gdpr — 1.8.5 (was 1.8.4)
-
Version 1.8.5 003f91
-
Added Bing consent mode 28e4a9
-
WIP 1539f8
-
Get rid of Breeze 2.0 vars to be compatible with both 2.0 and 3.0 839286
swissup/module-navigationpro — 1.17.35 (was 1.17.34)
swissup/module-pagespeed — 1.17.3 (was 1.17.1)
-
Version 1.17.3 135728
-
fix: correct misleading debug measurements in TrackedDomDocument::indexNodes()
Previously the debug code compared parent::saveHTML() (which still
contains the injected charset meta tag) against $this->originalHtml,
causing 'normalized_bytes' to always equal 'original_bytes' (same
variable used twice) and 'diff_bytes' to always include the ~62 byte
charset meta even when no optimizer had touched the DOM.
Fix: capture a clean DOM snapshot ($initialNormalizedHtml) in the
constructor immediately after loadHtmlWithUtf8() — using the overridden
saveHTML() which strips the charset meta and extracts fragments
correctly. indexNodes() now compares the current DOM state against this
initial snapshot instead of parent::saveHTML() vs originalHtml, so:
- normalized_bytes = actual libxml-normalized size (charset meta removed)
- diff_bytes = only changes made AFTER construction (real optimizer modifications)
- the 'DOM modified before indexing' warning fires only when an optimizer
genuinely changed the DOM before indexNodes() was called, not on every page d36e92 -
fix: HTML minification silently discarded and patch limit too low
- Raise PatchManager::maxPatchesLimit from 500 to 2000 to handle real
Magento pages that generate 500+ DOM patches; previously the limit
caused applyPatches() to bail out and fall back to saveHTML() which
inflated the response by ~12.70% via libxml normalization
- Replace isDirty() guard in Pipeline::run() with a string comparison
so that string-based optimizers (HTML minifier calls setOriginalHtml()
which intentionally does not set the dirty flag) are no longer silently
discarded
- Update PipelineTest to match the new contract: remove stale isDirty()
expectations and add getHtml() stubs where needed 1e0193 -
Version 1.17.2 e22203
-
Fixed logger PHP8.4+ issue 1ef5a9
swissup/module-pro-labels — 1.8.1 (was 1.7.28)
-
Version 1.8.1 70972f
-
Refactor product validation and label handling for store views (#41)
* Refactor product validation to respect store view attribute values
* Add store_ids_serialized column and update indexing logic for labels
* Refactor label store ID handling and add custom renderer for store views
* Address copilot suggestions
* fix db schema f8334a -
fix db schema 7fc3c5
-
Address copilot suggestions 540cf6
-
Refactor label store ID handling and add custom renderer for store views 1bedf4
-
Add store_ids_serialized column and update indexing logic for labels 1d6056
-
Refactor product validation to respect store view attribute values 33bdc1
-
Version 1.8.0 ee00af
-
Update label text escaping for label presets. Fix bad labels text. 9924f7
-
Enhance LabelText editor with variable support. Add new variables for base prices (#40)
* Implement LabelText editor with variable support and update configuration
* Enhance label variables editor with improved variable handling and styling
* Update frontend models for label text fields in system config
* Add variable template container and enhance label variable handling in editor
* Enhance demo predefined variables with base price support
* Address copilot suggestions. fad926 -
Address copilot suggestions. 428639
-
Enhance demo predefined variables with base price support 97e269
-
Add variable template container and enhance label variable handling in editor 8c365a
-
Update frontend models for label text fields in system config b743ec
-
Enhance label variables editor with improved variable handling and styling d8e08e
-
Implement LabelText editor with variable support and update configuration ca300f
-
Add new variables for price and discount amount without tax:
- price_base
- final_price_base
- special_price_base
- discount_amount_base e19b20 -
Version 1.7.30 8e36a3
-
Allow to render prolabels with empty text. Label can have only image uploaded. e300af
-
Version 1.7.29 c69b11
-
Remove unnecessary empty string check after processText call, allowing the function result to be returned directly. The empty string validation is now handled by the processText function itself or is not required at this point in the flow. bacb96
swissup/module-quantity-switcher — 1.2.1 (was 1.1.28)
-
Version 1.2.1 8fcaea
-
Fixed on Breeze after commit 9662ff4d0a47e861240f10e9bd28092063cdd56f 31a149
-
Version 1.2.0 427ae8
-
Added support for qty min/max/increment on cart page, closes #3 6781b3
-
Small fixes and improvements after code review 9662ff
swissup/module-testimonials — 1.4.0 (was 1.3.17)
-
Version 1.4.0 2ca286
-
Customizable frontend route, closes #12 e38c8c
-
Removed trailing slash in the canonical tag, see #13 109094
-
Fixed captcha for save controller after removing extend from deprecated class 2b4718
-
Fixed saving store relation bc50ab
-
Use escape in admin notification email b334aa
-
Small code fixes 29bd71
-
Rewrote front controllers without extending deprecated class 0d78e2
-
Updated code to use repository 16b611
-
Remove unnecessary setup_version ffbc53
-
Fixed wrong escaping 4ee69c
-
Fixed undefined $avgRating and division-by-zero 5e68bf
-
Removed deprecated call of $this->helper() in template 99e032
-
Replace deprecated code 94f1f1
-
Replace deprecated code db0ca7
-
Do not translate user-configured string 214f9a
-
Remove unused code 4a1b4f
-
Fixed wrong existing customer detecting 098a18
-
Fixed showing email regardless of config 09aacb
-
Fixed N+1 DB writes in mass status action 86330d
-
Added Testimonial Repository and updated controllers to use it 9a2a35
-
Fixed docblocks and const declarations a73587
-