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

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

Насколько я помню, если грузить за 1го вендора, тоже надо его указывать. Может действительно видос по расширенному импорту подробный сделаете? Думаю у него есть еще нераскрытый потенциал)

1 лайк

Я не знаю как работает импорт после того как исправили некоторые баги, жду выхода выхода новой версии, но думаю что модуль должен быть качественно настроен прежде всего для импорта из одного магазина CS-Cart в другой по XML, так как это необходимо для тех кто работает с несколькими магазинами и для отдачи товарных предложений дилерам и магазинам дропшипинга. Я пробовал сделать такой импорт и у меня не получилось, что-то проимпортировалось, но характеристики и категории нет, по опциям и вариациям не пробовал. Это самый простой способ увидеть проблемы этого модуля.
Развитие и совершенствование этого модуля один из приоритетных, так как наполнение товарами, контроль наличия и цены самый востребованный и трудоемкий из процессов.

3 лайка

Если Главный администратор закачивает прайс продавца самостоятельно из главной панели и выбирает вендора на странице импорта, то вылетает ошибка - нет поля Vendor.

Это значит, что если Главный администратор закачивая прайс определенному вендору, должен это делать зайдя в импорт от имени продавца?

---------- Импорт файла XML ----------
Интересует вопрос, что нужно выбирать в колонке «Свойство товара в Multi-Vendor», чтобы характеристика (строка name и value) импортировалась и отображалась на карточке товара в закладке Особенности вот так - Сезон: Весна - Лето
Вот код в файле:

Так выглядит в админке:

Также не понимаю, что нужно выбирать в колонке «Свойство товара в Multi-Vendor», чтобы опции (name и quantity) импортировалась и отображалась на карточке товара соответствующим образом.
Вот код в файле:

Так выглядит в админке:

---------- Импорт файла CSV ----------
Надо было добавить Бренд к ранее закаченным товарам. В созданном файле CSV заданы все обязательные поля, на всякие случаи Заголовок товара и соответственно Бренд.
При сохранении пресета на странице «Таблица соответствия полей» добавлены соответствия полей в «Свойство товара в Multi-Vendor».
Так выглядит в админке:

import_csv_1

Для бренда в выпадающем списке выбрана характеристика Бренд. Те характеристики которые созданы ранее вручную отображаются в этом выпадающем списке.

import_csv_2

Жму Импорт, но Бренды не добавляются к товарам. Даже не появляются в самих характеристиках брендов.
Может быть сами Бренды надо сначала создавать, а потом уже загружать файл с ними?
Подскажите в чем проблема, я что-то делаю не так?

В этой теме есть ответ признано багом исправили Расширенный импорт товаров [Beta]

Здравствуйте.
Мы исправили баг.
Эти изменения войдут в 4.8.2.

Вы можете воспользоваться следующим патчем для исправления бага: https://gist.github.com/MrAlejandro/b0f146ce6dfa0d0a70ecbf0dfb0ca0c9 4

О том, как применить патч, вы можете почитать в документации 3.

Спасибо за информацию.

Добрый день!
При выборе в момент маппинга полей свойства товара “Характеристика” было бы логично чтобы характеристика создавалась. Сейчас это поле вероятнее всего игнорируется. Поправьте если я не прав

Очень замечательно, что есть патч, но я не Ванга. То что в файле написано, разобрать не искушенному сложно. В инструкции сказано, что строка с минусом относится к оригинальному файлу, а строка с плюсом относится к исправленному файлу. Таким образом строку с минусом удаляем, с плюсом добавляем. Однако в diff-файле есть такая строка:
+@@ -99,12 +99,12 @@ function fn_advanced_import_set_product_features($product_id, $features_list, $v
в ней и плюс и минус и опять плюс. Что это значит и нужна ли эта строка?

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

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

1 лайк

Строку с @@ можно и нужно игнорировать, она нужна только для того, чтобы найти нужное место в файле. Подробнее этот момент описан в конце статьи по применению diff-файлов.

Т.е. в https://gist.github.com/MrAlejandro/b0f146ce6dfa0d0a70ecbf0dfb0ca0c9 строку под номером 5 мы просто пропускаем. Вносим изменения из строк 9, 11-16 и 18.

Мы бы и рады сделать инструкцию по применению diff-файлов проще, но я пока не вижу, что по тексту можно улучшить. Если в тексте статьи есть какой-то непонятный момент, пишите мне (можно в личку) – я создам задачу на улучшение документации.

))) поэтому я жду версию 4.8.2 посмотрел не разобрался, не хочу что-нибудь “исправить” и все испортить

Я так понимаю, вы предлагаете не файл целиком, а даете только пару строк кода из расчета того, что в других местах этого файла могут быть ранее внесены какие-то изменения самим владельцем сайта.
Вывод. Если владелец вносил такие изменения в файл, значит у него есть возможность и знания. Следовательно, у него не вызовет вопросов и то, что в данном файле представлено. Вопросы как раз возникают у «чайников» и таких большая часть продавцов. А это значит, «чайник» никаких самостоятельных изменений в файл не вносил и никогда не внесет. Исходя из этого, есть смысл предоставлять исправления целым файлом, т.е. старый файл удалил (переименовал), новый закачал. Или дать код как выделено на скриншоте, чтобы по заголовку найти и заменить фрагмент. Таким образом будут исключены ошибки, которые могут привести к неработоспособности сайта или многочисленным обращениям в суппорт.

Как вы пишите - «Вносим изменения из строк 9, 11-16 и 18», то судя по коду, как и было написано мной выше надо всего лишь в строку 9 вставить закрывающую скобку, остальное не трогать, так как строки выделенные красным и зеленым идентичны. Программисты и пользователи смотрят на все эти вещи по разному и обе стороны правы - стакан на половину пуст или на половину полон. Это как раз и запутывает. Хотя вы и написали номера строк, мне по прежнему не понятно.

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

