Igor Ivanov

Igor Ivanov

Был в сети 04 августа 2024, 19:43
Заказы принимаю
Короче, для тех, кто столкнется с такой же проблемой при большом количестве TV: есть еще одна засада, msImportExport не может экспортировать сразу все TV, если их больше 61, ошибка в логе "\core\components\pdotools\model\pdotools\pdofetch.class.php: 170) [pdoTools] Error HY000: Too many tables; MySQL can only use 61 tables in a join" т.е. он упирается в ограничение MySQL на количество джоинов. Но есть выход! Catalogfill отлично справляется с экспортом/импортом TV в товары minishop2, если добавить в конфигурацию в значения по умолчанию 'class_key' => 'msProduct', импортирует хоть по одной TV, хоть все 350, ничего не затирая, и экспортирует все 350 TV без проблем. Так что обновление цен через msImportExport, обновление TV через Catalogfill.
Недавно решал подобную задачу, msProducts или pdoResources тут не помогут, как верно написал Иван Климчук, они могут искать только по заполненным значениям TV, это даже подчеркнуто в документации. Помог getResources, в его вызове надо использовать параметр &tvFilters=`price===||price===0` — это для случая, когда цена хранится в TV поле.
Было бы просто чудесно, если уж слабо решить проблему, хотя бы предупреждать покупателей о данной особенности.
Извини, психанул слегонца, потерять значения 350 характеристик — это только для крепких духом ) Хорошо, что есть бекапы. К сожалению, в моем случае (350 характеристик и 443 категории) использовать опции тоже не вариант, одно дело 3 шаблона товаров, другое дело 443 категории. Контент-менеджеры меня прибьют просто.
@Prihod Скажи, а возможно ли сделать так, что бы при импорте данные по tv дополнялись списком текущих значений tv, присутсвующих у товара? Т.е. сначала получать все tv товара, потом обновлять их значения данными из файла импорта, или дополнять данные для импорта значениями недостающих полей, и только потом уже импортировать полный список tv в minishop2? Это решило бы проблему.
С двумя tv это выход, с 350-ю надо очень хорошо подумать, что бы решится на такое. К тому же опции нельзя назначать на категории верхнего уровня, что бы они стали доступны у товаров в подкатегориях. Если сейчас tv назначаются 3-м шаблонам, то опции придется раскидывать между 443-мя категориями. И переобучать контент-менеджеров администрированию всего этого.
Вчера на сайте, у товаров которого примерно 350 характеристик, сделаных через TV, при обновлении значения одной из TV через импорт с помощью msImportExport, значения всех остальных TV затерлись, стали пустыми. Говорят, что это такая фича стандартного процессора MODX, отвечающего за обновление TV, и нет никакой возможности это обойти. Было бы просто чудесно, если уж слабо решить проблему, хотя бы предупреждать покупателей о данной особенности. Пусть это и не проблема самого msImportExport, но наступают-то на эти грабли в том числе и при его использовании, поэтому, мне кажется, есть смысл попросить уважаемого Prihod-а отразить данный момент в документации к msImportExport. А то сейчас там написано, что импорт TV возможен, но не подчеркнуто, что надо импортировать обязательно весь набор TV, если не хотите потерять значения остальных полей, отсутствующих в файле с данными для импорта.
Ха, 30 tv, фигня. Вот мне достался сайт с 350 tv, и вчера наступил на те же грабли. При обновлении с помощью msImportExport значения одной tv, остальные затерлись до дыр, стали пустыми. Судя по ответу автора msImportExport на обращение через личный кабинет Modstore.pro, решения до сих пор не найдено. Очень жаль, это серьезный недостаток в функционале любимой MODX.
Добрый день! Не получается импортировать в определенную подкатегорию. Структура такая: корневой каталог «Каталог», в нем есть категория «Увлажнители», в ней категория «Ультразвуковые», в ней категория «Electrolux». Но название категории «Electrolux» не является уникальным, есть категории с тем же названием в других разделах «Каталога». Как мне импортировать товар именно в Увлажнители->Ультразвуковые->Electrolux? В поле parent прописать Увлажнители|Ультразвуковые|Electrolux или Каталог|Увлажнители|Ультразвуковые|Electrolux? Пробовал и так и так, но, почему-то закидывает в Electrolux, который совсем в другой категории, это вообще возможно, импортировать в определенную подкатегорию, если есть еще другие подкатегории с таким же названием?
Обновился, перестали работать настройки AdminTools для конкретного пользователя. Даже название темы не сохраняется. Прописываю тему, сохраняю, обновляю страницу, вижу, что прописана опять тема из общих системных настроек. И «Скрывать описание компонентов», заданное в настройках пользователя, не работает. Если включить это в системных настройках, то все нормально. Кстати, когда создаешь дубль настройки у пользователя, то слетает ее название и описание, в том числе и в системных настройках.
Параметр locale в настройках языка прописан? Вот здесь Не работает редактирование файлов в админке (PHP7) описано решение для отказа открывать файл на редактирование, но я там забыл упомянуть, что параллельно с той проблемой еще также не загружался список пакетов поставщика, при открытии менеджера пакетов. Правда никакой ошибки не появлялось, просто висел бесконечный Load… Прописав english в locale одновременно решился вопрос с редактированием файлов и загрузкой менеджера пакетов.
Решил! Проблема была в том, что $this->fileRecord получает свойства файла, который хотим редактировать, в том числе его атрибуты, и вот там в дате создания и в дате редактирования приходило названия месяца на русском в кодировке windows-1251, т.е. кракозябры вместо нормальной строки, хотя везде, где только можно, в системе указано utf-8. Это ломало $this->modx->toJSON. Решилось указанием локали в настройках MODX. Раздел core->Словарь и язык параметр locale пишем english. Не совсем понятно, почему работает без указания локали на php 5.4 и 5.3, а начиная с php 5.5 и выше, не хочет.
Это потому что изначально порочна сама идея привязывать расчет к названию населенного пункта. Надо отталкиваться от индекса, т.е. Клиент вводит индекс, и этого достаточно для расчета, а поле с названием города он либо сам заполняет как хочет, либо автоматом по индексу определять и подставлять.