2017-05-11 10 views
0

기존 주문을 복사해야하는 스크립트를 만들고 있습니다.Prestashop 1.6.1을 사용하여 기존 주문 (코어, PHP)을 복사하는 방법

$order = new Order($_GET["id_order"]); 
$order->add(); 

을하지만 순서대로 상품이 없습니다 -이 함께 노력 : 이 코드로, 전체 순서를 만들 수 있습니다

$order_detail = new OrderDetail($_GET["id_order"]); 
$order_detail->add(); 

내가 잘못하고 오전, 어떻게 복사 할 수있는 기존 주문?

답변

0

ObjectModel 클래스의 duplicateObject() 메소드를 사용하여 주문을 복제 할 수 있습니다.

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(); 
    } 
} 
+0

감사 :

여기에 트릭을 수행해야하는 기능입니다! 매력처럼 작동합니다! –