LokiCheckout_Core
This is the main core package of the LokiCheckout. It replaces the regular checkout with its own, based on Loki Components, Loki Field Components and much more. All other Loki Checkout module are extending this core module. With only this core module, you already have a working checkout.
Installation
Install this package via composer:
composer require loki-checkout/magento2-core
Next, enable this module:
bin/magento module:enable LokiCheckout_Core
Settings
In the Magento Admin Panel, you can navigate to Store > Configuration > Loki > LokiCheckout for various settings.
Support
For getting support, create an Issue under the following project URL:
https://gitlab.yireo.com/loki-checkout/LokiCheckout_Core.git
Configuration Options
The following options of this module can be configured via the Store Configuration:
loki_checkout/general/enable
loki_checkout/general/theme
loki_checkout/general/grid_layout
loki_checkout/general/license_key
loki_checkout/debug/enable
loki_checkout/debug/html_hints
loki_checkout/debug/debug_block
loki_checkout/fields/enable_same_as_billing
loki_checkout/fields/hide_region_when_optional
loki_checkout/fields/enable_vat_id_only_for_company
loki_checkout/fields/capitalize_country_in_preview
loki_checkout/shipping/select_default_shipping_method
loki_checkout/billing/select_default_payment_method
loki_checkout/cart/max_items_visible_count
loki_checkout/newsletter/default_value
Loki Components
The following LokiComponents are created or references in this module:
loki-checkout.agreements
loki-checkout.billing.address
loki-checkout.billing.address.city
loki-checkout.billing.address.company
loki-checkout.billing.address.country_id
loki-checkout.billing.address.fax
loki-checkout.billing.address.firstname
loki-checkout.billing.address.form.grid-layout
loki-checkout.billing.address.lastname
loki-checkout.billing.address.middlename
loki-checkout.billing.address.postcode
loki-checkout.billing.address.prefix
loki-checkout.billing.address.region
loki-checkout.billing.address.save_in_address_book
loki-checkout.billing.address.select
loki-checkout.billing.address.shipping-as-billing
loki-checkout.billing.address.street0
loki-checkout.billing.address.street1
loki-checkout.billing.address.street2
loki-checkout.billing.address.street3
loki-checkout.billing.address.suffix
loki-checkout.billing.address.telephone
loki-checkout.billing.address.toggle-select
loki-checkout.billing.address.vat_id
loki-checkout.billing.address.view
loki-checkout.customer.customer_dob
loki-checkout.customer.customer_email
loki-checkout.customer.customer_gender
loki-checkout.login.form.inner
loki-checkout.newsletter
loki-checkout.payment.methods
loki-checkout.progressbar
loki-checkout.shipping.address
loki-checkout.shipping.address.billing-as-shipping
loki-checkout.shipping.address.city
loki-checkout.shipping.address.company
loki-checkout.shipping.address.country_id
loki-checkout.shipping.address.fax
loki-checkout.shipping.address.firstname
loki-checkout.shipping.address.form.grid-layout
loki-checkout.shipping.address.lastname
loki-checkout.shipping.address.middlename
loki-checkout.shipping.address.postcode
loki-checkout.shipping.address.prefix
loki-checkout.shipping.address.region
loki-checkout.shipping.address.save_in_address_book
loki-checkout.shipping.address.select
loki-checkout.shipping.address.street0
loki-checkout.shipping.address.street1
loki-checkout.shipping.address.street2
loki-checkout.shipping.address.street3
loki-checkout.shipping.address.suffix
loki-checkout.shipping.address.telephone
loki-checkout.shipping.address.toggle-select
loki-checkout.shipping.address.vat_id
loki-checkout.shipping.address.view
loki-checkout.shipping.methods
loki-checkout.sidebar
loki-checkout.sidebar.coupon_code
loki-checkout.sidebar.items
loki-checkout.sidebar.preview.billing_address
loki-checkout.sidebar.preview.payment_details
loki-checkout.sidebar.preview.quote_details
loki-checkout.sidebar.preview.shipping_details
loki-checkout.sidebar.totals
loki-checkout.steps
loki-checkout.steps.billing
loki-checkout.steps.billing.backward-button
loki-checkout.steps.billing.forward-button
loki-checkout.steps.one
loki-checkout.steps.shipping
loki-checkout.steps.shipping.backward-button
loki-checkout.steps.shipping.forward-button
loki-checkout.utils.private-data
Module Dependencies
The following dependencies are declared in the module its `etc/module.xml` file:
Loki_Base
Loki_Components
Loki_CssUtils
Loki_FieldComponents
Loki_MapComponents
Magento_Backend
Magento_Catalog
Magento_CatalogInventory
Magento_Checkout
Magento_CheckoutAgreements
Magento_Cms
Magento_Config
Magento_Csp
Magento_Customer
Magento_Directory
Magento_Eav
Magento_Indexer
Magento_MediaStorage
Magento_Newsletter
Magento_Payment
Magento_Quote
Magento_Rule
Magento_Sales
Magento_SalesRule
Magento_SalesSequence
Magento_Shipping
Magento_Store
Magento_Tax
Magento_Theme
Magento_Ui
Magento_User
Magento_Vault
Magento_Widget
Yireo_CspUtilities
Composer details
LokiCheckout_Coreloki-checkout/magento2-core
ext-dom: *
ext-intl: *
ext-json: *
ext-pcre: *
guzzlehttp/guzzle: ^7.0
loki/magento2-components: ^2.2.54 || ^2.3
loki/magento2-css-utils: ^1.0
loki/magento2-field-components: ^2.0
loki/magento2-map-components: ~0.1 | ^1.0
magento/framework: ^103.0
magento/module-backend: ^102.0
magento/module-catalog: ^103.0 | ^104.0
magento/module-checkout: ^100.0
magento/module-checkout-agreements: ^100.0
magento/module-config: ^101.0
magento/module-customer: ^103.0
magento/module-directory: ^100.0
magento/module-eav: ^102.0
magento/module-newsletter: ^100.0
magento/module-payment: ^100.0
magento/module-quote: ^101.0
magento/module-sales: ^103.0
magento/module-sales-rule: ^101.2
magento/module-shipping: ^100.0
magento/module-store: ^101.0
magento/module-tax: ^100.2
magento/module-vault: ^101.0
php: ^8.1
psr/log: ^1.0 | ^2.0 | ^3.0
yireo/magento2-csp-utilities: ^1.0
Releases
| 2.4.3 | 12 June 2026 |
| 2.4.2 | 12 June 2026 |
| 2.4.1 | 12 June 2026 |
| 2.4.0 | 12 June 2026 |
| 2.3.34 | 12 June 2026 |
| 2.3.33 | 12 June 2026 |
| 2.3.32 | 12 June 2026 |
| 2.3.31 | 12 June 2026 |
| 2.3.30 | 12 June 2026 |
| 2.3.29 | 12 June 2026 |
| 2.3.28 | 12 June 2026 |
| 2.3.27 | 12 June 2026 |
| 2.3.26 | 12 June 2026 |
| 2.3.25 | 12 June 2026 |
| 2.3.24 | 12 June 2026 |
| 2.3.23 | 12 June 2026 |
| 2.3.22 | 12 June 2026 |
| 2.3.21 | 12 June 2026 |
| 2.3.20 | 12 June 2026 |
| 2.3.19 | 12 June 2026 |
Changelog
[2.4.3] - 12 June 2026
Fixed
- Properly translate gender IDs to labels
- Fix core bug where automatically subscribed newsletter didn't register logged-in customer ID
- Do not re-subscribe if already subscribed to newsletter
[2.4.2] - 11 June 2026
Fixed
- Add XML layout arguments for lazy loading payment methods
- Add lazy loading template for payment methods
[2.4.1] - 09 June 2026
Fixed
- Move skip validation in dedicated class for security
- Allow gender options to be added via XML layout
[2.4.0] - 02 June 2026
Added
- Implement new option to uppercase the country
- Trigger event
loki_checkout_payment_method_update - Trigger event
loki_checkout_shipping_method_update - Add layout handle
loki_checkout_country_XX - Allow for
loki_checkout_theme_THEME_country_COUNTRYhandle - Allow for DI type extensibility when dealing with post-dispatch tasks
- Add CSS classes
skin-Xandgrid-layout-Ytoloki-checkoutblock - Add
inputmodeto various fields
Fixed
- If current step is obsolete, make sure to set first found step as current
- Remove
staticsingleton from PaymentMethodsRepository - Adjust step ViewModels to make block optional
- Clean up duplicate
<br>tags with newlines in between within address views - When pickup location is set, reset delivery date and vice versa
- Rename
themetoskineverywhere - Add layout handles dynamically via new Loki Component architecture
- Make sure GridLayout block uses exact same values as Grid CSS parser
- Enable autocomplete on customer login form
[2.3.34] - 21 May 2026
Fixed
- Never sanitize
multicarrier_multicarriershipping method - Add alt to payment images
[2.3.33] - 19 May 2026
Fixed
- Add the current theme to the LokiCheckout Alpine store
[2.3.32] - 15 May 2026
Fixed
- Allow modules to observe
loki_checkout_add_layout_handles
[2.3.31] - 11 May 2026
Fixed
- Improve handling of async rates like SHQ
- Set quote in payment method as well
- Add payment::importData() call to support PSP events
- Simplify gaps
[2.3.30] - 08 May 2026
Fixed
- Fix possible issue with shipping costs being collected too early
- Refactor payment save to use core
PaymentMethodManagement - Implement optional payment rate limiter
- When
AbstractBlock::getParentBlock()causes any error, exit gently - Redirect to wrong URL based on
message, after refactoring of RedirectException
[2.3.29] - 07 May 2026
Fixed
- Make sure input[type] of phone is
tel - Support for "Top Destinations" within country select
- Skip country AN because it is no longer present
[2.3.28] - 06 May 2026
Fixed
- Move data-child-name attribute to
LokiCheckout_Coreobserver - Allow DI plugins to hook into after address reset
- Add
remove_spacesfilter to VAT ID
[2.3.27] - 06 May 2026
Fixed
- Allow repositioning of non-grid blocks via grid-layout-component as well
- Allow
Gridto retrieve defaultcolSpan,mdColSpanandsortOrder - Cleanup default span-sizes in XML converter
- Fix sorting issues with non-grid blocks added to parent-grid
[2.3.26] - 05 May 2026
Fixed
- When update the progressbar, refresh the sidebar. When updating the billing VAT ID, refresh the totals
- Add div around customer-fields to allow CSS styling
[2.3.25] - 05 May 2026
Fixed
- Only show coupon code when there are active rules
- Add lock-icon to final step button but also allow overriding via XML layout
- Bump
Loki_Componentsto 2.2.54 - Chop shipping method item.phtml into smaller pieces
- Better align shipment method parts
- Fix nullable type
- Allow for shipment icon to be configured via XML layout
- Remove unneeded
scopefrom template - Allow
themeto extend fromparent
[2.3.25] - 04 May 2026
Fixed
- Allow for shipment icon to be configured via XML layout
- Remove unneeded
scopefrom template - Allow
themeto extend fromparent
[2.3.24] - 29 April 2026
Fixed
- Add Dutch translations
- Styling changes to shipping locations
- Add HTML attributes to shipping method icons
- Change input elements of shipping methods to be inline with payment methods
- Collapse button for shipping method details
- Fix tab buttons to occupy full width under mobile
[2.3.23] - 23 April 2026
Fixed
- Guarantee that country ID is set right after first loading of the quote
[2.3.22] - 22 April 2026
Fixed
- When regenerating checkout session ID at login, make sure CheckoutState is updated
- Add message to RedirectException
- Do not show full tax summary if tax is zero
- Add min / max to various field values
- Add layout handles for address grids (like
loki_checkout_address_default_grid_country_nl) - Support for tax-config settings for cart item prices (incl tax, excl tax or both)
- Split up sidebar cart item values into separate templates for qty and price
- Support option to display full tax details
- Add country flag images (wip)
- Rename
loki-checkout.steps.shipping.forward-button-icontoloki-checkout.steps.shipping.forward-button.icon - Rename
loki-checkout.steps.billing.forward-button-icontoloki-checkout.steps.billing.forward-button.icon
[2.3.21] - 14 April 2026
Fixed
- Remove static cache for payment method
- Make sure quote ID is not 1 by accident
[2.3.20] - 14 April 2026
Fixed
- In shipping component, fall back to location-button if deliveryEnabled is false
- Fix missing place order button in OneStep theme
[2.3.19] - 08 April 2026
Fixed
- Allow step buttons to be moved anywhere (including sidebar)
- Hard-configure step with XML layout
stepCodefor all step buttons - Refresh all buttons if components in stepButtons are refreshed
- Workaround when shipping method only contains 1 part without underscore
[2.3.18] - 01 April 2026
Fixed
- Allow calling StepNavigator::isFirstStep() and StepNavigator::isLastStep() without step argument
- Add new method StepNavigator::hasPreviousStep()
- Add StreetLinesFactory::createFromAddress method
[2.3.17] - 28 March 2026
Fixed
- Add ReturnTypeWillChange to jsonSerialize to fix 2.4.5 compile issue
[2.3.16] - 27 March 2026
Fixed
- Add skeleton loaders for delivery dates and locations
- Allow shipping method to react to changes to shipping address
- Dutch translations
- Huge refactoring of Alpine templates for locations and delivery dates
- Remove obsolete CartTotals class
- Invoke totals calculation right after making changes to the quote
[2.3.15] - 17 March 2026
Fixed
ENTERwith customer login form submitted wrong method- Make sure to match
orderwith actual HTML ordering - Directly use
json_decodein payment token deserialization to bypass potential exploits - Hide email address in email available error message by default
- Fix wrong saving of billing address details when repository is bypassed
[2.3.14] - 12 March 2026
Fixed
- Align label and checkbox of agreement properly
- Allow submitting coupon code by hitting enter
- Add title to login-button
- Add Dutch translations
- Translate "Remove coupon code" properly
[2.3.13] - 12 March 2026
Fixed
- Allow for
Loki_MapComponents1.0 - Agreement modal was no longer working properly with button
- Restructure label for agreement for accessibility
- Allow for more translations
- Allow setting shipping step label also via shipping step block itself
- Allow changing shipping method title via XML layout
- Block argument
grid_layoutwas no longer working - Make sure AddressState-classes depend on
isSamenotisEnabled - Allow empty email to pass JS email validation
- Fix targets of
loki-checkout.shipping.address.billing-as-shippingcomponent - Disable radioboxes for methods when loading
- Set fax field to lazy update
- Remove spacing between shipping methods when additional block is empty anyway
- Apply lazyupdate to billing address prefix and suffix
[2.3.12] - 02 March 2026
Fixed
- Refactor finalize-controller to be inline with final component
- Add
fullnametocustomerDatasection - Set step-forward button as disabled by default
- Set
aria-disabledon step-forward button on every change ofvalid - Monitor
loki-components.ajax.loadingto disable step-forward temporarily - Disable step-button while loading
- Allow matching components with all steps
- Do not start IBAN validation if value is still empty
[2.3.11] - 24 February 2026
Fixed
- Make
@dataProvidermethods in tests static - Make sure single numeric value is treated as housenumber directly
[2.3.10] - 24 February 2026
Fixed
- Add checkoutSession and xmlConfig to checkout context
- Declare customer email component with its repository class
- Move login-logic from LoginFormRepository into re-usable LoginCustomer class
- Move login-component logic into login-component-partial for reusage
- Surpress required-errors on next step
- Fix "Save in Addressbook" functionality after removing Onepage-logic
- Allow for handling configurable tasks at final step
- Add translations
- Trial 2.4.5-p14 build without global patch, but individual patches
[2.3.9] - 19 February 2026
Fixed
- Move shipping address and method HTML of sidebar in child blocks
[2.3.8] - 19 February 2026
Fixed
- Enhance Playwright tests
- Include failed email value in error message
- Fix logged-in customer test
- Add additional IDs to customer login form
[2.3.7] - 19 February 2026
Fixed
- Field Components are not required by default
[2.3.6] - 18 February 2026
Fixed
- Set
skipValidation=falsefor any component by default - Temporarily disable commit-versioning in Admin module listing
- Do not show required-errors if address is reset after country change
- Remove
@methodin trait because it produces a false negative in PHPStan - Make newsletter notifications optional via XML layout
- Make sure banktransfer config is loaded with per-scope option
- Change admin location in README
[2.3.5] - 17 February 2026
Fixed
- Issue with Tailwind 4
order-(--loki-sort-order) - Make sure login form can be submitted with ENTER
[2.3.4] - 16 February 2026
Fixed
- Issue when streetname contained spaces
- Enhance streetlines test
[2.3.3] - 16 February 2026
Fixed
- Move component context parentContexts outside of deps
[2.3.2] - 13 February 2026
Fixed
- New component-types LokiCheckoutPaymentMethodComponentType and LokiCheckoutShippingMethodComponentType
[2.3.1] - 12 February 2026
Fixed
- Cleanup duplicate logic in payment method icon
- Make sure payment icon has block name with
.iconsuffix - Wrap CSS class with
$css() - Allow PHP Config to read from current store level
- If no address in addressbook is marked as default, just use the first one
- Add
customer_nameto localStorage sectionloki-checkout - Add proper Hyva Tailwind 4 support
- Mark same-as checkbox as component that does not need validation
- Add overlay component partial for possible future usage
- Remove quote mutex approach because it is automatically called anyway
- Guarantee that customerAddressId is never set on guest addresses
- Deselect chosen customer address if invalid
- Add message on fixing invalid address via addressbook link
- Migrate AddressContext and AddressFormContext to new context-style
- Set invalid customer address as disabled in the select-box
- Move fast checkout buttons in multistep checkout to billing step
- Add new finalize controller method for JS PSPs
- Add shipping method code as hint while in Dev Mode
- New Alpine checkout-store method getComponentByName()
- Allow skipping redirect of final step
- Simplify logic of StepViewModelBehaviour
- Add StoreManager and LocaleResolver to checkout context
Test
- Re-enable Playwright for WCAG 2.2 AAA
- Simple Playwright test for logged in customer
- Fix broken Playwright postcode test
[2.3.0] - 03 February 2026
Added
- Add Tailwind 4 CSS support
- Add
x-money.centsmodifier - Rewrite to composable AbstractComponentContext
Fixed
- Set
sortOrder=400for fieldsave_in_address_bookby default - Make sure timeframe props are always valid
- Move
btnCSS fromcomponents-layertoutilities-layer - Add
role=groupto payment methods and shipping methods - Allow for better styling of error message around
[role=group] - Additional styling of
[role=group][aria-invalid=true] - Rename
submitTimeframe()tosaveTimeframe() - Move
getJsDatafrom trait to parent class - Rename
--loki-orderto--loki-sort-order
[2.2.3] - 28 January 2026
Fixed
- Improve resolving step from given block
- Block arg
sort_ordershould allow to overrideloki_checkout.xmlsortOrder - Allowg resolving promises with beforePostNextStep
[2.2.2] - 23 January 2026
Fixed
- Do not make newsletter required
- Properly set additional information in payment
[2.2.1] - 23 January 2026
Fixed
- Always save default value of AdditionalInformationRepository
[2.2.0] - 20 January 2026
Added
- Implement proxies for customer and checkout session
- Implement
lazy_updateas component property
Fixed
- Wait for 30ms to validate postcode with changed country ID
- Properly refresh all street-parts and city when switching country
- Add
render_orderof -1 toloki-checkout.shipping.methods - Do not billing address for free virtual products
- Add payment code as title-attribute to method in dev mode
- Unify element IDs based on block
[2.1.37] - 13 January 2026
Fixed
- Properly copy addresses when logged in and when virtual quote
- Allow overriding step title in navigation via XML layout
- Configure first step in SameAddressService via interceptable method, not constructor argument
- Remove duplicate shipping method validator
- Allow enter to submit login form
[2.1.36] - 09 January 2026
Fixed
- Allow failure of integration tests being set to manual
- Fix failing ForwardButtonPageTest test
- Fix DI compile in tests
- Undo wrapping of quote placement in quote mutex because of pre-2.4.8 issues
[2.1.35] - 06 January 2026
Fixed
- Make sure payment method is properly saved on-load when different
- Micro-optimization of quote loading
- Only fetch default payment method once (for performance)
- Use QuoteIdMutex to lock quote while placing order
- Configure same-address service better for which step goes first
- Toggle feature resets wrongly with billing-first
- When logged in, same-as-billing is true, set shipping equal to billing automatically
- Improve billing-first behaviour
[2.1.34] - 30 December 2025
Fixed
- Properly render billing address in sidebar when quote is virtual and customer is logged in
- When quote is virtual, copy all details from billing to shipping
- Consider address empty is all is empty but
customer_id - When customer is logged in and quote is virtual, autofill shipping address ID as well
- When quote is virtual, never show billing address view
[2.1.33] - 24 December 2025
Fixed
- Only display visible items in sidebar
[2.1.32] - 19 December 2025
Fixed
- When selecting customer address from select, re-render totals
- Add skipValidation flag for read-only components
- Make sure step-forward-button toggles aria-disabled when toggling valid
- When default value is not empty, save it in payment additional information
[2.1.31] - 17 December 2025
Fixed
- Set $isRequiredByDefault = true for Payment/AdditionalInformationViewModel
- Add tsconfig.json that extends
LokiCheckout_FunctionalTests
[2.1.30] - 15 December 2025
Fixed
- Set
render_orderof sidebar totals high - Set sortorder of all blocks
[2.1.29] - 11 December 2025
Fixed
- Scope TailwindCSS additions to
.loki-checkout - Autofill address did not copy all fields from shipping to billing
- Remove obsolete script child from
coupon_code.phtml - Remove obsolete script block from
shipping-methods.phtml - Default shipping method should recalculate totals in sidebar
- Move shipping method update to separate service UpdateShippingMethod
- Make sure to save quote when copying shipping to billing
- Add
LokiCheckout_CoreClito GitLab CI Playwright - Disable window.checkoutConfig by default
- Add
LokiCheckout_DevToolsto CI - Chop cart-item templates up in smaller pieces
- Fix product-image-photo height from auto to fit-content
- Remove debug message
- Remove deprecated ProductImage::getImageUrlBySku() method
- Render product options of cart items in sidebar
- Allow reusing original product renderer in sidebar
- Fix PostcodeFormatValidatorTest integration test
- Add HTML input checked to avoid Alpine glitch
- Fix ViewPageTest integration test
- Create CustomerAddressFixture as default billing and shipping
- Rename deprecated AddressState::save/load to set/get
- Fix existing address of logged-in customer overriding custom address
- Move save-cart logic into separate class
- Make regex of coupon code configurable
- Rewrite coupon code validation logic
- Remove redundant quote save
- Add singleton to optimize country-loading
- Optimize quote handling
- Move enable-logic from observer to router and helper classes
- Add custom router for replacing original checkout-controller entirely
- Reduce number of quote saves when updating components
- Remove field label from "Save in address book"
- Only save in quote when layout handle contains
loki_checkout - Automatically save quote after all repository updates
- Dynamically change preview address title depending on
same_as_billing flag - When toggling same-as-billing, refresh address in sidebar too
- Rename
loki_checkout_address_field_save_aftertoloki_checkout_address_field_set_after - Enhance
same_as_billingcopying - When quote is virtual and newAddress, nullify shipping address as well
- Add circle-exclamation.svg
- Set target
billing.vat_idwhen billing.company changes - Always refresh target
loki-checkout.sidebar.totalswhen shipping address changes
[2.1.28] - 02 December 2025
Fixed
- Save coupon via repository to allow proper validation
- Allow quote save via repository with additional flag
- Make coupon code messages translatable
- Add Dutch translation
[2.1.27] - 02 December 2025
Fixed
- Fix loader icon of step-forward button
- Prevent notice error
- Fix loki-md-col-span when empty
- Allow checkout-access even though disabled, when passing license
[2.1.26] - 27 November 2025
Fixed
- Do not escape
$css()withescapeHtmlAttr()butescapeHtml() - Fix styling of payment method subform alignment
- Add uniq ID to payment method container and form
- Fix wrong escaping via escapeHtmlAttr
[2.1.25] - 21 November 2025
Fixed
- Add XML layout comment for changing agreements messages to global messages
- Trigger error message of agreements when hitting StepForwardButton
- Fix wrong assumption on integration test with Customer DOB
- Remove deprecated LokiCheckoutPageTestCase in integration tests
- Standardize usage of ObjectManager in Integration Tests
- Move fixture usage away from setUp (requires test rewrite)
- Use rate titles for shipping method preview in sidebar
- Migrate from SortedBlocks class to ChildRenderer::all() in address forms
- Deprecated SortedBlocks class in favor of ChildRenderer::all()
- Remove x-html in favor of x-text to anticipate Alpine CSP changes
- Improve message on failed fixture in test
- Replace
$block->getChildHtml()with$childRenderer->all()to allow for better sorting - Add @variant instead of @screen for Tailwind 4 support
[2.1.24] - 14 November 2025
Fixed
- Properly update same-as-billing with every field save
- When checking if component exists, return false if component element has no children
- Fix broken unit tests after refactoring
[2.1.23] - 14 November 2025
Fixed
- Fix old quote being stuck, after updating quote items
- Switch from CartRepository::save() to Quote::save() because of Magento issue 38950
- Fix Hyva minicart toggle to be redirect to cart page
- Fix x-money directive to properly output with right currency and locale
[2.1.22] - 14 November 2025
Fixed
- Fix possible type error
- Add new RegionRepository which is not in the core
- Directly save address, not via quote to make things a tiny bit faster
- Add FilterScope to every Filter
- Add component and scope args to FilterInterface::filter()
- Prevent duplicate mail from being sent
[2.1.21] - 12 November 2025
Fixed
- Fix typo in totals loop
[2.1.20] - 12 November 2025
Fixed
- Display shipping totals in sidebar with or without tax
- Pass totals-argument to each totals child block
- Add separate shipping totals
- Include shipping method and carrier properly in totals calculation
[2.1.19] - 12 November 2025
Fixed
- Allow various settings to be set on the store-level as well
- Add shipping method code as data-method in sidebar preview
- Fix agreements being invalid but not stopping forward button
- Rename LokiLocalStorage to LocalStorage
- Improve agreements not being checked
- Add plan-trial keyword to composer file
[2.1.18] - 03 November 2025
Fixed
- Fix agreements validation if in final step
- Update composer keywords
- Allow for
region_idin customerData section output - Add component repository repository so when bulking, country is saved first
- Cleanup postCodes from
window.checkoutConfig - Remove postcode validations for countries that are not allowed
- Fix issue with country ID being appended to housenumber after StreetLines refactor
- In shipping preview, use codes if actual method could not be found
- Add optional StepContextInterface
[2.1.17] - 22 October 2025
Fixed
- Implement new method createFromStreet with countryId argument
- Make street lines parser only available for configured countries (NL, BE)
- Require countryId for usage of StreetLines
- Allow psr/log 1 and 2 besides 3 as well
- Do not escape
$css()withescapeHtmlAttr()butescapeHtml() - Add LokiComponentExtender for mixins and other modifications
[2.1.16] - 17 October 2025
Fixed
- Move LokiHtmlUpdater from LokiCheckout to
Loki_Components - Document latest version of template
- Fix newlines after comments
- Copy generic CI/CD files
- Update MODULE.json
- Skip invalid components that are not visible
- Add
loki_checkout_payment_before_save_quoteevent for additional information - When collecting invalid components, explicitly remove components that are gone
- Make change to input optional
[2.1.15] - 15 October 2025
Fixed
- Split-up customer section "loki-checkout" in subclasses
- Cleanup image templates with width, height and size
- Improve HTML structure of payment methods
- WIP
- Do not check invalid DOB if still empty
- Set DOB min and max properly
[2.1.15] - 14 October 2025
Fixed
- Skip invalid components that are not visible
- Add
loki_checkout_payment_before_save_quoteevent for additional information - When collecting invalid components, explicitly remove components that are gone
- Make change to input optional
[2.1.14] - 10 October 2025
Fixed
- Add better styling of agreement pre-tag
- Add translation for "View terms"
- Allow agreement checkbox text to contain magic tag
- Restructure agreement template into smaller templates
- Move Alpine directive templates in specific directive-folder
- Implement new x-tooltip directive
- Failsafe if button-reference is not found (when switching steps fi)
- Add Dutch translations
- Hint to complete address details before selecting shipping address
- Set aria-disabled=true on step-forward-button if not valid
- Add button hint to step-forward button
- Change button color to match WCAG 2.2 AAA
- Fix button color of inactive button
- Apply proper ARIA attributes to tab components
- Move dependency with
Yireo_HyvaThemeAutoRegistrationfrom core to Hyva-module - Move
HyvaThemeAutoRegistrationfromLokiCheckout_CoretoLokiCheckout_Hyva - Allow overriding
js_component_namevia XML layout
[2.1.13] - 09 October 2025
Fixed
- Reset localStorage of cart and loki-checkout right before finishing everything
- Add my-8 to address forms
[2.1.12] - 08 October 2025
Fixed
- Fix styling of agreements
- Turn margins into gaps
- Fix password field styling under Luma
[2.1.11] - 08 October 2025
Fixed
- Allow sorting of children via block argument "sort_order"
- Apply flexbox and gap to address and sidebar
- Improve spacing of blocks within steps
[2.1.10] - 08 October 2025
Fixed
- Allow changing button classes
- Set fill:white for SVG within btn-primary
- Always enable the step-forward button, just change its appearance
- When there are no shipping methods, mark LokiCheckoutShippingMethods component as valid
[2.1.9] - 07 October 2025
Fixed
- Remove redundant width and fill-color from step forward button icons
[2.1.8] - 07 October 2025
Fixed
- Refactor address state logic to allow reset after certaing changes, like country change
- When switching country, wipe out street, postcode, city and region
- Split up empty-message of shipping methods in separate template
- HTML content of agreement wrongly escaped
- Add new list-block under neath shipping methods
- Add JS translations
- Allow for JS translations of dates
[2.1.7] - 06 October 2025
Fixed
- Show loader when no items
- Move expand buttons for Alpine shipping methods into child-templates
- Remove prevent-modified from buttons
- Option to show all available locations or deliveryDates
- Make parent element of entire location block a label
- Fix hickup in locations and delivery dates with shipping methods in JS
- Fix selection of current shipping method location in Alpine
- Prevent null value to break x-time directive
- Turn expandLocations link into button
- Standardize time slots with start and end property
- Allow x-time to match both 00:00:00 and 00:00
- Make sure to use cart item renderer for product image in sidebar
- Add btn class as default to various buttons
- Refresh shipping methods when changing shipping address postcode, street, region, city or country
[2.1.6] - 01 October 2025
Fixed
- Improve image rendering
[2.1.5] - 30 September 2025
Fixed
- Add create account button
- Fix issues with payment and shipping methods not being displayed properly
- Do not show gender in sidebar if field is not shown either
[2.1.4] - 30 September 2025
Fixed
- Render progress bar with overlay without loader icon
- Do not move messages to top
- Make sure max items to display in sidebar is never 0
- With login-component, only refresh sectionData completely after AJAX is done
- Add x-cloak to conditional loader for shipping method templates
- Fix gitlab being overwritten
[2.1.3] - 27 September 2025
Fixed
- Enforce isValid() method in StepViewModels
- Enhance error messaging with Step Navigator
- Fix wrong escaping
[2.1.2] - 25 September 2025
Fixed
- Fix wrong escaping
[2.1.1] - 25 September 2025
Fixed
- Fix dependency with Map Components
- Move deliveryDates and locations to LokiCheckout Alpine store
- Move generic shipping blocks from MyParcelNl to core
[2.1.0] - 24 September 2025
Added
- Allow LokiCheckoutCoreComponentBaseQuoteFieldQuoteFieldViewModel to be used directly
- Implement new imageRenderer
- Implement isValid() method in step ViewModels properly
- Clean up step ViewModel code with new AbstractStepViewModel
- Move new login component to
LokiCheckout_Coreand beautify - Move sort order of steps from XML layout into
loki_checkout.xml - Add custom newsletter component to give local error when checkbox is still disabled
- Add loki-checkout customerData section
- Add window.checkoutConfig to page
Fixed
- Make only required method of section class public, rest is private
- Remove redundant CSS classes from icon containers
- Rename loki.script from container to block to allow caching
- Change containers into blocks to allow for caching
- Add
.preventmodifier to@clickevent handler - Rename Alpine store checkout to LokiCheckout, components to LokiComponents
- Better way to check if checkout session has a quote or not via CheckoutState::hasQuote()
- Prevent empty quote from sending back wrong section data of loki-checkout
- Implement proper validation of previous steps when proceeding to next step
- Reset steps properly when switching theme
- Automatically append target for private data for checkout components
- Add new component for private data syncing after component updates
- Extend loki-checkout section with quote customer details
- Make sure invalid step can not be set
- Make sure only enabled steps are returned by StepNavigator
- Allow steps to have no block yet (outside of checkout)
- Allow for sorting steps via layout argument
sort_order
[2.0.26] - 16 September 2025
Fixed
- Rename shipping.shipping-methods to shipping.methods
- Move page messages to fixed position in Luma
- Add deps
[2.0.25] - 10 September 2025
Fixed
- Remove minicart
- Change label of grid_layout to Address Grid Layout
- Add escaping
- Update MODULE.json with PHPCS severity 9
- Reorganize scripts and Alpine.data
- Add PHPStan levels
- Divide shipping JS templates into small templates
- Create generic PHTML template for tab-buttons
[2.0.24] - 04 September 2025
Fixed
- Allow overriding propertyName in AdditionalInformationRepository
- Fix integration tests
- Improve logic for detecting existing newsletter subcribers
[2.0.23] - 03 September 2025
Fixed
- Make sure to add grid styles to relevant grid block
- PHP 8.1 fix
- Copy generic CI/CD files
[2.0.22] - 02 September 2025
Fixed
- Fix bug in disappearing field labels for street1 or higher
- Add StoreView scope to config parameters
[2.0.21] - 02 September 2025
Fixed
- Change loki-checkout.payment.payment-methods to loki-checkout.payment.methods
- Cleanup event listener for performance
- Add translations
- Add meta description
- Do not allow HTML in agreements title
- Always have a field label, but just hide it sometimes
- Refactor Loki-library location in Playwright tests
[2.0.20] - 29 August 2025
Fixed
- Propertly clean payment method additional data if no longer available
- Enhance check for active payment method with quote arg
- Double-check that saved payment method is indeed available
- Add recurring setup to check for modules to enable
[2.0.19] - 28 August 2025
Fixed
- Empty flag for "Save in addressbook" causes PHP type error (sometimes)
- Set a maximum age for dob
[2.0.18] - 27 August 2025
Fixed
- Add CI files
- Throw validation error if dob is validated with non-sense value
- Cleanup
- Fix PHP check in Gitlab CI/CD
[2.0.17] - 26 August 2025
Fixed
- Additional translations
- Change IBAN validator warning
- Add reusable parent classes for additional payment information components
- Make date of birth configurable
- Add IBAN validator
- Fix jumping to top
- Add GitLab CI files
[2.0.16] - 21 August 2025
Fixed
- Jump to top when switching steps
- Disable component-extender logic in XML layout because it is unfinished
- Move scripts from top of body to bottom of body
- Add dependency with loki/magento2-css-utils
- Refactor GridStyleParser to use new LokiCssUtilsUtilCssStyle
- Refactor GridClassParser to use new LokiCssUtilsUtilCssClass
- Re-ordering blocks
- Fix duplicate import
- Replace LokiComponentsUtilBlockCssClass with LokiCssUtilsUtilCssClass
- Fix newlines after comments
- Declare used PHP namespaces
- Add escaping of template code
- Document latest version of template
- Add missing
strict_typesdeclaration - Add missing
$css()
[2.0.15] - 19 August 2025
Fixed
- Change heading from h3 to h2 because of SEO-purpose
- Document latest version of template
- Add missing
declare(strict_types)
[2.0.14] - 18 August 2025
Fixed
- Allow for PHP 8.1 compatibility
- Lower requirements to PHP 8.1
- Split up login.phtml into smaller more configurable templates
- Coupon code was always open
- A11Y fixes for coupon code label
- IMP: changed a to button
- Add icons to toggle buttons for cart item
- Fix newlines after comments
- IMP: move all code in to there own file
- IMP: col fallback
- Option to limit cart items in sidebar but collapse to entire list
- Enhance text for config option
- Fix item to be number
- Add admin config for
max_items_visible_count
[2.0.13] - 15 August 2025
Fixed
- Split up login in sidebar into child templates
- Prevent non-grid child blocks from getting grid classes
- Fix issue with billing address being shown even though same-as-billing is checked
[2.0.12] - 15 August 2025
Fixed
- Implement new CSS class
loki-col-spanproperly - Set col span via CSS properties instead of too many Tailwind classes
- Convert option for inline CSS styles to CSS properties
- Add new
loki_checkout/cart/max_items_visible_countoption to Config class - Move
netherlandsgrid ofdefault_gridtoLokiCheckout_Nlmodule - Formatting
[2.0.11] - 14 August 2025
Fixed
- Allow default sort order, col-span and md:col-span to be configured via DI type
- Rename tab in Store Config from "Yireo" to "Loki"
- When step-value in component is empty and there is only 1 step in total, use that step
- Fix re-ordering bug of field blocks after AJAX update
[2.0.10] - 14 August 2025
Fixed
- Fix integration tests with ConfigFixture scope
- Draft of subscribing to newsletter by default
- Add config option to subscribe to newsletter by default
[2.0.9] - 13 August 2025
Fixed
- Move Tailwind
order-xclasses into custom CSS rules to reduce CSS size - Add
data-validattribute to fields - Fix potential JS error when coupon code component has no value
- Prevent module without composer.json from causing error in backend module overview
- Update totals when applying discount via coupon code
- Fix escaping in template
[2.0.8] - 10 August 2025
Fixed
- Allow toggling loader overlay via showLoader property
- Prevent jump to top
[2.0.7] - 07 August 2025
Fixed
- Remove obsolete todo
- Remove obsolete todo
- Allow overriding LokiCheckoutDateOptions via XML layout
- Jump to top when switching steps
- DDo not trigger dispatchPaymentMethodEvent when payment is still empty
- Allow configuration of reactivateTimeout via XML layout
[2.0.6] - 06 August 2025
Fixed
- Allow XML layout to set message area to make component messages global or local
- Add before/after container to local messages container
- Make sure agreement child-component is working properly with all step-logic
- Better way to handle step validation and aria-invalid
- Prevent re-post when step-hash is not shown in URL yet
- Set submitted component-flag via step-forward button
- Add submitted flag to all components; Fix step-detection for customer fields
- Turn each agreement into separate Alpine component
- Only render sidebar if HTML not empty
- Lower PHP to 8.2
- Remove unwanted newline after noEscape
- Implement escaping in templates
- Remove legacy code
- Use aria-label instead of title in step-icon
[2.0.5] - 01 August 2025
Fixed
- Rewrite progress for easier adjustments like additional links and icons
- Add missing
$csswrapper - Finalize new structure of agreements
- Move modal close button into separate PHTML
- Implement modal for agreements; Implement child templates in agreements.phtml
- Make strings translatable
- Add method IconResolverContext::getIconAsset()
- Wrong ViewModel reference leads to Fatal Error
- Remove duplicate child HTML
- Fix broken module name in README
- Add translate attribute to various XML layout arguments
[2.0.4] - 30 July 2025
Fixed
- Make errorText of agreements translatable
- Make agreement text and content translatable in PHTML
- Add ARIA labels
- Allow translating step labels
- Enhance translations when adding and removing items
- Additional child renders in sidebar
- Only add payment method code to sidebar in Developer Mode
- Add output HTML element
- Reload step when hash changes
- Rename LokiCheckoutSteps component to LokiCheckoutProgressbar
- Various fixes in GitLab CI config
[2.0.3] - 28 July 2025
Fixed
- Support for
checkout/options/max_items_display_count
[2.0.2] - 24 July 2025
Fixed
- Split up
coupon_code.phtmlinto child templates - Enhance toggling of coupon code
- Fix var definition in comments of
login.phtml
[2.0.1] - 24 July 2025
Fixed
- Add
aria-invalidattribute to agreement checkboxes - Add
requiredattribute to agreement checkboxes - Set
h-fullinstead of flex utils, to prevent resizing image in picture-tag - Only resize image to width, not width and height
- Rename
jumpTotojumpToMarker - Remove obsolete component scripts
[2.0.0] - 22 July 2025
Fixed
- Rename PHP namespace from
Yireo_Loki*toLoki* - Rename composer package from
yireo/magento2-loki*toloki/magento2* - Bump loki/magento2-components to major 2.0
- Bump loki/magento2-map-components to 0.1
- Bump loki/magento2-field-components to major 2.0
- Move optional CLI and admin features to separate modules
[1.0.10] - 17 July 2025
Fixed
- Move title logic from template to XML layout
[1.0.9] - 08 July 2025
Fixed
- Remove escaping from SVG output
- Show
error_textfrom layout when agreements are not checked yet - Add
aria-requiredto agreements - Allow retrieving masked quote ID from CheckoutState
- Allow LokiCheckout prefixed modules to be working with Hyva automatically
- Remove the cart drawer from Hyva Themes
[1.0.8] - 02 July 2025
Fixed
- Reset agreements after checkout completion
- Properly disabled proceed button if agreements are still unchecked
- Fix final step error when there is no redirect
- Fix Fatal Error with checkout agreements
- Allow HTML in agreements box
- Fixes for block sorting
- Add order-[] class to grid blocks on load
- Remove deprecated getCurrentGrid method
- Remove newline
- Fix PHPMD issues
[1.0.7] - 20 June 2025
Fixed
- Finalize new grid settings
- Properly allow overriding and merging of
loki_checkout.xml - Add Dutch translations
[1.0.6] - 20 June 2025
Fixed
- Undo validation of current step on load
[1.0.5] - 20 June 2025
Fixed
- Disable jumpto for now
- Finish new loki-checkout.xml structure
- Rewrite grid layouts to include sub-entity grid
[1.0.4] - 18 June 2025
Fixed
- Add loader to coupon code box
- Fixes for Phpstan level 4
- Add escaping of variables
- Move debug icon to SVG file
- Autocomplete fixes for street, region and city
- Use Loki test-case in Playwright to detect JS errors automatically
- Rewrite @helpers to @loki in Playwright tests
- Draft of ApplePay behaviour
- Make sure success URL is a string
- Enhance workflow of errors during final stage
- PHPUnit behaving strange with skipDispatchToCheckout protected variable
- Remove old deprecated trait
- Remove old commented function
[1.0.3] - 22 May 2025
Fixed
- Register
Loki_FieldComponentsas a checkout module - Easier support for image output
- Add label title of payment method code
- Add assertion for usage in PSP integration tests
- Ignore redirect URLs with no length
- Make sure to wait for beforePostNextStep calls before proceeding to next step
- Add proper support for payment instruction text
- Additional checks for final button and component validation
- Trigger component-update event after selecting payment methtod
- Move remove invisible components to LokiComponents
- Double-check if image exists before returning payment icon
- iImprove mechanism to detect tests
- Remove deprecated
use_required_blocksetting (which is in FieldComponents now) - Fix core issue with postcode 1234 allowed by core
- Double-check integration test for postcode validation
- Add CSS wrapper
- Update admin settings with tooltip and regenerate new MODULE.json
- Add tooltip to config values
[1.0.2] - 13 May 2025
Fixed
- Fix possible error
- Only dump active modules to loki-checkout.json
- Make sure to include empty modules as well for module dump
- Refactor mechanism to fetch tests from folders
- Fix additional runs of Playwright tests
- Fix warning when array keys are not matched
- Rewrite all beforeInit and afterInit into new initMethod structure
- Rewrite Alpine from initActions object to methods starting with init
- Allow PHP 8.4 in CI
- Remove lines on ES config
- Fix issue with LokiCheckoutMollie DI type overriding core validators
- Do not make BLOCK constant public
- Rewrite integration test flag $skipDispatchToCheckout
- Mobile fixes
- Fix default md:col-span-x
- Fix detection of Hyva/default-csp theme
- Fix type error when no states are required whatsoever
- Luma layout prefix was depending on Luma/blank not Magento/blank, typo
- Prevent error with only optional regions (@RikWillems)
[1.0.1] - 28 April 2025
Fixed
- Apply Rector fixes
- Loosen support for magento/module-catalog
- Remove unused imports
- Remove deprecated classes
- Update composer and module deps
[1.0.0] - 25 April 2025
Fixed
- Allow upgrading to LokiFieldComponents and LokiComponents 1.0
- Remove
x-modelbecause of CSP compliance - Fix wrong saveQuote call
- Failsave for null values in repositories
- CSP fixes
- Add additional Loki modules to Hyva Theme autoregistration
- Add composer suggest
- Customize backdrop of modal dialog
- Draft of fast checkout option for PSPs
- Consolidate vault access in core module
- Intercept unwanted exceptions while rendering
- Optimize guest checkout flags
- Move from
x-init-datato separatetext/x-loki-initscript to prevent escaping issues - Implement core customer address validation
- Move Mollie fixture from core to Mollie module
- Fix possible issue when LokiCheckout config is used outside of checkout
- Add lazyloading to cart image
- Finish grid layout JS switching
- Add LokiCheckoutGrid component
- Add empty grid for later usage
- Remove gridClass, add colSpan and mdColSpan in grid layouts
- Allow switching of grid layout per country ID
- Add new Alpine directives x-time, x-datetime, x-date
- Remove CheckoutSession from context
- Remove FieldTemplateLocator from context
- Remove CartRepository from all contexts
- Rewrite
getCartRepository()->save()togetCheckoutState()->saveQuote() - Reduce dependencies with CheckoutState::saveQuote()
- Make loader icon in fields depend on Alpine and activate only after configurable timeout
- Rename JS validators/ folder to validator/
- Fix invalid HTML in shipping method input
[0.1.21] - 16 April 2025
Fixed
- Always persist chosen customer address ID
- When creating a new address, also reset the
customer_address_idon load - Change address toggle label on billing step to "Add new billing address"
- Skip shipping address validation for virtual quotes
- Fix issue with one-line street being saved earlier
- Move image from PostNl to core
- Move common templates from PostNL to core
- Unify locations and addresses for any maps
- Turn login into modal popup
- Add JS password complexity validation
- Move scripts from "before.body.end" to new "loki-scripts" container
- Add configurable password complexity
- Rename LokiCheckoutValidator to LokiComponentValidator
- Add handle prefixes for Hyva, Luma and Breeze
- Implement label for gridlayouts
- Add optional countryId to grid XML
- Add label to grid
[0.1.20] - 10 April 2025
Fixed
- Exit after redirecting
[0.1.19] - 10 April 2025
Fixed
- Use a normal redirect when quote is dead and AJAX is not there
[0.1.18] - 10 April 2025
Fixed
- Move dep with "yireo/magento2-hyva-theme-auto-registration" to Hyva module
- Add yireo:loki-checkout:modules:dump command
[0.1.17] - 09 April 2025
Fixed
- Restructure loki classes for Luma
- Fix width definition of icon in step button
[0.1.16] - 09 April 2025
Fixed
- Switch from TimezoneInterface to Timezone because of DI arg scopeType issue
- Allow switching shipping details in sidebar to alternate template
- Finalize Post NL templating and abstract Shipping classes
- Add ext/intl requirement
- If street is 1 line, explode by space
[0.1.15] - 08 April 2025
Fixed
- Working version of Post NL form with saved values and tab selection
- Simplify loading state of target components
- Remove redundant address-select template
- Remove unneeded important flag
- Remove select-icon when loading select-field
- Add warning if coupon code failed to apply
- Add generic Location, Timeframe and Address classes, fi with Post NL
- Mobile fixes
[0.1.14] - 04 April 2025
Fixed
- Remove overlay when reloading StepForwardButton component
[0.1.13] - 04 April 2025
Fixed
- StepBackwardButtonViewModel was missing required method
[0.1.12] - 04 April 2025
Fixed
- Add Playwright functional tests
- Move to Mollie-specific DI config to Mollie plugin
- Allow for specific exceptions to redirect back to checkout/cart
- Remove specific step button templates in favor of FieldComponents
- Modify overlay when loading next step
- Add icons to step button
- Refactoring of Integration Tests
- Refactor FinalStep to get rid of legacy OneStep code
- Disable autocomplete for coupon code
- Implement better DOM ID for shipments too
- Add better DOM ID for payment methods
- Remove
positive_numberfilter from telephone and fax - Fix issue with duplicate DOM IDs again (but now with test)
- First draft of pickup locations
- Resolving of shipping method icons
- Enhance CSS of method listings
- Refactor PaymentRedirectUrl plugin to resolver
- Refactor PaymentMethodIcon plugins into resolvers
- Enable
hide_region_when_optionalby default - Implement LokiCheckoutRepositoryTestCase
- Enable GitLab CI/CD
- Add help text depending upon
enable_vat_id_only_for_company - Refactor BillingAddress and ShippingAddress components to generic Address components
- Use separate template for billing address form title
- Do not ever copy address if the SameAddress service says no
[0.1.11] - 11 March 2025
Fixed
- Fix issue with grid CSS classes
- Add better exception message when Context::getStepProvider() is missing
[0.1.10] - 11 March 2025
Fixed
- Fix order completion for virtual orders
- Move GridLayout from XML layout to config
- Remove default grid class
- Implement option
loki_checkout/general/default_grid_class - Dynamically change title of shipping address form
- Rename
field_nametofieldName - Fix client-side validation after refactoring to LokiFieldComponents
- Fix age verification in test
- Fix gender validation in test
- Replace PrefixValidator with more generic OptionsValidator
- Add proper date validation of date of birth
- Fix possible error if somebody is spoofing value
- Make sure gender and DOB are required if set so in config
- Accessibility fixes
- Fix styling of country box when there is an error
- Fix location of buttons
- Move required block
- Add module dependencies
- Huge refactoring to move logic into new LokiFieldComponents
- System Check for module dependencies
- Add test for new ViewModel
- Add button label for quote without payment required
- Add default responsiveness to all fields
- Fix name of defaults block
- Re-enable postcode format validator test
- Refactor and adjust styling
- Refactor SystemCheck architecture in admin
- Check for dev modules not being enabled in Production Mode
- Move EmailValidatorTest
- Add missing Dutch translations
- Move email availability in separate validator
email_available - Rename
loki-checkout.css_classestoloki-components.css_classes - Rewrite Alpine.store() APIs
- Add datetime to module overview
[0.1.9] - 25 February 2025
Fixed
- Standardize JS event names
- Rename checkout:payment:method-activate to loki-checkout prefix
- Rename loki-checkout-before-redirect to loki-checkout.before-redirect
- Rename loki:dom-update to loki-components:dom-update
- Rename yireo-loki-checkout.component-change to loki-components.component.update
- Add generic LokiComponentsLogger
- Refactor yireoLokiCheckoutLogger to LokiCheckoutLogger object
- StepForwardButton not activated after component updates (use $nextTick)
[0.1.8] - 24 February 2025
Fixed
- Rerun LokiCheckoutStepsShippingForwardButton.updateValid() at every update
[0.1.7] - 24 February 2025
Fixed
- Hide payment method component by default
- Fix non-existing method NewsletterRepository::getDefaultValue()
- Change Place Order label when virtual quote
- Add missing Dutch translation
[0.1.6] - 24 February 2025
Added
- Save in Address Book checkbox
- Add more translation strings
Fixed
- Prevent null from throwing TypeError / Beautify shipping method label
- Allow saving more variable types
- Call to undefined method getDefaultValue()
- Wrong exception caught
- Prevent saving non-existing payment method still set as default
[0.1.5] - 24 February 2025
Fixed
- Prevent exception when selecting shipping method repeatedly
- Allow default value in field to be saved automatically
- Retrieve option model from ViewModel
- Remove empty option for gender
- Remove bgcolor from login card
- Add Dutch translations
- Remove demo field label "Surname"
[0.1.4] - 23 February 2025
Fixed
- Intercept exception with addShippingRate
[0.1.3] - 23 February 2025
Fixed
- Remove unneeded collectTotals
- Cleanup totals calculation
- Cleanup cart totals rendering
- Failsafe to skip loading shipping methods if country ID is empty
- Make sure default country ID is saved to quote
- Prevent endless loop when submitting to AJAX which then fails
- Simplify shipping method calculation
- Recalculate totals properly via AJAX
- Fix shipping methods test except totals
- Re-enable default shipping method pick
- Dont render address template when HTML is empty anyway
- Add doc link to module overview
- Carrier label not found if carrier no longer active
[0.1.2] - 22 February 2025
Fixed
- Update loki_checkout.xml grid CSS for mobile
[0.1.1] - 22 February 2025
- Small responsive fixes
- Show no billing step title if quote is virtual
- Simplify customer fields block in onestep theme
- Allow customer fields to be shown in either billing or shipping step
- Hide shipping address view and shipping methods for virtual quote
- Hide same-as-billing for virtual quotes
- Empty address was still showing country
- Disable Same as Shipping if quote is virtual
- Allow hiding billing title via XML layout
- Default payment method was not saved to quote
- Lift requirements
[0.1.0] - 21 February 2025
- Version bump
[0.0.7] - 21 February 2025
Added
- New admin page for Module Status
- New admin page for System Checks
- Add reusable RegionProvider
Fixed
- Set disabled CSS for select as well
- Fix issue with HTML attributes for nested components
- Fix JS numeric validator
- Simplify Agreements handling
- Add DI plugin as workaround for non-working
free_shipping_subtotal - Improve streetlines logic with faulty values
- Append streetline values if streetlines config is wrong
- Add "not available" text to unavailable shipping methods
- Add address tag to shipping address preview
- Fix newsletter subscribe for logged in customers
- Rewrite newsletter subscribe logic
- Rename console message from INFO to DEBUG
Removed
- Remove deprecated
variable for HTML attribute
Refactor
- Better handling of streetlines
- Rename plugin classes to include
Pluginsuffix - Refactor LocalMessageRegistry methods
- Refactor
text_selectto avoid unneeded ID suffix
[0.0.6] - 13 February 2025
Fixed
- Fix address when customer is logged in and has no addresses to select yet
- Prefix options are separated by semicolumn, not column
- Properly switch shipping method after initial saving
- Fix issue in refreshing other targets
- Fix forms without proper name
- Enhance payment method icon logic
- Redirect to cart when AJAX fails with empty quote
- Load default theme if theme is messed up
- Add proper UnknownThemeException
Refactor
- Refactor Validator to remove dependency with component
- Huge refactor to move context dependencies in the open
- Move CssClass to LokiComponents
[0.0.5] - 21 January 2025
- Initial public release
[0.0.4] - 13 January 2025
- Reach MVP level
[0.0.3] - 19 December 2024
- Move from Magewire to Loki Components
[0.0.2] - 2 October 2024
- Copy from GitHub repository to GitLab repository
- Rename to FriggaCheckout and then LokiCheckout
[0.0.1] - 11 July 2024
- Initial proof-of-concept (MagewireCheckout)