Вопросы по разработке и модификации CS-Cart

Спасибо, помогло.
Можно еще вопрос. Модуль поставщики. Есть 2 поставщика. Один создан вручную (через админ панель), второй создан программно:

fn_update_supplier(0, $supplier_data);

Если runtime.company_id = 1, то к первому поставщику такой запрос отработает. А к тому, что создан программно - нет.

db_get_field("SELECT ?:suppliers.name FROM ?:suppliers WHERE ?:suppliers.supplier_id = ?i", $supplier_id);

Чтобы запрос отработал, нужно установить runtime.company_id = 0, а такой возможности нет.

  • записи в базе выглядят идентично
  • создать поставщика, предварительно установив runtime.company_id = 1 пробовал. не помогает.

Видимо у company_id = 1 нет прав чтобы извлечь вторую запись. Подскажите пожалуйста как лечить. Спасибо.

В Вашем примере запроса вроде нет условия company_id.
Как вариант, создать свой запрос и взять из БД те данные, которые требуются.

Имеется ввиду до выполнения запроса задать runtime.company_id
Вот так запрос работает

Registry::set('runtime.company_id', 0);
db_get_field("SELECT ?:suppliers.name FROM ?:suppliers WHERE ?:suppliers.supplier_id = ?i", $supplier_id);

Даже лучше пример есть - к созданной в phpMyAdmin записи тоже не получается достучаться, пока перед запросом company_id не установлю в 0.

А если запросить через функцию.
fn_get_supplier_data($supplier_id);

И уже из полученных данных взять name.

Странно, что при запросе у бд влияет company_id :slight_smile: не сталкивались с таким

оказалось в таблице ult_objects_sharing нет моих записей

Не подскажите, как привести главное меню к нормальному виду? Этот вопрос уже поднимался на форуме, может быть есть и ответ? Пока меню состоит из двух уровней список второго уровня выпадает в виде вертикального столбца, но стоит добавить третий уровень сразу все портится, список выпадает в виде строки, под которой образуется еще одна строка третьего уровня, а под этой строкой снова строка второго уровня, если в одну строку все не поместилось.

1 лайк

Тоже очень жду ответа на свой вопрос, присоединяюсь

Так там ответили, что в коробе этого не предусмотрено. Варианта два - купить сторонний модуль или перелопачивать меню. Первое дешевле и быстрее, второе - затратнее

Сам шаблон меню можете найти тут

design/themes/ТЕМА/templates/blocks/topmenu_dropdown.tpl

Всем доброго вечера!
Такой вопрос. Пишу небольшое дополнение расширяющее импорт товаров. В настройки импорта добавляю checkbox:

$schema['options']['some_id'] = array(
        'title' => 'some_text',
        'description' => 'some_text',
        'type' => 'checkbox',
        'import_only' => true,
        'position' => 800,
    );

Поле появляется в настройках импорта во вкладке Файл->Дополнительные настройки. А мне нужно чтобы эта настройка была во вкладке Настройки->Общие настройки

В общем как поместить сюда новую опцию?

Заранее Огромное Спасибо! )

попробуйте добавить

'section' => 'general',

Неа, не помогло ).
В файле app/schemas/exim/products.php

Есть опция:
‘reset_inventory’ => array(
‘title’ => ‘reset_quantity_to_zero’,
‘description’ => ‘reset_quantity_to_zero_tooltip’,
‘type’ => ‘checkbox’,
‘import_only’ => true,
‘position’ => 800,
),

И она стоит как раз в нужном мне месте ). В шаблонах нигде не может быть это прописано?

В шаблоне идет разделение по ключу section. Надо разбираться, откуда он берется

В products.php в массиве $schema есть ключ ‘section’;

Но он имеет значение
'section' => 'products',

Видимо именно по ключу ‘reset_inventory’ он ставится в нужное место, потому что если изменить ключ, он переместится в первую секцию. У кого-нибудь есть возможность найти в коде где встречается ‘reset_inventory’? Может так удастся выявить место )

Вот тут посмотрите, как tab задается через схему
app/addons/advanced_import/schemas/exim/products.post.php

В точку! Огромное спасибо, помогло

$schema['options']['some_option']['tab'] = 'settings';
1 лайк

Как найти где лежит объявление функции fn_get_company_id_by_name? Кто знает, дайте наводочку, пожалуйста. И нет ли какой-нибудь аналогичной функции для определения id поставщика по названию, или дергать запросом из базы?

по этому вопросу отыскал ). Лежит в файле /app/functions/fn.companies.php

Второй вопрос актуален. Есть ли какая-нибудь функция, чтобы получить ID поставщика по его названию?

1 лайк

Нашел ))
$supplier_id = db_get_field(“SELECT supplier_id FROM ?:suppliers WHERE name = ?s”, $supplier_name);

1 лайк

Добрый день! Подскажите где можно прочитать про http://converter.cart-services.com/
Какие на вход параметры, какая должна быть страница отсылаемая ну и т.д.