Backend Development
There is no one-size-fits-all for our clients. We tailor technology solutions that align today’s requirements with tomorrow’s opportunities.
Shopify merchants are laser-focused on their frontend store experience and for good reason; this is the first time a customer will interact with your brand. However, growing businesses support many more systems than just Shopify, and finding professional help for them can be difficult.
This is where Ambaum comes in. We not only can serve as your Fractional CFO, we can help build the Shopify storefront features, order routing applications, product data automation, and connectors you need to scale your business. Ambaum can also help you re-platform from your old eCommerce store by migrating all your products, order, and customer information. We can also connect external systems to Shopify- if it’s a messy manual process, let us take a look!
Shopify Storefront Feature Apps
Shopify has a robust app store that will allow you to extend the functionality of your store to add many rich features. However, there are certain instances where you will want very custom functionality on your site and the way to handle that is by building a Shopify storefront custom app just for your brand.
Shopify and Salesforce Order Connector App
Solv Wellness approached Ambaum with a problem; their customer service reps (CSRs) were unable to help online customers because they lacked basic information about each customer.
When a CSR clicks on a button in Salesforce, the user ID and referral ID (filled in manually) are passed to a custom order form app. The CSR places the order in the custom app order form which passes along Salesforce data and additional custom fields, special order attributes that Salesforce picks up. In storefront checkout, the special order attributes that are also collected from the customer. The two primary fields are: referral source and optional referral name. This was originally created as a checkout.liquid customization, since this is being deprecated it will be rewritten as checkout UI extension. The custom order form app was written using Shopify Polaris (a set of React components).
Shipping Insurance App
This app was created to offer shipping insurance for customers purchasing a glass breakable product. As a customer, if you are worried about purchasing a glass item you can purchase insurance and not have to worry if your product breaks in transit. For this particular app, when you add a glass product to the cart, you will see a Shopify line item product added automatically to the cart for your insurance.
When the product is added to cart, if the glass protection is selected, an additional Glass Protect item is added to cart, with line item properties indicating which product is covered. We created this by updating the theme. When we see a new order coming in that has Glass Protect, each of the line items creates a new discount code that is specific to the product and the customer for up to 6 months.
This app is hosted by Liquid Web and uses Shopify Webhooks to look to see if a new order has come through with Glass Protect and generate appropriate discount codes specific to user and product, valid for 6 months. The generated discount codes are emailed to the user after the order is placed. We utilize Klaviyo to send the discount code emails to the customer.
Classified Ads App
An automotive parts company wanted us to build a simple posting mechanism to allow customers to post classified ads for vehicles and parts as well as post their own image galleries. For this app to work, a customer needs to be logged in to Shopify to post, and each post is submitted to our Node app server which sanitizes the content against script injection and then creates a blog post in draft status pending approval by the store. Additional custom fields are added as metafields to the articles. Once approved the post is published and the new classified or gallery is displayed on the site.
Shopify Order Routing Apps
For our beverage clients, compliance is a huge issue. To comply with state and federal alcohol laws, each order that comes into their Shopify store needs to be address-verified and then routed to the correct fulfillment partner. For example, we support a company that works with over 100 alcohol brands. We are helping them build a connector application that routes orders from alcohol merchants to a third party fulfillment company. Before an order can be placed, each Shopify store needs to confirm they can actually make the alcohol delivery in that state.
When this compliance company onboards brands, they are assigned store locations so they know where they can ship from. If a store can only sell in Texas, for example, they will only be assigned the physical stores in Texas. The initial implementation of this app is based on states; eventually we are going to roll out zip code level detail for shipping. A future state of the application will be to create a unified admin that aggregates all the orders across multiple fulfillment partners
Shopify Product Data Automation Apps
Merchant Pain Point
BTI Direct approached Ambaum and wanted to find a way to increase the amount of SKU’s they could offer in their store while not increasing the management overhead of managing hundreds of thousands of SKUs. The reason why this was important is that their dealers were looking for parts to buy that BTI didn’t have listed for sale.
Solution
To address BTI’s feature set, Ambaum broke the project up into three discrete custom apps to deliver the desired functionality. These three custom apps were the following:
- Shopify Automated Product Pricing & Inventory Updates
- Product Data Aggregators
- Automated Product Image Resizing & Watermarking
Tech Stack for all 3 Custom Apps
Ambaum utilized leading open source software to develop all of these custom apps for BTI. There were a number of languages and frameworks that were considered, but we ultimately chose the following based on our core competencies plus what we thought would be best for the client long term.
Shopify Automated Product Pricing & Inventory Updates
Many parts-based businesses are looking for a way to aggregate product and pricing information from 3rd party sources on a real time basis. We’re going to walk you through a custom app that we built for a tractor supply business that was looking to scale their products for sale on their Shopify store.
Here are the steps we went through to write the software and give BTI Direct the product functionality they were looking for:
- This app was written in PHP and Python leveraging the Laravel framework and a mysql database.
- We built the Shopify App with a management interface that BTI can access via Shopify Admin.
- The way the app works is that BTI inputs the product part numbers/SKU that they want to add to their store and then it performs the following actions:
∘ Input of the part number/SKU can be one-off or it can be a CSV uploaded in bulk.
- Utilizing existing search functionality on the site we need to gather data from, we utilize it as part of the process to find the correct web page based on the product SKU.
- We then then visit this page and extract and save the product inventory per physical location found on the page as well as the item’s listed retail price.
- If the item’s price differs from Shopify, we update Shopify to the new price.
- We write the inventory values to a JSON file, and store it on AWS CDN so that it can be loaded onto the corresponding product page in Shopify. This prevents the need from doing API calls to Shopify. We write to this file and update pricing 6 times per-day, during business hours.
Product Data Aggregators (scraper for BTI-Direct)
Merchants sell products in their store and the product data may reside in many different locations and formats. This often requires many man-hours to adjust the format so that you can import the products in bulk into Shopify. If you’re unable to manipulate the products in bulk in a tool such as MS Excel, Google Sheets, or Matrixify, then your only choice is to add products one-by-one.
A client of ours, BTI, came to us and wanted our help creating a tool to pull product information from multiple sources. BTI was working with CSV files and various websites to acquire product information that needed to be moved into Shopify. Their current process was a manual copy-paste and did not scale as their catalog size increased. The manual process, while doable for a few dozen products, does not work when you’re managing a catalog of 20,000 SKUs, let alone 1 million.
Solution
To address the requirement of acquiring product data, syncing to Shopify, and managing these products, we worked with BTI to create a Shopify App that handles all the heavy-lifting and time consuming tasks automatically.
We built a system that would visit the pages online that house the BTI product information. Each of these pages, while having unique product data, also have overlapping data as well. Utilizing this, we were able to build a system that not only acquires product data from BTI but the logic will automatically decide which titles, descriptions, etc. to utilize based on rules defined by the client. The product data is updated on a schedule defined by the client as well, and within the App the client has full control to add additional products, pause updating, force an update to occur as soon as possible, and review product update activity.
- BTI came to us with data available for their products from multiple web sources.
- We built a system in Python that would go out to each source, acquire the data, and compile this data in a central system where it’s stored in a MySQL database.
- Due to the complexity of these tasks, we implemented extensive error checking and logging utilizing the ELK Stack.
- We then built complex logic to determine which data to use.
- All product data is automatically updated on a schedule BTI defined, but they can also go into the App and request a data update now.
- The app also logs all history of data acquisition, shopify updates, and errors.
Automated Product Image Resizing & Upload to Shopify (BTI-Direct)
Merchants get product photography from multiple sources such as: vendors, photographers, their own photos, etc. However the photos still require manual action to be optimized and\or watermarked before being displayed on their Shopify site. BTI expressed their concern with the ability to manually process these images and then upload them to Shopify due to their extensive catalog.
Solution
We worked with BTI to build a Shopify App that would handle not only resizing and watermarking images but would also acquire all product images for them automatically and then automatically sync those images to the corresponding product on Shopify.
- BTI came to us with a time-consuming task they were looking to automate; they were currently downloading product images one-by-one off the Internet, and then manually resizing, watermarking, and adding to Shopify. This process was taking minutes per image, and was not sustainable with a catalog of one million parts with multiple images each.
- We built an App for BTI that would acquire the product images based on the products SKU and download them into our App for processing.
- After an image is downloaded it’s queued up for processing to be re-sized and watermarked.
- Once an image is processed (resized\watermarked), it is then queued to Sync to Shopify, where it will be added to the corresponding product.
- Each step of the process has error checking, rules, and logging so that we can review the status and flow of an image as it works through the system.
You could use Shopify’s native image resizer, but there is a limit of 6 images you can resize at one time. This is obviously not a realistic solution for any merchant with a sizable SKU count.
Product Builder Apps
Product Builder App
Inside Weather had their own technology team and we jointly approached scoping this custom app for their website. Inside Weather handled the creation and storage of millions of images and created an API that Ambaum could access for the configurator. Ambaum was responsible for accessing the API and creating a clean frontend product configurator experience, here is a live example for building your own sofa. We built the majority of the front-end experience in Vue, but also worked extensively in the Shopify Liquid theme. You are able to rotate the furniture on the fly, see your colors update, zoom in and out and save your customizations for purchase. This custom app increased customer engagement with the site and helped Inside Weather grow sales dramatically.
Dynamic Shopify Components
To facilitate populating site pages with content from their own internal systems and CMS, we built a collection of custom Vue components to be used similar to Shopify sections. The homepage, collection pages, and some landing pages, utilize these components by pushing the code from their CMS directly into Shopify theme templates complete with data hydration. This allows them to build new custom pages out of existing reusable sections using their own data that doesn’t live in Shopify. Inside Weather can now populate an entire new page just by uploading a CSV to their own internal custom management app.
Free Swatches
To help customers make their upholstery choices when building their own furniture, Inside Weather offers up to 10 swatches delivered to the customer for free so that they can sample the materials and check the colors in the environment where they would be living. We built a custom swatch browsing experience which allows customers to filter the available swatches based on their desired color/style/material and view details on each swatch’s material, as well as a shortcut to shop for furniture built with each upholstery choice. They can order from the swatch browser without logging in or going through normal checkout. Since there is no cost for the swatches and shipping is free, this saves the customer multiple steps to reduce friction for getting samples.
Shopify Data Migrations
If you are looking to move to Shopify you will need a partner to migrate your data from your old platform. Ambaum can help you move the following data:
- Products
- Orders
- Customers
- Collections
- Product Reviews
- 301 Redirects
- Content
- Blogs
- Pages
- Email Lists
Data migrations can be messy and we’ve faced many of the challenges head-on. Often there are data integrity issues, incomplete fields, and getting the data mapping correct is critical. Learn more about some of common data migration best practices here.
How much time does it take to migrate data? It depends on volume of data, complexity of data, the platform, the number of sub collections, the data integrity, how much historical data do you need migrated. Migrating the data is maybe 1/3 the work, restructuring the data is another big part, but there is also migrating pages, page templates, blog information, and more that make up the rest of the effort.
Integrations
Building an eCommerce store is a big step in the evolution of a brand, but as you grow you also need to connect other third-party systems. We have worked with all different types of API’s and can help you scope out creating the connector you need, some of the typical questions we ask to evaluate the scope of an integration:
- Does the 3rd party system have an API?
- Is there documentation around the API?
- Have other Shopify stores integrated with this 3rd party system before?
- Does the merchant need us to host the connector or will the merchant host it?
The first thing we will ask is if there is a 3rd party connector that already exists that will work for the integration. Philosophically, we will not look to build a custom connector if there is already a connector service that is a good fit for you.
Other variables that will impact the complexity of the integration include:
- How many services are connecting to Shopify through the connector
- Volume of data
- Number of fields and Shopify API that will be accessed
- Error handling
- Frequency of API calls
It is important to note that all connectors need to live off Shopify on a separate server and rely on the Shopify APIs for connectivity.
There are a ton of examples here demonstrating Ambaum’s ability to handle custom backend development work. If you have a specific problem you want us to scope out, don’t hesitate to reach out!