Php &引用;物业订单->;id“客户为空”;Prestashop 1.6错误

Php &引用;物业订单->;id“客户为空”;Prestashop 1.6错误,php,python,selenium-chromedriver,prestashop-1.6,Php,Python,Selenium Chromedriver,Prestashop 1.6,只有在通过Selenium chromedriver输入和提交订单时,才会出现此错误“属性订单->id\u客户为空”。我正在运行PrestaShop 1.6,当我手动输入相同的订单详细信息时,不会出现此错误 我认为这与实际的selenium脚本无关,但可能与webdriver有关;我认为这可能是因为cookie中缺少数据或没有实际选择字段,但当我检查表单提交中的数据包时,与手动输入相比,没有任何内容丢失 我还清空了prestashop缓存,并从chrome中删除了所有浏览器数据,以防这是由于缓存

只有在通过Selenium chromedriver输入和提交订单时,才会出现此错误“属性订单->id\u客户为空”。我正在运行PrestaShop 1.6,当我手动输入相同的订单详细信息时,不会出现此错误

我认为这与实际的selenium脚本无关,但可能与webdriver有关;我认为这可能是因为cookie中缺少数据或没有实际选择字段,但当我检查表单提交中的数据包时,与手动输入相比,没有任何内容丢失

我还清空了prestashop缓存,并从chrome中删除了所有浏览器数据,以防这是由于缓存数据造成的,但没有这样的运气

我确实覆盖了与订单提交相关的多个文件,以满足一些项目需求,特别是PaymentModule、order和AdminOrdersController,但我不知道如果手动输入正常,这会是什么问题。我一直在调试,因为我一直在掌握的想法,所以如果它实际上是由于我的覆盖,我一直试图调试其中的变量,但不断遇到问题;我实际上无法输出变量,我试着查看PrestaShop日志(Dev_模式处于启用状态)、回显、var_转储、使用PrestaShop的p()并保存到文件,但没有数据出来

我确实可以使用直接解决方案,但我至少需要一些新的调试思路

编辑:这里是被覆盖的文件

PaymentModules.php:

        $order_list = array();
        $order_detail_list = array();
        do {
            //changed from generateReference() 
            $reference = Order::generateReferenceOrderID($extra_vars[0]);

        } while (Order::getByReference($reference)->count());

        $this->currentOrderReference = $reference;
Order.php:

Class Order extends OrderCore
{
 //needed to abide by project requirements prefix system.
    public static function generateReference(){
        $id_shop = Context::getContext()->shop->id;

        $ref_store = "ABCD";
        if($id_shop == 1){
            $ref_store = "TCPR";
        }
        else if ($id_shop == 2){
            $ref_store = "LOER";
        }
        else if ($id_shop == 3){
            $ref_store = "TCPW";
        }

        $AUTO_INCREMENT = Db::getInstance()->getValue("
        SELECT `AUTO_INCREMENT`
        FROM  INFORMATION_SCHEMA.TABLES
        WHERE TABLE_SCHEMA = 'ts'
        AND   TABLE_NAME   = 'orders'");

        $last_id = Db::getInstance()->getValue("
        SELECT MAX(id_order)
        FROM '._DB_PREFIX_.'orders");


        if($last_id < $AUTO_INCREMENT){
            $last_id = $AUTO_INCREMENT - 1;
        }

        $result = $ref_store . str_pad((int)$last_id + 1, 5, '00000', STR_PAD_LEFT);

        return $result;

    }

    public static function generateReferenceOrderID($order_id){

        $ref_store = "SQSP";

        $result = $ref_store . str_pad((int)$order_id, 5, '00000', STR_PAD_LEFT);

        return $result;

    }

}

在提交订单时发布覆盖的相关代码。此外,为了在这些情况下进行调试,我使用了类似于file\u put\u contents('filelog.log',print\r($var\u to\u debug,true)。PHP\u EOL,file\u APPEND)的东西;覆盖已发布。我将尝试您的调试方法。
$employee = new Employee((int)Context::getContext()->cookie->id_employee);
//passing order message into extra_vars for use in PaymentModule
$payment_module->validateOrder(
        (int)$cart->id, (int)$id_order_state,
        $cart->getOrderTotal(true, Cart::BOTH), 
        $payment_module->displayName, 
        $this->l('Manual order -- Employee:').' '.
     substr($employee->firstname, 0, 1).'. '.$employee->lastname, 
        array(Tools::getValue('order_message')), null, false,
        $cart->secure_key);