Jak zaktualizować stawki wysyłki przy użyciu Ajax, gdy element koszyka zostanie usunięty na stronie kasy?

15

Moje stawki wysyłki są obliczane na podstawie produktu znajdującego się w koszyku, a teraz po usunięciu produktu na Checkout/Cartstronie muszę zaktualizować stawki wysyłki. W tej chwili opcja Usuń element na Checkout/Cartstronie aktualizuje całkowitą sekcję, ale nie odświeża stawek wysyłki. Byłoby bardzo pomocne, gdyby ktoś mógł poprowadzić mnie, jak wywołać stawki wysyłki po usunięciu produktu z koszyka za pomocą Ajax.

Rizwan Dhuka
źródło
znalazłeś jakieś rozwiązanie?
Deeps

Odpowiedzi:

1

Mam nadzieję, że masz się dobrze.

Spróbuj użyć tego kodu JavaScript. Mam nadzieję, że ci to pomoże.

define(
    [
        'Magento_Checkout/js/model/quote',
        'Magento_Checkout/js/model/shipping-rate-processor/new-address',
        'Magento_Checkout/js/model/shipping-rate-processor/customer-address',
        'Magento_Checkout/js/model/shipping-rate-registry'

    ],
    function (quote, defaultProcessor, customerAddressProcessor, rateRegistry) {
       'use strict';

       var processors = [];

       rateRegistry.set(quote.shippingAddress().getCacheKey(), null);

       processors.default =  defaultProcessor;
       processors['customer-address'] = customerAddressProcessor;

       var type = quote.shippingAddress().getType();

       if (processors[type]) {
          processors[type].getRates(quote.shippingAddress());
       } else {
          processors.default.getRates(quote.shippingAddress());
       }

    }
);
Bhavin Gehlot
źródło
0
 requirejs([
    'Magento_Checkout/js/model/quote',
    'Magento_Checkout/js/model/shipping-rate-registry'
], function(quote, rateRegistry){


    var address = quote.shippingAddress();

    address.trigger_reload = new Date().getTime();

    rateRegistry.set(address.getKey(), null);
    rateRegistry.set(address.getCacheKey(), null);

    quote.shippingAddress(address);
});
Urvashi Prajapati
źródło