在Magento 2中禁用送货方式

时间:2018-06-03 06:59:19

标签: magento2

我想在下订单时完全禁用送货方式,并在magento 2中添加自定义运费。有人可以告诉我如何禁用送货方式吗?

4 个答案:

答案 0 :(得分:2)

您可以简单地将所有产品设置为零重量。

这将使所有产品成为虚拟产品。

系统将自动跳过发货步骤。

答案 1 :(得分:0)

要禁用任何送货方式,例如统一费率:转到管理员>商店>配置>单击“销售”选项卡下的“运输方法”,它将显示所有方法。在这里,您可以通过设置"已启用"来禁用任何方法。选项为否,然后单击保存配置按钮。enter image description here

答案 2 :(得分:-1)

我认为您需要使用扁平运输方式并将费用设置为零。然后,您需要创建一个脚本来自动选择统一费率作为送货方式,因为magento没有选择送货方式。

最后,前端人员可以隐藏前端的运输部件。运输方式对于Magento的订单至关重要。如果您不想对magento进行核心更改,则需要一个。

以下内容应有助于选择送货方式: https://magento.stackexchange.com/a/161473

答案 3 :(得分:-1)

您要完全删除运输方式部分,但是magento必须指定一种特定的运输方式。 请按照以下步骤完全删除送货方式,并自动分配特定的送货方式(magento 2.3.1)

将这两个文件覆盖到主题文件夹中

  
      
  1. /vendor/magento/module-checkout/view/frontend/web/template/shipping.html
  2.   
  3. /vendor/magento/module-checkout/view/frontend/web/js/model/checkout-data-resolver.js
  4.   

在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]