Хочу импортировать csv-файл с данными о контрагентах.
CSV-файл содержит следующие данные:
- название компании
- телефон
- адрес
- вид деятельности
...
Во вкладке импорта выбираю куда импортировать: Контрагенты
В итоге при импорте сталкиваюсь с тем, что название компании является ссылкой на объект «Компании», а не строкой.
Вопрос: Какая логика заложена в импорт?
Мне для того, чтобы импортировать, нужно вначале импортировать только «Названия компаний» в объект «Компании», а затем каким-то образом получить ID всех компаний, и этим ID заменить названия компаний, чтобы импортировать данные в Контрагенты?
Решение этой проблемы я вижу так:
1. Создать строковую переменную «Название компании» в «Контрагентах».
2. Импортировать csv-файл в «Контрагенты» (все поля).
3. Импортировать csv-файл в «Компании» (только поле — Название компании).
4. А затем создайте ссылку с помощью SQL-запроса:
UPDATE contact_table AS c JOIN company_table AS cmp ON c.company_name = cmp.name SET c.company_id = cmp.id;
Это так делается или я что-то упускаю в логике импорта? Почему все данные о компании в Контрагентах, а само название в Компаниях? Ведь по логике название и реквизиты компании должны находиться в одной таблице.
Если, кто-то импортировал данные из CSV-файла, пожалуйста, поделитесь опытом.
PS. Задал этот вопрос на официальном форуме ESPOCRM, но там тишина.
Непонятно в чем проблема, есть сущность контрагенты, у Вас в CSV есть название компании - читай название контрагента.
Еще есть сущность контакты, вот она как раз может быть связана с сущностью контрагент.
Из "сложных" импортов, когда в одном CSV и контрагенты и контактные лица, но если мне не изменяет память, решается элементарно двойным импортом, сначала в контрагенты с контролем дублей (если не срабатывает, то поправить CSV, не помню в чем там может быть затык) , а затем повторно в контакты с указанием названия контрагента, должно все связать.
P.S. не помню еще один момент, но возможно он имеет значение, вариант установки BtB или BtC
Таблица Компании имеет строковое поле "Название компании".
Таблица Контрагенты имеет поле с типом ссылка для "Название компании" и ссылается на "Название компании" в таблице Компании.
Пример поля "Название компании" в разных таблицах:
Компания: ООО Ромашка (ID:1), ИП Иванов (ID:7), Чудный лес (ID:111)
Контрагенты: 1, 7, 111
PS. Точное название поля "Название компании" в Компании - "Название",
"Компания" - в Контрагентах. Но поля связанные, поэтому для удобства я их называю "Название компании".
PSS. Сущность Контакты имеет поле ссылка "Компания" и также ссылается на сущность Компании. Я не против 2-3 раза импортировать одно и тоже, но для импорта нужно не название компании, а ID компании, который генерирует сама CRM. Вот в этом и есть затык, который я не понимаю как решается, кроме как через SQL запрос в базе данных. Этого вроде как не должно быть, значит я не понимаю логику работу CRM.
Я не против 2-3 раза импортировать одно и тоже, но для импорта нужно не название компании, а ID компании, который генерирует сама CRM. Вот в этом и есть затык, который я не понимаю как решается, кроме как через SQL запрос в базе данных. Этого вроде как не должно быть, значит я не понимаю логику работу CRM.
Если названия компаний уникальны, то проблем не должно возникнуть, для дубли придется разобрать вручную.
Сначала импортировать компании, после успешного импорта экспортировать их вместе с ID. Объедените вместе с оригинальным CSV по названию компании и импортируйте уже используя ID компании.
Второй вариант, написать простенький скрипт и сделать все используя апи, благо Апи там простое делов на полчаса-час вместе со вниканием как это работает. Там есть библиотеки и на питоне и на пхп.
После общения с ChatGPT выяснил, что в контрагентах есть поле: Имя (name), это поле предназначено для указания названия компании. Поле Кампания, это не кОмпания, а маркетинговая рекламная кАмпания.
PS. Разработчикам нужно было либо написать поле CompanyName или сделать подсказку о назначении поля. Интерфейс сложный и интуитивно не понятный, если разобраться, то наверно много чего учтено для организации множества вариантов рабочего процесса, но сходу сложно разобраться.