Intento agregar opciones para los atributos de tamaño y color en mi módulo importador pero no sé cómo ...:
private function addOption($attributeCode, $value)
{
$ob = $this->_objectManager;
/* @var $m \Magento\Eav\Model\Entity\Attribute\OptionManagement */
$m = $this->optionManagement;
/* @var $option \Magento\Eav\Model\Entity\Attribute\Option */
$option = $this->attributeOption;
$option->setLabel($value);
$option->setValue($value);
$m->add(\Magento\Catalog\Api\Data\ProductAttributeInterface::ENTITY_TYPE_CODE,
$attributeCode,
$option);
Esto informa un error (modifiqué la excepción que informa OptionMaganger.php
a Excepción-> mensaje )
No se puede guardar el tamaño del atributo Aviso: Índice no definido: eliminar en /var/www/html/magento2/vendor/magento/module-swatches/Model/Plugin/EavAttribute.php en la línea 177
- OptionManagement y Option provienen de
_contstructor
- Con OptionManagement puedo recuperar los elementos existentes, por lo que debería estar bien.
setLabel()
y setValue()
son predeterminados, pero intenté setData , cargar la instancia de opción y pasar OptionManagement->getItems
para agregar (...) "nuevamente", pero el error aún existe ...
Alguna idea, ¿cómo puedo agregar opciones EAV (muestras?) Durante el proceso de importación? (no en configuración de módulo)
Actualización:
De otra manera, puedo agregar la opción:
$attributeCode = 137; /* on size, 90 on color ... */
$languageValues[0]='Admin Label';
$languageValues[1]='Default Store Label - XXXXL';
$ob = $this->_objectManager;
private function addOption($attributeCode,$languageValues){
$ob = $this->_objectManager;
/* @var $attr \Magento\Eav\Model\Entity\Attribute */
$attr = $ob->create('\Magento\Eav\Model\Entity\Attribute');
$attr->load($attributeCode);
$option = [];
$option['value'][$languageValues[0]] = $languageValues;
$attr->addData(array('option' => $option));
$attr->save();
}
De esta manera, Magento2 puede guardar una opción para atribuir, pero no sé cuál es la forma "oficial" :)