Shopify Integration
Problem
Our Solution
Shopify Integration

Project Walkthrough
The foundation of the Shopify solution is the middleware acting as the intermediary between the Shopify platform and the ByDesign platform. By integrating the ByDesign platform with Shopify, we can utilize the core, constantly evolving e-commerce functionalities of Shopify: CMS, Design Templates, Plugins, Shop and Checkout Experience. While also accessing all core ByDesign functionality: Commission Engine, Genealogy, Order Calculation and Order Management, Party Planning, Point System and Promotion Engine Specifically Built for Network Marketing.
The data flow in this middleware is two-way and acts so the SKU structure, order history, genealogy, shipping and tax information are consumed by Shopify and displayed for easy Customer experience and transparency. At the same time, customer interactions that happen on the Shopify frontend, including Orders, Promotions, or Account control are handled by the API and sent back to ByDesign. Finally, payments are sent to, processed and validated through ByDesign before the Order is completed on Shopify.
For the shop, all item information, including, item name, pricing, images, and text are all synced from ByDesign, directly into the Shopify shop. Utilizing the Shopify shop and the middleware, the shop automatically displays any item categories or variants, creates specific displays for the items, and can leverage functionalities like product reviews and social sharing. Because of the unique business rules of network marketing and the functionalities of the ByDesign platform, the standard Shopify checkout process proved too rigid for us to utilize. Instead we had to build our custom checkout that sat on the Shopify platform, while also allowing for the customer to use ByDesign party planning system, point system and promo engine.
Finally, additional changes were made to the Shopify website so that the unique business needs of the network marketing were available on the frontend website. For the replicated site, we built a custom functionality that would allow for the necessary personal distributor information to be shown for each unique replicated site. We also built a customer dashboard that allows for the customer to see their full order history and manage their account status. Lastly, we built a customer enrollment form that allows for any new distributors to enroll through the Shopify website.


Technologies
When we started the project, our main focus technology-wise was to select technology that will allow us rapid prototyping and development of REST API server, but which could easily be connected to other API systems. At first, we needed to connect to REST API, SOAP API, and Graph API, which is why we decided to use Node.JS with Express.JS as a framework.
We used node.js to build a server side application that will work as a bridge between Shopify and ByDesign it will on one side listen for AJAX or webhook requests from Shopify and use Rest or SOAP API to sync that data to ByDesign, and on the other side it will use Shopify admin API to update information about available products.
We used liquid to extend Shopify checkout and add new functionalities that ByDesign system support.
We used JavaScript to create a plugin that will help us send a request to our server and that will also parse information we get back from server to form that will be useful to customers.