Business Tracking CRM - Development Solution

7
XRM SYSTEM DEVELOPMENT FOR RETAIL BUSINESS A story of custom development & continued support of a complex CRM system

Transcript of Business Tracking CRM - Development Solution

Page 1: Business Tracking CRM - Development Solution

XRM SYSTEM DEVELOPMENTFOR RETAIL BUSINESS

A story of custom development & continued

support of a complex CRM system

Page 2: Business Tracking CRM - Development Solution

“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. ”

IgorProject 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 designIntegrate data from their CRM into a number of WordPress websitesProvide instant status updates to clients via their Members Area on their purchase deliveryEnable client-retail vendor, retail vendor-support and client-support communicationTrack KPIs of retail vendors and Support Agents Provide suggestions on the best vendor for each clientGather all financial data including client transactions and vendor financesKeep 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 ManagerDesigner3 Backend PHP Developers2 Frontend Developers2 QA Engineers

Page 3: Business Tracking CRM - Development Solution

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

Page 4: Business Tracking CRM - Development Solution

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 1Sendgrid 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 2XX.XX.XXX.XXX

CRM Web Server CRM Web Server

CRM DB CRM DB

CRM Proxy

RabbitMQ

CRM DB backup

3

Page 5: Business Tracking CRM - Development Solution

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

Page 6: Business Tracking CRM - Development Solution

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

Page 7: Business Tracking CRM - Development Solution

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 [email protected]