簡體   English   中英

如何以編程方式創建具有價格的Drupal Commerce產品

[英]How to programmatically create a Drupal Commerce product with price

我正在使用以下代碼在代碼中創建Drupal Commerce產品:

$cp = commerce_product_new('product');
$cp->is_new = TRUE;
$cp->revision_id = NULL;
$cp->uid = 1;
$cp->status = 1;
$cp->created = $cp->changed = time();
$cp->sku = $product[sku];
$cp->title = $product[name];
$cp->language = LANGUAGE_NONE;
$cp->commerce_price->amount = $product[sale_price] ? $product[sale_price] : $product[retail_price];
$cp->commerce_price->currency_code = 'USD';
commerce_product_save($cp);

如果我注釋掉與價格有關的兩行,則會添加該產品,但沒有價格。

如果我不注釋掉這兩行,則會出現500錯誤

如果我將定價部分更改為:

$cp->commerce_price = array(
  'amount' => $product[sale_price] ? $product[sale_price] : $product[retail_price],
  'currency_code' => 'USD',
);

我沒有得到500,但是我得到了消息

Warning: Invalid argument supplied for foreach() in _commerce_price_field_serialize_data() (line 148 of commerce/modules/price/commerce_price.module).

對於每個要添加的產品,結果是要添加並可用的產品,但field_data_commerce_price表中沒有任何價格信息。

事實證明它必須是:

$cp->commerce_price = array(LANGUAGE_NONE => array( 0 => array(
 'amount' => $product[sale_price] ? $product[sale_price] : $product[retail_price],
 'currency_code' => 'USD',
)));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM