As feature-rich as Shift4Shop is, eCommerce is always moving forward. New advancements in technology lead to greater potential for online businesses, but they also lead to new customer expectations and new pain points for business owners and customers alike. That's one reason Shift4Shop has made it easy for developers to create apps that integrate with our eCommerce software: by building an app, you can expand Shift4Shop with new functionality and help your potential clients stay on top of the continuing evolution of eCommerce.
Apps also provide variety and choice. Some features fit into a small enough niche that they're better-served by an app than by a built-in solution that, by nature, is one-size-fits-all. At Shift4Shop, we include as many features as we can, but we understand that not every business is going to want the exact same tool set. With apps, an online store owner can choose from many more options, customizing Shift4Shop to their needs.
We welcome you as an app developer to create a solution that helps online businesses meet their specific requirements. Whether you have an idea for an app that you'd like to release to the public or you've been commissioned by a client, this guide will help you get it all working.
Planning Your App
Even if your client wants something simple, you should always start your app with a planning phase. Of course, most developers are quite familiar with the value of planning, but you can feel the urge to overlook it if the desired app seems simple enough or if you feel like you can finish it quickly. Don't skip planning, though; it's the best way to get (and stay) organized and discover potential problems before they happen.
Your app's planning phase can be summed up by the following three points. Ask yourself these questions:
- What is the purpose of this app?
- What features will be included in the app?
- How long will this take and how will I schedule it?
Let's go a little deeper now, and discuss these questions (and your possible answers to them).
What is the purpose of the app I want to build?
This can be a surprisingly hard question to answer, but you need a crystal-clear goal before you should proceed. If you're basing your new app on your own idea, you already have a general idea of its purpose. Refine your idea by doing some market research. Identify your target customers and the needs your app will serve for them, and check out any existing apps that you may be competing with. What will your app bring to the table that the others don't?
Identifying more specific needs won't just allow you to produce a better app, it will also help you during development. Continue to refine your idea until you're able to distill your app's purpose to a simple statement, like "the purpose of this app will be to allow a Shift4Shop merchant to quickly connect an external live chat feature to their website," for example. This specific purpose should become the criteria you use to determine what features you need to build — anything that doesn't directly serve it should be left to a later project.
Building an App for a Client
Of course, if you're building an app based around a client's request, the purpose will come from them. You're creating the app to provide them with a solution to their problem, or a tool to enhance their workflow, but you need to be more specific than that.
Talk to your client and ask open-ended questions about why they want an app, what they expect it to do, and how they think it will solve their problem. Don't be afraid to challenge them with harder questions or counterpoints. As a developer, you know what an app can and cannot do, so if your client wants a quick fix for a greater issue, they may have the wrong idea. Their real problem might be something else that an app can't solve — or at least, not the app they're envisioning.
The simple fact is that end users like your client don't always see apps (or any type of software) from the same perspective as a developer. They picture their desired solution, but often without hard facts as to how it will actually work in practice. If the client wants an app that helps them sell more, they're going to imagine from the beginning that you can build exactly what they're thinking of, and they are already picturing it working as they intended and producing the results they were looking for. If you deliver something that doesn't meet the client's preconceived notions and doesn't give them their expected results, they'll blame you. The way they see it, their idea was perfect, so the app itself is at fault.
You know this isn't how it works. An app based on a flawed idea isn't going to produce the desired results, so your client's idea is where the fault lies — and that's why you need to ask them many detailed questions to determine not just what they're imagining this app will do, but why.
Your goal is to find out early on if the client's vision simply won't work as they imagine, and help them refine their idea by finding out what it is they really need. Only by identifying the root issue will you learn exactly why they want this app. What the client wants is often very different from what they actually need!
Once you know the real problem the client is trying to solve, you'll be able to tailor a solution that will address their need from its root cause, and not simply treat a symptom of an underlying issue. Discussing the app's purpose with your client will clarify its purpose, which may be completely different from the initial concept. With sufficient understanding you can save yourself and your client a great deal of time and frustration.
What features will be included in the app?
Keeping the app's purpose strongly in mind, make a list of all your ideas for features. Treat this as a brainstorming session without concerns as to which of these ideas are valid or how you're going to schedule development. Evaluation comes later — just get all your ideas written down. Even the ones you don't use for this app can become a part of a later version or another project.
Next, go over your list and weigh each idea against the purpose of your app. Which of these features will be most crucial for your app to fulfill its purpose? Try to narrow down the features as much as possible, so only fully necessary functionality makes it into the final list. This way, not only are you ensuring that every feature supports the app's purpose, you're also making a good foundational plan. Good planning will help you avoid missed features, as well as the opposite — bloating it with unneeded things.
How long will this take and how will I schedule it?
Now take the essential features on your list and go over them, writing a summary for each one. This will help you further narrow them down and determine how long each one will take to build. In your notes, include any information that could affect the difficulty or timeframe of each feature. Your goal here is to figure out how long this project is going to take you, at least within a margin of error in which you're comfortable.
If you're developing your app on a specific timeframe for a client (e.g. they need it next month), your list of time estimates will help you prioritize the features that need to go in first. It's much better to provide an initial release of your app, even if it's not feature-complete, so your customers will be able to benefit from it as soon as possible while you develop the rest of its functionality.
Once the planning phase is complete, you're ready to move onto development.
Familiarize Yourself with Your Tools
At Shift4Shop, we want to give developers the tools and resources they need to create the apps they have in mind. Our Developer Portal is your central hub for all types of Shift4Shop development, and includes all the reference documentation you'll need. This includes a detailed guide for the Shift4Shop API, which is organized around REST.
To start building your app, the first thing you need to do is to create your Shift4Shop developer login. Once you do this, you'll be able to create your app directly within the Shift4Shop Developer Portal and have access to other resources like the private Shift4Shop developer forums.
Set Up Authentication
Once you've created your Shift4Shop development credentials, you next need to authenticate your app with the Shift4Shop OAuth authentication protocol. OAuth acts as the bridge between your app and the Shift4Shop software to allow it to integrate with merchants' online stores.
By authenticating with OAuth, you're taking the first step toward providing availability for your app in the Shift4Shop App Store to allow multiple Shift4Shop merchants to purchase and install it with one click. A basic authentication is available for private app development, such as when you're building an app that's strictly for a single client or intended for use on your own online store. Unless your app is solely for private use, go for the OAuth method.
Add Your App to the Shift4Shop Online Store Manager
You can add your app to the Shift4Shop Online Store Manager to allow all your app's subscribers to access it directly from their admin panel. To do this, fill out the Embedded App Settings area in the Developer Portal. This involves the following three fields: IFrame URL, Menu Title, and Menu Icon URL.
- The IFrame URL is the URL you want to direct the subscriber to when they click your app in the menu. It will open in a modal window within the Shift4Shop Online Store Manager.
- The Menu Title is simply the text that will appear in the navigation menu.
- The Menu Icon URL is the URL where your app's icon is located. You can't upload an icon directly to the Shift4Shop Online Store Manager, but you can link to it here to cause it to appear appropriately.
What Can You Do with an App?
Shift4Shop's REST API is robust enough to handle numerous types of integrations from the simple to the complex. If you follow our API Documentation, you'll see much more detailed setup instructions along with a complete set of references for creating functions in your app that interact with all types of features in the Shift4Shop software.
Below are a few examples of integrations you can build.
Adding a Custom Script to a Website
Injecting a script is a valuable alternative to manually adding the required code to the website, as without the injection, the customer would need to copy and paste the code into the appropriate areas on their Shift4Shop store. By creating a frontend script in this manner and using the OAuth authentication protocol, you'll be able to create a publicly available app that allows clients to add the script instantly with a click. This makes it exceedingly simple to connect the subscriber's website to the third-party application.
Integrating a Payment Processor
In Shift4Shop version 9.1.0, we added a simple procedure for an app developer to create an integration to connect a payment gateway to a Shift4Shop store. This method allows you to add a custom payment gateway whether for your own use or for clients.
Your beginning steps for app setup are the same, including registration and authentication. Within the Application Dashboard page, you'll also see a Payment Gateway Settings area. Make sure to check the box labeled "Is Payment Gateway" and fill out the appropriate fields.
Complete instructions are found in the documentation linked above. We've also made a sample payment gateway app you can use as a framework.
Creating Products in a Shift4Shop Store
Let's say you're creating an app for Shift4Shop merchants reselling a specific product or list of products. In this case, you may want to give them the ability to add one or more products to their store through your app rather than putting them through the trouble of manually creating all the products and adding the necessary information themselves. By building an app to add products to a Shift4Shop store, you're providing subscribers with a shortcut for adding the products and reducing the margin for error that comes with manual data entry.
You can also create the app to perform other functions, like retrieve a list of products from their store, update the list of products, add or delete advanced options, and much more.
We at Shift4Shop are glad to provide you with versatile tools and thorough documentation to allow you to build the type of apps that you or your clients need, whether you just want to create a simple script injection or something much more complex. Once you've determined your app's purpose and outlined your plan and timeline, you'll find the development process enhanced by our developer resources and support. Likewise, it will be simple for your subscribers to add the app to their online store when the time comes.
Are you ready to build the app you've been dreaming of? We can't wait to see what you come up with!