Package Data | |
---|---|
Maintainer Username: | delatbabel |
Maintainer Contact: | del@babel.com.au (Del) |
Package Create Date: | 2016-02-18 |
Package Last Update: | 2017-11-22 |
Home Page: | |
Language: | HTML |
License: | MIT |
Last Refreshed: | 2024-12-25 15:04:41 |
Package Statistics | |
---|---|
Total Downloads: | 943 |
Monthly Downloads: | 0 |
Daily Downloads: | 0 |
Total Stars: | 9 |
Total Watchers: | 9 |
Total Forks: | 4 |
Total Open Issues: | 2 |
A package to do simple contact management and storage for Laravel.
Ideal for use for e-commerce, CRM or other systems where contact management needs to be done.
This is not a full CRM system, but the idea is to be able to synchronise the contact list with a separate CRM system.
Storage of:
Interface with external CRM systems. Target systems include anything that provides a reasonable API, starting with the open source systems. There is a list of Top 10 Open Source CRM Systems that we plan to integrate to. Other systems that have an API that we plan interfacing to include:
Add these lines to your composer.json file:
"require": {
"delatbabel/contacts": "~1.0"
},
Once that is done, run the composer update command:
composer update
Alternatively just run this:
composer require delatbabel/contacts
After composer update completes, add this line to your config/app.php file in the 'providers' array:
Delatbabel\Contacts\ContactsServiceProvider::class,
Finally, incorporate and run the migration scripts to create and seed the database tables as follows:
php artisan vendor:publish --force
php artisan migrate
php artisan db:seed
I have included a ContactSeeder which incorporates seeders for categories, config and keylists in the correct order. You can use this or not at your leisure. To use it, include ContactSeeder into your normal DatabaseSeeder class or whatever else you use to seed your database.
I have also included a ContactSampleSeeder which will seed the contacts database with a few sample companies (organisations) and individuals. You can take a look at this to create your own seeder, or maybe you want to seed by pulling data from a CSV file or importing from a CRM or something. It's up to you.
General usage example: TODO, although see the ContactSampleSeeder for simple examples for creating addresses, companies and contacts.
See the Geocoding Intro on Google for more information.
Geocoding is mostly implemented. Here is a sample URL for the geocoder:
https://maps.google.com/maps/api/geocode/json?address=10+Downing+Street,London,United+Kingdom
The geocoder works within the Address model class to automatically use the Google API to get the components of the address from a partial address.
You can disable the geocoder by setting the config variable contacts.geocode.enable to false.
You can set up the geocoder to use an API key (which means you can go over the limit of 2500 requests per day) by setting contacts.geocode.use_api_key to true, and setting contacts.geocode.api_key to the API key. See the ContactConfigSeeder for a seeder that sets these config variables in the database (in the configs table).
Usage limits:
API Keys:
Geocoding is free up to 2500 requests per day, if you need to go over that limit per server IP address then you need to obtain an API key.
Build integraton with Zoho. This seems to have a simple to use API.
example:
Tasks:
Read this:
These links are active when logged into Zoho CRM:
Other integrations will probably happen on demand but the top ones would probably be:
Without crossing the line into full CRM, this is what I think we should be implementing:
This has been ported across from an old Laravel 3 package that handled contact management inside an e-commerce system. An early idea was to turn this into a fully fledged CRM system, but there are already several good CRM systems out there and I felt no need to re-invent the wheel.
However as a basic starting point for any e-commerce site, contact and customer management is a requirement. Being able to synchronise data from the e-commerce system to the CRM system would be an advantage.
Base Tables:
Relations:
The many:many pivot tables on addresses have start_date and end_date fields so that past and current addresses can be stored if required.
These are automatically handled by composer: