2

I am working on checkout/cart page and my task is to move cart summary. I am creating a file in my theme folder app/design/magestore/sample/magento_checkout/layout/checkout_cart_index.xml

and my code is

<?xml version="1.0"?>
<page layout="1column" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
    <body>
    <move element="checkout.cart.summary" destination="checkout.cart.container" after="checkout.cart.form"/>
    </body>
</page>

I have clear my cache

enter image description here

3 Answers 3

1

Yes link has hint for this problem. Actually I was overriding checkout_cart_index.xml, and try to moving cart.summary after checkout.cart.form . like showing in following image: enter image description here But what I did as follow in my custom module in file checkout_cart_index.xml:

<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
<body>
    <move element="cart.summary" destination="content" after="checkout.cart.form" />
</body></page>

Its wrong: during move i added destination as content which is actually issue mentioned in link moving child containers out of checkout.cart.items container. I moved cart.summary out of checkout.cart.items by giving destination as content.

correct xml should be:

<move element="cart.summary" destination="checkout.cart.container" after="checkout.cart.form" />

Any container in side checkout.cart.items

0

we need to update app/design/Vendor/ThemeName/Magento_Checkout/layout/checkout_cart.index.xml

<?xml version="1.0"?>
<!--
/**
 * Copyright © Magento, Inc. All rights reserved.
 * See COPYING.txt for license details.
 */
