I want to get the all products and make changes in these product showing on the homepage
2 Answers
This products are shown as widget in home-page-block cms block.
It is Catalog Product list widget, so you can configure Number of Products to Display, template, and wich products to show.
-
Thanks for your quick response.. I want make changes progmatically how to can I get these products?? Feb 12, 2019 at 8:32
-
You can do an override like this :
app/code/YourNamespace/YourModule/etc/frontend/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\CatalogWidget\Block\Product\ProductsList">
<plugin name="module_widget_override" type="YourNamespace\YourModule\Plugin\Block\Product\MyOverridePlugin" />
</type>
</config>
app/code/YourNamespace/YourModule/Plugin/Block/Product/MyOverridePlugin.php
<?php
namespace YourNamespace\YourModule\Plugin\Block\Product;
class MyOverridePlugin
{
die('IT WORKS')
}
If you want to modify the template , open the template path hints LINK . And override the template that is displaying thoses products.
I think this is the template:
vendor/magento/module-catalog-widget/view/frontend/templates/product/widget/content/grid.phtml
Make the logic in this section
<?php if ($showWishlist || $showCompare || $showCart): ?>
<div class="product-item-actions">
<?php if ($showCart): ?>
<div class="actions-primary">
<?php if ($_item->isSaleable()): ?>
<?php if ($_item->getTypeInstance()->hasRequiredOptions($_item)): ?>
<button class="action tocart primary" data-mage-init='{"redirectUrl":{"url":"<?= $block->escapeUrl($block->getAddToCartUrl($_item)) ?>"}}' type="button" title="<?= $block->escapeHtmlAttr(__('Add to Cart')) ?>">
<span><?= $block->escapeHtml(__('Add to Cart')) ?></span>
</button>
<?php else: ?>
<?php
$postDataHelper = $this->helper('Magento\Framework\Data\Helper\PostHelper');
$postData = $postDataHelper->getPostData($block->getAddToCartUrl($_item), ['product' => $_item->getEntityId()])
?>
<button class="action tocart primary" data-post='<?= /* @noEscape */ $postData ?>' type="button" title="<?= $block->escapeHtmlAttr(__('Add to Cart')) ?>">
<span><?= $block->escapeHtml(__('Add to Cart')) ?></span>
</button>
<?php endif; ?>
<?php else: ?>
<?php if ($_item->getIsSalable()): ?>
<div class="stock available"><span><?= $block->escapeHtml(__('In stock')) ?></span></div>
<?php else: ?>
<div class="stock unavailable"><span><?= $block->escapeHtml(__('Out of stock')) ?></span></div>
<?php endif; ?>
<?php endif; ?>
</div>
<?php endif; ?>
-
Thanks.. but what will I do to hide the "Add to Cart" on the Hot Sellers for the specific products Feb 13, 2019 at 7:22
-
-
Actually I'm not getting the Layout of the HotSeller to override it Feb 13, 2019 at 13:55
-
@AsadKhan follow this link for more info oshansideas.blogspot.com/2016/11/… Feb 13, 2019 at 14:01