Перейти к содержимому


Расширенный импорт товаров


  • Вы не можете ответить в тему
Сообщений в теме: 13

#1 micehide

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 359 сообщений
Репутация: 124
Мастер

Отправлено 05 January 2012 - 12:09 AM

Господа! Кто-нибудь встречал варианты доработки импорта товаров из Админки ShopCMS?
Собственно, у меня каталог магазина на сервере является основным, т.е. 1С не пользуюсь и работа с каталогом ведется непосредственно в БД или через Админку. Поэтому грамотный импорт для меня критичен (особенно касаемо обновления текущих позиций).

ТЗ такое:
  • Импорт из минимализированного CSV-файла, например для обновления только цены и склада (в таблице только Код, Цена и Склад);
  • Сравнение импортируемых данных с текущим состоянием каталога (выгрузка результата в txt или csv, если какие-то позиции новые или какие-то пропали из прайса);
  • Возможность импорта без учета структуры каталогов, то есть просто при совпадении Кода товара, его данные перезаписываются, в какой бы категории товар не находился.

Сама идея такого импорта возникла, потому что задолбался сравнивать прайсы поставщиков в Excel-е, а хорошие программы сравнения стоят дорого. Почему бы не сравнивать эти прайсы автоматически с Базой при простейшем импорте (обычно от поставщиков идет только Код, Цена и Наличие, изредко еще пометка "Новинка") - экспортируешь прайс в CSV и заливаешь через Алминку, а она тебе выдает список новых позиций (которых нет в Базе), а их уже оформляешь как положено через стандартный импорт.
  • 0

#2 R.Sergey

    Администратор

  • Администраторы
  • 2810 сообщений
Репутация: 332
Мастер

Отправлено 05 January 2012 - 07:18 AM

Импорт из минимализированного CSV-файла, например для обновления только цены и склада (в таблице только Код, Цена и Склад);

А в чем тут собственно проблема - указывай в файле только под цену и склад и импортируй - остальные поля можно удалить....

---------- Сообщение объединено ----------

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


Вот на счет этого не уверен, но помоему если товар с таким кодом уже есть, то структура не учтется он перезапишется.... но нужно проверить
  • 0

#3 vakkula

    Продвинутый пользователь

  • Download User
  • PipPipPip
  • 101 сообщений
Репутация: 6
Начинающий

Отправлено 05 January 2012 - 03:50 PM

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

Если есть такой код то просто обновятся те поля которые вы указывали при импорте т.е. Склад, Цена.

Я себе сделал так, взял каждого поставщика присвоил ему какую не будь букву и теперь перед обновлением одного из поставщика обнуляю склад по этой букве и после обновления товар которого нет он и не показывается а новый попадает в Главную, потом экспортируешь в эксель и с помощью ВПР функции и наполняешь новинки

ну единственно что плохо это раскидывать потом вручную по категориям
  • 0

#4 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 05 January 2012 - 05:22 PM

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

В импорте ведь даже не "можно", а "придется" указать, по какому полю будет производиться идентификация совпадения товара. По коду, названию, еще чему... По умолчанию по коду. Если он есть. Если нет - не проверял. А если верить Импорт каталога товаров из прайс-листа Excel/1C, то перезаписываются только имеющиеся в CSV поля. Как я понимаю, в CSV при таком раскладе надо иметь поле для идентификации и кучку изменяемых полей - одно, два, три - сколько надо. Остальное при загрузке такого CSV измениться не должно. Это логично, да и описано именно так.
  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#5 R.Sergey

    Администратор

  • Администраторы
  • 2810 сообщений
Репутация: 332
Мастер

Отправлено 05 January 2012 - 05:28 PM

Ну вот я и говорю что теоретически размещение в категории не имеет значение - главное чтобы код товара(идентификатор) совпал и изменения применятся к нужному товару. Но как на практике х/з.
  • 0

#6 micehide

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 359 сообщений
Репутация: 124
Мастер

Отправлено 05 January 2012 - 09:59 PM

Но как на практике х/з.

- на практике происходит следующее: если указать в качестве идентификатора Код, то каталог нормально обновляется при совпадении кода, при этом в CSV-файле могут быть как все поля, так и только Код, Цена и Склад. А вот если указать в качестве идентификатора что-то другое (например Наименование), то товары просто импортируются в Главную категорию. У меня, например, Код не является уникальным идентификатором, у меня это - Наименование, т.к. коды моделей разных марок могут совпадать.

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

