Unknown column 'msProduct.import_pid' in 'where clause' при getObject после расширения модели товара

Доброго времени суток.

После расширения модели товара (по этой документации) при попытке в отдельном php-файле (modx подключен и инициализирован) поиска товара (через getObject) по значению добавленного поля выдаёт Unknown column 'msProduct.special' in 'where clause'. Во все нужные файлы новые поля прописал, в БД их добавил. Подобных тем поиском не нашел. Код привожу ниже.

msproductdata.inc.php
<?php
return array(
    'fields' => array (
        'special' => 0,
        'import_pid' => NULL
    ),
    'fieldMeta' => array (
        'special' =>
            array (
                'dbtype' => 'tinyint',
                'precision' => '1',
                'phptype' => 'boolean',
                'null' => true,
                'default' => 0,
            ),
        'import_pid' =>
            array (
                'dbtype' => 'varchar',
                'precision' => '255',
                'phptype' => 'string',
                'null' => false,
                'default' => "",
            )
    ),
    'indexes' => array(
        'special' =>
            array (
                'alias' => 'special',
                'primary' => false,
                'unique' => false,
                'type' => 'BTREE',
                'columns' =>
                    array (
                        'special' =>
                            array (
                                'length' => '',
                                'collation' => 'A',
                                'null' => false,
                            ),
                    ),
            ),
        'import_pid' =>
            array (
                'alias' => 'import_pid',
                'primary' => false,
                'unique' => false,
                'type' => 'BTREE',
                'columns' =>
                    array (
                        'import_pid' =>
                            array (
                                'length' => '',
                                'collation' => 'A',
                                'null' => false,
                            ),
                    ),
            )
    )
);


Добавление поля import_pid в следующий файл думаю не обязательно (т.к. вывод в админке не нужен), но всё же добавил. Правильно я думаю на счёт «обязательности» или нет?

msproductdata.js
miniShop2.plugin.pluginname = { //pluginname не изменяем.
    getFields: function(config) {
        return {
            special: {
                xtype: 'xcheckbox',
                decimalPrecision: 0,
                description: '<b>[[+special]]</b><br />' + _('ms2_product_special_help')
            },
            import_pid: {
                xtype: 'textfield',
                description: '<b>[[+import_pid]]</b><br />' + _('ms2_product_import_pid_help')
            }
        }
    }
    ,getColumns: function() {
        return {
            special: {width:50, sortable:true, editor: {xtype: 'combo-boolean', renderer: 'boolean'}},
            import_pid: {width:50, sortable:true}
        }
    }
};


Единственная мысль которая осталась, дак это дописать новые поля в схему, но разумеется это бред.

Видимо при запуске моего php-скрипта не подключается плагин который расширяет модель товара. Пробовал проинициализировать minishop в скрипте, но не помогло. Подскажите, пожалуйста, в какую сторону копать дальше?

Добавлено позже: хотя при выводе товара расширенные поля в нём есть.
Евгений
01 августа 2019, 08:26
modx.pro
642
0

Комментарии: 1

Евгений
01 августа 2019, 08:43
0
Всё, пора на пенсию… Нужно было вместо
$msProduct = $modx->getObject('msProduct', ['import_pid' => 1]);
написать
$msProduct = $modx->getObject('msProductData', ['import_pid' => 1]);
.
    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
    1