Дополнил свой ответ P.S., там информация об одном подводном камне, который заметил.
Не сработало, Выглядит это так!
Вот сам case
case($value=17c276c8e723eb46aef576537e9d56d0, "Santa Fe",$value!=7f1171a78ce0780a2142a6eb7bc4f3c8, "Matrix",$value!=b4a528955b84f584974e92d025a75d1f, "i30",$value!=795c7a7a5ec6b460ec00c5841019b9e9, "Getz")
На dev.demo у меня сработал такой:
case($value=17c276c8e723eb46aef576537e9d56d0, "Santa Fe", $value=7f1171a78ce0780a2142a6eb7bc4f3c8, "Matrix", $value=b4a528955b84f584974e92d025a75d1f, "i30", $value=795c7a7a5ec6b460ec00c5841019b9e9, "Getz", $value!=17c276c8e723eb46aef576537e9d56d0, "")
Он проходит по всем вариантам, а в конце проставляет пустое поле, если ни один из вариантов не подтвердился. Для этого я проверяю в начале соотвествие первому критерию. Если первый критерий не подошёл, проверяются все остальные по очереди (если подходят, то модификатор завершает работу), а в конце снова сравниваем с первым, но с условием !=
, чтобы проставить ""
.
Есть подозрение, что проблема в длине модификатора.
думаю да! Можно ли как то изменить это:?
Ну это еще только модели автомобилей) допустим есть еще категории которые хотель бы в модификаторе таким же способом указатЬ!
Пробовал до 5 значении! работает! но у меня больше 200 значении! Хотелось бы увеличить чтобы все заработало! Как это сделать?
Изучили проблему с разработчиком, а потом я проверил у себя на тестовой установке. Зайдите в файл app/addons/advanced_import/Tygh/Addons/AdvancedImport/Modifiers/Parsers/SinglePassModifierParser.php и найдите там строку:
$safe_threshold = 1000;
Замените 1000 на такое количество символов, которого вам хватит. Я заменил на 2000, и модификатор, который раньше выдавал ошибку, стал работать.
Поставил 50 000) Так как на моделях авто у меня 40 000 символов! Работает! Терь можно импортнуть спокойно файлы YML) 28 000 товаров
если перевалит за 60 000 символов тоже может не работать но уже по причине базы данных, надо будет поменять тип на медиумтекст. Это я на вскидку говорю, не проверял.
В XML-файле указаны размеры в ** американском цифровом обозначении**, например размер обуви 8,5.
В пресете полю Размер назначается Опция. После импорта товара на карточке товара появляется Опция (выпадающий список выбора размера) в которой вместо размера 8,5 оказываются два размера - 8 и 5. Получается, что скрипт считает запятую разделителем разных размеров.
Как победить этот эффект? Можно ли как-то обойти эту неприятность применив модификатор?
Сейчас действительно только через модификатор или вручную/автоматически перед импртом вне CS-Cart.
Несколько вариантов одной опции передаются так, как описано здесь: https://www.cs-cart.ru/docs/4.9.x/user_guide/manage_products/import_export/fields_format.html#id2. Т.е. да, разделителем там служит запятая
Модификатор может убрать из столбца все запятые, заменив их на точки: replace(",", '.', $value)
. Но так как я не видел ваш файл, то трудно сказать, не сломается ли при этом что-то ещё.
Документация по модификатором находится прямо на странице импорта, на вкладке “Соответствие полей”. Там есть кнопка “Список модификаторов”. Возможно, вы найдёте ещё что-то полезное.
Вероятно, проблема также решится в новых вариациях, основанных на характеристиках (запланированы в 4.10.1 на вторую половину весны). Каждую характеристику, существующую в магазине, уже можно импортировать в отдельном столбце.
А как добавить - replace(“,”, ‘.’, $value),
если уже вставлен другой модификатор - concat(‘Размер: S[’, $value, ‘]’)
Два модификатора подряд разве можно?
P.S. Закинуть файл посмотреть?
@ikoshkin
Скажите, как с помощью модификатора заменить в брендах сразу два символа &ароs; и &аmр; или больше символов, ведь модификатор позволяет только три параметра.
Вот пример правильного написания брендов - Jack’s Square и Atributika&Club, такие они в файле, но после импорта получается Jack&ароs;s Square и Atributika&аmр;Club. В данном файле так начертаны два бренда с разными символами, тогда как же подменить у обеих?
На один столбец можно использовать только один модификатор. Поэтому пока в тех случаях, которые вы описываете, я вижу такие варианты:
-
Если где-то нужно 2 модификатора или вложенные модификаторы, то автоматически вносить эти правки вне CS-Cart ещё до импорта. Тут понадобится помощь разработчика, но ему не обязательно будет даже разбираться в коде CS-Cart (т.е. должно выйти дешевле).
-
Обратиться в Help Desk по поводу апострофа и &. Они изучат, и если это баг на нашей стороне, то кредитов не возьмут и передадут программистам, чтобы исправили. Если же это не баг, то посоветуют, как решить проблему или к кому обратиться.
-
Дождаться выхода 4.10.1. Мы планируем включить туда новые вариации, основанные на характеристиках, т.е. в concat(‘Размер: S[’, $value, ‘]’) (да и вообще в импорте опций) необходимость должна отпасть.
replace(("& apos;","& amp;"),("’","&"),$value)
Попробуйте так, если модификатор использует функцию str_replace. Смысл: Первое значение из входного массива заменяется на первое значение из выходного, второе на второе, третье на третье, итд.
PS: Пробелы после амперсанда мои, их не надо вам, чтобы отобразилось правильно добавил
Спасибо, попробую.
Хочу заметить, что Апостроф может быть разным, в зависимости от того, откуда взят материал или как создан вручную в редакторе сайта. Например он может быть как одиночная кавычка в английской раскладке или как запятая созданная с помощью сочетания горячих клавиш. В таком случае Апостроф даже выглядят по разному.
Конечно же распознавание и замена всех этих бяк должно быть заложено в скрипт импорта. Просто разработчики очень поверхностно подошли к решению. Как говорится - “Было гладко на бумаге, да забыли про овраги”.
В новом импорте для импорта изображений появилась функция Advanced Import: Images, удобно когда в одном большом файле сразу все фотки. А вот если поставщик предоставляет отдельный файл с мышками для картинок, где три колонки в соответствии с форматом старого импорта (есть поля pair type, position, product code, image), то новым не совсем удобно пользоваться. Неудобство заключается в том, что нет возможности поставить обновление картинок по cron, как в новом импорте. Планирует ли разработчик поставить в новый импорт такие поля как pair type, position … для изображений.
Когда два параметра, то вылетает ошибка уже в момент вставки модификатора в поле.
Причем в цитировании ошибки &ароs; и &аmр; превращаются в ’ и &
Но когда три параметра, то все нормально.
replace((“& apos;”, “& amp;”, “'”), (“’”, “&”, “’”), $value)
Похоже можно только когда три, больше или меньше не получится.
Попробуйте (для начала на демо) использовать в новом импорте файл от поставщика с картинками, но сопоставить там поля только для Product code и Image (с Advanced Import: Images). Несопоставленные поля должны проигнорироваться, а картинки заимпортироваться. Для двух файлов (товары, картинки) можно задать свои отдельные пресеты.
А можно сделать модификатор для импорта категорий. Там могут быть 4 или 5 категорий застолблены для одного продукта. Если количество ограничений у replace 3, то их нельзя будет импортировать. С другой стороны, если позволенное число будет больше, то тогда где мы возьмем лишние категории для продукта с одной категорией? Следовательно нельзя делать ограничения по replace - или придумайте другой способ превращения и усвоения (нострификации - процесс обНАШивания, превращения ЧУЖИХ в НАШИ) категорий.
На английском сайте я предложил ввести числовые соответствия с последующей расшифровкой, но пока никто на это не обратил внимания
Подскажите как сделать экспорт-импорт отзывов товаров?
В файле экспорта в колонке Discussion экспортируется только “B” - это я так понимаю включения отзывов в товаре.
Может через БД можно это как-то сделать?