Being a distributor and dealing with re-sellers requires you to keep all information concerning the business tracked at one place. After a considerable research we built a CRM system with all important functionality for business conduction. It was developed to let retail clients, resellers and support representatives manage all transactions easily on one platform. It is possible to receive orders from thousands of re-sellers and operate with hundreds of retail vendors easily.
The CRM development, which we describe here, is developed specially for wine industry, but it can be customized for your business sphere as well.
Make use of CRM for your business! https://mobilunity.com/portfolio/wine-crm/
KLARNA - Language Models and Knowledge Graphs: A Systems Approach
Business Tracking CRM - Development Solution
1. XRM SYSTEM DEVELOPMENT
FOR RETAIL BUSINESS
A story of custom development & continued
support of a complex CRM system
2. “It was an exciting and challenging
experience of developing a huge
system step by step. We never stop
and keep improving it even now. We
are proud of the product we have
delivered. ”
Igor
Project Manager
Mobilunity.com
One of our largest backend projects with continued
support, became XRM development for a retail client,
who receives orders from thousands of resellers and
operates with hundreds of retail vendors.
Mobilunity’s experts in PHP Yii framework created an
extended CRM system (XRM) with larger, complex
modules, that allows businesses to control their
processes better, and keep all of their work in one
place.
Project Requirements
Unify a large number of
eCommerce websites, each with a
unique design
Integrate data from their CRM into
a number of WordPress websites
Provide instant status updates to
clients via their Members Area on
their purchase delivery
Enable client-retail vendor, retail
vendor-support and client-support
communication
Track KPIs of retail vendors and
Support Agents
Provide suggestions on the best
vendor for each client
Gather all financial data including
client transactions and vendor
finances
Keep the system secure and
coherent
PROBLEM
Our Project Manager analysed the drawbacks of the
CRM systems and SAAS solutions the client was
using at that moment. The analysis revealed a list of
issues that the system should be able to handle:
High load on the system - over 50,000 clients,
1,500 retail vendors and a 30-employee Customer
Support Team operating 24x7
Dependence on the dedicated server of a specific
provider
The need of Customer Support team performance
optimization through enabling AI algorithms
Presence of different sales sources, including:
email chats, phone calls, quote and contact forms
Accepting transactions on order purchases from
different billings including PayPal, Skrill, Bluesnap
and 2checkout
Presence of over 1000 reseller websites, which
should send and receive data from the CRM
BUSINESS ANALYSIS
1
Project Team
Project Manager
Designer
3 Backend PHP Developers
2 Frontend Developers
2 QA Engineers
3. Since XRM solutions available on the market didn’t
satisfy all needs of the client, the team decided to
proceed with custom CRM development. The CRM
Project Manager decided to keep the development
process in versions, planning releases with new features
monthly as there was a large number of users interacting
with new updates.
SERVICES PROVIDED
TECHNOLOGIES USED
2
DEVELOPMENT
For the initial MVP our team used a ready-made template
for CRM systems and slightly customized it to meet the
client’s color preferences. Our designers created custom
ecommerce icons and basic color schemes in
PhotoShop, not changing the structure of the theme.
This allowed us to significantly minimize expenses on
design and further HTML coding.
DESIGN
4. The retail client had a large database of resellers,
vendors and clients, therefore every minute, in which the
system was down, would result in a loss of thousands of
dollars. To avoid issues with possible DDOS attacks on
the hosting, failures of VPS service providers and similar
server issues, our Network Specialist developed a cluster,
uniting VPS servers from 3 different providers.
HOSTING AND
INFRASTRUCTURE
CLUSTER
CRM Proxy
Provider 1
Provider 1 Provider 2
Provider 2Provider 1
Provider 3
Provider 3
Provider 3
XX.XX.XXX.XXX
XX.XX.XXX.XXX
XX.XX.XXX.XXX
Provider 1
Sendgrid and
ElastiEmail API
Monitoring
XX.XX.XXX.XXX
XX.XX.XXX.XXX
XX.XX.XXX.XXX
XX.XX.XXX.XXX
XX.XX.XXX.XXX
XX.XX.XXX.XXX
Provider 2
XX.XX.XXX.XXX
CRM Web Server CRM Web Server
CRM DB CRM DB
CRM Proxy
RabbitMQ
CRM DB backup
3
5. Our team of Yii developers were tasked with solving a
number of issues while developing the CRM including,
but not limited to: creation of user profiles; development
of the order features and fields in Yii; implementation of
Ajax on all forms; integration of payment gateways with
instant payment notifications through PayPal API, Skrill
API, 2checkout API and Bluesnap API; integration of
system logging through logentries service to monitor
every action of the user; development of a standalone API
for the CRM, which enabled integration of all order fields
into the Members Area on the reseller’s websites etc.
The Frontend of the project covered the PHP
development of a simple form builder with all fields and
values essential for the client’s business.
Once a client placed an order on the reseller’s website,
the client received all login details via email, and was
able to track their order in the Members Area located on
the reseller’s WordPress website.
Every release of the new CRM version was thoroughly
tested by our QA team at the staging environment. The
System was tested in the most commonly used
browsers by clients (according to Google Analytics data
provided by the client): Chrome 49, 50, 51, Internet
Explorer 9, 10, 11, Safari 9.0, 9.1, 9.1.1, Firefox 45, 46, 47.
Full CRM system development was finalized in August
2015. After that the project was considered as
completed and our team worked only on its further
support and CRM optimization according to the
requests from the client and the data we received from
Nagios monitoring and logentries.
BACKEND
DEVELOPMENT
FRONTEND
DEVELOPMENT
TESTING & BUGFIX
TECHNICAL
SUPPORT
4
6. Development of the XRM system in Yii faced common issues particular to large systems
with thousands of users. Our team was able to identify and solve such problems:
5
To be able to serve over 50,000 users on one website we
decided initially that the solution was to have a
dedicated virtual server. With the number of users
increasing daily, the system wasn’t able to serve all
requests quickly and caused a massive lag (over 3
seconds) in every page load speed. Our database experts
optimized the requests by reconstructing the system
logic to avoid PostgreSQL and MySQL mix leaving solely
MySQL requests and improving database indexing.
SOLUTIONS
1. SLOW SYSTEM
LOADING
Elasticsearch was used in the system as a logger of all
actions, but with the growing number of users, every
request on its side caused serious resource overuse. The
problem was solved by separating elasticsearch to a
separate dedicated server.
2. ELASTICSEARCH
RESOURCES OVERUSE
To get rid of possible dependencies on VPS service
providers our network expert suggested an architecture
with 2 verticals and a constantly working mirror of the
CRM. During our recent monitors we also decreased
latency of server synchronization to avoid hitting CPU
and RAM resource limits.
3. SERVER DOWNTIME
To avoid dependency on the third-party emailing service
our developers plugged the API of a secondary provider -
so we got SendGrid and ElasticEmail backing each other
up - and added a “switch” functionality for Support
Agents for the cases when they were notified about an
outage in advance. Since these SMTP services are
provided by completely different companies, we were
able to ensure 100% email services uptime.
4. DOWNTIMES OF
THE 3RD PARTY SMTP
SERVICE
7. Note: due to the NDA signed with the client, industry and specifics of the business model were changed in this
case study. All technical specifications, problems and solutions presented below are real.
Since the CRM system works with the files uploaded by
both vendors and clients, there is always a risk of
malware to be uploaded. To prevent infection our
developers specifically limited types of files allowed for
upload, disabled execution of codes received outside,
and enabled internal malware scanning algorithms.
Mobilunity was thrilled to assist and found the best possible solution in PHP
application development by building a solid system using Yii framework, that helped
the client more effectively manage their business.
Let’s develop a custom CRM system for your business and increase its efficiency!
5. VIRUSES AND
MALICIOUS CODES
6
https://mobilunity.com sales@mobilunity.com