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


#125

Судя по описанию, проблема может быть связана с настройками сервера (а если конкретнее, с таймаутами). Они отводят определённое время на выполнение действия (например, импорта), за это время действие полностью выполниться не успевает, и процесс останавливается.

Лучше всего обратиться в техподдержку: https://helpdesk.cs-cart.com/ Они изучат проблему, и если она вызвана багом, то кредиты не спишут.


#126

Уважаемые разработчики!
Как оказалось, в MultiVendor новый «Улучшенный импорт» не способен импортировать формат XML.
Проблема в том, что XML файлы поставщиков априори не имеют поля «Vendor». Также, можно отметить и то, что поля в XML файле одного поставщика отличается от полей в XML файле другого поставщика, так как это зависит от используемых ими CMS. Если даже и вставишь ручками в файл отсутствующее поле «Vendor», то как быть с остальными полями, совершенно не понятно. По сути, никакой автоматизации процесса импорта не видно, потому как несколько часов надо убить на редактирование файла. Вот для примера файл на странице «Таблица соответствия полей» выглядит так:

Очевидно же, что черти что=)) Если в первом товаре (как в этом примере) отсутствует содержание в полях, значит невозможно понять, что же в них находится и как это выглядит.
Особенно мозг выкипает с опциями и характеристиками. Например а характеристики надо добавить - Сезон: Весна - Лето
Тип обуви: Мокасины
Пол: Для мальчиков
и т.д. но каким образом они должны быть соединены в одно целое если:

  • в строке /options/option/name -> Сезон
  • в строке /options/option/value -> Весна - Лето

Аналогично с размером и количеством каждого размера - /sizes/size/name и /sizes/size/quantity

Может быть на самом деле с опциями и характеристиками все нормально (так оно и должно быть, просто я что-то не понимаю), но тогда необходима инструкция или видеоурок. Иначе получается кубик Рубика

Максимум, что на данный момент можно сделать без головной боли - это обновить цены=)))

Скажите, можно надеяться на серьезную доработку?


#127

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


#128

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


#129

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


#130

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

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


#131

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

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

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

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

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

import_csv_1

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

import_csv_2

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


#132

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

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

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

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

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


#133

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


#134

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

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

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


#135

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

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

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


#136

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


#137

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

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


#138

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

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

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

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

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

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

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

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


#139

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

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

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

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


#140

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


#141

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

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

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




#142

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


#143

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

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

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

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


#144

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