Tôi cố gắng thêm tùy chọn cho các thuộc tính kích thước và màu sắc trong chế độ nhà nhập khẩu của mình nhưng tôi không làm thế nào ...:
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);
Báo cáo này một lỗi (tôi sửa đổi báo cáo về ngoại lệ OptionMaganger.phpđể Exception-> nhắn )
Không thể lưu kích thước thuộc tính Lưu ý: Chỉ mục không xác định: xóa trong /var/www/html/magento2/vendor/magento/module-swatches/Model/Plugin/EavAttribution.php trên dòng 177
- Tùy chọn Quản lý và Tùy chọn đến từ
_contstructor - Với Quản lý tùy chọn, tôi có thể truy xuất các mục hiện có, vì vậy sẽ ổn thôi ..
setLabel()và setValue()được mặc định, nhưng tôi đã thử setData , tải phiên bản tùy chọn và chuyển qua OptionManagement->getItemsđể thêm (...) "lần nữa", nhưng lỗi vẫn tồn tại ...
Bất kỳ ý tưởng, làm thế nào tôi có thể nối thêm Tùy chọn EAV (swatches?) Trong quá trình nhập? (không phải trong thiết lập modul)
Cập nhật:
Cách khác tôi có thể thêm tùy chọ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();
}
Bằng cách này, Magento2 có thể lưu một tùy chọn cho thuộc tính, nhưng tôi không biết cách "chính thức" là gì :)