将Drupal Commerce订单项添加到模块中的订单

时间:2011-11-03 12:05:10

标签: drupal e-commerce drupal-7 drupal-modules

我正在尝试为Drupal商务创建礼品包装模块。我创建了一个结帐窗格,其中有一个选择框供用户选择是否要包装订单礼品(以及一个字段来选择配置表单上的礼品包装价格)。我还创建了一个giftwrap订单项类型。在窗格的base_checkout_form_submit()函数中,我想创建一个礼品包装行项目,该项目与产品一起添加到订单中。这是我到目前为止所得到的:

/**
 * Implements base_checkout_form_submit()
 */
function commerce_giftwrap_pane_checkout_form_submit($form, &$form_state, $checkout_pane, $order) {

  $default_currency_code = commerce_default_currency();
  if ($balance = commerce_payment_order_balance($order)) {
    $default_currency_code = $balance['currency_code'];
  }

  // Create the new line item.
  $line_item = commerce_line_item_new('giftwrap', $order->order_id);

  $line_item->line_item_label = 'Gift Wrapping';
  $line_item->quantity = 1;
  $line_item->commerce_unit_price['amount'] = variable_get('commerce_giftwrap_price', '2.00');
  $line_item->commerce_unit_price['currency_code'] = $default_currency_code;

  commerce_line_item_save($line_item);  
}

我还没有将它包装在if语句中,我想先让它工作。此代码在数据库中创建一个订单项,但不会在结帐审核页面上将订单项添加到购物车内容视图。我已更改购物车视图以包含产品系列商品和我新创建的礼品包装订单项。

对此的任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:0)

我不确定这是否有帮助,但您可以尝试实施:hook_commerce_line_item_type_info()

答案 1 :(得分:0)

我已经解决了这个问题并将模块上传为sandbox project on drupal