Cómo anular function getAllowProducts()a partir Magento\ConfigurableProduct\Block\Product\View\Type\Configurable.phpde 2 Magento.
Quiero anular la función anterior pero no obtener cambios de función y nada muestra ningún problema. No se muestra ningún error dentro del archivo de registro.
compartiré mi código aquí,
registration.php archivo,
<?php
\Magento\Framework\Component\ComponentRegistrar::register(
\Magento\Framework\Component\ComponentRegistrar::MODULE,
'Test_Configuration',
__DIR__
);
carpeta etc.
module.xml
el código es
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Module/etc/module.xsd">
<module name="Test_Configuration" setup_version="1.0.0"/>
</config>
Tengo anular bloque dentro del
di.xmlcódigo es
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
<preference for="Magento\ConfigurableProduct\Block\Product\View\Type\Configurable" type="Test\Configuration\Block\Outstock" />
</config>
Bloquear carpeta,
Outstock.phparchivo,
<?php
namespace Test\Configuration\Block;
class Outstock extends \Magento\ConfigurableProduct\Block\Product\View\Type\Configurable
{
public function getAllowProducts()
{
if (!$this->hasAllowProducts()) {
$products = [];
$skipSaleableCheck = $this->catalogProduct->getSkipSaleableCheck();
$allProducts = $this->getProduct()->getTypeInstance()->getUsedProducts($this->getProduct(), null);
foreach ($allProducts as $product) {
$products[] = $product;
}
$this->setAllowProducts($products);
}
return $this->getData('allow_products');
}
protected function _toHtml()
{
$this->setModuleName($this->extractModuleName('Magento\ConfigurableProduct\Block\Product\View\Type\Configurable'));
return parent::_toHtml();
}
}
No he mostrado ningún error, no se ha generado ningún registro para este archivo y el módulo está activado. setup_moduleSe generan entradas internas .
Cualquier sugerencia para anular la función del configurable.phparchivo.
Gracias.

Para la versión Magento2.1 necesita anular
Magento\Swatches\Block\Product\Renderer\Configurable1) Crear
di.xmlarchivo en la carpetaNamespace\Module\etc2) Crear
Outstock.phparchivo de bloque en la carpetaNamespace\Module\Blockfuente
Necesitas anular
en lugar de anular
archivo.
fuente
Para anular la función del archivo configurable.php.
1) Primero cree el archivo di.xml en Prueba de carpeta / Configuración / etc.
2) Ahora crea el archivo Outstock.php Block en Folder Test \ Configuration \ Block
fuente