What to expect from latest package of OneStepCheckout for Magento 2. Available from customer specific composer channel, through marketplace (after marketplace validation)  and through our website download area.

refactoring: magento-coding-standards verified
fix: adding properties for php 8.2 support, 2.4.6, 2.4.7 support

refactoring: reviewing totals update on payment method selection
fix: improving coupon code validation, improving frontend coupon message handling
fix: stored addresses are not validated against mock data, incomplete/invalid stored addresses (migrated, imported, etc) can now place orders
fix: reviewed how payment method defaults are applied regarding to salesrules with payment method conditions

refactoring: magento-coding-standards verified
feature: frontend validation for name fields (firstname, lastname, middlename) matches the regex in customer model
feature: layoutprocessor and uiComponent to manage better compatibility with SHQ Options extension
fix: paypal braintree vault methods now survive ajax update , order button context after ajax update preserved
fix: paypal braintree removed first address line from shipping address in some cases
fix: remove overflow:auto from paypal braintree cc form fields
fix: customer without address got mock data displayed on address fields while logging in on checkout page
fix: automatic or in checkout registration of customers failed against customer registration name validation
fix: on-click event object and methods exist checks added (in js)
fix: coupon code was displayed in shipping description if not applicable but still present in quote
fix: coupon code removed from quote if it is not applicable after totals update

fix: billing fields display caused content shift on page load
fix: braintree_cc_vault vault payment methods for stored CC -s share braintree component messages, now vault error messages are displayed in vault method context

refactoring: magento-coding-standards verified
fix: wrapping recaptcha calls after captchas are initiated to avoid race in object creation
fix: additional domObserver to detect billing fields
fix: store-pickup as shipping method in jslayout conflicts with 3rd party method codes, extra check to avoid false positives
fix: more variable checks to detect adyen_ related payment method brand code logic
fix: automatic customer creation was skipped in one/rare configuration setup
fix: trim() update for php8.1 compatibility in MockManager class
fix: add inline replace for rate selection bug in Amasty_ShippingTableRates/shipping template

feature: built in (MSI) store-pickup support
fix: scroll window to the position of shipping error message
refactoring: Magento 2.4.4 and php 8.1 support update

refactoring: magento-coding-standards verified
refactoring: Magento2.Legacy.InstallUpgrade.ObsoleteUpgradeSchemaScript applied , 2.2 support dropped to remain valid on marketplace

feature: adyen_cc payment method support
fix: improved adyen_hpp button detection

refactoring: magento-coding-standards verified
refactoring: fixing ident in ajax.js
feature: adyen_hpp payment method support
fix: avoid race conditions on google captcha rendering and wrapping ajax request payload
fix: prefix , suffix failed to validate if default value is 0
fix: gender and dob fields available in shared billing address configuration for virtual quotes
fix: guest status set properly on order when customer is tied to order
fix: guest order status display correction in admin
fix: avoid double-displaying shipping-rates with same rate code
fix: enable login recaptcha separately without enabling place order recaptcha
fix: append ajax payload to get requests

refactoring: magento-coding-standards verified
refactoring: better fallback to phpserialize (zend,laminas) from Magento framework serializer
fix: additional validation for shipping address extension_attributes
fix: empty localisation in admin template causes errors for m2 locale generation
fix: core issue in 2.4.3 #33741 reCaptcha(s) disabled but still including resources on frontend
fix: core issue in m2.4.3 #33826 stops (default) checkout from rendering
fix: corrupted template for qty buttons missing essential markup

fix: typo in registration.phtml on data-bind caused password toggle issues and was not revealing password fields properly

fix: new billing address was not gathered properly for registered customers while adding new billing address from checkout
fix: registration frontend validation failed for existing customers when registration is forced

fix: billing address not set to quote for logged in customer adding new shipping address to the address list and not firing shipping method updates

feature: forced registration for new e-mails with password entry
feature: Amazon Pay v5.* support
fix: solving rate loading on cases where frontend addresses are cached on localcache and no rates are displayed
fix: for paypal through braintree first address line was removed from billing address
fix: additional checks for billing address assignment on autoloader, all fields filled scenarios
fix: check if this.selectMethod in payment.js is called properly on page load
fix: fixing doc-block in Observer/Frontend/Registration/CheckoutSubmitAfter.php
fix: terms.js magepack compatibility for missing jquery/validate reference
fix: restricting welcome e-mail disabling to registrations through OneStepCheckout
fix: e-mail component name was wrong on virtual quote and guest checkout, log in fields were not displayed
fix: optional pwd fields displayed for persisted cart customers
refactoring: adding street labels to i18n/en_US.csv

