2010-12-27 10 views
2

申し訳ありませんので、特定のxmlファイルを読み込んで製品をインポートする独自のスクリプトを作成しています。ここで、これらの製品のそれぞれは、一組の属性(例えば、色)を有することができる。Magentoカスタムオプション:成功!ほとんど!

私がやっていることは、各カスタム属性をインポートし、特定の文字列「黄色、黒色仕上げ木材」を生成することです。これは、注文するときに選択できるラジオボタンです。製品。さて、私は、同じ "親"が異なる一意のIDを持つ製品に来るとき、私はカスタムオプションのラジオボタンの新しい行を生成する必要があるので、色が赤い別の製品がある場合、私は以下から選択するには:私はブランドの新製品を作成し、ちょうど同じにカスタムオプションを追加していないよ場合、これは、言い換えれば、同じ親IDを持つ最初の製品のための偉大な作業をされて

Red, black finish wood 
Yellow, black finish wood 

製品。

私の質問は、特定のオプションに対して新しいカスタムオプション値を生成する方法です。つまり、すでに作成されている特定のオプションに新しい行を追加するにはどうすればよいですか?

これは基本的に、私が新製品の最初のオプションを生成するために行っていることです。

$options = array(); 
$options[$ParentID] = array(
    'title' => 'Option Title', 
    'type' => 'radio', 
    'is_require' => 1, 
    'values' => array() 
); 
$options[$ParentID]['values'][] = array(
    'title' => 'Option Value Title', 
    'price' => 0.00, 
    'price_type' => 'fixed', 
    'sku' => $UniqueID, 
); 

foreach($options as $ParentID => $option) { 
    $id = Mage::getModel('catalog/product')->getIdBySku($ParentID); 
    $product = Mage::getModel('catalog/product')->load($id); 

    if(!$product->getOptionsReadonly()) { 
     $product->setProductOptions(array($option)); 
     $product->setCanSaveCustomOptions(true); 
     $product->save(); 
    } 
} 

彼らは$ ParentID_ $一意IDの形式で特定の製品を注文するときMagentoのは、SKUを生成するので、これは、偉大なうまくいく、と私は注文のベンダーにオフ$一意IDを送信することができます。

だからもう一度、私はすべてのオプションには、既に作成したカスタムオプションに

+1

「既に作成されたカスタムオプションにオプション値を追加する方法」が意味するものは明確ではありません。例えば。ラジオタイプのカスタムオプション 'タイプの選択'を持つ製品があります。このオプションに新しいラジオ入力を追加したいのですか? –

+0

それは一般的な意味ですが、それは少し不明です。 –

+0

はい、申し訳ありませんが、可能な限り明確にしようとしました。だから私はカスタムオプションを既に持っている製品を持っています、よく、そのオプションにラジオボタンを追加します。 –

答えて

1

負荷をオプション値を追加し、そのIDを取得するためにユニークで、すでに既存のオプションを持つ配列マップを作成する方法の提案に開いています - あなたが必要とするものを書いてください。

+0

あなたはそれを言い換えることができますか? –

+0

まず、magentoで定義されているすべてのオプションのコレクションを取得してから、それをあなたのカスタムオプションと比較して、既にmagentoになっているかどうかを調べ、既存のID –

関連する問題