I want to show a Simple product with a Configurable product name on ( Mini-cart, Cart page, and checkout page ). I have successfully achieved to show the name on Mini-cart and Cart page but on the Checkout page I have created a module that is successfully showing the Name on the shipping page but it doesn't show on the Payment page can anyone have any idea why it is not showing there.
I have shown the value by
<?php
namespace Hl\Checkoutname\Plugin;
class ConfigProviderPlugin extends \Magento\Framework\Model\AbstractModel
{
public function afterGetConfig(\Magento\Checkout\Model\DefaultConfigProvider
$subject, array $result)
{
$items = $result['totalsData']['items'];
$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
for($i=0;$i<count($items);$i++){
$quoteId = $items[$i]['item_id'];
$quoteNext = ($quoteId + 1);
$quote = $objectManager->create('\Magento\Quote\Model\Quote\Item')->load($quoteNext);
$simpleProName = $quote->getName();
$simpleProType = $quote->getProductId();
$items[$i]['childname'] = $simpleProName;
$items[$i]['producttype'] = $simpleProType;
}
$result['totalsData']['items'] = $items;
return $result;
}
}
My di.xml file path: app/code/Hl/Checkoutname/etc/di.xml
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
<type name="Magento\Checkout\Model\DefaultConfigProvider">
<plugin name="AddAttPlug" type="Hl\Checkoutname\Plugin\ConfigProviderPlugin" />
</type>
<type name="Magento\Quote\Model\Cart\CartTotalRepository">
<plugin name="Hl_Checkoutname_Plugin_Frontend_Magento_Catalog_Model_Layer" type="Hl\Checkoutname\Plugin\Frontend\Magento\Catalog\Model\Layer\CartTotalRepository" sortOrder="15" disabled="false"/>
</type>
</config>
My Plugin file path : app/code/Hl/Checkoutname/Plugin/Frontend/Magento/Catalog/Model/Layer/CartTotalRepository.php
<?php
declare(strict_types=1);
namespace Hl\Checkoutname\Plugin\Frontend\Magento\Catalog\Model\Layer;
use Magento\Catalog\Api\ProductRepositoryInterface;
class CartTotalRepository
{
/**
* @var ProductRepositoryInterface
*/
private $productRepository;
public function __construct(ProductRepositoryInterface $productRepository)
{
$this->productRepository = $productRepository;
}
public function afterGet(
\Magento\Quote\Model\Cart\CartTotalRepository $subject,
$result,
$cartId
) {
if ($result instanceof \Magento\Quote\Api\Data\TotalsInterface) {
$items = $result->getItems();
$resultItems = [];
foreach ($items as $eachItem) {
$name = $eachItem->getName();
$eachItem->setName($name);
// Do your code
$resultItems['childname'] = $eachItem;
}
$result->setItems($resultItems);
}
return $result;
}
}
As in my app/design/frontend/Mgs/claue_child/Magento_Checkout/web/template/summary/item/details.html I have used
<strong class="product-item-childname" data-bind="html: $parent.childname"></strong>
to show the name so that's why I have returned the value with this but still not getting a name.
Any help is appreciated.