Klevu Module v4.x Overview
Version Comparison
4min
improvements phpunit integration tests with code coverage 80% phpcs to a stricter standard than magento phpstan to level 6 (level 9 for non magento modules, e g php sdk) separation of concerns, each module can be removed if not required frontend setting of theme js settings via the admin single url for search results addition of recommendations banner widget correct filtering of visibility without any customisation correct currency conversion including symbols defined in magento move javascript to page end where possible add javascript to the head in a non blocking manner where possible remove all klevu code from the checkout indexing (data sync) switch to klevu json indexing from xml indexing removal of on the fly calculation of indexing actions customer group pricing includes catalog price rules use magento image generation for klevu images v2 x/v3 x v4 x plugin migrated from magento 1 purpose built for magento 2 following magento’s best practice php support 5 6+ limits php features that can be used, e g type hints versions of php that are eol contain security bugs 8 1+ make full use of newer php features (type hints, named args, null safe op, etc ) performance improvements from newer versions of php magento support 2 1 18 2 4 6 includes workarounds for missing features, core bugs, etc support for the old version means v2 x of the extension cannot be listed on magento marketplace 2 4 4+ only supports magento versions supported by adobe future klevu development will receive feature updates until v4 x general availability and security updates for 1 year after the launch will receive all new features, including message queues for indexing and analytics, partial product data sync and multi store integration with one api key klevu api xml api json api test code coverage 14% 80% phpcs compliant no yes, to a stricter standard than magento’s phpcs phpstan compliant no yes, to level 6 for the magento modules (level 9 for php sdk and php pipelines) separation of concerns indexing and search code mixed in the same module a module for each feature indexing, frontend and analytics are separated each indexing entity type and frontend solution is added via separate modules designed to have non required modules removed via composer replace object manager is used in the code and can not be removed due to circular dependencies no usage outside of magento's best practice guidelines (e g constructor arguments, factories or tests) can code be modified via plugins? not all due to some variables passed by reference yes, this is the recommended way of modifying all klevu code klevu js theme customisations via a custom module only via admin settings, themes or a custom modules search results url custom url /search can not be changed magento results url is also available at /catalogsearch/result causing duplicate content reuses the magento search url /catalogsearch/result can be changed as required toggle between klevu theme js results and magento via a url parameter recommendations banners code has to be added manually code provided via kmc does not work with dynamic blocks added via a widget with an option to make it compatible with dynamic blocks only the recs banner id is required custom product types possible, but not simple to implement requires preferencing classes which could lead to breaking the upgrade path for the module built with custom product types in mind inject an entityprovider class for the custom type via di xml custom entity types possible, but not simple to implement requires preferencing classes and breaking the upgrade path for the module built with custom entity types in mind inject an entityindexerservice class for the new type via di xml entity data sent to klevu during indexing syncs many attributes which may not be required by your store sync only the data required for your store customisation of entity data sent to klevu during indexing requires preferencing a class and breaking the upgrade path for the module uses klevu yaml pipelines which can be overridden by injecting your own yaml file via di xml option to auto generate yaml for custom attributes no code is required to add data to indexing indexing next action calculation during indexing the action to perform is calculated on the fly this can be extremely resource heavy and time consuming for larger stores the next action is calculated in advance of the sync and stored in the database tables sync then reads those tables and performs the required action klevu script tags multiple script tags are added that should have been combined into one reduction in the number of tags added klevu interactive is in use klevu js waits until page is interactive before firing removed klevu js executes immediately any klevu js that has other dependencies is handled via webhooks and is executed when available headless frontend frontend modules have to remain installed, enabled and enabled in the config all fronted modules can be removed via composer replace if a headless implementation is required