Esta duda se puede abordar de diversas maneras, sin embargo te mostramos la que para nosotros es la respuesta más completa.
Solución:
Acabo de encontrar una manera de anular esa función usando ‘mixins’.
En el archivo requirejs-config.js tuve que agregar:
config:
mixins:
'Magento_Checkout/js/view/shipping':
'Mynamespace_Mymodule/js/view/shipping': true
Cree un archivo Mynamespace/Mymodule/view/frontend/web/js/view/shipping.js
define(
[
'jquery',
'underscore',
'Magento_Ui/js/form/form',
'ko',
'Magento_Customer/js/model/customer',
'Magento_Customer/js/model/address-list',
'Magento_Checkout/js/model/address-converter',
'Magento_Checkout/js/model/quote',
'Magento_Checkout/js/action/create-shipping-address',
'Magento_Checkout/js/action/select-shipping-address',
'Magento_Checkout/js/model/shipping-rates-validator',
'Magento_Checkout/js/model/shipping-address/form-popup-state',
'Magento_Checkout/js/model/shipping-service',
'Magento_Checkout/js/action/select-shipping-method',
'Magento_Checkout/js/model/shipping-rate-registry',
'Magento_Checkout/js/action/set-shipping-information',
'Magento_Checkout/js/model/step-navigator',
'Magento_Ui/js/modal/modal',
'Magento_Checkout/js/model/checkout-data-resolver',
'Magento_Checkout/js/checkout-data',
'uiRegistry',
'mage/translate',
'Magento_Checkout/js/model/shipping-rate-service'
],function (
$,
_,
Component,
ko,
customer,
addressList,
addressConverter,
quote,
createShippingAddress,
selectShippingAddress,
shippingRatesValidator,
formPopUpState,
shippingService,
selectShippingMethodAction,
rateRegistry,
setShippingInformationAction,
stepNavigator,
modal,
checkoutDataResolver,
checkoutData,
registry,
$t)
'use strict';
var mixin =
selectShippingMethod: function (shippingMethod)
console.log("method overriden");
selectShippingMethodAction(shippingMethod);
checkoutData.setSelectedShippingRate(shippingMethod.carrier_code + '_' + shippingMethod.method_code);
return true;
;
return function (target) // target == Result that Magento_Ui/.../default returns.
return target.extend(mixin); // new result that all other modules receive
;
);
Información útil:
https://github.com/magento/magento2/issues/1864 Magento2 – Anular Magento/Checkout/view/frontend/web/js/view/shipping.js
En caso de que el archivo requirejs-config.js se vea así:
var config =
config:
mixins:
'Magento_Checkout/js/view/shipping':
'Namespace_Module/js/view/shipping': true
;
esto funcionó para mí
Puede anular el módulo central js mediante el uso de un tema personalizado.
Tienes que copiar el archivo js de
Magento/Checkout/view/frontend/web/js/view/shipping.js
y ponerlo en el camino dado
/app/design/frontend/Theme/Packadge/Magento_Checkout/web/js/view/shipping-information.js
modificar por sus cambios en el archivo.
Ejecute el siguiente comando para implementar static contenido
php bin/magento setup:static-content:deploy
Ahora verifique sus cambios y avíseme si tiene alguna consulta.
No se te olvide compartir esta división si te valió la pena.