Note: out demo only showed it working the first time without subsequent calls as it was late and eBay has a 5 postings per month that limit. It works 100% and we are happy to live demo
Inspiration
The Ecommerce market is growing at an incredible rate; by 2023 it's expected to reach a value of 6.5 trillion! A huge sector of this market consists of independent retailers who build online stores through platforms like Shopify, which alone, has been used to create of 3.3 million stores. Unfortunately, many of these stores struggle to survive.. Wether it's due to technical complications or customer outreach many stores fails to live past their first year.
On the opposite side of the spectrum, the Ecommerce market is also home to a large echo system of large thriving online markets like eBay. The business are constantly looking to increase the number of good sold on their site and streamline the on-boarding of buys and sellers alike.
eBae offers a solution that benefits both parties; allowing independent stores to effortless onboard their product to eBay. In other words, i's the best way to eBay!
What it does
It allows e shop owners with the extension to quickly and easily add the products from their website to eBay by right clicking and add to eBay! An online store creator installs eBae by simply adding an extension onto their browser. To add a product to eBay, the user must simply right click on the desired product and confirm the details!
How we built it
eBae is broken down into three primary components; the extension, the server, and the frontend.
The extension is build using React, Redux, Chrome Extension Fundamentals (Messaging API, ContextMenu, etc)
The server is build using Python, Flask, eBay-API, Google Cloud
The frontend is built using React, Redux, and Google Maps Api
Once added to the browser, the extension injects functionality into the website. When a user first adds the extension, eBae will take the user through the eBay authentication flow. It consists of the following steps:
- extension redirects user to eBay auth page
- eBay sends user consent token to server
- server uses eBay's API to exchange user consent token for user access token
- server then redirects user to frontend
- Frontend is used to collect user data necessary for eBay's product creation flow
- Frontend send data to server for storage and then redirects user back to their store (Although this sounds like a lot, for the user it's just a few clicks!)
Back in their online store, users are now able to right click on the image of one of their products, and select "add to eBay" from the menu. eBae scrapes the website to extract out that particular products information. It then creates and populates a form with the product data so the user can edit/approve the info. Once approved, the extension will send interact with the eBay API (create item, create offer, publish offer) to add the item directly into eBay!
Challenges we ran into
Although there were quite a few hiccups in our journey the 3 most notable were..
- One of our team members was using Javascript (and React!) for the first time.
- We had a bit of trouble interacting with the eBay API, but were able to overcome them with help from the team of volunteers!
- The chrome extension also presented a few challenges (ensuring it scraped information correctly off of different websites & was able to override external css)
Accomplishments that I'm proud of
Seeing the final product was very exciting! We really wanted to push ourselves to build out the full integration and avoid any "short-cuts".
What we learned
Very related to the challenges we faces; Javascript!, the challenge of maintaining an API, and complex chrome extension interactions.
What's next for eBae
- Build out the frontend to help create a simplified product management tool for the online store owners.
- Enable users to better leverage the fine tuning capabilities of eBay market place (i.e. detailed shipping options)
Built With
- ebay-api
- google-cloud
- google-maps
- material-ui
- python
- react
- redux
Log in or sign up for Devpost to join the conversation.