Magento 2: Как скрыть поле количества для определенных продуктов, в котором есть только количество?


У меня есть определенные продукты, которые клиенты могут купить только один.

Так нужно ли удалить поле кол-во только для этих продуктов или можно управлять из настроек?

Author: Jackson, 2017-01-17

2 answers

В Admin есть конфигурация: Войдите в систему Администратора > ПРОДУКТЫ > Каталог> выберите продукт >Расширенный инвентарь> Максимальное количество, разрешенное в корзине покупок> установите значение 1.

enter image description here

Перезаписать, как показано ниже

Magento\app\design\frontend\Vendor\YourThemeName\Magento_Catalog\templates\product\view\addtocart.phtml

Заменить

if ($block->shouldRenderQuantity())

С

if ($block->shouldRenderQuantity() && ($_product->getExtensionAttributes()->getStockItem()->getMaxSaleQty() != 1)):

Вам нужно добавить

$_product->getExtensionAttributes()->getStockItem()->getMaxSaleQty()
 5
Author: Khoa TruongDinh, 2017-01-17 10:26:35

Создайте плагин after для shouldRenderQuantity. В вашем di.xml, добавьте это.

<type name="Magento\Catalog\Block\Product\View">
    <plugin name="Vendor_Module::configurable-no-render-quantity-field" type="Vendor\Module\Plugin\Block\Product\View" />
</type>

Затем в своем плагине сделайте что-то вроде этого:

public function afterShouldRenderQuantity(\Magento\Catalog\Block\Product\View $subject, $result)
{
    if ($subject->getProduct()->getTypeId() === \Magento\ConfigurableProduct\Model\Product\Type\Configurable::TYPE_CODE) {
        return false;
    }
    
    return $result;
}

Измените условие if в моем примере, чтобы достичь желаемого.

 0
Author: phagento, 2020-09-12 16:04:32