我想在下订单时完全禁用送货方式,并在magento 2中添加自定义运费。有人可以告诉我如何禁用送货方式吗?
答案 0 :(得分:2)
您可以简单地将所有产品设置为零重量。
这将使所有产品成为虚拟产品。
系统将自动跳过发货步骤。
答案 1 :(得分:0)
要禁用任何送货方式,例如统一费率:转到管理员>商店>配置>单击“销售”选项卡下的“运输方法”,它将显示所有方法。在这里,您可以通过设置"已启用"来禁用任何方法。选项为否,然后单击保存配置按钮。
答案 2 :(得分:-1)
我认为您需要使用扁平运输方式并将费用设置为零。然后,您需要创建一个脚本来自动选择统一费率作为送货方式,因为magento没有选择送货方式。
最后,前端人员可以隐藏前端的运输部件。运输方式对于Magento的订单至关重要。如果您不想对magento进行核心更改,则需要一个。
以下内容应有助于选择送货方式: https://magento.stackexchange.com/a/161473
答案 3 :(得分:-1)
您要完全删除运输方式部分,但是magento必须指定一种特定的运输方式。 请按照以下步骤完全删除送货方式,并自动分配特定的送货方式(magento 2.3.1)
将这两个文件覆盖到主题文件夹中
- /vendor/magento/module-checkout/view/frontend/web/template/shipping.html
- /vendor/magento/module-checkout/view/frontend/web/js/model/checkout-data-resolver.js
在shipping.html文件上,删除表单中的全部代码,但action-toolbar 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文件上,在resolveShippingRates函数上添加以下代码
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;
}
您可以根据要求自动分配送货方式,例如ratesData [0],ratesData [1],ratesData [2]