2012-01-09 13 views
1

コースと呼ばれる高度な製品オプションが用意されています。これには、製品を注文する際にユーザーが情報を入力したいすべてのフィールドが含まれています。 {Magento}コードで各製品に設定する詳細オプションが作成されました

私たちは、この短縮されたコードを使用して私たちの店に私達のコースをインポート外部プロセスがあります:(。$データ挿入するコース情報が含まれている) を

$sku = $data['EventCode']; 
$productId = Mage::getModel('catalog/product')->getIdBySku($sku); 
if(!$productId) { 
    $product = Mage::getModel('catalog/product'); 
    $product->setWebsiteIds(array(1)); 
    $product->setData('entity_type_id', '10'); 
    $product->setData('attribute_set_id', 4); 
    $product->setData('type_id', 'virtual'); 
    $product->setData('created_at', strtotime('now')); 
    $product->setData('updated_at', strtotime('now')); 
    $product->setTaxClassId(1); 
    $product->setStatus(1); 
    $product->setData('manage_stock', 1); 
    $product->setData('visibility', 1); 
    $product->setData('has_options', 0); // If this product has options, set to 1 
    $product->setStockData(array('is_in_stock' => 1)); 
} else { 
    // Product was found, so load it so it can be updated. 
    $product = Mage::getModel('catalog/product')->load($productId); 
} // if(!$productId) 
$ename = "Unknown course name"; 
$product->setName($ename); 
$product->setPrice($data['Price']); 
$product->setDescription('Course Item'); 
$product->setShortDescription('Course Item'); 
$product->setData('is_online_course', ($data['LocState'] == 'OL' ? 1 : 0)); 
$product->setSku($sku); 
$cat_id[] = 9; 
$product->setData('category_ids', $cat_id); 
$product->save(); 

がどのように使用するように各製品を設定します高度なオプション上記のコースのコース? 注:コースのすべてのオプションが必要です。

+0

とする。 「コース」という名前の「属性」セットを作成しましたか?次に、 "コース"属性セットの下に新しい属性が挿入されました。 –

+0

カタログ - >高度な製品オプション - >オプションの追加。それがコースオプショングループを追加した場所です。それに12のオプションを追加しました。 Magentoの用語は私が慣れていたものと少し異なります。 – MB34

+0

私はコミュニティ版のメニューに言及していない、または拡張機能を使用しているEnterprise Editionを使用していると思います。 –

答えて

0

製品の属性APIを使用できます。

<?php 
    $proxy = new SoapClient('http://domain/api/soap/?wsdl'); 
    $sesId = $proxy->login('apiUser', 'apiKey'); 
    $attributeSet = $proxy->call($sessId, 'product_attribute_set.list'); 
    $attributeOptions = $proxy->call($sessId, 'product_attribute.options', array('attribute_id'=>'PRODUCT_ATTRIBUTE_INT_ID')); 
    // change PRODUCT_ATTRIBUTE_INT_ID with your attribute id 

?> 
+0

これらのオプションはcatalog_product_option、catalog_product_option_price、catalog_product_option_title catalog_product_option_type_price、catalog_product_option_type_title、catalog_product_option_type_valueというテーブルに格納されているため、同じことではないと思います – MB34

+0

MageWorxのサポートシステムにチケットを投稿しました。私は彼らの返信を投稿します。 – MB34

+0

投稿された内容は次のとおりです。保存後に次のコードを追加してください: $ productId = $ product-> getId(); $ groupData = Mage :: getSingleton( 'customoptions/group') - > load($ groupId); $ optionsHash = unserialize($ groupData-> getData( 'hash_options')); $ optionsHash、array()、array($ productId)、$ groupData、1、false、 'product'); Mage :: getModel( 'customoptions/product_option') - > saveProductOptions $ groupId - テンプレートグループのID。 $ productId - 製品のID。 $ optionsHash - 製品に適用されるべきオプションを持つ配列。 – MB34

関連する問題