I would like to know where the function is for :
rest/default/V1/guest-carts/numbers/estimate-shipping-methods
I found no function is called when postcode on cart is changed?
Hello @tvgarden
There is define into webapi.xml file
https://github.com/magento/magento2/blob/2.2-develop/app/code/Magento/Quote/etc/webapi.xml
<route url="/V1/carts/:cartId/estimate-shipping-methods" method="POST">
<service class="Magento\Quote\Api\ShipmentEstimationInterface" method="estimateByExtendedAddress"/>
<resources>
<resource ref="Magento_Cart::manage" />
</resources>
</route>
<route url="/V1/carts/:cartId/estimate-shipping-methods-by-address-id" method="POST">
<service class="Magento\Quote\Api\ShippingMethodManagementInterface" method="estimateByAddressId"/>
<resources>
<resource ref="Magento_Cart::manage" />
</resources>
</route>From there you can find Interface name and you can find which class implement that you need to check in di.xml file
https://github.com/magento/magento2/blob/2.2-develop/app/code/Magento/Quote/etc/di.xml
<preference for="Magento\Quote\Api\ShipmentEstimationInterface" type="Magento\Quote\Model\ShippingMethodManagement" />
So you need to find
Magento\Quote\Model\ShippingMethodManagement.php with
estimateByAddressId or
estimateByExtendedAddress method from that class
Hope it will help you.
Thanks, that's helpful.
However I need to find a function in front-end.
Which is calling post: in storage.js ?
You can find post function inside storage.js from magento2-base module.
Full path for post function is,
vendor/magento/magento2-base/lib/web/mage/storage.js
Open this file and you can check post function with below value,
/**
* Perform asynchronous POST request to server.
* @param {String} url
* @param {String} data
* @param {Boolean} global
* @param {String} contentType
* @returns {Deferred}
*/
post: function (url, data, global, contentType) {
global = global === undefined ? true : global;
contentType = contentType || 'application/json';
return $.ajax({
url: urlBuilder.build(url),
type: 'POST',
data: data,
global: global,
contentType: contentType
});
},