4

I've created my own validation rule phonePL in

app/design/frontend/Me/myskin/Magento_Ui/web/js/lib/validation/rules.js

I can activate it in

Magento/Checkout/view/frontend/layout/checkout_index_index.xml

By adding my validation rule in telephone item like so:

<item name="telephone" xsi:type="array">
    <item name="config" xsi:type="array">
        <item name="validation" xsi:type="array">
            <item name="phonePL" xsi:type="string">true</item>
        </item>
        <item name="tooltip" xsi:type="array">
            <item name="description" xsi:type="string" translate="true">For delivery questions.</item>
        </item>
    </item>
</item>

But how should I overwrite just this one telephone item in my theme? I dont want to do it directly in magento directory. I've got an xml file:

app/design/frontend/Me/myskin/Magento_Checkout/layout/checkout_index_index.xml

but I don't know what exactly should its structure look like?

1 Answer 1

0

This helped me: http://devdocs.magento.com/guides/v2.0/howdoi/checkout/checkout_edit_form.html

The whole xml that worked for me:

<?xml version="1.0"?>
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" layout="1column" 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="steps" xsi:type="array">
                                <item name="children" xsi:type="array">
                                    <item name="shipping-step" xsi:type="array">
                                        <item name="children" xsi:type="array">
                                            <item name="shippingAddress" xsi:type="array">
                                                <item name="children" xsi:type="array">
                                                    <!-- The name of the form the field belongs to -->
                                                    <item name="shipping-address-fieldset" xsi:type="array">
                                                        <item name="children" xsi:type="array">
                                                            <!-- the field you are customizing -->
                                                            <item name="telephone" xsi:type="array">
                                                                <item name="validation" xsi:type="array">
                                                                    <item name="phonePL" xsi:type="string">true</item>
                                                                </item>
                                                                <item name="config" xsi:type="array">
                                                                    <item name="tooltip" xsi:type="array">
                                                                        <item name="description" xsi:type="string" translate="true">For delivery questions.</item>
                                                                    </item>
                                                                </item>
                                                            </item>
                                                        </item>
                                                    </item>
                                                </item>
                                            </item>
                                        </item>
                                    </item>
                                </item>
                            </item>
                        </item>
                    </item>
                </item>
            </argument>
        </arguments>
    </referenceBlock>
</body>
</page>

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.