Вот причины, почему мы даём именно diff-файлы:

  1. DIFF-файлы как раз и описывают, в каком месте какой код убрать и добавить. На содержимое строк можно даже не обращать внимание (я не программист, поэтому обычно так и делаю – просто механически удаляю и добавляю строки в нужных местах). По ссылке https://gist.github.com/MrAlejandro/b0f146ce6dfa0d0a70ecbf0dfb0ca0c9 файл отображается с подсветкой, поэтому там ещё проще:

    • Удаляем строки, начинающиеся с одного минуса и отмеченные красным.

    • Добавляем строки, начинающиеся с одного плюса и отмеченные зелёным.

    • Строка с @@ нужна только для навигации по diff-файлу, её содержимое игнорируем.

  2. При замене файла целиком легко потерять какие-то изменения, даже если делать разные файлы для нескольких разных версий. А иногда правки надо вносить в несколько файлов, которые могли меняться от версии к версии (или сторонними разработчиками). В DIFF же сразу прописаны пути ко всем файлам, которые нужно поменять.

  3. Это быстро: разработчик может создать diff-файл одной командой, а сисадмин может одной командой его применить. Автоматическое создание DIFF’а также исключает возможные ошибки на нашей стороне (например, опечатки в коде или ошибки в инструкции).

Одной командой, это из PHPmyAdmin ?

Правильно ли у меня получилось сделать изменения в файле?

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

Есть ли возможность, кроме diff-файл, также предоставлять весть файл целиком с готовым исправлением?

Нет, эта команда выполняется в командной строке сервера. Если у вас VPS или полноценный выделенный сервер с операционной системой Linux, Ubuntu, CentOS и т.п. (именно такое окружение мы рекомендуем для CS-Cart и Multi-Vendor), то к нему можно подключиться по SSH и выполнить команду.

Не совсем. У меня после применения diff-файла вручную вышло так (во фрагмент я включил те же строки, что есть в DIFFе):

            'feature_id',
            $missing_features
        );
    }

    foreach ($features_list as $feature_id => &$feature) {
        $feature = array_merge($feature, $features_cache[$feature_id]);
    }
    unset($feature);

    if ($features_list) {
        fn_exim_save_product_features_values($product_id, $features_list, $main_lang);

На всякий случай я перепроверил, в файле из будущей версии CS-Cart тоже так (только пустых строк перед foreach и после unset нет, но это непринципиальный момент).

Таких проблем быть не должно. Код находится в файле модуля Advanced Product Import, поэтому используется только для нового импорта товаров. А вот что будет, если попытаться импортировать товары, если код будет неправильным, я сказать не могу – не проверял.

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

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

Если с применением diff-файлов возникают сложности, можно обратиться в техподдержку, они помогут.

1 лайк

Такой вопрос. Поставщик присылает прайс для обновления цен, остатков по наличию размеров, вот в таком виде. Т.е. размеры и остаток в разных строках. Не могу понять, новый импорт решает задачу по закачке в таком виде или все таки придется ручками править файл и переносить данные?

Если каждый раз файл надо править, когда необходимо импортировать товары нового вендора и/или обновить информацию старых, то какой смысл в улучшенном импорте. По тому как, что в старом, что в новом улучшенном импорте, как сидели часами в Excel или OpenOffice, так и сидим по прежнему.

В общем, импорт - это боль и незаживающая рана. Не проще ли создать конвертер и интегрировать в CS-CART, который был бы заточен под пару десятков распространенных CMS. Как пример, есть облачные парсеры, где реализована выгрузка прайс-листов с выбором под какую CMS нужен CSV файл. Разница лишь в том, что в их случае надо установить плагин на сайт с которого надо скачать прайс. А в случае с CS-CART эта программа могла бы быть модулем, и конвертировала бы имеющиеся на руках пользователя файлы в нужный формат. Тогда, владелец сайта или вендор мог в дальнейшем одним кликом изменять файл под импорт.
Уважаемые разработчики, вы рассматриваете такой вариант?



а вот если у нас в прайсе несколько брендов, и в некоторых брендах артикулы совпадают с другими брендами.
есть ли возможность импортировать артикулы-“дубликаты” без склеивания товаров в один?
я пробовал добавить ID товара, но ключом все равно импорт считает артикул.

Уважаемые @ikoshkin, @imac
Нашел в обсуждении выше что эта проблема не решена.
я пытался выгрузить 25 тыс товаров из магазина на cs-cart которому 8 лет и который прошел череду апдейтов начиная со 2-й версии, поэтому жутко тормозил и загрузить в чистую установку системы.

У меня в итоге 75 повторяющихся артикулов при всего 120 брендах.
добавлять суффиксы в артикул - идея технически неплохая, но абсолютно бесполезная, ибо сам по себе артикул производителя - достаточная информация для идентификации внутри бренда.

Нужно сделать обязательно возможность идентификации по паре Артикул+Бренд.
Внутри бренда артикулы практически никогда не дублируются.
Зачем нужны костыли, когда вы заново создаете модуль.

Это действительно важно.
Спасибо.

1 лайк

Понадобилось сделать импорт товаров у которых размеры и цвет должны быть опциями, но оказалось, что это сделать нельзя без создания в файле конструкции - Размер: S[48,50,52,54];
Характеристикам такая конструкция не нужна в улучшенном импорте, это я уже понял. А для опций по прежнему надо править файл или у меня не работает что-то?

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

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

2 лайка