Shopify, a popular e-commerce platform, allows developers to extend its functionality through custom apps. Laravel, a powerful PHP framework, provides a robust and flexible environment for building web applications. In this tutorial, we’ll explore how to develop a Shopify app using Laravel, leveraging its command-line interface (CLI) and providing practical examples along the way.
Prerequisites
- Basic understanding of PHP and Laravel framework.
- Familiarity with Shopify’s app development concepts.
- A Shopify partner account.
Let’s get started!
To follow along with this tutorial, you should have a basic understanding of Laravel, PHP, and Shopify’s app development process. Ensure you have a Shopify partner account to create and test your app.
Step 1: Setting Up a Laravel Project
Before diving into Shopify app development, let’s set up a new Laravel project. Enter the following commands into your terminal.
composer create-project --prefer-dist laravel/laravel shopify-app cd shopify-app
Step 2: Installing the Signifly/Laravel-Shopify Package
Next, let’s install the Signifly/Laravel-Shopify package, which simplifies the process of integrating your Laravel app with the Shopify API. Run the following command
composer require signifly/laravel-shopify
Step 3: Configuring the Package
After installing the package, we need to publish its configuration file. Run the following command
php artisan vendor:publish --provider="Signifly\Shopify\ShopifyServiceProvider"
This will create a new config/shopify.php file. Open it and provide your Shopify app’s credentials, such as the API key, secret, and redirect URL.
Step 4: Creating a Shopify App Route
Now, let’s define a route that will handle the Shopify app installation process. Open the routes/web.php file and add the following route definition
Route::get('/install', 'App\Http\Controllers\ShopifyController@install')->name('shopify.install');
Step 5: Generating a Shopify Controller
We’ll now generate a controller that will handle the Shopify app’s logic. Run the following command
php artisan make:controller ShopifyController
This will create a new ShopifyController.php file inside the app/Http/Controllers directory. Open the file and add the following code
namespace App\Http\Controllers; use Illuminate\Http\Request; use Signifly\Shopify\Facades\Shopify; class ShopifyController extends Controller { public function install(Request $request) { $shopify = Shopify::fromShopUrl($request->query('shop')); $installUrl = $shopify->getInstallUrl(); return redirect()->away($installUrl); } }
Step 6: Handling the App Installation
Now that we have the controller logic in place, let’s define the Shopify app installation process. Modify the install() method in the ShopifyController as follows
public function install(Request $request) { $shopify = Shopify::fromShopUrl($request->query('shop')); $shopify->authenticate(); // Store the shop credentials in the database or session session(['shopify_credentials' => $shopify->toArray()]); return redirect()->route('shopify.home'); }
In this example, we store the Shopify credentials in the session, but you can choose a different method, such as storing them in a database.
Step 7: Creating the Home Route
Let’s define a route that will serve as the home page of our Shopify app. Open the routes/web.php
file and add the following route definition
Route::get('/home', 'App\Http\Controllers\ShopifyController@home')->name('shopify.home');
Step 8: Building the Home Page
Next, modify the home() method in the ShopifyController to display the Shopify app’s home page
public function home() { $shopify = new Shopify(session('shopify_credentials')); $shop = $shopify->shop(); return view('shopify.home', compact('shop')); }
Step 9: Creating the Home View
Now, let’s create a simple home view for our Shopify app. Create a new file called home.blade.php inside the resources/views/shopify directory and add the following content
<!DOCTYPE html> <html> <head> <title>My Shopify App</title> </head> <body> <h1>Welcome to My Shopify App</h1> <p>Connected to shop: {{ $shop['name'] }}</p> </body> </html>
Step 10: Testing the Installation
Finally, we can test our Shopify app’s installation process. Start the Laravel development server by running the following command
php artisan serve
Now, open your web browser and navigate to http://localhost:8000/install?shop=your-shop.myshopify.com. Replace your-shop.myshopify.com with your actual Shopify store’s URL. If everything is set up correctly, you will be redirected to the app installation page.
Conclusion
Congratulations! You have successfully learned how to develop a Shopify app in Laravel using the Signifly/Laravel-Shopify package. We covered the installation process, authentication, and handling the home page of the app. You can now explore further and build additional features for your Shopify app, such as product synchronization, order management, and more.
Remember to consult the official documentation of Laravel, Shopify, and the Signifly/Laravel-Shopify package for more advanced usage and customization options. Happy coding!