Ich versuche, Optionen für Größen- und Farbattribute in meinem Importmodul hinzuzufügen, aber ich weiß nicht, wie ...:
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);
Dieser Bericht enthält einen Fehler. (Ich habe die Ausnahmeberichterstattung OptionMaganger.php
unter Ausnahme-> Nachricht geändert. )
Attributgröße kann nicht gespeichert werden Hinweis: Nicht definierter Index: Löschen in /var/www/html/magento2/vendor/magento/module-swatches/Model/Plugin/EavAttribute.php in Zeile 177
- Das OptionManagement und die Option stammen von
_contstructor
- Mit OptionManagement kann ich die vorhandenen Elemente abrufen, sollte also in Ordnung sein.
setLabel()
und setValue()
sind voreingestellt, aber ich habe versucht, setData , load option instance und pass by OptionManagement->getItems
zu add (...) "again", aber der Fehler besteht immer noch ...
Irgendeine Idee, wie kann ich EAV-Optionen (Farbfelder?) Während des Importvorgangs anhängen? (nicht im Modul-Setup)
Update:
Auf andere Weise kann ich Option hinzufügen:
$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();
}
Auf diese Weise kann Magento2 eine Option zum Attributieren speichern, aber ich weiß nicht, was der "offizielle" Weg ist :)