控制器中创建订单的位置在哪里?

时间:2017-09-06 14:03:40

标签: prestashop prestashop-1.6

我正在进行prestashop修改,我需要在创建prestashop订单时在其他平台上创建订单。前一个程序员将​​代码放在“controllers / front / OrderConfirmationController.php”控制器的方法“initContent”上。问题在于这一点允许重复订单和其他衍生问题。我认为这可能是一个更好的地方。

我会问哪个地方放置代码的地方更好。

1 个答案:

答案 0 :(得分:1)

如果您想在其他平台上创建订单,而不是取决于当前的订单状态,您可以覆盖PaymentModule :: validateOrder。

abstract class PaymentModule extends PaymentModuleCore
{
     public function validateOrder($id_cart, $id_order_state, $amount_paid, $payment_method = 'Unknown',
         $message = null, $extra_vars = array(), $currency_special = null, $dont_touch_amount = false,
         $secure_key = false, Shop $shop = null)
     {
          parent::validateOrder($id_cart, $id_order_state, $amount_paid, $payment_method, $message, $extra_vars, $currency_special, $dont_touch_amount = false, $secure_key, $shop);
          // use $this->currentOrder to get current id_order and create order on the other platform
     }
}