Кстати, хотел спросить: кто как поступает с товарами, которые больше не ввозятся поставщиком (то есть, допустим, пропали из продажи на совсем)?
  • просто выставляете Склад=0 и они пропадают из списка, но URL работает, просто на странице товара написано "Вышел из продажи" - чтобы не терять страницу в поиске.
  • отключаете товар, при этом прямой запрос к УРЛ-у выдает 404.

  • 0

#7 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 06 January 2012 - 04:56 AM

на практике происходит следующее: если указать в качестве идентификатора Код, то каталог нормально обновляется при совпадении кода, при этом в CSV-файле могут быть как все поля, так и только Код, Цена и Склад. А вот если указать в качестве идентификатора что-то другое (например Наименование), то товары просто импортируются в Главную категорию.

Если оставить в CSV-файле строчки с названиями категорий, то при выборе уникального поля "Наименование" обновляет нормально, а не импортирует в Главную категорию. Видимо, в этом есть какая-то логика типа "а вдруг одинаковые наименования в разных категориях?" Хотя, насколько я понимаю, обычно у всех дублируются как раз коды :).

Я, правда, так и не понял до конца, по какому признаку отличается строчка с категорией от строчки с товаром. Толи когда заполнено только поле Наименование или только поля Наименование+Загол-ок, толи когда, наоборот, какое-то из полей не заполнено. И, похоже, поле Код обязательно должно быть даже если не несет инофрмации и не используется. Если без него (или "игнорировать столбец"), только Наименование и Доп.харк-и, то у меня вместо обновления товаров появляются одноименные этим товарам каталоги первого уровня.

А вот так выглядит вполне работающий CSV, который у меня обновляет товары по наименованию, а не сует их в Главную категорию:
Код;Наименование;форма формы;цветность цвета
;Тест-Тест-Тест;;
0;Digma c700;{квадрат,треугольник,круг,ромб};{белый,черный,синий,зеленый,желтый,красный}
0;Digma cs700;{квадрат,треугольник,круг,овал,параллелограм};{белый,черный,синий,зеленый,желтый,голубой}

PS. Я тут недавно плакался, что у меня ShopCMS собственный же экспортированный CSV обратно не принимает (не распознает), так теперь снова принимает. Напрочь не понимаю, что мог изменить, т.к. ничего не менял :).
  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#8 R.Sergey

    Администратор

  • Администраторы
  • 2810 сообщений
Репутация: 332
Мастер

Отправлено 06 January 2012 - 07:47 AM

А вот если указать в качестве идентификатора что-то другое (например Наименование), то товары просто импортируются в Главную категорию. У меня, например, Код не является уникальным идентификатором, у меня это - Наименование, т.к. коды моделей разных марок могут совпадать.


ну ИМХО это неправильный подход - код товара он на то и КОД товара чтобы быть уникальным идентификатором, и честно признаюсь крайне удивлен что у разных поставщиков может совпадать код товара - работал с разными поставщиками ну пару десятков есть - ни разу такого не встречал, но не суть.... а вот наименования как раз могут повторяться и при выставлении идентификатором по наименованию может появиться куча проблем.
Например: в наименовании товара допущена ошибка, если идентификатор - код - в следующем прайсе поставщик исправил ошибку, товар перезалился и порядок, если же идентификатор наименование, то появится дубль товара, а также лишний пробел, кавычки (типографские или прописные) какиенибудь спецсимволы и т.д. и т.п.

Если же дублирование кода все же встречается - я бы присваивал каждому поставщику к коду какой-то префикс или постфикс ) ... a-, b-, c- и не будет дублей и всегда можно отфильтровать поставщиков.

Далее ....

Кстати, хотел спросить: кто как поступает с товарами, которые больше не ввозятся поставщиком (то есть, допустим, пропали из продажи на совсем)?
просто выставляете Склад=0 и они пропадают из списка, но URL работает, просто на странице товара написано "Вышел из продажи" - чтобы не терять страницу в поиске.
отключаете товар, при этом прямой запрос к УРЛ-у выдает 404.


На этот случай смотреть уже нужно не столько с технической стороны, сколько со стороны маркетинговой стратегии.
Моделируем ситуацию:
Я как покупатель ищу холодильник Самсунь Х6
Набираю в поисковие купить "Самсунь Х6" получаю кучу ссылок - попадаю к тебе на сайт.
И вижу
2-й вариант: ошибку 404 - мои действия: закрываю сайт и иду по следующей ссылке (так сделают не все, но уже процент покупателей ушел)
1-й вариант: вижу товар, но написано "Вышел из продажи и не вернулся))" - мои действия:
а) если я дотошный и мне не срочно пишу в форму "Есть вопросы к этому товару?" ... здрасти, а када ?
б) если срочно или я не люблю все эти переписки и разговоры с продавцами (поэтому и делаю покупки в интернете) закрываю сайт и иду по следующей ссылке (так сделают не все, но уже процент покупателей ушел)