-->
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" layout="1column" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
    <update handle="checkout_cart_item_renderers"/>
    <body>
        <referenceBlock name="breadcrumbs">
            <action method="addCrumb">
                <argument name="crumbName" xsi:type="string">Home</argument>
                <argument name="crumbInfo" xsi:type="array">
                    <item name="title" xsi:type="string">Home</item>
                    <item name="label" xsi:type="string">Home</item>
                    <item name="link" xsi:type="string">/</item>
                </argument>
            </action>
            <action method="addCrumb">
                <argument name="crumbName" xsi:type="string">Cart</argument>
                <argument name="crumbInfo" xsi:type="array">
                    <item name="title" xsi:type="string">Cart</item>
                    <item name="label" xsi:type="string">Cart</item>
                </argument>
                </action>
        </referenceBlock>

        <referenceContainer name="page.messages">
            <block class="Magento\Checkout\Block\Cart\ValidationMessages" name="checkout.cart.validationmessages"/>
        </referenceContainer>
        <referenceContainer name="content">
            <block class="Magento\Checkout\Block\Cart" name="checkout.cart" template="Magento_Checkout::cart.phtml" cacheable="false">
                <container name="checkout.cart.items" as="with-items">
                    <container name="checkout.cart.container" htmlTag="div" htmlClass="cart-container" before="-">
                        <container name="checkout.cart.form.before" as="form_before" label="Shopping Cart Items Before" htmlTag="div" htmlClass="rewards"/>

                        <container name="cart.summary1" label="Cart Summary Container1" htmlTag="div" htmlClass="none" before="-">    
                            <block class="Magento\Checkout\Block\Cart\Grid" name="checkout.cart.form" as="cart-items" template="Magento_Checkout::cart/form.phtml" before="cart.summary">
                                <block class="Magento\Framework\View\Element\RendererList" name="checkout.cart.item.renderers" as="renderer.list"/>
                                <block class="Magento\Framework\View\Element\Text\ListText" name="checkout.cart.order.actions"/>
                            </block>
                        </container>


                        <container name="cart.summary" label="Cart Summary Container" htmlTag="div" htmlClass="cart-summary" after="-">
                            <block class="Magento\Framework\View\Element\Template" name="checkout.cart.summary.title" before="-" template="Magento_Theme::text.phtml">
                                <arguments>
                                    <argument translate="true" name="text" xsi:type="string">Summary</argument>
                                    <argument name="tag" xsi:type="string">strong</argument>
                                    <argument name="css_class" xsi:type="string">summary title</argument>
                                </arguments>
                            </block>
                            <block class="Magento\Checkout\Block\Cart\Shipping" name="checkout.cart.shipping" as="shipping" template="Magento_Checkout::cart/shipping.phtml" after="checkout.cart.summary.title">
                                <arguments>
                                    <argument name="jsLayout" xsi:type="array">
                                        <item name="types" xsi:type="array">
                                            <item name="form.input" xsi:type="array">
                                                <item name="component" xsi:type="string">Magento_Ui/js/form/element/abstract</item>
                                                <item name="config" xsi:type="array">
                                                    <item name="provider" xsi:type="string">checkoutProvider</item>
                                                    <item name="deps" xsi:type="array">
                                                        <item name="0" xsi:type="string">checkoutProvider</item>
                                                    </item>
                                                    <item name="template" xsi:type="string">ui/form/field</item>
                                                    <item name="elementTmpl" xsi:type="string">ui/form/element/input</item>
                                                </item>
                                            </item>
                                        </item>
                                        <item name="components" xsi:type="array">
                                            <item name="summary-block-config" xsi:type="array">
                                                <item name="component" xsi:type="string">uiComponent</item>
                                                <item name="children" xsi:type="array">
                                                    <item name="shipping-rates-validation" xsi:type="array">
                                                        <item name="children" xsi:type="array">
                                                            <!--Step configuration components-->
                                                        </item>
                                                    </item>
                                                </item>
                                            </item>
                                            <item name="block-summary" xsi:type="array">
                                                <item name="component" xsi:type="string">uiComponent</item>
                                                <item name="deps" xsi:type="array">
                                                    <item name="0" xsi:type="string">summary-block-config</item>
                                                </item>
                                                <item name="children" xsi:type="array">
                                                    <item name="block-rates" xsi:type="array">
                                                        <item name="component" xsi:type="string">Magento_Checkout/js/view/cart/shipping-rates</item>
                                                        <item name="sortOrder" xsi:type="string">2</item>
                                                    </item>
                                                    <item name="block-shipping" xsi:type="array">
                                                        <item name="component" xsi:type="string">Magento_Checkout/js/view/cart/shipping-estimation</item>
                                                        <item name="provider" xsi:type="string">checkoutProvider</item>
                                                        <item name="sortOrder" xsi:type="string">1</item>
                                                        <item name="deps" xsi:type="array">
                                                            <item name="0" xsi:type="string">block-summary.block-shipping.address-fieldsets</item>
                                                        </item>
                                                        <item name="children" xsi:type="array">
                                                            <item name="address-fieldsets" xsi:type="array">
                                                                <item name="component" xsi:type="string">uiComponent</item>
                                                                <item name="config" xsi:type="array">
                                                                    <item name="deps" xsi:type="array">
                                                                        <item name="0" xsi:type="string">checkoutProvider</item>
                                                                    </item>
                                                                </item>
                                                                <item name="displayArea" xsi:type="string">address-fieldsets</item>
                                                                <item name="children" xsi:type="array">
                                                                    <item name="city" xsi:type="array">
                                                                        <item name="sortOrder" xsi:type="string">115</item>
                                                                        <item name="dataScope" xsi:type="string">shippingAddress.city</item>
                                                                        <item name="provider" xsi:type="string">checkoutProvider</item>
                                                                    </item>
                                                                    <item name="country_id" xsi:type="array">
                                                                        <item name="sortOrder" xsi:type="string">110</item>
                                                                        <item name="dataScope" xsi:type="string">shippingAddress.country_id</item>
                                                                        <item name="provider" xsi:type="string">checkoutProvider</item>
                                                                    </item>
                                                                    <item name="region_id" xsi:type="array">
                                                                        <item name="component" xsi:type="string">Magento_Ui/js/form/element/region</item>
                                                                        <item name="sortOrder" xsi:type="string">112</item>
                                                                        <item name="config" xsi:type="array">
                                                                            <item name="template" xsi:type="string">ui/form/field</item>
                                                                            <item name="elementTmpl" xsi:type="string">ui/form/element/select</item>
                                                                            <item name="customEntry" xsi:type="string">shippingAddress.region</item>
                                                                        </item>
                                                                        <!-- Value of region_id field is filtered by the value of county_id attribute -->
                                                                        <item name="filterBy" xsi:type="array">
                                                                            <item name="target" xsi:type="string"><![CDATA[${ $.provider }:${ $.parentScope }.country_id]]></item>
                                                                            <item name="field" xsi:type="string">country_id</item>
                                                                        </item>
                                                                    </item>
                                                                    <!-- The following items override configuration of corresponding address attributes -->
                                                                    <item name="region" xsi:type="array">
                                                                        <!-- Make region attribute invisible on frontend. Corresponding input element is created by region_id field -->
                                                                        <item name="visible" xsi:type="boolean">false</item>
                                                                        <item name="component" xsi:type="string">Magento_Ui/js/form/element/abstract</item>
                                                                        <item name="sortOrder" xsi:type="string">111</item>
                                                                        <item name="dataScope" xsi:type="string">shippingAddress.region</item>
                                                                    </item>
                                                                    <item name="postcode" xsi:type="array">
                                                                        <!-- post-code field has custom UI component -->
                                                                        <item name="component" xsi:type="string">Magento_Ui/js/form/element/abstract</item>
                                                                        <item name="dataScope" xsi:type="string">shippingAddress.postcode</item>
                                                                        <item name="sortOrder" xsi:type="string">114</item>
                                                                        <item name="provider" xsi:type="string">checkoutProvider</item>
                                                                    </item>
                                                                </item>
                                                            </item>
                                                        </item>
                                                    </item>
                                                </item>
                                            </item>
                                            <item name="checkoutProvider" xsi:type="array">
                                                <item name="component" xsi:type="string">uiComponent</item>
                                            </item>
                                        </item>
                                    </argument>
                                </arguments>
                            </block>
                            <container name="checkout.cart.totals.container" as="totals" label="Shopping Cart Totals">
                                <block class="Magento\Checkout\Block\Cart\Totals" name="checkout.cart.totals" template="Magento_Checkout::cart/totals.phtml">
                                    <arguments>
                                        <argument name="jsLayout" xsi:type="array">
                                            <item name="components" xsi:type="array">
                                                <item name="block-totals" xsi:type="array">
                                                    <item name="component" xsi:type="string">Magento_Checkout/js/view/cart/totals</item>
                                                    <item name="displayArea" xsi:type="string">totals</item>
                                                    <item name="config" xsi:type="array">
                                                        <item name="template" xsi:type="string">Magento_Checkout/cart/totals</item>
                                                    </item>
                                                    <item name="children" xsi:type="array">
                                                        <!-- sort order for this totals is configured on admin panel-->
                                                        <!-- Stores->Configuration->SALES->Sales->General->Checkout Totals Sort Order -->
                                                        <item name="subtotal" xsi:type="array">
                                                            <item name="component" xsi:type="string">Magento_Checkout/js/view/summary/subtotal</item>
                                                            <item name="config" xsi:type="array">
                                                                <item name="title" xsi:type="string" translate="true">Subtotal</item>
                                                                <item name="template" xsi:type="string">Magento_Checkout/cart/totals/subtotal</item>
                                                            </item>
                                                        </item>
                                                        <item name="shipping" xsi:type="array">
                                                            <item name="component" xsi:type="string">Magento_Checkout/js/view/cart/totals/shipping</item>
                                                            <item name="config" xsi:type="array">
                                                                <item name="title" xsi:type="string" translate="true">Shipping</item>
                                                                <item name="template" xsi:type="string">Magento_Checkout/cart/totals/shipping</item>
                                                            </item>
                                                        </item>
                                                        <item name="grand-total" xsi:type="array">
                                                            <item name="component" xsi:type="string">Magento_Checkout/js/view/summary/grand-total</item>
                                                            <item name="config" xsi:type="array">
                                                                <item name="title" xsi:type="string" translate="true">Order Total</item>
                                                                <item name="template" xsi:type="string">Magento_Checkout/cart/totals/grand-total</item>
                                                            </item>
                                                        </item>
                                                    </item>
                                                </item>
                                            </item>
                                        </argument>
                                    </arguments>
                                </block>
                            </container>
                            <block class="Magento\Checkout\Block\Cart\Coupon" name="checkout.cart.coupon" as="coupon" template="Magento_Checkout::cart/coupon.phtml"  />
                            <block class="Magento\Checkout\Block\Cart" name="checkout.cart.methods.bottom" template="Magento_Checkout::cart/methods.phtml" >
                                <container name="checkout.cart.methods" as="methods" label="Payment Methods After Checkout Button">
                                    <block class="Magento\Checkout\Block\Onepage\Link" name="checkout.cart.methods.onepage.bottom" template="Magento_Checkout::onepage/link.phtml" />
                                    <block class="Magento\Checkout\Block\QuoteShortcutButtons" name="checkout.cart.shortcut.buttons" />
                                </container>
                            </block>


                        </container>





                        <container name="checkout.cart.widget" as="checkout_cart_widget" label="Shopping Cart Items After"/>
                    </container>
                    <block class="Magento\Checkout\Block\Cart\Crosssell" name="checkout.cart.crosssell" template="Magento_Catalog::product/list/items.phtml" after="-" ifconfig="checkout/cart/crosssell_enabled">
                        <arguments>
                            <argument name="type" xsi:type="string">crosssell</argument>
                        </arguments>
                        <block class="Magento\Catalog\Block\Product\ProductList\Item\Container" name="crosssell.product.addto" as="addto">
                            <block class="Magento\Catalog\Block\Product\ProductList\Item\AddTo\Compare"
                                   name="crosssell.product.addto.compare" as="compare"
                                   template="Magento_Catalog::product/list/addto/compare.phtml"/>
                        </block>
                    </block>
                </container>
                <container name="checkout.cart.noitems" as="no-items">
                    <block class="Magento\Checkout\Block\Cart" name="checkout.cart.empty" before="-" template="Magento_Checkout::cart/noItems.phtml">
                        <container name="checkout.cart.empty.widget" as="checkout_cart_empty_widget" label="Empty Shopping Cart Content Before"/>
                    </block>
                </container>
            </block>
        </referenceContainer>
        <block class="Magento\Checkout\Block\Cart\Additional\Info" name="additional.product.info" template="Magento_Checkout::cart/additional/info.phtml"/>
    </body>
</page>

I hope It works for you! Thanks.

-1

can you try this :

theme folder app/design/magestore/sample/magento_checkout/layout/checkout_cart_index.xml

<?xml version="1.0"?>
<page layout="1column" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
    <body>
    <move element="cart.summary" destination="content" after="checkout.cart.form" />
    </body>
</page>
5
  • sir yes my XML file mane is checkout_cart_index.xml sorry for my mistake Commented Jun 27, 2018 at 7:58
  • @shohelhussain Answer updated can you check please Commented Jun 27, 2018 at 8:10
  • This moved the summary after the discount section Commented Nov 10, 2018 at 10:36
  • I try this code, it's moving, but in my case, I am having the cross-sell section, so the cart-summary is moving after the cross-sell section, but I need the cart-summary next to the discount section and before to the cross-sell section
    – senthil
    Commented Nov 14, 2018 at 12:17
  • This solution leads to exception if we refresh empty cart page:- 1 exception(s): Exception #0 (Magento\Framework\Exception\NoSuchEntityException): No such entity with cartId = Commented Mar 8, 2019 at 18:05

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.