Попробуйте Улучшенный Импорт Товаров

Дополнил свой ответ 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, и модификатор, который раньше выдавал ошибку, стал работать.

1 лайк

Поставил 50 000) Так как на моделях авто у меня 40 000 символов! Работает! Терь можно импортнуть спокойно файлы YML) 28 000 товаров

1 лайк

если перевалит за 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. В данном файле так начертаны два бренда с разными символами, тогда как же подменить у обеих?

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

  1. Если где-то нужно 2 модификатора или вложенные модификаторы, то автоматически вносить эти правки вне CS-Cart ещё до импорта. Тут понадобится помощь разработчика, но ему не обязательно будет даже разбираться в коде CS-Cart (т.е. должно выйти дешевле).

  2. Обратиться в Help Desk по поводу апострофа и &. Они изучат, и если это баг на нашей стороне, то кредитов не возьмут и передадут программистам, чтобы исправили. Если же это не баг, то посоветуют, как решить проблему или к кому обратиться.

  3. Дождаться выхода 4.10.1. Мы планируем включить туда новые вариации, основанные на характеристиках, т.е. в concat(‘Размер: S[’, $value, ‘]’) (да и вообще в импорте опций) необходимость должна отпасть.

replace(("& apos;","& amp;"),("’","&"),$value)
Попробуйте так, если модификатор использует функцию str_replace. Смысл: Первое значение из входного массива заменяется на первое значение из выходного, второе на второе, третье на третье, итд.
PS: Пробелы после амперсанда мои, их не надо вам, чтобы отобразилось правильно добавил

Спасибо, попробую.
Хочу заметить, что Апостроф может быть разным, в зависимости от того, откуда взят материал или как создан вручную в редакторе сайта. Например он может быть как одиночная кавычка в английской раскладке или как запятая созданная с помощью сочетания горячих клавиш. В таком случае Апостроф даже выглядят по разному.

apostrof

Конечно же распознавание и замена всех этих бяк должно быть заложено в скрипт импорта. Просто разработчики очень поверхностно подошли к решению. Как говорится - “Было гладко на бумаге, да забыли про овраги”.

В новом импорте для импорта изображений появилась функция Advanced Import: Images, удобно когда в одном большом файле сразу все фотки. А вот если поставщик предоставляет отдельный файл с мышками для картинок, где три колонки в соответствии с форматом старого импорта (есть поля pair type, position, product code, image), то новым не совсем удобно пользоваться. Неудобство заключается в том, что нет возможности поставить обновление картинок по cron, как в новом импорте. Планирует ли разработчик поставить в новый импорт такие поля как pair type, position … для изображений.

@alex_vp

Когда два параметра, то вылетает ошибка уже в момент вставки модификатора в поле.

Причем в цитировании ошибки &ароs; и &аmр; превращаются в ’ и &

Но когда три параметра, то все нормально.

replace((“& apos;”, “& amp;”, “'”), (“’”, “&”, “’”), $value)

Похоже можно только когда три, больше или меньше не получится.

Попробуйте (для начала на демо) использовать в новом импорте файл от поставщика с картинками, но сопоставить там поля только для Product code и Image (с Advanced Import: Images). Несопоставленные поля должны проигнорироваться, а картинки заимпортироваться. Для двух файлов (товары, картинки) можно задать свои отдельные пресеты.

А можно сделать модификатор для импорта категорий. Там могут быть 4 или 5 категорий застолблены для одного продукта. Если количество ограничений у replace 3, то их нельзя будет импортировать. С другой стороны, если позволенное число будет больше, то тогда где мы возьмем лишние категории для продукта с одной категорией? Следовательно нельзя делать ограничения по replace - или придумайте другой способ превращения и усвоения (нострификации - процесс обНАШивания, превращения ЧУЖИХ в НАШИ) категорий.

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

1 лайк

Подскажите как сделать экспорт-импорт отзывов товаров?
В файле экспорта в колонке Discussion экспортируется только “B” - это я так понимаю включения отзывов в товаре.
Может через БД можно это как-то сделать?