Business Tracking CRM: Development Solution

Page 1

XRM SYSTEM DEVELOPMENT

FOR RETAIL BUSINESS A story of custom development & continued support of a complex CRM system


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

Project Team Project Manager Designer 3 Backend PHP Developers 2 Frontend Developers 2 QA Engineers

“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

PROBLEM 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.

BUSINESS ANALYSIS 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

1


TECHNOLOGIES USED

SERVICES PROVIDED DEVELOPMENT

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.

DESIGN

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.

2


HOSTING AND INFRASTRUCTURE

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.

CLUSTER

XX.XX.XXX.XXX Provider 1

XX.XX.XXX.XXX Provider 3

CRM Proxy

CRM Proxy

XX.XX.XXX.XXX Provider 1

XX.XX.XXX.XXX Provider 2

XX.XX.XXX.XXX Provider 3

CRM Web Server

RabbitMQ

CRM Web Server

XX.XX.XXX.XXX Provider 1

XX.XX.XXX.XXX Provider 2

XX.XX.XXX.XXX Provider 3

CRM DB

CRM DB backup

CRM DB

XX.XX.XXX.XXX Provider 1 Sendgrid and ElastiEmail API

XX.XX.XXX.XXX Provider 2 Monitoring

3


FRONTEND DEVELOPMENT

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.

BACKEND DEVELOPMENT

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.

TESTING & BUGFIX

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.

TECHNICAL SUPPORT

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.

4


SOLUTIONS 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:

1. SLOW SYSTEM LOADING

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.

2. ELASTICSEARCH RESOURCES OVERUSE

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.

3. SERVER DOWNTIME

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.

4. DOWNTIMES OF THE 3RD PARTY SMTP SERVICE

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. 5


5. VIRUSES AND MALICIOUS CODES

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.

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.

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!

https://mobilunity.com

sales@mobilunity.com 6


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.