Magento 2-如何在带有“下订单”按钮的“查看和付款”部分之后添加额外的结帐步骤


12

我正在尝试在“查看和付款”部分之后添加其他结帐步骤。要求是将付款和检查分开作为一个单独的步骤。一旦选择了之后付款方式,它应导航到最后一步“查看”,其中所有订单信息都必须通过“下订单”按钮显示。

到目前为止,我已经按照下面的链接在付款步骤之后添加了自定义步骤。 http://devdocs.magento.com/guides/v2.0/howdoi/checkout/checkout_new_step.html

但是这里的问题是“下订单”按钮与“付款步骤”绑定在一起,我需要将下订单按钮移到“最后一步”。

任何帮助,最赞赏!


付款后您是否最后设法增加了一步?
拉维巴洛迪亚

@rameshpushparaj你这样做了吗?
Arshad Hussain

这里同样的问题,一些解决方案?
迭戈·奎罗斯

替代方法是在成功步骤中添加订单摘要。下订单按钮绑定到付款步骤,因为如果客户付款然后未完成订单,则该问题将不属于任何订单,这是一个问题。
桑内(Sanne)'18年

Answers:


0

在下面,我添加了一些步骤。请按照步骤

1.在布局文件夹中创建checkout_index_index.xml文件

应用/代码/供应商名称/ PlaceOrder /视图/前端/布局

<?xml version="1.0"?>
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" layout="checkout" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
    <head>
        <css src="VendorName_PlaceOrder::css/place_order_button.css"/>
    </head>
    <body>
        <referenceBlock name="checkout.root">
            <arguments>
                <argument name="jsLayout" xsi:type="array">
                    <item name="components" xsi:type="array">
                        <item name="checkout" xsi:type="array">
                            <item name="children" xsi:type="array">
                                <item name="sidebar" xsi:type="array">
                                    <item name="children" xsi:type="array">
                                        <item name="newstep" xsi:type="array">
                                            <item name="component" xsi:type="string">VendorName_PlaceOrder/js/view/newstep</item>
                                            <item name="config" xsi:type="array">
                                                <item name="template" xsi:type="string">VendorName_PlaceOrder/newstep</item>
                                            </item>
                                        </item>
                                    </item>
                                </item>
                            </item>
                        </item>
                    </item>
                </argument>
            </arguments>
        </referenceBlock>
    </body>
</page>

2.在模板中创建文件newstep.html

应用/代码/供应商名称/ PlaceOrder /视图/前端/网络/模板

<div class="opc-block-newstep" data-bind="blockLoader: isLoading">
    <span data-bind="i18n: 'Order newstep'" class="title"></span>
    <!-- ko foreach: elems() -->
        <!-- ko template: getTemplate() --><!-- /ko -->
    <!-- /ko -->
</div>
<!-- ko if: (isVisible()) -->
<div class="actions-toolbar-trigger" id="place-order-trigger-wrapper">
    <button type="button" class="button action primary" id="place-order-trigger" value="Place Order" >
        <span>Place Order</span>
    </button>
</div>
<!-- /ko -->
  1. 在路径中创建文件newstep.js

应用/代码/供应商名称/ PlaceOrder /视图/前端/ web / js /视图

define(
    [
        'jquery',
        'ko',
        'Magento_Checkout/js/view/newstep',
        'Magento_Checkout/js/model/step-navigator',
    ],
    function(
        $,
        ko,
        Component,
        stepNavigator
    ) {
        'use strict';

        return Component.extend({

            isVisible: function () {
                return stepNavigator.isProcessed('shipping');
            },
            initialize: function () {
                $(function() {
                    $('body').on("click", '#place-order-trigger', function () {
                        $(".payment-method._active").find('.action.primary.checkout').trigger( 'click' );
                    });
                });
                var self = this;
                this._super();
            }

        });
    }
);

4.对于checkout_index_index.xml中的添加条款和条件复选框:

<?xml version="1.0"?>

    <page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">

        <body>
            <referenceBlock name="checkout.root">
                <arguments>
                    <argument name="jsLayout" xsi:type="array">
                        <item name="components" xsi:type="array">
                            <item name="checkout" xsi:type="array">
                                <item name="children" xsi:type="array">
                                    <item name="sidebar" xsi:type="array">
                                        <item name="children" xsi:type="array">

                                            <item name="newstep" xsi:type="array">
                                                <item name="children" xsi:type="array">

                                                    <item name="agreements" xsi:type="array">
                                                        <item name="component" xsi:type="string">Magento_CheckoutAgreements/js/view/checkout-agreements</item>
                                                        <item name="sortOrder" xsi:type="string">100</item>
                                                        <item name="displayArea" xsi:type="string">before-place-order</item>
                                                        <item name="dataScope" xsi:type="string">checkoutAgreements</item>
                                                        <item name="provider" xsi:type="string">checkoutProvider</item>
                                                    </item>

                                                    <item name="agreements-validator" xsi:type="array">
                                                        <item name="component" xsi:type="string">Magento_CheckoutAgreements/js/view/agreement-validation</item>
                                                    </item>

                                                </item>
                                            </item>
                                        </item>
                                    </item>
                                </item>
                            </item>
                        </item>
                    </argument>
                </arguments>
            </referenceBlock>
        </body>
    </page>

此答案中缺少place_order_button.css文件
Vignesh Bala

此解决方案解决了您的问题吗?实际上,我必须执行完全相同的任务
Akash Agrawal
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.