As black friday 2020 rolled around and COVID-19 restrictions and concerns about in-person interactions were still prevalent our stores (at this point still unsettled on a professional eCommerce solution) decided to showcase our black friday specials online.
As a fan of open-source software, and with little budget for requisitioning what would likely be a temporary solution, I decided to embark on getting things setup on PrestaShop. Turns out the then-current (1.7) release of PrestaShop was missing some key functionality. An earlier version had been forked to ThirtyBees ecommerce and included some multi-store and warehouse stock management features, and their desire to keep the platform feature-complete and more open was appealing.
My first steps were to replicate some functionality we'd previously seen on demo sites by other companies, the most important one was going to be the ability to sync product information from Do It Best's catalog which is about 80,000 items. To this end I dug around in the developer dashboard for Do It Best's DataXchange platform (a suite of API and EDI resources). Getting the initial load into the system involved parsing a ~350MB item detail and ~200MB taxonomy (Dept./Category) EDI file in a JSON format. I then used a combination of web scraping and API calls to an image getter to grab product images for the site.
With all the initial data loaded up, I moved on to creating a constant feed of data into the platform for monitoring availability at our local warehouse. To do this I created a module for ThirtyBees that takes EDI and API credentials and runs a cron job at set intervals to change product data.
It's pretty cool, and the end result appears to be working. Cool!
We immediately deactivated all 80,000 of those items, forcing me to sell first 18 and then only 8 items for Black Friday. These items were available in our store rather than shipped from the Warehouse, so I also created a trash plugin that scraped data via my Epicor API.
We didn't sell anything all week long, and my work largely went to waste. I did get a better grasp on the use of classes though (a knowledge long-buried in the "Intro to Java" part of my brain). I ended up using those techniques in a SmartSheet integration for our QuoteTool quote signoff software.
Anyways, I made the Do It Best integration source available on GitHub in case someone else comes along with a desire to integrate Do It Best and ThirtyBees/Prestashop. Check it out: