Magento Extension Development: Integration With Rakuten, Trademe & NewEgg
It is quite common for E-commerce startups to initiate their online ventures from 3rd party marketplaces and then launching a standalone E-commerce store of their own. Marketplaces like Amazon, eBay, Rakuten, Trademe, and NewEgg are all very reputed and capable platforms that allow merchants to sign up and start selling in no time.
However, if you have planned to launch an E-commerce store of your own in order to expand sales, then it doesn’t mean that you need to stop operations on these marketplaces.
The expert Magento developers at The Brihaspati Infotech recently had an opportunity to assist a client who ended up in a similar predicament.
The task: To setup Magento integration with three different marketplaces, i.e: Rakuten, Trademe, and Newegg such that basic marketplace data viz: Product listing, Order listing, and Shipping information can be synchronized across all four channels.
The challenge: Depending upon the CMS you have chosen for your eCommerce store, plugins or extensions may or may not be available that can allow you to manage these marketplaces from your CMS itself. In our use case, Magento supported an extension for Newegg, but there weren’t any effective extensions available on the marketplace to integrate Rakuten and Trademe with Magento.
The solution: For instances where such plugins and extensions are not available, you can still hire e-commerce developer to create custom extensions for your CMS utilizing web services of these marketplaces. By utilizing Trademe and Rakuten’s respective API’s we were able to integrate
With this article, we share our experiences in our trademark fashion of Magento extension development for Rakuten and Trademe as well as configuring the NewEgg marketplace extension from CEDcommerce.
Configuring NewEgg Magento Integration Extension
If you have also selected NewEgg Magento integration extension from CedCommerce, then you can review their step by step guide to configure the extension in your Magento store and integrate your NewEgg marketplace account.
Otherwise, following is a quick summary of the extension configuration process:
Step 1: Setting up the Extension Configuration:
The extension configuration begins with setting up the API details in the Magento admin section. Other key fields that need to be configured in order to activate the extension include:
- a. Email ID where order notifications will come.
- b. Order Prefix “NEWEGG” that will be shown with Magento orders to distinguish with other orders.
- c. Enable all required syncing CRONs.
- d. You can also set up price variation to be shown in the Newegg marketplace based on the product price defined in Magento. This can be done by either defining a fixed price to Newegg products, a percentage price or a price difference between Newegg and Magento
Step 2: Managing Product Listing
- a. The products that are synchronized between Magento and NewEgg are available as NewEgg items feed in your Magento admin panel. From here you can check the status of the synchronization or delete the feed as required.
- b. To make sure that the products information is synchronized between both platforms with the same format, it is essential to map the Product categories and Product attributes of NewEgg and Magento database.
Both these options are available within the Newegg integration extension and can be accomplished as shown in the screenshot below:
- c. Once the mapping operations are done, the final step to synchronize the inventory is to upload the products from Magento into NewEgg. This option is available in the Newegg Manage products >> Upload product option. This table will list all the products in our Magento store and the admin can select which product he is looking to upload in Newegg. Every time he uploads a batch of products, a Product feed is created.
The FeedId for each upload is usually generated after 10 mins after which the Products are uploaded in the Newegg seller account.
Step 3: Managing Newegg Orders
All the orders received in Newegg are automatically generated in Magento and are visible in Newegg > Newegg Orders > View Newegg orders.
Step 4: Managing Shipment for NewEgg Orders
With the Newegg extensions, Shipment can be managed from right within the Magento admin panel. Every time you ship the order from Magento, it will automatically change the status of shipment in Newegg.
Otherwise, you can manually select the shipping method in Magento for Newegg for each product and mention the shipping details for the order. These details will then be synchronized with Newegg.
Magento Extension development For Rakuten & Trademe
The next phase included custom Magento extension development to integrate Rakuten and Trademe marketplaces with Magento. To facilitate ease of use and a minimum learning curve for the store admin, our approach was to come up with extensions similar to Newegg for both these marketplaces.
This means that for Rakuten and Trademe, the store admin is able to synchronize the Product inventory, Orders and Shipping information with these channels.
This was done utilizing REST APIs provided by both Rakuten and Trademe. Both these web services provide a list of functions to fetch their inventory, order, sales and accounting data in XML format. By creating custom Magento extensions to fetch the required data using predefined cron jobs, we were able to set up similar functionality for both these extensions.
While the key features of our custom extensions such as Product upload and shipping remained exactly the same, few new features we introduced for better store operations included:
Option to Accept or Reject Sales
Our custom extension for both Rakuten and Trademe provided an option to the store admin to accept or reject the orders received in the specific marketplaces.
Option to Distinguish Orders using Prefix
Each order listed in the Magento order listing is distinguished based on a Prefix that can be defined in the extension configuration section.
Challenges We Faced
While carrying out Magento extension development for multiple marketplaces in a single Magento store, some challenges are bound to come. Couple of challenges that we faced during the development phase included
- Varying product listing format on different marketplaces
On studying the documentation of both Trademe and Rakuten marketplaces, we identified that there were some major differences between the product format accepted by these platforms.
For instance, Trademe had a 200 characters limitation on the product description, or Rakuten doesn’t allow the use of HTML tags in the product description and we were using <ul> <li> tags in some instances.
These differences directly affected the code reusability for the extensions as we had to manually make changes for each instance.
- API data retrieval limit
Another setback that we faced during the implementation of application logic was when we discovered that Rakuten had a limit of 2000 calls per 30 minutes and 15 files per 30 minutes.
For instances when there is bulk data need to be synchronized, the number of calls per half an hour caused an issue in the synchronization process.
In order to fix this, we created an overhead logic that monitored the data calls being made to the API. Everytime products synchronization command was triggered, we saved the products in a temporary database and published them in data sets such that the defined limit is not surpassed.
Magento extension development that utilizes third-party API’s brings a lot of learning curves for a developer as well. This project did just that and cemented our beliefs in the importance of writing modular and reusable code.
As both Rakuten and Trademe extensions were supposed designed with the same concept, we created a core structure of the extension in a modular format, i.e creating individual modules or handling Product listing, Sales and Shipping.
By doing this, we were able to utilize the same functions as sub-functions while creating the second extension. Whenever there was a change needed, we didn’t have to write the code from scratch and can implement changes by modifying the sub-functions.
What’s next? The team along with the client are gearing up to upgrade the Magento store to Magento 2, but that can be a topic of discussion for the future.
So what are your thoughts on custom Magento extension development for 3rd party marketplace integration and do you have any queries regarding the integration we performed? Contact us today with your comments and queries. We are always open to a discussion.