ИТОГО: оба варианта неправильные.

Самым верным вариантом будет оставить товар в покое С ценой и С кнопкой купить, человек сделает заказ - А ВЫ или ВАШ менеджер быстро отреагируете на этот заказ, и отпишите покупателю (или отзвонитесь если он укажет номер телефона): "Здравствуйте, извините но данный товар временно отсутствует на складе. К сожалению мы не можем назвать срок его поставки поэтому можем предложить Вам следующие аналоги: Самвысунь X6 (основные отличия от Самсунь Х6: бла-бла-бла, Лыжи: бла бла бла и т.д. ) " и подобрать покупателю несколько товаров которые ЕСТЬ в наличии а) из той же ценовой категории, б) с подобными характеристиками.

Некоторые скажут, что если оставить возможность заказывать товар, которого нет на складе - это может вызвать недовольство покупателей, но это смотря как Вы к этому вопросу подойдете. Покупателю всегда будет приятно если какуюто работу по подбору товара за него сделаете ВЫ.... а если товар пропал у Вашего поставщика, то скорее всего он пропадет и у всех диллеров а не только у Вас и покупатель все-равно купит аналог - и быстрее купит если ему предложат, т.е. спровоцируют.
На крайний случай для мозго...ов, для таких товаров можно сделать гдето не очень заметную надписи "Товар может отсутствовать на складе, пожалуйста уточните наличие".
  • 0

#9 micehide

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 359 сообщений
Репутация: 124
Мастер

Отправлено 06 January 2012 - 12:40 PM

код товара он на то и КОД товара чтобы быть уникальным идентификатором

Впринципе, согласен, однако на практике выходит так, что коды могут совпасть (и не раз), поэтому в крупных БД по графику запускают поиск дубликатов. И это заявление "непрозрачно", зачем тогда в Импорте есть возможность выбрать идентификатор из предложенных - это вводит в заблуждение.

Самым верным вариантом будет оставить товар в покое С ценой и С кнопкой купить

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

для таких товаров можно сделать гдето не очень заметную надписи "Товар может отсутствовать на складе, пожалуйста уточните наличие"

Скорее всего это самый правильный вариант: цена стоит (последняя на момент выхода товара из продажи), кнопка "Заказать" (вместо "Купить") - есть, приписка "О временном отсутствии" - есть, никаких договоренностей не нарушаем. Если этот товар вообще вышел из продажи (нет и у конкурентов), то есть шанс, что покупатель свяжется с вами на предмет предварительного заказа, а менеджер ему предложит иные варианты.

Я тут недавно плакался, что у меня ShopCMS собственный же экспортированный CSV обратно не принимает

У меня тоже иногда подглючивает Импорт, например иногда нужно еще раз открыть CSV в Excel-е и сохранить повторно, тогда его Админка проглатывает. Также был какой-то глюк с обновлением товаров (может и по моей вине) - не помню какой, но отношусь к Импорту теперь очень настороженно, проверяю несколько раз перед заливкой, а вообще гораздо спокойнее работать с MySQL напрямую.
  • 0

#10 R.Sergey

    Администратор

  • Администраторы
  • 2810 сообщений
Репутация: 332
Мастер

Отправлено 06 January 2012 - 01:06 PM

Впринципе, согласен, однако на практике выходит так, что коды могут совпасть (и не раз), поэтому в крупных БД по графику запускают поиск дубликатов. И это заявление "непрозрачно", зачем тогда в Импорте есть возможность выбрать идентификатор из предложенных - это вводит в заблуждение.

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

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

Ну так реагировать нужно не завтра и не через неделю, чтобы не было человеку обидно ))) а сразу. Ну и еще раз повторюсь если товара нет у поставщика то у других он скорее всего будет в остатках где-то и его со временем раскупят и все..... и даже если человеку нужен именно этот - все равно будет покупать аналог... а вот где это та самая цель........
ну как правильно поступать решает для себя каждый и отношения процента купленных аналогов с проценту негативных отзывов из-за якобы "сорванного подарка" тоже... так что это дело житейское ))
  • 0

#11 al0706

    Пользователь

  • Пользователи
  • PipPip
  • 24 сообщений
Репутация: 0
Начинающий

Отправлено 06 February 2012 - 12:45 AM

