質問

TL;博士: :構成可能な製品に関連付けられた単純な製品が、構成可能な製品自体と同じ属性セットにある必要がある理由はありますか?つまり、何かあります テクニカル 理由? 「常識」の理由を知っています。ペアを販売する場合 次に、色とサイズに依存するすべてのバージョンは また。
ロングバージョン: :構成可能な製品を「マージ」するタスクがありました。私は2つ以上から1つだけを作ることを意味します。私は製品の量のために手動でそれらをやりたくありませんでした、そして私は経験したくありませんでした $product->load(..)->set...()->save() スクリプトを実行するのにかかった時間のため。そのため、単純な製品が重複していないと確信していたので、プロセスを短絡させました。サイズと色のユニークな組み合わせがありました。これは私がしました:

Mage::getResourceSingleton('catalog/product_type_configurable')
    ->saveProducts($mainConfigrableProduct, $simpleProductIds);

どこ $simpleProductIds すべてをマージする必要がある構成可能な製品に関連付けられたすべての単純な製品IDの配列です。
これはほとんどの製品で完全に機能しましたが、問題があるいくつかの製品がありました。
私が電話した場合

$productIds = $product->getTypeInstance()->getUsedProductIds() 

すべてのシンプルな製品IDを取得しますが、バックエンドではそれらのいくつかだけが表示されました。しばらくの間掘った後、表示された唯一のものは構成可能な製品と同じ属性セットのものであることがわかりました。もう1つの属性セットは最初の属性と非常に似ており、わずかな違いがありますが、構成可能な属性(サイズと色)が含まれています。
そして今、奇妙なこと。フロントエンドでは、すべての製品(上記のコードの$ ProductIDS)または同じ属性セットの製品のみが表示されると予想していました。さて、間に何かがありました。

  • 20の関連製品ID -5サイズ、4色
  • バックエンドの10個の関連製品-5サイズ、2色 - 他の2色(10個の製品)は別の属性セットにありました
  • フロントエンドの15の組み合わせ-5サイズ3色(???)

表示されなかった製品の属性セットを変更することで問題を解決することができましたが、まだ困惑しています。

ノート: :家でこれを試さないでください。または、自宅では試してみることもできますが、ライブサーバーでは試してはなりません。

役に立ちましたか?

解決

これについて尋ねた後、私が持っている理由があります。おそらくあなたが期待していたにもかかわらず、それがあなたにとって満足していることを願っています。

  1. AdminHTMLインターフェイスは、商人が完全に台無しにすることを難しくすることを目的として行われました。

そのため、Magentoがフレームワークとして提供する多くの機能は、ユーザーインターフェイスを通じて不可能です。
同じ属性セットの製品のみが、Configurablesの関連する単純な製品として選択可能である理由は、それが仕様にあったためです。
あなたが言ったように、それはそのように理にかなっています。

  1. 別の理由は、属性セットの目的を考えることです。それらが存在する理由の1つは、リクエスト中にロードおよび処理する必要がある属性とオプションの数を減らすことです。この思考を構成可能性に適用することは理にかなっています。これは、比較的リソースの高価な製品タイプであるため、理にかなっています。

バックエンドはそのように組み込まれているため、構成可能なフロントエンドロジックは、異なる属性セットの単純な製品を扱うことは決して期待されませんでした。
そのため、制限は完全にそこに実装されていません。

おそらく、異なる属性セットのSimpleSで構成可能性を簡単に動作させるのは簡単です。それはただそのように意図されていませんでした。

私はこれ以上尋ねず、フロントエンドで奇妙な結果を正確に生成したコードの相互作用がどのようなコードの相互作用が生成されたかを確認しませんでした。おそらく重要ではないので、コードの説明ではなく、構成可能な属性セットから単純な製品を除外するという決定の背後にある理由を求める場所を正しく理解した場合です。

他のヒント

intrgyと輸入とエクスポートのために、unirgy(これはあまりお勧めできません)によってrapidflowと呼ばれる拡張機能を使用します。 Proバージョンの機能の1つを使用すると、属性セットの変更が可能になります。もう1つは、CSVインポートを介した製品の作成です。時々、Configurables用の新しいシンプルな製品を作成しますが、偶然には、これらの単純な製品が両親とは異なる属性セットを持っている場合があります。

RapidFlowはこれらの製品を喜んでインポートし、属性セットを変更します。結果に満足していない傾向があります。属性セットの外側の属性によって構成された構成可能な製品は、製品管理者のレンダリングに失敗し、修理する必要があります。あなたが指摘したように、親の属性セットを変更しない場合、子供たちは単に親と適切に関連付けられていません。それらはMagentoエンティティとして存在し、編集することができますが、フロントエンド製品ページまたは構成可能な親の関連製品リストの子供としては表示されません。

したがって、純粋に技術的な立場から、単純な製品が親とは異なる属性セットになる可能性があります。しかし、EEでもこの行動はサポートされていないため、Occam's RazorはMagentoを設計していたとき、Varien Devsは必要とは思わなかったと言います。

ライセンス: CC-BY-SA帰属
所属していません magento.stackexchange
scroll top