A Fortune 500 company that sells document technology products in more than 160 countries
Our end client wanted to fully automate the handling of all order, tax, shipping, freight, and catalog inventory data, as well as all external communications. Up and Running utilized its more than decade of experience in Magento development to deliver just that, while working closely together with the company’s technical team.
The company is a global corporation that sells print and digital document solutions, from printers to workflow software and office software, and has been around for over a century. The integration we completed together with the company resulted in its business process management software automating many back office functions and ultimately made it easier for its clients to place product orders, saving the company time and reducing costs.
The integration is implemented using a Partner REST API and utilizes OAuth 2.0 to securely authenticate and authorize access to the Partner API to improve the end user experience.
Thus far, the integration resulted in the following:
- It led to Magento 2’s platform fully being able to communicate with the company’s ERP solution.
- The administrator can now handle all order, tax, shipping, freight and catalog inventory data externally, and communicate with Magento through the Partner REST API.
- OAuth 2.0 is utilized to securely authenticate and authorize access to the Partner API, which is accomplished by a token service provided based on a basic authentication scheme using a client ID and secret.
- A health check service is now in place to make sure each individual endpoint’s functionality is verified.
The Magento 2 integration is built with the following modules:
- Lib-cdw:
The purpose of this library is to implement the Partner REST API. Within this module, we built the company’s requested models for each entity such as Order, Freight, HealthCheck, Recycling, and Tax. Each model was custom built and based on the Zend_Http_Client and -_Request provided by Magento’s library. - Module-cdw:
The purpose of this module is to create the base functionality needed for the Partner API. This module also provides the following functionality:- A necessary configuration section within Magento’s administrator to handle specific configuration data such as:
- Enable / Disable
- Debug mode
- Sandbox mode
- Client ID
- Client Secret
- Endpoint URLs for each service
- Order Create and Detail models to place and get Order Data from and to the client’s orders endpoint.
- Magento’s specific cache type for the client’s token data.
- Cron jobs definitions to get new token data.
- Logger Handler model to standardize functionality across all modules.
- A necessary configuration section within Magento’s administrator to handle specific configuration data such as:
- Module-cdw-freight:
This module is meant to handle all shipping methods, rates, and free shipping promotions based on Magento’s quote. It provides specific functionality to handle all freight requests and responses to API using the freight URL endpoint. - Module-cdw-gateway:
- The purpose of this module is to integrate the Order Create API as a payment gateway in Magento. It is dependent on the base module as well as the recycling, tax, and freight modules.
- This module adds a new column to the `sales_order` for the order number (`erp_order_number`). However, this module does rely on data that was created both during the original product import and other dependent modules.
- Errors from the API are now directly delivered to the customer and get pushed to the Magento notification system.
- Module-cdw-inventory:
This module is composed of a few different parts for syncing and displaying product inventory status from the client to be shown on the Magento front end. It implements a specific SFTP class to retrieve files and save to a desired location based on custom admin configuration settings. - Module-cdw-recycling:
This module is meant to handle recycling fees used for Canadian addresses. The module includes the following functionality:- It uses the Library to make calls to the Recycling Details API.
- It adds an "Eco Fee" line item to the totals summary.
- It adds an "Eco Fee" line item to each cart item total. The individual cart item Eco Fees add up to the Eco Fee in the totals summary section.
- Module-cdw-tax:
This module handles all requests and responses for the Tax API. The Tax module includes the following:- It uses the Library to make calls to the Tax Details API.
- It adds tax costs, which vary by province in Canada, as line items to the totals summary. Each tax is displayed as a separate line item where required.
We are happy to have provided ongoing support and maintenance to ensure that the company’s new Magento 2 integration continues to work smoothly. Magento is a powerful solution, but its complexity does demand talented and experienced developers in order to be implemented correctly. Fortunately, we have been working with Magento for over a decade, since its predecessor framework (osCommerce). Apart from having 10+ years of hands-on experience as a Magento development company, all of our developers are passionate and skilled in working with many different versions of Magento, including the most current versions. Additionally, our e-commerce offerings include providing other mainstream e-commerce services currently in demand, such as Shopify.