На самом деле на практике все еще сложнее. Для примера B000750M2 ТОРМОЗНАЯ ЖИДКОСТЬ-используется для Skoda, Volkswagen, Audi. При этом цена по этим маркам(группам) может быть разной. Теперь если добавить несколько разных поставщиков с разными сроками поставки, да еще если подобных товаров несколько тысяч, то вообще караул!!! В данной ситуации делаю следующее: код товара - B000750M2_1(поставщик X), B000750M2_2(поставщик X), B000750M2_3(поставщик X), где 1,2,3 соответственно Skoda, Volkswagen, Audi. По аналогии с поставщиками X,Y,Z. В Excel добавляю нужную колонку, затем использую функцию сцепить.
И все бы хорошо, но слишком трудоёмкий процесс. Было бы намного проще, если бы была возможность введения дополнительных идентификаторов, помимо уникального т.е код - группа - поставщик. Сроки поставки и оригинальнй номер можно прописать в доп. характеристиках.
  • 0

#12 micehide

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 359 сообщений
Репутация: 124
Мастер

Отправлено 06 February 2012 - 01:54 PM

На самом деле на практике все еще сложнее.

Ну для этого и предоставляется выбор: что учитывать в качестве уникального идентификатора? Код, Наименование и т.д. У меня например наименование обладает правом такой исключительности, оно содержит: Марка-Коллекция-Код, тем самым убивая еще одного зайца - поиск в магазине работает по любому из этих запросов без вмешательство в его логику.

А вообще работа по структурированию каталога - это самое муторное и тем самым сложное, при таких объемах и дублированиях в любом случае нужно пользоваться сторонними решениями (1С, сравнение прайсов, VB скрипты в Excel и тому подобное) для того чтобы подготовить товары в импорту в магазин. Плюс еще нужно умудриться совладать с поставщиками от которых зачастую приходят прайсы в разном формате...
  • 0

#13 al0706

    Пользователь

  • Пользователи
  • PipPip
  • 24 сообщений
Репутация: 0
Начинающий

Отправлено 06 February 2012 - 09:02 PM

Ну для этого и предоставляется выбор: что учитывать в качестве уникального идентификатора?


К сожалению в моем случае в качестве кода можно использовать только оригинальный номер детали. Именно этот номер точно идентифицирует запчасть в каталогах производителей, поэтому название и т.п. не вариант. Сравнивать прайсы поставщиков в 1С, VB скриптах в Excel и т.д. не вижу смысла(в моем случае), лучше пусть клиент видит несколько альтернативных вариантов поставки одной и той же детали с разными сроками и ценами и решает, что ему важней сегоня по 5 или послезавтра по 3.
Что косается загрузки товаров в каталог, то вроде тема "Расширенный импорт товаров" и создана для поиска вариантов упрощения этого процесса. Или я ошибаюсь?
  • 0

#14 micehide

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 359 сообщений
Репутация: 124
Мастер

Отправлено 06 February 2012 - 09:53 PM

К сожалению в моем случае в качестве кода можно использовать только оригинальный номер детали.

Вы не поняли, указывать Наименование как уникум - только при импорте в магазин, а Коды при этом все одинаковые (это естественно, т.к. при поиске по коду и должны вылезать разные варианты одной и той же детали). Если серьезно, то уникальный код всегда прописан в Базе и он не является ни нашим Кодом, ни Наименованием, а наши данные учитываются как уникальные только при указанном импорте, грубо говоря, укажи Вы как уникум, скажем, Краткое описание, то просто при импорте при совпадении этого поля (в Базе уже есть такое), будет сущесвующая позиция обновлена, а при НЕсовпадении - добавлен новый товар...

В Вашем случае, вполне можно оставлять Коды одинаковыми, но вводить в CSV-файл для импорта какую-то другую уникальную колонку...

Что косается загрузки товаров в каталог, то вроде тема "Расширенный импорт товаров" и создана для поиска вариантов упрощения этого процесса. Или я ошибаюсь?

Именно, ИМХО, принципиальным моментом "упрощения" является введение Сравнения и Отчета об импорте. То есть чтобы если товара еще нет в Базе, он не добавлялся бы как новый в Главную категорию как сейчас, а содержался в результирующем Отчете импорта - список новых товаров. Это для того, чтобы можно было отдельно эти новые товары подготовить для полного импорта со всеми хар-ками.

Про Сравнение и Отчет я говорю как о функциях при "упрощенном импорте" - когда импортируешь только Код, Цену и Наличие (Склад) - то есть те данные, которые обычно приходят от поставщиков. Хотя тут есть люди, которые полностью стирают всю Базу товаров магазина, а потом заново импортируют все данные, и так при каждом импорте. Но это те, кто хранит основную Базу в сторонних программах (бухучет и др.).
  • 0