Changelog
1.3.3 (2026-11-09)
Improvements
- Smart kit conditions are checked when you save the kit — A condition the kit index cannot apply (an unknown or unusable attribute, an unknown operator, a date that does not parse) is now refused on save with an error message, instead of breaking the next reindex. Conditions on attributes not marked "Use for Promo Rule Conditions", such as SKU, are still accepted as long as the index can use them.
- A refused kit save keeps what you entered — When a save is refused, the edit form opens again with every field and condition you entered, so a new kit no longer has to be filled in from scratch.
- Kit health reports failing smart conditions — The kit status in the grid now names the position whose conditions fail and why. The "Possible Combinations" preview on the kit form and the health check answer a malformed condition with that message instead of a server error.
- Suggested kits get their own names — A kit created from Suggest Kits is named after its id instead of always "Suggestion 1", and if naming it or saving its items fails, the half-created kit is removed instead of staying in the grid without a name or items.
Fixed
- One kit with a broken smart condition stopped the reindex of every kit after it — The indexer, cron and
mirasvit:product-kit:reindexnow log the failing kit, keep the products it had before, and go on with the others. The CLI command reports the failing kit and exits with an error code; the grid's "Reindex" action and saving a regular kit show the error. On the storefront, such a kit is skipped and logged instead of breaking the page. - Smart conditions on categories failed or matched too little — Two category conditions in one position caused a database error. "Is one of the current product's categories" now uses all of the product's categories, not only the first.
- Smart conditions on the current product's value failed — "Contains", "is" and "is not" failed when the current product's value contained a comma, and a value of 0 was treated as empty. Only "is one of" / "is not one of" now split the value into a list.
- Smart conditions ignored store view values — A condition matched a product if any scope had the value, so a product red by default and blue in a store view matched both. On the storefront the store view's value now counts, falling back to the default one.
- Saving kit items could leave a stale item behind — With two items at one position, an item the form did not show stayed in the kit after saving. Saving now replaces all of the kit's items.
- Kit discount stayed on kits no longer on offer — A kit disabled, expired, or no longer assigned to the cart's store view or customer group kept its discount in carts that already held it. The discount now applies only while the kit is offered, checked against the cart's own customer group (for example, after VAT-based group assignment).
- Extra cart lines of a kit product got the kit discount — A second line of a kit product, or a line under another kit, was discounted though it filled no kit position. Each kit position is now discounted once; extra lines are left to your cart price rules, as is an optional item added in a smaller quantity than the kit requires. A kit that holds one position more than once gets no kit discount.
- Grouped products in kits were discounted wrongly — With a "final price" discount, each child of a grouped kit item now keeps its own discount; a fixed-amount discount is shared among the children by price instead of being applied to the first child alone, where its price could cap it.
- Two kits added in one GraphQL request lost a discount — Kits added without a hash shared one, so the second kit got no discount. Each kit now gets its own.
- Security fixes
1.3.2 (2026-10-30)
Improvements
- ⚠️ "Manage Kits" and "Suggest Kits" now restrict their admin screens — Before, the "Product Kit" permission alone opened both the kit grid and the suggester; the two child permissions only hid menu items. They now gate the screens, buttons and actions behind them, and the suggester's "Create Kit" button appears only to admins who may also manage kits. A role with one of them unchecked loses that screen after the upgrade; roles saved before these permissions existed are granted both. Review your admin roles after upgrading if some users should see only one of the two screens.
- Better kit suggestions — Suggest Kits now builds kits from the most-ordered baskets (it used to start from the least-ordered ones), ranks them by how many orders contain them, lists each suggested kit once, and can suggest a whole basket of any size within the kit sizes as a kit of its own. Guest orders are no longer lumped together as one customer in "Same Customer" mode, and long baskets are no longer cut off. The search reads the latest 100,000 orders (noted under the "From" field) and its work is bounded, so it stays responsive on large stores; starting a new search while one is loading now replaces it instead of mixing both results.
- Kit stock follows the website's stock with MSI — With Multi-Source Inventory, a kit item's availability is now read from the stock assigned to the kit store's website instead of the default stock, using the quantity that stock can still sell. Without MSI nothing changes.
- Blank kit limits fall back to the parent scope — A blank or 0 "Maximum number of kits in the block" or "Maximum number of optional products per position" on a store view now uses the website's value, then the Default one, and both fields now require a number above 0. The GraphQl kits query also uses the price display mode of the request's store.
- Kit health is checked per store view — The kit status in the grid checks each store view the kit is assigned to, with that store's product status, visibility and settings, and reports "Kit is not assigned to an active store view" instead of a misleading stock problem.
- The grid's "Reindex" action now asks for confirmation and names the kit.
- ⚠️ The upgrade runs two data patches: one removes item and index rows left behind by kits deleted in earlier versions, the other grants the "Manage Kits" and "Suggest Kits" permissions to roles saved before they existed. Run
bin/magento setup:upgrade.
Fixed
- Deleting a kit left its rows and its cached pages behind — A deleted kit's items and index rows stayed in the database, and the product pages that showed it stayed in the page cache. They are now removed with the kit, and every full rebuild (indexer, cron,
mirasvit:product-kit:reindex) cleans up after kits deleted any other way. The cleanup works in small batches by key, so it never locks the whole kit index table; if it has to wait on a lock, the rebuild still runs (the CLI command reports it and exits with an error code). For a kit id that no longer exists, the CLI command now reports the rows it removed. - Products deleted by an import kept their kit items — A "Delete" or "Replace" product import now removes the deleted products from kits, as deleting them in the admin does.
mirasvit:product-kit:reindexdropped out-of-stock products from smart kits — With "Display Out of Stock Products" off, the command left them out, unlike the cron rebuild. It now gives the same result as cron.- Kits with the same main product were missing from the kits listing widget — A kit was hidden when another kit shared its primary product or its product set. Every kit is now listed, by priority, within the configured kits limit.
- Product status and visibility were read from the Default scope — A product disabled or hidden on a store view could still appear in that store view's kits. They are now read per store view.
- Admin kit actions could be triggered by a crafted link — Delete, Reindex and Save of a kit and "Create Kit" in the suggester now accept only form submissions, and a submission without the kit's form data no longer wipes the kit's items. Kit names and suggester messages in confirmation dialogs are now escaped.
- "Back" on Suggest Kits reloaded the suggester — It now returns to the kit grid.
1.3.1 (2026-10-26)
Improvements
- Compatible with Mirasvit Core 2.0 — the module can now be installed alongside both the 1.x and 2.0 versions of the core package
- Faster kit lookups on large catalogs — Product pages find the kits to show from the database index instead of scanning it row by row, and saving, reindexing or deleting a kit, as well as deleting a product, no longer have to read the whole kit tables. The more kits and products a store has, the bigger the gain.
- ⚠️ The upgrade adds database indexes to
mst_product_kit_index(product_id, is_primary, kit_id;item_id, product_id;kit_id) andmst_product_kit_kit_item(kit_id;product_id). Runbin/magento setup:upgrade; on a store with a very large kit index this step can take a little longer than usual. - Compatible with version 2 of
mirasvit/module-core.
Fixed
- Product-kit display settings are now read in the current store-view scope, so a value overridden on a store view or website is applied instead of the Default-scope value only.
1.3.0 (2026-10-22)
Features
- Hyvä support now ships with the extension — The companion package
mirasvit/module-product-kit-hyvais gone: the kit carousel, the kits on product, cart and CMS pages and the add-to-cart option step are now part of Product Kits itself. There is no second package to find and keep in step, and on a Luma store the Hyvä part simply stays dormant. Composer removes the companion package by itself when you upgrade. - GraphQl support now ships with the extension —
mirasvit/module-product-kit-graph-qlis gone; themstProductKitOfferKitsquery and the cartkit_optionsfields used by headless and PWA storefronts are part of Product Kits itself. Composer removes the companion package by itself when you upgrade.
Improvements
- One kit widget for both themes. Luma and Hyvä now run the same storefront script and templates, so a fix or a new option reaches both storefronts at once. On Hyvä the widget script is loaded once per page instead of once per kit, so pages showing many kits load less JavaScript.
- ⚠️
Hyva_MirasvitProductKitis gone, not renamed — You only need to act if you referenced it yourself: in a customdi.xml, a layout file, or a deployment script that enables modules by name. - ⚠️ If you customised the kit widget, review your changes — The templates
Hyva_MirasvitProductKit::*.phtmlare nowMirasvit_ProductKit::*.phtml, and they are shared with Luma. The RequireJS widgetsMirasvit_ProductKit/js/kit,js/kit-listandjs/debugwere replaced byMirasvit_ProductKit::js/product-kit.js. A theme override or a RequireJS mixin aimed at the old files is simply not read any more, with no error to say so. An override ofkit.phtmlthat still starts the old widget throughx-magento-initmakes the browser request scripts that do not exist and log 404 errors. - After upgrading a Hyvä store, run
bin/magento hyva:config:generateand rebuild your theme's Tailwind CSS. - ⚠️ The unused class
Mirasvit\ProductKit\Service\CurrencyServicewas removed. Check any custom code that injects it before upgrading. - Kits for the cart follow the product added last — On pages with no product in context, such as the cart, kits are offered for the product the shopper added most recently. Before, the "last" cart line was whichever row the database happened to return last.
- Kit discounts stay with their own cart — When several carts were processed in one request, a cart could be totalled with the kit discounts of a cart processed before it. Each cart now keeps its own kit discounts.
- A GraphQl add-to-cart request with malformed kit options is now refused with an error, instead of adding the product without its kit.
- The "Product Attributes" condition group in smart kit item rules can now be translated, and ships translated in all 16 bundled languages.
Fixed
- Unticked optional kit items did not fade out on Luma — The item was dropped from the price, but it still looked selected. It is now greyed out, as on Hyvä.
- Adding a kit reloaded the whole page on Hyvä — After a kit was added, the product page reloaded instead of updating the mini cart and showing the confirmation message in place, as Luma does. Hyvä now behaves like Luma, and it also checks the required options of each kit product before sending them.
- Size and colour swatches of kit products did not respond on Hyvä — In the options step the swatch script failed to start, so a picked option was neither shown nor checked against the available combinations. The swatches now work as on the product page.
- File uploads in a kit product's custom options were lost on Hyvä — The file never reached the cart. It is now uploaded with the kit.
- Kit prices stopped updating on Hyvä for "final price" discounts — Once a kit product's options were open, the price calculation failed with a script error. Luma was unaffected.
- A kit product with a date option could not be added to the cart — The options step kept asking for the date although it was filled in, because only the year reached the store. The full date is now sent, on Luma and Hyvä.
- Only one ticked checkbox or multiselect value of a kit product reached the cart — The other choices were silently dropped. Every selected value is now added.
- A kit product with a required file option was never added — The kit came back to the options step with no message, even with a file chosen. The upload is now accepted, and a missing file is reported as on the product page.
- Radio buttons and checkboxes in the kit's options step on Hyvä wanted every choice clicked — Picking one choice is now enough to satisfy a required option, as on the product page.
- A kit product's price ignored its custom options on Hyvä — Only text fields changed it, and they also changed the main product's price. Every option type now updates the kit product's own price and leaves the main product's alone.
- The original price of a smart kit did not follow the product picked — In the "Original price + Final price + Kit price" mode the struck-through original total kept the first product's price when a shopper switched a kit item to another product. It now changes with the selection, like the final and kit prices.
- A kit product's picture did not follow the option picked on Hyvä — Choosing a colour in the kit's options step left the photo unchanged. It now shows the chosen variant, and the main product's gallery is left alone.
- The file option's "Choose File" button looked like plain text on Hyvä — In the kit's options step it is now styled as a button.
- An empty required date or time passed the kit's options step on Hyvä — The form was sent and came back with a grey, easy-to-miss note. The date and time fields are now checked before sending, a refusal shows as a red error on both themes, and required options carry a red asterisk on Hyvä.
- A kit product's kit price ignored its custom options — In the options step its own price followed the options, but the kit price under it did not (Luma, and Hyvä's cart page). It now follows them too, and is counted for the line's quantity, as the cart counts it.
- A refused kit cleared every option the shopper had entered — When the store turned the kit down, for example over a file with the wrong extension, the options step came back empty. The entered options are now kept; only the file has to be picked again, as browsers do not let a page fill it in. On Hyvä the refusal message now appears at once.
- A date option of the page's own product misbehaved in its kit — When a kit contained the product being viewed, its filled-in date or time was still reported as required on Luma, and on Hyvä picking it did not change the price: both looked at the main product's empty date fields instead. The kit's date fields now count on their own.
- A failed kit add locked the kit until the page was reloaded on Luma — If adding the kit failed unexpectedly, the error was shown but the kit's buttons stayed disabled. They are now usable again right away.
- Grouped products in the kit's options step on Hyvä showed "undefined" next to each child's price — The children's prices now display correctly.
- The "Added from the discount pack" label was missing in the Hyvä cart — Kit items in the cart now carry the label on Hyvä, as on Luma.
- The kit's "Add to Cart" button broke out of the kit on phones on Luma — With the "Original + Final + Kit price" display mode, the button overflowed the kit box and wrapped one word per line. On small screens it now moves under the prices on a single line; the desktop layout is unchanged.
- Kits were shown on third-party checkout pages despite "Display on" — A checkout extension that reuses the cart page layout under its own page (for example Walley/Collector Checkout) always showed kits. The "Display on" setting is now honoured there too.
- Deleting a kit broke the carts that still held it — Every cart holding items of a deleted kit failed to calculate its totals, which blocked the cart and checkout. The same happened for a kit saved with no items, and for a smart kit saved with fewer items than a cart line expected. These items now stay in the cart at their regular price, and adding a deleted kit to the cart is refused.
- Adding a kit failed with an error when a kit product had been disabled or deleted — Instead of a server error, the shopper now sees "Product is not available right now" and the kit is not added at all, rather than being added without that product.
- Adding a second kit to the cart failed on PHP 8.5 — The kit discount lookup ran into cart lines that were not saved yet, and PHP 8.5 turned that into an error. Adding several kits now works.
- Percentage kit discounts used the first combination's amount for every combination — For "percentage of kit" and "relative percentage" kits, a kit item's discount was fixed by whichever product combination was read first, both in the kit block and in the cart. Each combination now gets its own discount.
- Wrong kit prices in a non-base display currency — A kit mixing a bundle with simple, configurable or grouped products added up prices in two different currencies, and a bundle's price was converted back with an exchange rate that currency-rate imports never update. All kit item prices are now converted consistently with the current rate.
- Kit stock checks were wrong on secondary websites and with MSI — On every website but the first, a kit product's stock was not found, so the kit was offered for any quantity. With MSI, a source with no quantity left counted as available even when the product could not be sold. Both now report stock correctly.
- Admin roles without Product Kits access could still use parts of it — Creating kits from the suggester, running the suggester (and reading its order statistics), the kit rule evaluator and the Health check were open to every admin user. They now require the Product Kits permission, like the rest of the module.
- Saving, deleting or reindexing a kit that no longer exists showed a fatal error — These admin actions now report that the kit no longer exists.
- The kit suggester missed some product combinations — When order product IDs were not in ascending order (for example in "same customer" mode), some combinations were dropped from the suggestions. The suggester also no longer fails when the minimum or maximum number of products is left empty.
- The "Product Attributes" condition group in smart kit item rules was labelled with an attribute's name — It now reads "Product Attributes".
- The Suggest Kits admin page title repeated itself — The browser title read "Suggest Kits / Kits / Suggest Kits". It now reads "Suggest Kits / Kits / Product Kits", like the other kit pages.
1.2.18 (2026-09-29)
Improvements
- Internal compatibility updates for the upcoming Mirasvit core 2.0.
Fixed
- Saving a single kit wiped the full page cache for the whole catalog. Every kit edit — and every scheduled partial rebuild of the kit index — told Magento to drop the cached pages of every product in the store, so the next visitors to any page had to wait for it to be rendered from scratch. On large catalogs that showed up as a sharp, repeated slowdown after routine kit changes. Only the pages of the products actually in the edited kit are now refreshed, including products that the edit removed from the kit. A full kit reindex still refreshes the whole catalog, as it should.
1.2.17 (2026-09-15)
Improvements
- Faster kit rendering on product and cart pages. The module used to re-read the same kit and its per-store labels from the database over and over while building a single page — on a cart page holding one kit that meant six identical loads of the same record. Each kit and its labels are now read once per page, and the kit-item lookup stops as soon as it finds its match, so pages with kits issue noticeably fewer database queries.
- Manuals are no longer bundled inside the extension package. The
docs/folder has been removed; the up-to-date manual is published online, so you always read the current version instead of whatever shipped with your installed release. - ⚠️ Unused legacy classes were deleted:
Model\Total\Quote\Discount,Model\Total\Invoice\Discount,Ui\Kit\Source\RuleSource, and theUi\Suggester\Form\Control\Save,SaveAndContinue,Delete,ResetButtonclasses. None of them were referenced by the module, but check any custom code or theme that extends or injects them before upgrading.
Fixed
- Kits could be added to a shopper's cart from outside your store. The kit add-to-cart URL answered ordinary GET requests and did not check a form key, so any third-party page, image tag or link prefetcher could quietly push products into the cart of a logged-in shopper, who would then find items they never selected. The endpoint now accepts POST only and validates the form key, and the storefront kit widget sends it. Genuine add-to-cart clicks are unaffected.
- The Health column reported working kits as broken on multi-website and multi-store setups. Stock availability was checked against the default store instead of the store views the kit is assigned to, so a kit belonging to a second website showed a red status even though all its products were in stock there. Availability is now checked in the kit's own store views, and products disabled in the catalog are correctly treated as unavailable.
- Smart kit rules using a negative condition — "is not", "is not one of", "does not contain" — matched no products at all when the attribute was one most products leave empty. Products with no value stored for the attribute are now correctly included, so these rules select the products you would expect.
- Deleting a product from the catalog left it behind in every kit that used it, and the kit went on offering a product that no longer exists. Deleting a product now removes it from all kits automatically; the kit index catches up on its next run.
- Storefront debug output was reachable by anyone. Appending
?debug=kitto a storefront URL printed internal kit diagnostics and layout block names to any visitor. It is now gated behind a new Stores Configuration Mirasvit Extensions Product Kit General Developer Mode setting, which ships disabled — turn it on only on staging or development stores. ⚠️ New configuration pathproduct_kit/general/dev_mode, defaulting to0. - Corrected the misspelled "Selection Criterias" heading on the kit suggester form; it now reads "Selection Criteria".
1.2.16 (2026-08-11)
Improvements
- When a kit's saved cart data becomes corrupted, the module now reports the problem for diagnostics instead of silently treating the line as a regular product with no trace of what went wrong. Adding kits to the cart otherwise behaves exactly as before.
⚠️ This requires
mirasvit/module-coreversion1.7.15or later. Runcomposer update mirasvit/module-corewhen upgrading.
Fixed
- Fixed percentage-based kit discounts being too large on stores that display prices including tax. The discount was calculated from the tax-inclusive price and then taxed again, so the amount taken off at checkout was bigger than configured — for example, a 1,875 kit discount reduced a 25%-VAT cart by 2,343.75 instead of 1,875. Discounts are now based on the pre-tax price and match the configured amount.
1.2.15 (2026-06-26)
Fixed
- When adding a kit that contains a product the shopper had already added to the cart individually, the standalone cart item was not reliably removed before the kit version was added, leaving duplicate entries in the cart. The product ID comparison now works correctly in all cases.
1.2.14 (2026-05-29)
Improvements
- Translations for 15 locales — The module now ships with built-in translations for Arabic, Czech, German, Spanish, French, Italian, Japanese, Dutch, Polish, Brazilian and European Portuguese, Swedish, Turkish, Ukrainian, and Simplified Chinese. All admin labels and storefront strings are wrapped for translation, so additional languages can also be added through the standard Magento i18n workflow.
- Faster kit resolution on product pages. Smart kits with many candidate products now validate matches in a single batched lookup instead of walking candidates one by one, which noticeably reduces PDP load time on large catalogs.
Fixed
- Smart kits using "Current Product" conditions (for example, "SKU is not Current Product SKU" to exclude the viewed product) silently produced an empty kit index and showed no offers on the product page. The indexer now keeps the full candidate pool and applies the current-product rule at runtime, so these kits display the expected products again.
- Adding a kit to the cart could fail on PHP 8.4 / Magento 2.4.9 with a "null array offset" deprecation, aborting the add-to-cart request. The kit is now added correctly.
- When a shopper unchecks an optional kit item, its price now correctly reverts to the regular full price. Previously the item kept showing the strikethrough-and-discounted price layout even after being deselected, giving a misleading impression that a discount was still applied.
1.2.13 (2026-04-29)
Features
- Per-store-view kit title and discount label — On multi-store installations, you can now set a different kit block title and cart discount label for each store view directly in the kit edit form. Open the new "Store view specific labels" section on the kit form, enter text for any store view, and leave others blank to fall back to the default. Shoppers on each store view will see the correct language or brand-specific text in the kit block heading and in cart totals.
⚠️ A new database table (
mst_product_kit_kit_store) is added to store these overrides. Runbin/magento setup:upgradeafter updating.
1.2.12 (2026-04-24)
Features
- Kit health status in admin grid — A new "Health" column in the Kits grid shows at a glance whether each kit is correctly configured and will display on the storefront. A green checkmark means the kit is ready; a red indicator with a tooltip explains the problem (expired schedule, no items, no primary item, no valid product combinations). Health is recalculated automatically whenever you save a kit and refreshed every two hours by cron. Run
bin/magento product_kit:health:reindexto recalculate on demand. ⚠️ Two new columns (health,health_reasons) are added to the kit database table. Runbin/magento setup:upgradeafter updating — existing kits are backfilled automatically.
Fixed
- When "Allow Out Of Stock items for kit" is disabled and an optional kit item goes out of stock, only that item is now hidden from the kit block. Previously the entire kit disappeared from the storefront. The module also now prefers kit combinations that include the most optional items, so shoppers see the most complete version of a kit whenever possible.
- Kit title and label text fields were not processed through Magento's translation mechanism, meaning they could not be translated for multilingual stores. They are now fully translatable via the standard i18n workflow.
1.2.11 (2026-04-17)
Features
- Debug mode for kit block positioning — Add
?debug=kitto any product page URL to overlay labels on page layout containers and blocks. This makes it easy to identify the exact container name to enter in the "Bind product kit block to" configuration setting when adjusting where the kit block appears on product pages.
Fixed
- Kit block was hidden for products explicitly marked as "In Stock" but with a 0 or negative stock quantity. This commonly occurred when stock management was disabled for the product or when allowing backorders. The kit now displays correctly in these cases.
- Smart kit item Qty field had no default value in the admin form, making it easy to accidentally save a rule with an empty quantity. The field now defaults to 1.
1.2.10 (2026-04-06)
Features
- Price display mode for kit blocks — New setting under Stores → Configuration → Product Kit → Display lets you control how prices appear in the kit. Choose "Final price + Kit price" (default) or "Original price + Final price + Kit price" to show the regular price alongside the discounted price, making the savings immediately visible to shoppers.
1.2.9 (2026-03-10)
Fixed
- CSP compatibility
- Magento 2.4.9 compatibility
1.2.8 (2026-02-17)
Fixed
- Prevent kit item corruption when third-party code saves quote via QuoteRepository
1.2.7 (2025-11-03)
Fixed
- Issue related to displaying an empty kit discount label in the cart
1.2.6 (2025-10-03)
Improvements
- Added the ability to disallow Not Visible Individually items fo kit
Fixed
- Issue related to 404 URL for Not Visible Individually kit items
- Issue related to long kit generation time
1.2.5 (2025-08-21)
Fixed
- Issue related to the incorrect logic of displaying the kit for products that are not available
1.2.4 (2025-08-08)
Fixed
- PHP 7.0 - PHP 7.3 compatibility
1.2.3 (2025-08-05)
Fixed
- Issue related to the error 'Undefined array key 0'
1.2.2 (2025-07-22)
Improvements
- Prevent adding a kit with unavailable optional products to the cart
- Display the product kit for the configurable product if the kit contains variations of that product
1.2.1 (2025-06-27)
Fixed
- Issue related to different set of variations for smart kit items with same conditions
- Issue related to incorrect 'Active From' and 'Active To' dates in the kit list
- Issue related to the error 'Mirasvit\ProductKit\Data\OfferKitItem::getKit(): Return value must be of type Mirasvit\ProductKit\Api\Data\KitInterface, bool returned'
1.2.0 (2025-06-19)
Improvements
- WCAG 2.2 AA compliance
- Allow purchasing of product kits with items that are 'Not Visible Individually'
1.1.18 (2025-05-28)
Fixed
- Issue related to incorrect calculation of the base price of the kit product
1.1.17 (2025-05-19)
Fixed
- Issue related to the kit quantity condition not working when reducing the quantity of items from the set in the cart
1.1.16 (2025-05-13)
Fixed
- Compatibility with third-party One Step Checkout extensions
1.1.14 (2025-05-09)
Fixed
- Issue related to 'Skip discounted items' option not working for special price products
1.1.12 (2025-04-09)
Fixed
- Compatibility with Magento 2.4.4
1.1.11 (2025-04-08)
Fixed
- Issue related to the lack of restrictions on the customer group for product kit discounts
- Issue related to the lack of a discount on the second or more identical product kits
1.1.10 (2025-02-13)
Fixed
- Issue related to the double discount on the first product in the kit
1.1.9 (2025-02-10)
Fixed
- Issue related to error when adding product to cart
1.1.8 (2025-02-05)
Fixed
- Issue related to impossibility to change product kit grid columns
1.1.7 (2025-01-28)
Fixed
- An issue where the smart kit condition does not work if the condition is 'Category is not one of exact value'
1.1.6 (2025-01-15)
Fixed
- Issue related to product kits not having a discount in the cart
1.1.5 (2025-01-06)
Features
- Added product kit active date range
1.1.4 (2024-12-24)
Fixed
- Issue related to currency conversion
1.1.3 (2024-10-07)
Fixed
- Kit discount is not displayed in cart on Hyva before cart is refreshed.
- Cart condition "Has Kit" is not validated for rules with the action "for whole cart"
1.1.2 (2024-09-06)
Improvements
- Added option for managing stock for kits
Fixed
- Kit item discount is not validated
1.1.1 (2024-08-30)
Improvements
- Added new option "Allow Backordered items for kit"
Fixed
- Kit item discount is not validated
1.1.0 (2024-08-12)
Improvements
- Hyva compatibility
1.0.63 (2024-07-18)
Fixed
- Kit discount not always applied to items
1.0.62 (2024-06-21)
Fixed
- Notice: Undefined offset: 1 in KitBuilderService
- Non-salable product displaying kit when using multistock
1.0.61 (2024-05-22)
Fixed
- Kit discount applied twice in M247
1.0.60 (2024-05-03)
Improvements
- Allow using tags in the kit frontend titles
1.0.59 (2024-03-18)
Fixed
- Disable Add to Cart button if no kit combination is selected
1.0.58 (2024-01-09)
Fixed
- Kit with conditions by attribute does not work in ee
1.0.57 (2023-12-26)
Fixed
- Deprecated Creation of dynamic property in CronKitReindex
1.0.56 (2023-12-21)
Improvements
- Added cron job to reindex kit by cron every 2 hours to keep smart kit products updated
1.0.55 (2023-12-05)
Fixed
- Allow to use all optional items in kits
1.0.54 (2023-11-20)
Fixed
- Issue when kit with conditions by attribute does not display on the product page
Improvements
- Added settings for multistores
1.0.53 (2023-10-24)
Fixed
- Error "Unknown column 'entity_id' in 'on clause'"
1.0.52 (2023-09-15)
Fixed
- Wrong base grand total when kit uses with cart price rules
1.0.51 (2023-06-21)
Fixed
- Deprecated Functionality: stripos(): Passing null to parameter 1 ($haystack) in EE magento/module-price-permissions
1.0.50 (2023-05-05)
Fixed
- Deprecated Functionality: stripos(): Passing null to parameter 1 ($haystack) in EE magento/module-price-permissions
1.0.48 (2023-03-21)
Fixed
- Main product price update for configurable product with dropdown options.
1.0.47 (2023-03-15)
Fixed
- PHP 8.2
1.0.46 (2023-03-08)
Fixed
- Discount and Qty fields do not update correctly
Improvements
- Added new discount type "Final Price" - field Discount contains the final price in the cart if the product price is greater
1.0.45 (2023-02-15)
Fixed
- Discount does not apply on Magento before v2.4.5
- Added trigger "contentLoading" for the add-to-cart event
1.0.44 (2023-01-30)
Fixed
- Discount calculation for different qty
1.0.43 (2023-01-25)
Fixed
- Discount multiplying in m2.4.5
1.0.42 (2023-01-19)
Fixed
- Rule validation for the action "is part of a kit"
- Qty does not apply to the discount
1.0.41 (2022-09-05)
Fixed
- Issue when products merged in the kit
1.0.40 (2022-08-10)
Fixed
- Display of a kit block for Enterprise version.
1.0.39 (2022-06-20)
Improvements
- remove db_schema_whitelist.json
1.0.38 (2022-06-03)
Fixed
- Uncheck of a kit item does not work for some theme
1.0.37 (2022-06-01)
Improvements
- Migrate to declarative schema
Fixed
- Addition of the products with not required options
- Optional product selection
- Compatibility with m2.4.4
1.0.36 (2022-01-21)
Improvements
- Added label to the kit products in the cart
- Render not required product options
Fixed
- Display of the product kit for multi stock products
1.0.35 (2021-11-25)
Fixed
- Selecting of default options for bundle product
- Storing of products data with paging
- Compatibility with Magepow_Ajaxcart and Bss_PreOrder
1.0.34 (2021-10-26)
Improvements
- Added new widget with list of all available kits. It's allows to create page or category with all available bundle offers.
1.0.33 (2021-08-26)
Fixed
- Compatibility with Magento 2.4.3
- Fixed the ability to exclude primary product
1.0.32 (2021-08-10)
Fixed
- Issue when unable to add kit to the cart with option of type "File"
- Custom option selection
1.0.31 (2021-08-05)
Improvements
- Added Kit conditions to the sales rule actions and conditions
1.0.30 (2021-07-30)
Fixed
- Compatibility with m2.1
Improvements
- Added kit option "Skip discounted products"
1.0.29 (2021-06-07)
Fixed
- Render of the kit block for configurable products
1.0.28 (2021-06-01)
Fixed
- Issue when disabled products display in the kit
1.0.27 (2021-05-24)
Fixed
- Display of the kit per storeview
- Compatibility with Codazon theme
Improvements
- Added widget for kit block
1.0.26 (2021-05-13)
Fixed
- Display of the product discount
1.0.25 (2021-04-19)
Fixed
- Fix delete message for m2.4
1.0.24 (2021-04-02)
Fixed
- Render options of the configurable products
1.0.23 (2021-03-05)
Fixed
- Discount calculation when "Display Prices" = "Including Tax"
Improvements
- Added option "Discount Text"
1.0.22 (2021-02-23)
Fixed
- Issue when reindex failed for rules with multiple attributes
- The issue when price does not change on product options changing on the frontend
- Issue when another discounts applied to the kit products
1.0.21 (2021-01-26)
Fixed
- Issue when product kit does not show when "Backorders" set to "Allow Qty Below 0"
1.0.20 (2021-01-19)
Fixed
- Issue with product price for multi currency storeviews
1.0.18 (2020-12-11)
Fixed
- Defining of a product availability
- Mobile style
Improvements
- Added "Cancel" button to the selection block
- Compatibility with Codazon_GoogleAmpManager v0.1.0
1.0.17 (2020-11-06)
Fixed
- Product selection window does not appear when custom stock enabled
- Compatibility with Aheadworks_ShopByBrand
1.0.16 (2020-11-03)
Fixed
- Display Kit prices when tax included in the price
1.0.15 (2020-09-11)
Improvements
- Small spelling fixes
1.0.14 (2020-08-31)
Improvements
- Added ability for customers to choose a product for the position.
1.0.13 (2020-08-20)
Improvements
- Support of Magento 2.4
1.0.11 (2020-07-08)
Fixed
- Price formatting in the backend
- Undefined position on m2.2.9
- Validation of virtual product qty for a product kit
Features
- Added GraphQL implementation
1.0.9 (2020-06-23)
Fixed
- Formating of kit prices
- Validation of product qty for a product kit
1.0.8 (2020-06-19)
Fixed
- Error "Undefined index: position in Mirasvit/ProductKit/Controller/Adminhtml/Kit/PostDataProcessor.php"
- Compatibility with m2.2.9
Features
- Added new discount type "Relative Kit - %, %, %"
1.0.6 (2020-06-09)
Fixed
- Unable to add grouped product to the cart
1.0.5 (2020-06-05)
Fixed
- Product kit generation
1.0.4 (2020-06-01)
Features
- Added options: "Bind product kit block to" and "Bind position"
- Added new discount type "Relative - %, %, %"
- Added condition "Product Type"
- Added configuration option "Maximum number of kits in the block"
1.0.3 (2020-05-13)
Fixed
- Reindex for products with multiple categories
- Display of product image in the MGS theme
- Product price when tax is included
- Mobile styles
- Auto redirect to the cart
1.0.2 (2020-05-04)
Features
- Ability to display kits on the shopping cart page
- Added "Primary product" functionality
1.0.1 (2020-04-30)
Features
- Compatibility with Magento 2.3.5
1.0.0 (2020-04-23)
Features
- Initial release