Поскольку вы хотите полностью удалить раздел метода доставки, но magento должен назначить один конкретный метод доставки.Выполните следующие шаги, чтобы полностью удалить метод доставки и назначить автоматически определенный метод доставки (magento 2.3.1)
Переопределить эти два файла в папке вашей темы
- / vendor /magento / module-checkout / view / веб-интерфейс / web / template / shipping.html
- / 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] согласно требованию