fix: piping shipping address form data through addressConverter.formAddressDataToQuoteAddress to get proper address object
fix: improved TIG PostcodeNL support
fix: using another object to get default layout handler for layoutProcessor , caused conflicts with Weltpixel theme on some setups

fix: adding missing default config nodes for rest endpoint protection, resulted in rest.js related errors in frontend
refactor: refactor the way address field values are gathered to keep objects in sync and assure autofill is honoured in cases where nothing to click but place order

refactoring: magento-coding-standards verified
fix: adhering to plugin naming conventions
fix: "Invalid state change requested" error message on persistent cart sessions while checking out
fix: improve shipping method validation if none visible
fix: additional validation if billing address data is set if no updates in UI are triggered, autofill used to place the order with already set values
refactoring: REST endpoint validation BC compliance adapter for recaptcha to cover 2.3. and 2.4
refactoring: recaptcha through requirejs
dependency: removing composer dependency on "dflydev/dot-access-data"
dependency: adding composer dependency on "google/recaptcha"
feature: ordes placed as guest from registered users are now linked from admin order view to customer profile page

ver_1.2.043 (internal release, alpha testing recaptcha)
feature: REST endpoint validation with Goolge invisible reCaptcha v3
refactoring: coding standards applied
fix: making ajax.update() as deferred so it would be thenable
fix: reset cart rules on coupon apply to avoid core issues
fix: disable automatic rate selection if rate is already selected, also allow to select 0 rate other than freeshipping method
dependency: "dflydev/dot-access-data": "<4.0.0"

refactoring: magento-coding-standards verified
refactor: refactoring the collectTotals calls order for multiple request flows for optimal amount of calls
feature: admin control for billing address open/closed when primary addresses are different state
feature: admin control for billing address open/closed state
fix: password validation message uses real config values
fix: refactored collapsible element fore opening for discount field
fix: on first load before OneStepCheckout sets address data default country mismatches value set from config
fix: throw a error message on frontend where no shipping methods are available and user still presses place order

fix: changing the order on how shipping rate collection is invoked to make sure rates are called correctly on update call
fix: syntax errors in Plugin/GuestBillingSaveManager.php (I know, I know , shame on us)
fix: discount.js increased timeout for opening collapsible element
fix: formatting address block added space between region and postcode

feature: configurable list of payment methods that cant survive save over ajax calls
feature: allow totals update on payment selection
refactoring: magento-coding-standards verified
refactoring: multiple plugins with same names , adding different names (internal)
fix: amazon_payments left some payment methods in payment method list (dependant on page loading speed)
fix: amazon_payments adds a shipping address list component even if not configured for site, results a empty address list element for guest visitors
fix: m-2.4 paypal_braintree missing validators added
fix: m-2.4 braintree > paypal_braintree depdencey injection fixed
fix: braintree.js has reference to wrong localisation method $t
fix: paypal_express making sure both api-endpoints set-payment-information or payment-information are treated equally and data saved on both, some payment methods hit alternate endpoints and address data was skipped on set-payment-information
fix: disables mixin that ends up with failed ajax call on payment method selection time
fix: performance optimisation for plugins on save actions to avoid processing identical data requests

fix: missing dependency declaration in amazonpay.js

