Estás leyendo la publicación: Cómo actualizar el valor del atributo del producto mediante programación en Magento 2
espacio de nombres Proveedor\Extensión\Ayudante;
use Magento\Catalog\Model\Product\Action como ProductAction;
use Magento\Catalog\Model\ResourceModel\Product\CollectionFactory;
use Magento\Framework\App\Helper\AbstractHelper;
use Magento\Framework\App\Helper\Context;
use Magento\Store\Model\StoreManagerInterface;
clase Datos extiende AbstractHelper
{
protegido $messageManager;
privado $productCollection;
$ acción del producto privado;
privado $storeManager;
función pública __construir(
Contexto $contexto,
CollectionFactory $colección,
ProductoAcción $acción,
StoreManagerInterfaz $storeManager
)
{
$this->productCollection = $colección;
$this->productAction = $action;
$this->storeManager = $storeManager;
padre::__construcción($contexto);
}
función pública setAttributeData($valor)
{
intentar {
$colección = $this->productCollection->create()->addFieldToFilter(‘*’);
$storeId = $this->storeManager->getStore()->getId();
$id = [];
$i = 0;
foreach ($colección como $elemento) {
$ids[$i] = $elemento->getEntityId();
$i++;
}
$this->productAction->updateAttributes($ids, array(‘attribute_code’ => $value), $storeId);
} atrapar (\Excepción $e) {
$this->messageManager->addError($e->getMessage());
}
}
}