-
-
Notifications
You must be signed in to change notification settings - Fork 374
App Proxies
App proxies are way for your app to display content directly inside a shop with it's own URL (like http://cool-shop.com/apps/cool-app).
Shopify makes a request to the app, this package will verify the request, you can then return any content you wish to display inside the shop.
- Visit your app in the Shopify Dashboard
- Click
Extensions
- Click
Manage Extensions
- Scroll down to
Online Store
and enable it - Enter the handle (example: apps/proxy, or tools/your-app, etc)
- Enter the URL to the proxy route of your application
- Hit save
php artisan make:controller AppProxy
This will create a file AppProxy.php
in app/Http/Controllers
.
Open app/routes/web.php
and create a new GET entry to point to the newly created controller.
Route::get('/proxy', 'AppProxyController@index')->middleware('auth.proxy');
This will point /proxy
to AppProxyController
and it's method index
. The key here is the use of the auth.proxy
middleware which will take care of validating the proxy signature before sending the request to the controller.
You're now free to create an app proxy entry in your app's configuration in the partner dashboard, point the URL to your new proxy route, example: https://your-domain.com/proxy
.
At its basics, you can simply open routes/web.php
and add this:
Route::get('/proxy', function () {
return response('Hello, world!')->withHeaders(['Content-Type' => 'application/liquid']);
})->middleware('auth.proxy');
Now, when visiting the proxy URL on your shop, you should see "Hello, world!" embedded into your Shopify theme.
Be sure to return a 200
response on your controller method. If you wish to integrate nicely with the shop's theming be sure to also respond with content type being application/liquid
.
For more information, see Shopify's docs on application proxies.
road map
Welcome to the wiki!
Please see the homepage for a list of relevant pages.