refactoring: magento-coding-standards verified
feature: Cart item quantity control buttons can be disabled from admin configuration
fix: tracking amount of collectTotals calls through requests to improve performance
fix: reducing method calls on data save to improve performance
fix: reducing ajax calls on place order to improve performance
fix: getObservableId method added to payment.js, observable element detection can be wrapped
fix: gene commerce braintree support for applepay, googlepay buttons, local payment button
fix: improving amazonpay support by hiding it from payment method list
fix: changing qtybuttons.js localisation variable as m2 only localises if $ or jQuery is used as jquery reference for .mage.__( method
fix: adding missing localisation phrases to en_US.csv

feature: adding qty update controls to summary block
feature: payment.js place order button text refactored to methods so it can be extended
feature: explode address fields to separate rows in billing address
refactoring: magento-coding-standards verified
refactoring: formatting layoutprocessors to be more readable with long array paths
refactoring: commentprocessor refactored
fix: removing all items from cart needs to redirect to cart
fix: shipping address area paddings change
fix: better braintree_paypal button handling
fix: adding scope for fail method in ajax.js
fix: added check id order object exists to avoid being executed on checkout with multiple addresses
fix: fixing typos in admin area (thanks for reporting)
fix: additional check to select shipping rate from quote if selected from cart page
fix: discount code on/off feature fixed
fix: occasionally guest shipping rates would not save on first click
fix: if address fields are set not to be required remove only required attribute , leave other possible rules in place
fix: additional check for street field string, array

refactoring: magento-coding-standards verified
fix: matching full carrier_code+method_code on shipping update to preserve the selection, improves shipperHQ support
fix: enabling validation for mocked and required data before order placement as configured in billing or shipping fields settings
fix: improved genecommerce braintree through paypal support

refactoring: magento-coding-standards verified
refactoring: instead of free payment method form detect first available payment method and use the billing address form for that method as general billing address form
refactoring: billing address handling refactored due changes in m2.3.2 and need for backwards compatibility

refactoring: magento-coding-standards verified
refactoring: removing braintree-paypal mixin
refactoring: improved braintree payment method support, moved to separate file view/frontend/web/js/view/payment/braintree.js for easier debugging and support, only enabled if braintree is enabled
feature: adding getComponentButtonElem method so button element selector can be wrapped if some method reinvents the wheel and does something differently
fix: adjusting preloaders to be displayed on place order time for different braintree methods
fix: ajax update was called twice if stored billing address was selected
fix: amazonpay improvements , failed to validate if address is selected in some scenarios
fix: by default m2 does not store the shipping option you select on cart page while estimating the price

refactoring: magento-coding-standards verified
refactoring: changing how shipping and shipping field visibility depends on default observables
refactoring: adding dockblock to amazonPay uiComponent
refactoring: changing how totals area is displayed to avoid misfiring observables
fix: stop registration dom element display before moving to right location in UI
fix: additional check if discount field can be displayed

refactoring: hardcoding title numbers instead of having those in locale files due magento2 issue #14647
refactoring: Amazon Pay support overviewed and implementation separated to view/frontend/web/js/view/payment/amazonpay.js
fix: summary area title icon was not shown randomly
fix: css tweaking for comment, terms and subscription elements to be aligned better and fit overflowing content

feature: declarative schema support
feature: allow dataManager to merge multiple output arrays with same keys
refactoring: MEQP2/magento-coding-standards
refactoring: improving default shipping method related code and separating totals from paymentmethod output class
refactoring: removing unused class file src/Model/Output/ShippingProcessor.php
refactoring: php echo to php short-tag to satisfy Magento2 coding standard
refactoring: removing \Proxy usage from DI to comply with Magento2 coding standard
refactoring: changing underscore.wrap to mage/utils/wrapper
fix: registration e-mail template is changed only if request comes through OSC
fix: fixed issues with street fiels exploding and applying proper css classes to items
fix: shipping address fields issues with reordering when last field is exploded address field
fix: better error handling in ajax.js for failing requests
fix: unifying the way shipping rates are collected on totals over different classes
fix: fixing method comments in src/Model/Output/ShippingProcessor.php
fix: aditional conditions for frontend braintree payment method button handling
fix: in some cases place order button is disabled when braintree payment methods are used
fix: layoutprocessor check if it deals with only uiComponent on ordering fields
fix: mergeJson to assign on null elements when ajax params are merged in ajax.js

fix: refactoring how default payment method is set to avoid conflicts when currency is changed on site
fix: css fix for braintree payment method icon display
fix: additional variable existance checks for discount code related methods
fix: adding name to billing address form element , fixes and improves autofill on billing address form if autofill is used
fix: customer was registered using the website ID, instead of the store ID
fix: save_in_address_book attribute on customer saved address resulted double saving of existing address to addressbook
fix: remove discount display dependency and do not depend on random default checkout Ui state
fix: satisfy billingaddress object dependencies and init with a empty object
fix: adding Giftregistry processor to remove empty address-list component for guests
fix: m-2.3.0 clashes on composer dependency requiring lower dependency version than OneStepCheckout used

refactoring: MEQP2
fix: place order button restored when on region/country change selected payment method becomes unavailable
fix: typo in country localization in i18n/en_US.csv

fix: satisfying shipping address dependency on creating billing address based on null value
fix: limiting observer calls to run only for front-end

fix: Amazon Payment widgets compatibility

feature: shipping methods, payment methods and totals reloaded when coupons are added/removed
feature: allow display of default m2 shipping policy
feature: skip welcome e-mail for automatically registered users to allow silent registration
feature: autoregistration e-mail template changed to NEW_ACCOUNT_EMAIL_REGISTERED_NO_PASSWORD
fix: send right welcome e-mail template if customer is automatically registered
fix: adding Element.prototype.scrollIntoViewIfNeeded polyfill for ff and ie support on payment method validation
fix: adding put and delete to trigger ajax payload on shipping rate requests
fix: additional variable check for tablereates default condition, bug on getting false > 0 to get replace the first available code to tablerates in available methods
fix: check if object exists in Observer/Frontend/Setlogindefaults.php
refactoring: MEQP2

fix: typo in Setlogindefaults.php caused installation and compilation failures

ver_1.2.024 (deprecated, has a typo in package)
fix: better handling on custom checkout fields while setting field order in layoutprocessor
fix: adding a mixin to avoid default shipping method select based on UI logic in checkout-data-resolver.js
fix: errors on placing orders when bundled items are in cart
fix: additional check on login observer event if address objects are existing
feature: add shipping rate update trigger to vat_id field as entering this can affect totals
fix: replacing business logic on UI level on shipping method selection
refactoring: MEQP2

fix: replacing business logic on UI level on shipping method selection
fix: observing paypal_express_place_order_success in addition to checkout_submit_all_after to allow auto register and other features to work with paypal express
fix: afterPlaceOrder method mixin applies theoretical arguments to parent method call
fix: order was placed for logged in customers even if new address form was open and address validation error messages displayed
fix: for logged in customers new shipping address was used even if other address was selected
refactoring: removing console.log call
refactoring: js files linted , missing semicolons added

refactoring: MEQP2
fix: remove redirect to cart on failed ajax calls, failing might not be issue we cause can be core or 3rd party failure
fix: merging vault payments to default payment list
fix: handling tablerates as a default shipping method
fix: mockmanager improvement on street default handling
fix: summary block title bullet was missing
fix: payment buttons were disabled if billing address was not entered
fix: payment method scope was lost temporarily due domobserver collecting events
fix: payment buttons were disabled if billing address was not entered
fix: totals were not displayed on m-2.2.4 on first load
fix: adding ACL rules for config so you can define specific admin roles for OneStepCheckout
fix: optional registration field positioning and displaying issues

fix: changing order of shipping and payment method save calls to address shipping method reloads
fix: login on checkout page assigns primary (if exists) billing or shipping address to quote

refactoring: moving extened uiComponent functionality over to mixins
fix: braintree paypal, multiple order button and configuration support

refactoring: MEQP2
fix: additional check if payment methods need reloading/replacing
fix: iframe based payment method support , bring iframe to slide + context loss coverage on payment method reload
fix: making DOB field to respect locale date format
fix: making gender field values localize-able

fix: m-2.2.2 compatibility , hotfix for bundled temando issues #12983 #12921
feature: register within checkout , optional password fields for entering password data on checkout
refactoring: MEQP2

ver 1.2.017
fix: compilation was broken cause of typos in Dob and GenderAssignementInterface

ver 1.2.016
fix: locale changes
fix: default payment method list limited to novirtual quote to avoid double output and issues with knockoutjs observablearrays
feature: dob customer attribute support in address forms
feature: backport of address form validation and focusing to validation messages on smaller screens

ver 1.2.015
fix: backward compatibility fix for upgradedata script , used nonexisting classes on old versions

ver 1.2.014
fix: braintree + paypal double place order buttons limited to one button
fix: convert serialized values to json encoded values in core_config_data if upgrading magento to >= 2.2.0, solves blank page in admin config
fix: difference in address api for auth customers resulted in "no such entity addressId" error
refactoring: MEQP2

ver 1.2.013
fix: logged in status check for addressbook save attributes

ver 1.2.012
fix: additional checks for save_in_addressbook values for reg users

ver 1.2.011
fix: correct address saving flags for registered users on new address data
refactoring: MEQP2

ver 1.2.010
fix: restoring place order button text and header numbers
fix: template condition to check if formObjects are defined
fix: ajax filter parameter change
fix: improved handling of address form data for logged in customers
fix: additional detection for default payment method selection
fix: paypal express in context mode support and place order button functionality refactoring (upgrade to m2.2* for best results)
refactoring: MEQP2

ver 1.2.009
feature: support for virtual quote checkout
fix: css fixes to enable virtual product support
fix: removing storce code from ajax url filter white-list
fix: place order button duplication when payment method implements n hidden buttons
fix: respect customer_address_id value on update
fix: additional validation messages on new address form handling for logged in customers
fix: address list selection and new address form open/closed validation for logged in clients
fix: validate all components on place order call
fix: gender drop-down uiComponent , disabled default validation error
refactoring: MEQP2
refactoring: removing empty lines
refactoring: missing dock-block on subscribeprocessor

ver 1.2.007
refactoring: MEQP2
fix: detect session timeout and redirect users to empty cart if timeout occurs
fix: wrong shipping rates for the cause of visible vs all quote items in rate request
fix: updated admin config and removed feature controls that are not working jet

ver 1.2.006
refactoring: MEQP2
feature: newsletter subscription checkbox
fix: updated admin config and removed feature controls that are not working jet
fix: variable check "not null" before adding extension attributes
fix: removed empty value restriction from gender uiComponent definition
fix: skip controlling uiComponents that are not managed through OneStepCheckout
fix: guest user e-mail validation can be done when dom is present
fix: changed how Zend\Serialiser is included, fixes issues in production mode
fix: reg user selected billing address validation failed

ver 1.2.004
fix: email validation is only needed for guests
fix: additional variable existence validation in billingfields.js

ver 1.2.003
refactoring: MEQP2
fix: changed serializers to zend_serialize to avoid magento version differences
fix: EE customAttributes widths were not applied to frontend elements properly
fix: removed e-mail mocking, pass guest e-mail to right objects instead
fix: billingfields.js will pass on extension attributes
fix: additional variable control on payment method validation
fix: updated README with latest installation and uninstall instructions
fix: m-2.2 compatibility: default values in config.xml cahgned to json, default value handling changed to accept json or serialized array strings
fix: m-2.2 compatibility: m-2.2 changed serialization from serialized array values to encoded json strings as security measure
fix: address validation failed for registered customer when address-form was closed
fix: comments default configuration added, caused exception on upgrade
fix: composer.json dependency update

ver 1.2.002
refactoring: removing blank line
fix: improved ajax response handling to reload shipping methods
fix: changing the way billing address update handlers are set
fix: typo in function definition
fix: unifing composer.json files in root and src

ver 1.2.001
fix: removing scope hint from serialized field block in admin
refactoring: re-position code files to vendor/package/
refactoring: changing vendor name from idev to onestepcheckout and package name from onestepcheckout to iosc , we are now onestepcheckout/iosc

ver 1.1.023
refactoring: version number change for marketplace launch
refactoring: MEQP2 validation
fix: validate if selected shipping method is actually checked on quote
fix: api inconsistency fix in billingaddress field handling
fix: remove instance type check from address mocking
fix: improved registered user shipping - and billingaddress handling
fix: variable existence check
fix: ajax parameter merging updated

ver 5.0.022
refactoring: jshint, eslint validation
fix: removing debugging calls
fix: unifying version differences for 2.1.8
fix: ajax calls to billing address fields , shared billing address form compatibility
fix: comment field could not be disabled in frontend
feature: support for shared billing address components
fix: improved ajax payload handling
feature: payment method and shipping area validation messages when nothing is selected
fix: improved readme with composer installation explanation
readme: updated installation instructions
fix: enabling place order button in all cases (even if payment method decides to disable)

ver 5.0.021
fix: missing js dependency declaration
fix: improved order on shipping method value handling and fix for shipping method code handling
fix: additional checks for m2 issue #7497 and additional variable existance checks
fix: admin addressfield checkbox values were not selected properly

ver 5.0.020
fix: summary title css selector specified
fix: summary was not loaded on first load with safari browser
fix: ajax.js copyright notice format changed
refactoring: linting js files for better formatting and fix possible errors when js is minified
fix: coupon code button state is preserved on reload
fix: comma error in composer.js - composer install fails