Добрый день!

Значение тега dimensions формируется из Ширины, Высоты, Глубины, разделенных слешем. Судя по ошибке, раз у вас 2 слеша подряд идут и Яндекс на это ругается, у вас просто не задана(ы) значения габаритов.

Габариты в ReadyScript задаются в характеристиках. Т.е. вы должны создать (в разделе Товары -> Характеристики) 3 строковых характеристики: Ширина, Высота, глубина. Затем задать им значения у товаров или у категорий.

Далее в разделе Веб-сайт -> Настройка модулей -> Каталог товаров -> Вкладка параметры товаров нужно подсказать системе, в каких характеристиках вы храните Ширину, Высоту, Глубину и в каких единицах измерения.

После этого, в экспортный YML-файл корректно уйдут габариты ваших товаров.

В разделе Веб-сайт -> Настройка модулей -> Антивирус -> Вкладка "проактивная защита" вы можете отключить опцию "Автоматически блокировать вредоносные запросы".

Удалить ваш IP-адрес из блокировки вы можете в разделе Управление -> Настройка системы -> Блокировка IP-адресов

У товара в поле Основная категория всегда должна быть указана самая крайняя категория, т.е. по вашей схеме Вложенная категория.

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

{$category3 = $product->getMainDir()}
{$category2 = $category3->getParentDir()}
{$category1 = $category2->getParentDir()}

Ссылка на уровень дерева 3: {$category3->getUrl()}
Ссылка на уровень дерева 2: {$category2->getUrl()}
Ссылка на уровень дерева 1: {$category1->getUrl()}

Уважаемые пользователи, с 29.12.2024 по 08.01.2025 мы будем на новогодних каникулах. С 09.01.2025 работаем в обычном режиме.

Всех с наступающим новым годом, пусть он принесет всем счастья и успехов во всех делах!

Добрый день!

Обмен заказами никак не мешает обмену остатков и цен из коробки.
В ReadyScript блокировка устанавливается на вид операции - sale или catalog.
Вы только не можете параллельно 2 обмена по заказам и 2 обмена по каталогу запускать.

Конечно осуществимо, но нужно будет по программировать немного.
Сверстать внешний вид такой кнопки и вытащить поля товара со страницы, где находится клиент.

Напишите нам в платную поддержку, предложим вариант.

Уточните о каком списке дополнительных полей идет речь?
Поля для формы обратной связи вы можете задать в разделе Разное->Конструктор форм.

Открыли ваш сайт в Safari на iPhone 13 и iPhone 7.
Все картинки отобразились корректно, такого как на вашем скриншоте - не выявляется.

Попробуйте открыть сайт через https, https://stock-baza.ru/
И в разделе Управление -> Сайты в настройках вашего сайта поставить флажок "Перенаправлять на https".

Проверьте, может у вас какой-нибудь VPN фильтрует/ломает трафик.

Сперва нужно определить на всякий случай: экспорт - это выгрузка с сайта.
Есть схема экспорта - экспорт остатков и цен в csv в разделе Товары.

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

Добрый день!

Вам нужно выпустить бесплатный SSL-сертификат на сайте ReadyScript.ru в разделе Личный кабинет -> Мои сайты в облаке -> Ваш магазин -> Управление доменом -> SSL сертификаты -> Создать сертификат LetsEncrypt.

В стандартном случае, когда на сайте работают все свои, полностью независимые системы лояльности,
в 1С просто приходит любая цена заказа и ничего не должно мэтчится в 1С. 1С готов обрабатывать любую цену товара, которую отдает сайт.

----

Другое дело, если у вас в 1С есть кастомы, которые хотят повторить весь путь формирования скидки на товар. Но это как бы полностью кастомная история, нужно либо в 1С логику синхронизировать с сайтом, либо сайт с 1С. (как вариант скидки на сайте делать не в процентах, а точно в рублях, предварительно рассчитав их так, чтобы они отлично ложились на количество товара с учетом всех принципов округления вашей 1С)

Проще всего через CSV это сделать. Выгрузите Колонки идентификации (обычно Артикул + Короткое название товара) и штрихкод.
Подправьте его в Excel и затем загрузите CSV назад в систему.

Попробуйте на одном товару для начала.

Поиск like+ - это тоже всего-лишь расширенный поиск по подстроке, он не опирается на понятие "слово".

Опирается на понятие слово - Полнотекстовый тип поиска. Но его особенность, что словом считается последовательность знаков от 4х символов в mysql по умолчанию. Вероятно этот поиск вам более всего подойдет.

Постраничный вывод тут не причем, у нас он и так везде используется. (Поиск ведется сперва по всему объему данных, поэтому тут нужно ускорять сам процесс поиска)

Mysql имеет очень скромные возможности по скорости поиска, вам нужна внешняя индексационная и поисковая машина, такая как sphinx или elastic или любой другой аналог.

