スーパー属性スコープ変更エラー
-
16-10-2019 - |
質問
スーパー属性として使用される属性の「ストアビュー」から「グローバル」にスコープを変更しようとすると、このエラーメッセージが表示されます。
「属性は構成可能な製品で使用されるため、スコープを変更してはなりません。」
私はおそらく正当な理由があることを知っています、誰かが私にこの背後にある論理を説明できますか?
解決
ストアビュースコープとは、デフォルトスコープ(グローバル)の値とストアビューの異なる値を持つことができることを意味します。
次の状況があります。
Store view: Global Scope Value, Store View Value:
store view 1: A,B
store view 2: A,C
スコープをストアビューからグローバルに変更し、既に値セットを備えた製品を持っている場合、Magentoは値をどうするかを知りません。どのような価値を保持する必要がありますか? A(グローバルなもの)、B(ストアビュー1)。それがあなたがメッセージを受け取る理由です。
チェックはmage_catalog_model_resource_eav_attribute :: _ beforesave()にあります:
[...]
if (($this->_data['is_global'] != $this->_origData['is_global'])
&& $this->_getResource()->isUsedBySuperProducts($this)) {
Mage::throwException(Mage::helper('catalog')->__('Scope must not be changed, because the attribute is used in configurable products.'));
}
[...]
次のオプションがあります。
- まだその属性を使用していない場合は、削除してもう一度作成するだけです
- 使用している場合は、新しいものを作成し、インポート/エクスポートを使用して値を更新します
所属していません magento.stackexchange