Ubercart:以编程方式使用产品创建订单Drupal 8

时间:2017-04-18 07:13:11

标签: drupal drupal-8 ubercart

如何在自定义表单中创建产品订单? 这是我的代码:

$order = Order::create(array(
  'uid' => $uid,
  'order_status' => uc_order_state_default('post_checkout'),
));
$order->save();
uc_order_comment_save($order->id(), $this->currentUser()->id(), $this->t('Order created by the administration.'), 'admin');
$product = \Drupal\node\Entity\Node::load($nid);
uc_order_product_save($order->id(), $product);

订单已保存....但我的订单中没有相关产品。请帮忙!

我使用drupal 8.3和Ubercart 8.x-4.0-alpha5

1 个答案:

答案 0 :(得分:1)

我也不知道你的代码无法正常工作的原因......
但我找到了一个解决方案,将产品与订单ID相关联。

尝试使用此代码将产品分配给订单ID。

$product = Drupal::entityTypeManager()->getStorage('uc_order_product')->create(array(
'qty' => 1,
'order_id' => $order->id(),
'nid' => $nid,
));

$product->save();