delatbabel / contacts
Laravel 联系人管理包。
Requires
- php: >=5.4.0
- delatbabel/applog: dev-master
- delatbabel/fluents: ~1.0
- delatbabel/keylists: dev-master
- delatbabel/nestedcategories: dev-master
- delatbabel/site-config: dev-master
- illuminate/contracts: ~5.0
- illuminate/database: ~5.0
- illuminate/support: ~5.0
This package is not auto-updated.
Last update: 2024-09-14 18:36:58 UTC
README
一个用于 Laravel 简单联系人管理和存储的包。
非常适合用于电子商务、CRM 或其他需要进行联系人管理的系统。
这并不是一个完整的 CRM 系统,但目标是能够将联系人列表与独立的 CRM 系统同步。
目标
存储以下内容
- 联系人
- 公司
- 地址
与外部 CRM 系统接口。目标系统包括任何提供合理 API 的系统,首先是开源系统。我们计划集成的开源 CRM 系统列表如下:Top 10 Open Source CRM Systems。我们计划接口的其他系统包括
安装
将这些行添加到您的 composer.json 文件中
"require": {
"delatbabel/contacts": "~1.0"
},
完成上述操作后,运行 composer update 命令
composer update
或者只需运行以下命令
composer require delatbabel/contacts
注册服务提供者
composer update 完成后,将此行添加到您的 config/app.php 文件中的 'providers' 数组中
Delatbabel\Contacts\ContactsServiceProvider::class,
整合并运行迁移和种子文件
最后,整合并运行迁移脚本以创建和填充数据库表,如下所示
php artisan vendor:publish --force php artisan migrate php artisan db:seed
我已经包含了一个 ContactSeeder,它按照正确的顺序整合了类别、配置和键列表的种子文件。您可以使用这个文件或自行选择。要使用它,请将 ContactSeeder 包含到您的常规 DatabaseSeeder 类或用于填充数据库的其他类中。
我还包含了一个 ContactSampleSeeder,它将一些示例公司和个人的联系人填充到联系人数据库中。您可以查看这个文件来创建自己的种子文件,或者可能从 CSV 文件或 CRM 等中拉取数据。由您决定。
使用示例
通用使用示例:TODO,尽管请参阅 ContactSampleSeeder 以获取创建地址、公司和联系人的简单示例。
地理编码
有关更多信息,请参阅 Google 上的 地理编码简介。
地理编码功能已大部分实现。以下是 geocoder 的示例 URL
https://maps.google.com/maps/api/geocode/json?address=10+Downing+Street,London,United+Kingdom
geocoder 在 Address 模型类中工作,可以自动使用 Google API 从部分地址中获取地址组件。
您可以通过将配置变量 contacts.geocode.enable 设置为 false 来禁用 geocoder。
您可以将 geocoder 配置为使用 API 密钥(这意味着您可以超过每天 2500 次请求的限制),通过将 contacts.geocode.use_api_key 设置为 true,并设置 contacts.geocode.api_key 为 API 密钥。请参阅 ContactConfigSeeder 以了解如何设置这些配置变量(在数据库中的 configs 表中)。
使用限制
API 密钥
- https://developers.google.com/maps/documentation/geocoding/get-api-key
- https://support.google.com/cloud/answer/6310037
地理编码每天免费提供 2500 次请求,如果需要超过此限制,则需要获取 API 密钥。
TODO
Zoho 集成
构建与 Zoho 的集成。这似乎有一个易于使用的 API。
示例
- POST URL https://crm.zoho.com/crm/private/json/Leads/getRecords
- POST 数据 authtoken = (从 Zoho 获取 authtoken),scope = crmapi
- 响应为 JSON 结构 -- 使用 Postman 检查。
任务
- 构建通用的调用接口。
- 构建 Zoho CRM API 字段与我们的字段的映射。
- 构建上传和下载每种记录类型的服务。
阅读此内容
- Zoho CRM 模块和字段 -- 注意,在 Zoho 中,有“模块”的概念,例如 Leads、Accounts、Contacts、Potentials 等,用于不同类型的联系(这在 CRM 系统中很常见),而在这个包中,我们有一个包含不同联系类别的单一联系表。例如,在样本数据中,我们将 UK PM 办公室和 David Cameron 设置为“潜在客户”联系类型。此外,Zoho 混合公司和联系数据,而我们将其保存在不同的表中。
这些链接在登录到 Zoho CRM 时有效
Salesforce.com 集成
- 与上面类似的任务。
- Force.com REST API
其他
其他集成可能会根据需求进行,但最可能的是
- SugarCRM
- vTiger
- CiviCRM
- X2CRM -- 由 John Roberts 创建,他在离开 SugarCRM 后创建了它。
更多功能
在不跨越完整 CRM 的界限的情况下,这是我认为我们应该实施的内容
- 联系、公司和地址去重。
- i18n,包括更好的姓名处理和姓名排序生成(“姓氏,名字”或“名字 姓氏”或“姓氏 van der,名字”)(进行中)。
架构
这已从一个旧 Laravel 3 包移植过来,该包处理电子商务系统内的联系管理。早期的想法是将它变成一个完整的 CRM 系统,但已经有几个好的 CRM 系统,我觉得没有必要重新发明轮子。
然而,作为任何电子商务网站的基本起点,联系和客户管理是一个需求。能够从电子商务系统同步数据到 CRM 系统将是一个优势。
数据结构
基本表
- addresses
- companies
- contacts
- crms
关系
- companies 多对多 addresses
- contacts 多对多 addresses
- companies 1对多 contacts
- contacts 多对多 categories(来自 delatbabel/nestedcategories)
- companies 多对多 categories
在 addresses 上的多对多枢纽表有 start_date 和 end_date 字段,以便在需要时存储过去和当前的地址。
依赖关系
这些由 composer 自动处理
- Applog 用于审计和将应用程序日志记录到数据库。
- NestedCategories 用于联系和公司类别。
- Keylists 用于键/值列表存储,例如地址类型和状态。
- NestedCategories 用于联系和公司类别。
- SiteConfig 用于数据库支持的配置,例如地理位置密钥。
- Eloquent ORM 用于数据库访问。