2016-10-05 10 views
3

オンラインストア開発用に現在のCommerce 2.x.devを使用しています。 Commerce 2の私にとって初めてのプロジェクトです。Drupal 8 Commerceでプログラムでプログラムを作成する方法

プロダクトのインポートを開始したとき、Feedsモジュールが安定していないことがわかりました。データインポート用のカスタムソリューション(CSV/XMLソースからのバッチ/キューAPIデータのインポート)を作成することにしました。

この時点で、私は正しい製品エンティティの作成に関する情報をコードで見つけることができません。 Drupal Commerceドキュメンテーションのセクション:http://docs.drupalcommerce.org/v2/product/products.htmlを調べましたが、マニュアルによる製品管理のためのUI手順のみが含まれています。

私は、製品/注文エンティティのコードから作業するための短い指示は、開発者、特に商取引2で作業を開始し、7.x商取引での経験がある開発者にとって非常に役立つと思います。

答えて

6

カスタムモジュールに次のコードを使用し、3つの製品バリエーションで、プログラム製品を作成するには:

use Drupal\commerce_product\Entity\ProductVariation; 
use Drupal\commerce_product\Entity\Product; 
use Drupal\commerce_price\Price; 

function my_module_install() { 

// Create variations 

$variation1 = ProductVariation::create([ 
    'type' => 'default', 
    'sku' => 'var1', 
    'price' => new Price('24.00', 'EUR'), 
]); 
$variation1->save(); 

$variation2 = ProductVariation::create([ 
    'type' => 'default', 
    'sku' => 'var2', 
    'price' => new Price('50.00', 'EUR'), 
]); 
$variation2->save(); 

$variation3 = ProductVariation::create([ 
    'type' => 'default', 
    'sku' => 'var3', 
    'price' => new Price('115.00', 'EUR'), 
]); 
$variation3->save();  

// Create product using variations previously saved 

$product = Product::create([ 
    'type' => 'default', 
    'title' => t('Your Product Name'), 
    'variations' => [$variation1, $variation2, $variation3], 
]); 
$product->save(); 

} 

私はそれがあなたの質問に答えることを願っています。詳細はお気軽に。

敬具

+0

...しかし、どのようにして作成した製品のIDを取得します。 –

+0

これには多くの良い例が含まれています。https://www.drupal.org/node/2811529 drupalcommerce.orgのウェブサイトhttp://docs.drupalcommerce.org/v2/recipes/variationsにコードレシピのセクションがあります。 html – NickOpris

+0

@amolchallawar '$ product-> id();' –

0

**ロード製品マルチPAL変動に取り組ん**

use Drupal\commerce_product\Entity\ProductVariation; 
use Drupal\commerce_product\Entity\Product; 
use Drupal\commerce_price\Price; 

// Load existing variations 

$result = \Drupal::entityQuery('commerce_product_variation') 
      ->condition('type', 'variation_type') 
      ->execute(); 
    $entity_manager = \Drupal::entityManager(); 
     $product_variation = $entity_manager->getStorage('commerce_product_variation')->loadMultiple($result); 


//Add variation to Product 
$product = Product::create([ 
    'type' => 'hakuro_plate', 
    'title' => t('Your Product Name custom New testing'), 
    'variations' =>$product_variation, 
]); 
$product->save(); 
関連する問題