LokiCheckout_Buckaroo
This Magento 2 module is an add-on package for adding support for the payment solution of Buckaroo to the LokiCheckout.
Installation
Install this package via composer:
composer require loki-checkout/magento2-buckaroo
Next, enable this module:
bin/magento module:enable LokiCheckout_Buckaroo Buckaroo_Magento2 bin/magento setup:upgrade
Extending payment methods
By default, most payment methods are supported. If a new payment method is added via the Buckaroo_Magento2 module, it depends on the method whether or not, the LokiCheckout_Buckaroo module needs to be extended. If the method deals with a simple redirect, it just works. If additional input fields are required and they don't exist in the Loki Checkout, most likely the error Structure validation of XML failed. The SOAP request structure does not conform to the specification is given.
To add additional fields, create a new block loki-checkout.payment.methods.buckaroo_magento2_FOOBAR.form in the XML layout, where buckaroo_magento2_FOOBAR equals the payment method code. Check the layout file loki_checkout_block_payment_methods.xml for more examples.
Make sure the block loki-checkout.payment.methods.buckaroo_magento2_FOOBAR.form is registered as a Loki Component via the file etc/loki_components.xml. Also create a corresponding Component ViewModel and Component Repository. Note that each alias (as) of additional Buckaroo field in the XML layout (see loki_checkout_block_payment_methods.xml) - for example customer_DoB - corresponds with the property name - for example customer_DoB - that is saved to the quote via the AdditionalInformationRepository class.
Which fields need to be added? Each payment method is backed by a class in the PHP namespace Buckaroo\Magento2\Model\Method. Within such a method class, the XML construction is initiated, giving evidence of what kind of fields are needed. For example, the code segment $payment->getAdditionalInformation('customer_email') suggests that a field customer_email should be created.
Error on Model/Method/Afterpay.php
Deprecated Functionality: str_replace(): Passing null to parameter #3 ($subject) of type array|string is deprecated in vendor/buckaroo/magento2/Model/Method/Afterpay.php on line 823
The method afterpay2 or afterpay is deprecated and can not be used under PHP 8.3. This has nothing to do with the LokiCheckout.
Support
For getting support, create an Issue under the following project URL:
https://github.com/LokiCheckout/LokiCheckout_Buckaroo
Loki Components
The following LokiComponents are created or references in this module:
loki-checkout.billing.address.company
loki-checkout.billing.address.country_id
loki-checkout.billing.address.telephone
loki-checkout.payment.methods.buckaroo_magento2_afterpay.form.customer_DoB
loki-checkout.payment.methods.buckaroo_magento2_afterpay.form.customer_iban
loki-checkout.payment.methods.buckaroo_magento2_afterpay.form.termsCondition
loki-checkout.payment.methods.buckaroo_magento2_afterpay2.form.customer_DoB
loki-checkout.payment.methods.buckaroo_magento2_afterpay2.form.customer_iban
loki-checkout.payment.methods.buckaroo_magento2_afterpay2.form.termsCondition
loki-checkout.payment.methods.buckaroo_magento2_afterpay20.form.customer_DoB
loki-checkout.payment.methods.buckaroo_magento2_afterpay20.form.customer_coc
loki-checkout.payment.methods.buckaroo_magento2_afterpay20.form.customer_identificationNumber
loki-checkout.payment.methods.buckaroo_magento2_afterpay20.form.customer_telephone
loki-checkout.payment.methods.buckaroo_magento2_afterpay20.form.termsCondition
loki-checkout.payment.methods.buckaroo_magento2_creditcard.form.card_type
loki-checkout.payment.methods.buckaroo_magento2_creditcards.form
loki-checkout.payment.methods.buckaroo_magento2_payperemail.form.customer_billingFirstName
loki-checkout.payment.methods.buckaroo_magento2_payperemail.form.customer_billingLastName
loki-checkout.payment.methods.buckaroo_magento2_payperemail.form.customer_billingMiddleName
loki-checkout.payment.methods.buckaroo_magento2_payperemail.form.customer_email
loki-checkout.payment.methods.buckaroo_magento2_payperemail.form.customer_gender
loki-checkout.payment.methods.buckaroo_magento2_sepadirectdebit.form.customer_account_name
loki-checkout.payment.methods.buckaroo_magento2_sepadirectdebit.form.customer_iban
loki-checkout.payment.methods.buckaroo_magento2_voucher.form.voucher
loki-checkout.shipping.address.company
loki-checkout.shipping.address.country_id
loki-checkout.shipping.address.telephone
Module Dependencies
The following dependencies are declared in the module its `etc/module.xml` file:
Buckaroo_Magento2
LokiCheckout_Core
Loki_Base
Loki_Components
Loki_CssUtils
Loki_FieldComponents
Loki_MapComponents
Magento_Backend
Magento_Catalog
Magento_CatalogInventory
Magento_Checkout
Magento_CheckoutAgreements
Magento_Config
Magento_ConfigurableProduct
Magento_Customer
Magento_Directory
Magento_Eav
Magento_Email
Magento_MediaStorage
Magento_Newsletter
Magento_Payment
Magento_Quote
Magento_ReleaseNotification
Magento_Sales
Magento_SalesRule
Magento_Shipping
Magento_Store
Magento_Tax
Magento_Ui
Magento_Vault
PayPal_Braintree
Yireo_CspUtilities
Composer details
LokiCheckout_Buckarooloki-checkout/magento2-buckaroo
buckaroo/magento2: ^2.4
ext-json: *
ext-pcre: *
loki-checkout/magento2-core: ^2.0
loki/magento2-components: ^2.0
loki/magento2-css-utils: ^1.0
loki/magento2-field-components: ^2.0
magento/framework: ^103.0
magento/module-quote: ^101.0
magento/module-store: ^101.0
Releases
| 3.0.2 | 12 June 2026 |
| 3.0.1 | 12 June 2026 |
| 3.0.0 | 12 June 2026 |
| 2.0.22 | 12 June 2026 |
| 2.0.21 | 12 June 2026 |
| 2.0.20 | 12 June 2026 |
| 2.0.19 | 12 June 2026 |
| 2.0.18 | 12 June 2026 |
| 2.0.17 | 12 June 2026 |
| 2.0.16 | 12 June 2026 |
| 2.0.15 | 12 June 2026 |
| 2.0.14 | 12 June 2026 |
| 2.0.13 | 12 June 2026 |
| 2.0.12 | 12 June 2026 |
| 2.0.11 | 12 June 2026 |
| 2.0.10 | 12 June 2026 |
Changelog
[3.0.2] - 21 May 2026
Fixed
- Add alt to payment images
[3.0.1] - 29 April 2026
Fixed
- Add alt to image tag
- Change assumption from regex to string
- Add tsconfig.json
- Remove dep with
Yireo_IntegrationTestHelper - Pending changes
- Remove old Magento and PHP versions
[3.0.0] - 08 April 2026
Removed
- Removed support for Buckaroo 1.X
- Removed support for PHP 8.3 and older
Added
- Hosted Fields are working now
- Bump major and Buckaroo dep to 2.X
Fixed
- Remove obsolete issuer selection for Paybybank
- Redirect using new Buckaroo 2.X mechanism
- Properly check for company length when determining B2C with Riverty
[2.0.22] - 12 March 2026
Fixed
strlenerror on company withnullvalue
[2.0.21] - 02 March 2026
Fixed
- Add integration flag to MODULE.json
- Do not add debug info to non-Buckaroo orders
- Add composer patch file
[2.0.20] - 25 February 2026
Fixed
- Add dep with quote module
- Add proper Playwright tests for all supported methods
- Add better error messages to paybybank and creditcard
- When modifying telephone, refresh payment methods (because of afterpay)
- Do not make Sepadirectdebit required as a whole, because there are subfields instead
- Fix afterpay20 logic for customer-type
both - Restructure XML layout for better management
- Cleanup required duplicate flag for Afterpay
- Hosted fields subform as required
- Improve error message of no card selected
- Make creditcard subselection required again
[2.0.19] - 13 February 2026
Fixed
- Add proper error handling when value is required but empty
[2.0.18] - 23 January 2026
Fixed
- New Playwright tests
- Remove debugging from last name
[2.0.17] - 12 January 2026
Fixed
- Add new GitHub Action workflows
[2.0.16] - 19 December 2025
Fixed
- Allow for default Payperemail values from quote
- Render chosen gender in sidebar
[2.0.15] - 17 December 2025
Fixed
- Cleanup ViewModels require-flag which now defaults to true
- Render payperemail details in sidebar
- Add payperemail method
- Add new gender options for payperemail
- Add instructions on missing payment methods
- Update composer keywords
- Update composer keywords
- Update composer keywords
[2.0.14] - 22 October 2025
Fixed
- Do not escape
$css()withescapeHtmlAttr()butescapeHtml() - Fix merge conflict in templates
[2.0.13] - 14 October 2025
Fixed
- Conditionally add all hosted field blocks
- Add
loki_checkout_payment_before_save_quoteevent for additional information
[2.0.12] - 01 October 2025
Fixed
- Simplify image rendering
[2.0.11] - 29 September 2025
Fixed
- Sort entries of module.xml file
- Sort dependencies of composer.json
- Copy generic CI/CD files
- Update MODULE.json
- Update README
- Add escaping
[2.0.10] - 24 September 2025
Fixed
- Implement new imageRenderer
- Change containers into blocks to allow for caching
- Rename loki-components to loki.script.component
[2.0.9] - 16 September 2025
Fixed
- Additional margins for subforms
[2.0.8] - 03 September 2025
Fixed
- Copy generic CI/CD files
- Remove unwanted CSS
[2.0.7] - 02 September 2025
Fixed
- Add PHPUnit 10 file
[2.0.6] - 02 September 2025
Fixed
- Change loki-checkout.payment.payment-methods to loki-checkout.payment.methods
- Refresh payment methods when company or country changes
- Refresh Afterpay form when changing company or country ID
- Refactor hard-coded field attributes to FieldViewModel::getFieldAttributes()
- Conditionally show props in sidebar
- Add Playwright tests
- Refactor Loki-library location in Playwright tests
[2.0.5] - 29 August 2025
Fixed
- Add logic to show relevant afterpay20 fields depending on customer type (b2c, b2b)
[2.0.4] - 27 August 2025
Fixed
- Add COC Number to afterpay20
- Change CSS scope from
@todoto block - Add translations
- Replace yireo/opensearch with yireo/opensearch-dummy in Gitlab CI
- Add Paybybank
- Add concept of Buckaroo Voucher
[2.0.3] - 26 August 2025
Fixed
- Disable Hosted Fields because they do not work yet
- Set maximum age of today
- Add support for Alpine Mask config via XML layout
- Fix terms text translation
- Make date of birth configurable
- Add validators for afterpay
- Make sure all fields are required
- Refactor Afterpay form to separate components
- Add new fields for afterpay and afterpay2 method
- Lazyload hosted fields SDK
- Add selection of card type for creditcard method
- Add GitLab CI files
- Prevent errors if
Buckaroo_Magento2is disabled by using DI proxies - Add additional exception if
Buckaroo_Magento2is disabled
[2.0.2] - 21 August 2025
Fixed
- Add dependency with loki/magento2-css-utils
- 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 - Lower requirements to PHP 8.1
[2.0.1] - 07 August 2025
Fixed
- Lower PHP requirement to PHP 8.2+
[1.0.1] - 26 May 2025
Fixed
- Better support for images
- Search for view/frontend icons as well
- Fix issues with redirect to portal
[0.0.2] - 25 April 2025
Fixed
- Allow upgrading to LokiFieldComponents and LokiCheckout 1.0
[0.0.1] - 21 January 2025
- Initial release