То есть нужно разрабатывать интеграцию, чтобы ReadyScript передавал сведения по товарам для индексации во внешнюю систему, а затем делал запрос во внешнюю систему для получения списка ID товаров по заданному поисковому запросу.

-----

Каких-то простых решений, для ускорения поиска - не существует.

Все фотографии подгружаются всегда к товару.
Далее возможно только установить связь между комплектацией и конкретным фото товара.

--------------

В CSV комплектаций можно использовать колонку Фотографии, в которой нужно указать исходные имена файлов, которые загружались к товару.

Например, если вы загружаете к товару фото:
https://server.ru/images/product1-color1.jpg
https://server.ru/images/product1-color2.jpg
https://server.ru/images/product1-color2-1.jpg
https://server.ru/images/product1-color3.jpg

То в CSV комплектаций вам нужно указать:  product1-color2.jpg,product1-color2-1.jpg в колонке Фотографии у нужной комплектации.

Все экземпляры расчетных классов доставки должны получаться по цепочке из заказа.

Так как в этом случае в них происходит загрузка параметров доставки,
выставленных в админ.панели для конкретной доставки.

Вам нужно немного по другому получить объект класса Cdek2.

$cdek2 = $order->getDelivery()->getTypeObject();
if ($cdek2 instanceof \Shop\Model\DeliveryType\Cdek2) {
    $cdek2->createDeliveryOrder($order);
}

Вы уверены, что у вас в переменной $order - есть объект заказа?
Покажите код вашего обработчика в handlers.

Ярослав, интересен ваш кейс.
Опишите подробнее, как все происходит?
Какой точный сценарий клиента, почему он работает на разных устройствах, в какой последовательности он авторизуется?

Теоретически возможен к реализации еще один сценарий - это полная изоляция устройств, без какой-либо перепривязки товаров после авторизации. Тогда все товары на всех устройствах будут оставаться в том виде, в котором они там были собраны.

Если в логах обмена будет написано, что изменений у товаров не обнаружено, значит вам нужно в настройках модуля Каталог товаров запустить утилиту "Сбросить хэши импорта".

ReadyScript высчитывает хэш от всех данных пришедших от 1С и записывает их в товар.
Если в следующий раз придут данные с точно таким же хэшем, то товар будет пропущен из импорта.
Любое сохранение товара на стороне сайта также вызовет сброс кэша импорта именно у этого товара.

Таким образом достигается ускорение обмена за счет обновления только реально изменившихся товаров.

Когда продумывались наши кейсы учитывалась механика имеющихся у нас видов оформления заказа.
Все очень сильно взаимосвязано.

--

Клиент часто доходит до оформления заказа (что означает, что корзина у него не пустая) неавторизованным и только в процессе оформления заказа авторизуется. Это означает, что авторизация ни в коем случае не должна ничего добавлять в корзину.

Иначе уже при оформлении заказа в случае если используется оформление совмещенное с корзиной, будет изменяться стоимость заказа когда клиент уже этого не ожидает (и клиент этого может не заметить), что может вызвать дичайшее недовольство клиента. (он же не помнит, что позавчера за телефоном какие-то товары тоже откладывал, а покупать то он их и вовсе не собирался, просто сидел в телефоне просматривал).

--

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

Вы можете посмотреть, что происходит в базе в таблице cart и потом сформулировать и реализовать, что вы желаете видеть при логауте. В вашем распоряжении есть поля: session_id, user_id


Стандартная логика ReadyScript по корзине такая:

1. Корзина всегда привязана к guest_id (оно пишется в поле session_id) - это по сути долгосрочный идентификатор браузера клиента (в отличие от сессии живет гораздо дольше).
2. Если клиент авторизуется, с пустой корзиной, то на его guest_id переносятся товары, которые были привязаны к user_id.
3. Если клиент авторизуется с непустой корзиной, то его товары привязываются к user_id, а предыдущие товары для этого user_id удаляются, т.е. происходит замещение корзины авторизованного пользователя.

Пример работы 1:
Клиент собрал, будучи авторизованным, корзину на телефоне. Затем включил компьютер, открыл сайт (корзина пустая), авторизовался, все его товары перешли на компьютер, с телефона пропали.

Пример работы 2:
Клиент собрал, будучи авторизованным, корзину на телефоне. Затем включил компьютер, открыл сайт, будучи неавторизованным собрал какую-то другую корзину на ПК, затем авторизовался.
Система поняла, что клиент собрал новую корзину и уничтожила при авторизации ту, что была связана с его user_id.
И привязала новые товары к его user_id. На телефоне клиент увидит товары с ПК после авторизации на ПК.

----------------

При логауте сейчас ничего не происходит.

Характеристики, добавленные у категории на сайте не должны слетать. Если у вас есть четкий сценарий воспроизведения такого поведения, напишите пожалуйста нам в поддержку, мы попробуем разобраться почему так происходит. Не должно быть так.

Конечно можно мелкой правкой в шаблоне это сделать.
Если разбираетесь в программировании можете сами сделать, если нет, можете обратиться в нашу платную поддержку.