Можно в javascript прописать выбор первой комплектации которая есть в наличии. Пример:
----
//Устанавливаем текущую комплектацию
var photoEx = new RegExp('#(\\d+)');
var res = photoEx.exec(location.hash);
res = (res != null) ? res[1] : 0;
----

Поменять на
-----
//Устанавливаем текущую комплектацию
var photoEx = new RegExp('#(\\d+)');
var res = photoEx.exec(location.hash);
res = (res != null) ? res[1] : 0;



//Если мы открываем первый раз страницу с не установленным хэшем, то выберем первую доступную комплектацию
if (photoEx.exec(location.hash) == null){
//Для обычных комплектаций
//Выберем первую доступную комплектацию в списке
if ($('select[name="offer"] option:not(:disabled)', context).length>0){
res = $('select[name="offer"] option:not(:disabled)', context).val();
}

//Если радио кнопкой
if ($('input[name="offer"][type="radio"]:not(:disabled):first', context).length>0){
res = $('input[name="offer"][type="radio"]:not(:disabled):first', context).val();
}

//Для многомерных
if ($('.hidden_offers',context).length>0){
res = $('.hidden_offers[data-has="1"]:first',context).val();
}
}
-----

А в коде шаблона у всех input с комплектациями проверте наличие и если нет, то проставьте им атрибут disabled
Например:
-----
<input type="hidden" {if $offer.num<=0}disabled{/if}/>
----

Все это уже реализовывалось под нужды клиента. Хотелок очень много, универсально не получилось сделать

128

(9 ответов, оставленных в Вопросы по работе с системой)

 /**
     * Возвращает цену товара
     *
     * @param int|string $cost_id - id или Название цены. Если null, то текущая цена у пользователя.
     * @param integer $offer - комплектация
     * @param bool $format - форматировать цену
     * @param bool $inBaseCurrency - возвращать стоимость в базовой валюте
     * @return mixed
     * @throws DbException
     * @throws EventException
     * @throws OrmException
     * @throws RSException
     */
    function getCost($cost_id = null, $offer = null, $format = true, $inBaseCurrency = false)
{$product->getCost(null,null,false)}

129

(5 ответов, оставленных в Вопросы по работе с системой)

Здравствуйте! На сколько я помню, акционные цены фиксируются при проведении специального документа.
Значит, при выгрузке проверять наличие товара в этом документе. Если он есть, то цена "Старая цена" должна быть заполнена ценой товара до применения скидок.

Да это нереально быстро сделать. В классической сетка grid960, а в современной Bootstrap 3. Стили координально отличаются.

Чтобы включить поддержку Эмодзи, надо подключение сменить с utf8 на utf8m4:

  self::sqlExec("SET names utf8mb4");

и поля метаданных сконвертировать из utf8 в utf8m4.

Здравствуйте! Поясните, пожалуйста, как возможно изменить данные в при импорте csv. Необходимо при импорте строки менять формат даты.

  $this->bind('csv.afterlineimport.extcsv-product');
    }
    public static function csvAfterLineImportExtcsvProduct($params)
    {
        $schema = $params['schema'];
        ....
    }

А дальше? Интересует доступ к полю dateof.

Так это была категория с подбором товаров)

Здравствуйте! Да, так можно. Формируете свою ссылку и все

135

(2 ответов, оставленных в Вопросы по работе с системой)

Если про товары, то maindir поле

https://readyscript.ru/dev-manual/dev_hooks.html
и как раз для вас почти 1 в 1 пример обработчика в файле \modules\catalog\config\handlers.inc.php

 /**
    * Функция срабытывает перед сохранением пользователя
    * Сериализует массив c ценами сайтов для поля cost_id
    * 
    * @param array $user_array - массив с параметра
    */
    public static function ormBeforeWriteUsersUser($user_array)
    {
       $flag = $user_array['flag'];
      
       /**
       * @var \Users\Model\Orm\User
       */ 
       $user = $user_array['orm'];
       
       if ($user->isModified('user_cost')) {
          $user['cost_id'] = serialize($user['user_cost']);
       }
    }

Комплектации у товара есть всегда. Минимум одна

138

(5 ответов, оставленных в Вопросы по работе с системой)

Пожалуйста. Да, допил 1с нужен.

Здравствуйте! Перехватить запись объекта ORM User и изменить поле цены по-умолчанию, если тип клиента - юрлицо

Остаток у товара какой? Во всех комплектациях

141

(5 ответов, оставленных в Вопросы по работе с системой)

Надо сделать 1 тип цены - Розница. В нее будут выгружаться все текущие цены, включая акционные.
А вот во 2 тип цены "Старая цена" выгружайте цену без скидки.
То есть чуть другая логика должна быть.

А где лежит данный скрипт?

Может есть товары с одинаковыми картинками?

Можете скинуть ссылку на файл? На облако какое-нибудь

Используйте метод золотого сечения или деления пополам для решения проблемы. Разделите файлы по каталогам и выгрузите отдельно. Разделение импорта и в дальнейшем позволит сэкономить на хостинге.
Или Ваш поставщик 1 огромный файл присылает?

146

(7 ответов, оставленных в Вопросы по работе с системой)

Из за кеша может быть?

Там проблема в кодировке таблиц. Надо UTF8MB4. Пробовал перевести, просто стали ? проставляться, видимо где то еще надо пилить.

Из-за ТЗ СЕошника клиента. Оказывается, что сейчас это модно) Погуглил, действительно, активно пользуется народ.
Вот статья на хабре:
https://habr.com/ru/post/352908/

Здравствуйте! Каким образом использовать эмодзи в meta тегах сайта? Кодировка видимо не та, они фильтруются

150

(7 ответов, оставленных в Вопросы по работе с системой)

Модуль вставки баннера нормально же вывести картинку должен?