I am doing some heavy customization on the checkout (pulling billing address to the first position, next to shipping address).
If have added a plugin to view/shipping.js:
define(
[
'Magento_Checkout/js/model/quote',
'Magento_Checkout/js/action/select-shipping-address',
'Magento_Checkout/js/checkout-data'
], function(
quote,
selectShippingAddress,
checkoutData
){
'use strict';
return function(targetModule){
var lastSelectedShippingAddress = null;
return targetModule.extend({
initObservable: function () {
this._super()
.observe({
isAddressSameAsBilling: true,
isAddressDetailsVisible: false // vs. isAddressFormVisible -- which one to use?
});
return this;
},
/**
* @return {Boolean}
*/
useBillingAddress: function () {
debugger;
if (this.isAddressSameAsBilling()) {
selectShippingAddress(quote.billingAddress());
this.isAddressDetailsVisible(false);
} else {
lastSelectedShippingAddress = quote.shippingAddress();
quote.shippingAddress(null);
this.isAddressDetailsVisible(true);
}
checkoutData.setSelectedShippingAddress(null);
return true;
},
});
};
});
And have bount useBillingAddress to a newly created checkox "Use billing address as shipping address".
Now when clicking this checkbox I get the following javascript error:
list.js:60 Uncaught TypeError: Cannot read property 'getType' of null
at UiClass.createRendererComponent (list.js:60)
at ko.subscription.callback (list.js:33)
at Function.notifySubscribers (knockout.js:1103)
at Function.observable.valueHasMutated (knockout.js:1300)
at Object.observable [as shippingAddress] (knockout.js:1285)
at UiClass.useBillingAddress (plugin.js:36)
at HTMLInputElement.<anonymous> (knockout.js:3863)
at HTMLInputElement.dispatch (jquery.js:5226)
at HTMLInputElement.elemData.handle (jquery.js:4878)
But I am unable to track down how this error is caused using the javascript debugger.
I would be happy for any hints.