Отключить методы доставки в Magento 2 - PullRequest
0 голосов
/ 03 июня 2018

Я хочу полностью отключить способ доставки при оформлении заказа и добавить пользовательскую плату за доставку в magento 2. Может кто-нибудь сказать мне, как отключить способ доставки?

Ответы [ 4 ]

0 голосов
/ 14 августа 2019

Поскольку вы хотите полностью удалить раздел метода доставки, но magento должен назначить один конкретный метод доставки.Выполните следующие шаги, чтобы полностью удалить метод доставки и назначить автоматически определенный метод доставки (magento 2.3.1)

Переопределить эти два файла в папке вашей темы

  1. / vendor /magento / module-checkout / view / веб-интерфейс / web / template / shipping.html
  2. / vendor / magento / module-checkout / view / веб-интерфейс / web / js / model / checkout-data-resolver.js

В файле shipping.html удалите весь код из формы, за исключением div-панели действий, который используется для кнопки «Далее».Таким образом, ваш файл shipping.html будет

<li id="shipping" class="checkout-shipping-address" data-bind="fadeVisible: visible()">
<div class="step-title" translate="'Shipping Address'" data-role="title" />
<div id="checkout-step-shipping"
     class="step-content"
     data-role="content">

    <each if="!quoteIsVirtual" args="getRegion('customer-email')" render="" />
    <each args="getRegion('address-list')" render="" />
    <each args="getRegion('address-list-additional-addresses')" render="" />

    <!-- Address form pop up -->
    <if args="!isFormInline">
        <button type="button"
                class="action action-show-popup"
                click="showFormPopUp"
                visible="!isNewAddressAdded()">
            <span translate="'New Address'" />
        </button>
        <div id="opc-new-shipping-address"
             visible="isFormPopUpVisible()"
             render="shippingFormTemplate" />
    </if>

    <each args="getRegion('before-form')" render="" />

    <!-- Inline address form -->
    <render if="isFormInline" args="shippingFormTemplate" />
</div>
</li>

<!--Shipping method template-->
<li id="opc-shipping_method"
class="checkout-shipping-method"
data-bind="fadeVisible: visible(), blockLoader: isLoading"
role="presentation">
<div class="checkout-shipping-method">


    <div id="checkout-step-shipping_method"
         class="step-content"
         data-role="content"
         role="tabpanel"
         aria-hidden="false">
        <form id="co-shipping-method-form"
              class="form methods-shipping"
              if="rates().length"
              submit="setShippingInformation"
              novalidate="novalidate">





            <div class="actions-toolbar" id="shipping-method-buttons-container">
                <div class="primary">
                    <button data-role="opc-continue" type="submit" class="button action continue primary">
                        <span translate="'Next'" />
                    </button>
                </div>
            </div>
        </form>

    </div>
</div>

, затем запустите s: s: d coomand и проверьте страницу оформления заказа, раздел способа доставки должен быть удален.

Теперь, поскольку magento должен требовать метод доставки, мы можем назначить статические методы доставки из файла checkout-data-resolver.js

В файле checkout-data-resolver.js добавить следующий код в функцию resolShippingRates

    if (ratesData.length === 1) {

            //set shipping rate if we have only one available shipping rate
            selectShippingMethodAction(ratesData[0]);

            return;
        }

       if (ratesData.length > 1) {
         selectShippingMethodAction(ratesData[0]);
                return;
        }

Вы можете автоматически назначить способ доставки, например, rateData [0], sizesData [1], rateData [2] согласно требованию

0 голосов
/ 05 июня 2018

Я думаю, что вам нужно использовать метод фиксированной доставки и установить комиссию на ноль.Затем вам нужно создать сценарий для автоматического выбора фиксированной ставки в качестве способа доставки, поскольку magento не выбирает способ доставки.

Наконец, пользователь внешнего интерфейса может скрыть часть доставки на внешнем интерфейсе.Способ доставки имеет решающее значение для заказа в Magento.Он понадобится вам, если вы не хотите вносить основные изменения в magento.

Следующее должно помочь выбрать способ доставки: https://magento.stackexchange.com/a/161473

0 голосов
/ 06 июня 2018

Вы можете просто установить все продукты с нулевым весом.

Это позволит всем продуктам перейти в виртуальный продукт.

И система автоматически пропустит этап доставки.

0 голосов
/ 03 июня 2018

Чтобы отключить любой способ доставки, например, фиксированную ставку: выберите «Администрирование»> «Магазин»> «Конфигурация»> нажмите «Методы доставки» на вкладке «Продажи», и вам будут показаны все методы.Здесь вы можете отключить любой метод, установив для параметра «Включено» значение «Нет» и нажав кнопку «Сохранить конфигурацию». enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...