如何在Drupal 8商务中以编程方式创建产品



我正在使用当前commerce 2.x.d dev进行在线商店开发。这是我使用Commerce 2的第一个项目。

当我开始做产品导入时,我发现Feeds模块不稳定,于是我决定为数据导入编写自定义解决方案(批量/队列API数据从CSV/XML源导入)

所以,此刻我找不到任何关于通过代码创建正确产品实体的信息。我探索了Drupal Commerce文档部分:http://docs.drupalcommerce.org/v2/product/products.html,但它只包含手动产品管理的UI说明。

我认为从产品/订单实体的代码中工作的简短指导将对开发人员非常有帮助,特别是对于那些开始使用商业2并具有7经验的开发人员。x商务。

要以编程方式创建具有3个产品变体的产品,请在自定义模块中使用以下代码:

use Drupalcommerce_productEntityProductVariation;
use Drupalcommerce_productEntityProduct;
use Drupalcommerce_pricePrice;
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();
}
我希望它能回答你的问题。

您需要阅读此文档(创建产品)并按照相同的方法进行操作。

$variation_blue_large = Drupalcommerce_productEntityProductVariation::create([ 
  'type' => 'my_custom_variation_type',
  'sku' => '001',
  'price' => new Drupalcommerce_pricePrice('10.00', 'USD'),
  'attribute_color' => $blue,
  'attribute_size' => $large,
])->save();
$variations = [
  $variation_blue_large,
];
$product = Drupalcommerce_productEntityProduct::create([
  'uid' => 1,
  'type' => 'my_custom_product_type',
  'title' => 'My Custom Product',
  'stores' => [$store],
  'variations' => $variations,
]);
$product->save();

**加载多pal变化产品**

use Drupalcommerce_productEntityProductVariation;
use Drupalcommerce_productEntityProduct;
use Drupalcommerce_pricePrice;
// 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();

相关内容

  • 没有找到相关文章

最新更新