首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用Prestashop 1.6.1复制现有订单(core,php)

如何使用Prestashop 1.6.1复制现有订单(core,php)
EN

Stack Overflow用户
提问于 2017-05-11 11:51:17
回答 1查看 271关注 0票数 0

我正在制作一个脚本,它应该是现有订单的副本。我可以使用以下代码创建总体顺序:

代码语言:javascript
复制
$order = new Order($_GET["id_order"]);
$order->add();

但订单上没有产品-我试过这样做:

代码语言:javascript
复制
$order_detail = new OrderDetail($_GET["id_order"]);
$order_detail->add();

我做错了什么,如何复制现有的订单?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-06-01 07:09:55

您可以使用duplicateObject()方法从ObjectModel类复制订单。

这里有一个函数应该能做到这一点:

代码语言:javascript
复制
function duplicateOrder($id_order)
{
    $order = new Order($id_order);
    $duplicatedOrder = $order->duplicateObject();

    $orderDetailList = $order->getOrderDetailList();
    foreach ($orderDetailList as $detail) {
        $orderDetail = new orderDetail($detail['id_order_detail']);
        $duplicatedOrderDetail = $orderDetail->duplicateObject();
        $duplicatedOrderDetail->id_order = $duplicatedOrder->id;
        $duplicatedOrderDetail->save();
    }

    $orderHistoryList = $order->getHistory(Configuration::get('PS_LANG_DEFAULT'));
    foreach ($orderHistoryList as $history) {
        $orderHistory = new OrderHistory($history['id_order']);
        $duplicatedOrderHistory = $orderHistory->duplicateObject();
        $duplicatedOrderHistory->id_order = $duplicatedOrder->id;
        $duplicatedOrderHistory->save();
    }
}
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43914640

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档