I am rewritting the /vendor/magento/module-catalog/view/base/templates/product/price/amount/default.phtml file. The file MyCompany_MyApp::product/default.phtml works fine, but I want to pass a viewModel into the block as an argument but this doesn’t work as expected.
This doesnt work when trying to add:
<argument name="viewModel" xsi:type="object">MyCompanyMyAppViewModelProductLoader</argument>
Into:
MyCompany/MyApp/view/frontend/layout/catalog_product_prices.xml
<block class="MagentoFrameworkPricingRenderRendererPool" name="render.product.prices">
<arguments>
<argument name="viewModel" xsi:type="object">MyCompanyMyAppViewModelProductLoader</argument>
<argument name="default" xsi:type="array">
<item name="default_render_class" xsi:type="string">MagentoCatalogPricingRenderPriceBox</item>
<item name="default_render_template" xsi:type="string">Magento_Catalog::product/price/default.phtml</item>
<item name="default_amount_render_class" xsi:type="string">MagentoFrameworkPricingRenderAmount</item>
<item name="default_amount_render_template" xsi:type="string">MyCompany_MyApp::product/default.phtml</item>
<item name="prices" xsi:type="array">
<item name="special_price" xsi:type="array">
<item name="render_template" xsi:type="string">Magento_Catalog::product/price/special_price.phtml</item>
</item>
<item name="tier_price" xsi:type="array">
<item name="render_template" xsi:type="string">Magento_Catalog::product/price/tier_prices.phtml</item>
</item>
<item name="final_price" xsi:type="array">
<item name="render_class" xsi:type="string">MagentoCatalogPricingRenderFinalPriceBox</item>
<item name="render_template" xsi:type="string">Magento_Catalog::product/price/final_price.phtml</item>
</item>
<item name="custom_option_price" xsi:type="array">
<item name="amount_render_template" xsi:type="string">MyCompany_MyApp::product/default.phtml</item>
</item>
<item name="configured_price" xsi:type="array">
<item name="render_class" xsi:type="string">MagentoCatalogPricingRenderConfiguredPriceBox</item>
<item name="render_template" xsi:type="string">Magento_Catalog::product/price/configured_price.phtml</item>
</item>
</item>
<!--<item name="adjustments" xsi:type="array"></item>-->
</argument>
</arguments>
</block>
This works,
I can pass this viewModel into: MyCompany/MyApp/view/frontend/layout/catalog_product_view.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">
<update handle="catalog_product_opengraph" />
<update handle="page_calendar"/>
<body>
<referenceContainer name="product.info.main">
<block class="MagentoCatalogBlockProductViewDescription" name="changeproduct" template="Ecommerce121_FlooringCalculator::product/view/accessProduct.phtml" after="product.info.price">
<arguments>
<argument name="viewModel" xsi:type="object">MyCompanyMyAppViewModelProductLoader</argument>
</arguments>
</block>
<block class="MagentoCatalogBlockProductViewDescription" name="showCalculator" template="Ecommerce121_FlooringCalculator::product/view/showApp.phtml" after="product.info.price">
<arguments>
<argument name="viewModel" xsi:type="object">MyCompanyMyAppViewModelAppLogic</argument>
</arguments>
</block>
</referenceContainer>
</body>
</page>
How do I make it work in catalog_product_prices.xml