I'm modifying all Magento 2 to accept login with mobile phone instead of email. Register, login, account info, backend, login at checkout, everything is going well.
But when I use my own checkout_index_index.xml
instead of the core one, the object which stores the list of renders of each payment method (rendererList
) is not filled in.
In the moment of the checkout, using the original checkout_index_index.xml
I got this when I debug list.js
:
rendered list in the beginning >>
[Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object] list.js:30
Using my checkout_index_index.xml
:
rendered list in the beginning >>
[] list.js:30
The object with the payment methods in both situations:
[Object, Object, Object, Object]
0: Object
method: "paypal_express"
title: "PayPal Express Checkout"
__proto__: Object
1: Object
method: "purchaseorder"
title: "Purchase Order"
__proto__: Object
2: Object
method: "checkmo"
title: "Check / Money order"
__proto__: Object
3: Object
method: "free"
title: "No Payment Information Required"
__proto__: Object
length: 4
__proto__: Array[0]
So, the rendererList
used in list.js to render each payment method for my custom module is empty. I spend a whole day trying to find where does this object is filled in without success.
I must say I'm editing checkout_index_index.xml
to use my own js files on checkout steps like this:
<item name="component" xsi:type="string">Tmo_Checkout/js/view/shipping</item>
<item name="provider" xsi:type="string">checkoutProvider</item>
<item name="sortOrder" xsi:type="string">1</item>
<item name="children" xsi:type="array">
<item name="customer-email" xsi:type="array">
<item name="component" xsi:type="string">Tmo_Checkout/js/view/form/element/username</item>
<item name="displayArea" xsi:type="string">customer-email</item>
<item name="tooltip" xsi:type="array">
<item name="description" xsi:type="string" translate="true">We'll send your order confirmation here.</item>
</item>
<item name="children" xsi:type="array">
<item name="before-login-form" xsi:type="array">
<item name="component" xsi:type="string">uiComponent</item>
<item name="displayArea" xsi:type="string">before-login-form</item>
<item name="children" xsi:type="array">
<!-- before login form fields -->
</item>
</item>
<item name="additional-login-form-fields" xsi:type="array">
<item name="component" xsi:type="string">uiComponent</item>
<item name="displayArea" xsi:type="string">additional-login-form-fields</item>
<item name="children" xsi:type="array">
<!-- additional login form fields -->
</item>
</item>
</item>
</item>
Finally, the questions are: how do I fill that rendererList
?? or where Magento does it?? or how can I specify custom js files for checkout without touching checkout_index_index.xml
?? Thanks in advance!