boaideas / laravel-shopify
An easier to use rocket-code/shopify for Shopify integration in Laravel applications
Installs: 2 305
Dependents: 0
Suggesters: 0
Security: 0
Stars: 2
Watchers: 3
Forks: 2
Open Issues: 0
Requires
- php: ^7.0
- rocket-code/shopify: ^2.0
This package is not auto-updated.
Last update: 2024-12-08 05:50:23 UTC
README
This packages allows for a better integration of rocket-code/shopify in Laravel applications.
Benefits
By using this package you get these added values:
- Auto discovery (Laravel 5.5 or higher) - no need to manually add any service provider
- Configuration in env file
- Allow the service to be used in dependency injection
- Allow usage as real time facade (Laravel 5.4 or higher)
Installation
You can install the package via composer:
composer require boaideas/laravel-shopify
If you're installing the package on Laravel 5.5 or higher, you're done (The package uses Laravel's auto package discovery).
If you're using Laravel 5.4 or less, add the BOAIdeas\Shopify\ShopifyServiceProvider
service provider to your providers array:
// config/app.php 'providers' => [ ... BOAIdeas\Shopify\ShopifyServiceProvider::class, ];
Configuration
Now, by default, the package will look for the following values in your .env file:
// .env
SHOPIFY_KEY=YourAppApiKey
SHOPIFY_SECRET=YourAppSecret
SHOPIFY_DOMAIN=YourShopDomain (for private apps)
SHOPIFY_TOKEN=YourToken
If, for some reason, you want to change any of these settings, you can publish the config file with:
php artisan vendor:publish --provider="BOAIdeas\Shopify\ShopifyServiceProvider"
This is the content of the published config file:
// config/shopify.php return [ 'api_key' => env('SHOPIFY_KEY'), 'api_secret' => env('SHOPIFY_SECRET'), 'shop_domain' => env('SHOPIFY_DOMAIN'), 'access_token' => env('SHOPIFY_TOKEN'), ];
Usage
Once installed, you can use the service by either injecting it to your methods or as a real time facade, and then just use it regularly.
For more information about how to use the service, look at https://github.com/joshrps/laravel-shopify-API-wrapper.
Dependency Injection
Now you can simply type hint the service in your method's arguments. For better readabilty, we prefer to import the full class name with a use
statement, and alias it to Shopify while we're at it.
use RocketCode\Shopify\API as Shopify; Route::get('/', function (Shopify $shopify) { $call = $shopify->call( [ 'URL' => 'products.json', 'METHOD' => 'GET', 'DATA' => [ 'limit' => 5, 'published_status' => 'any' ] ]); });
Facade
Now you can use Laravel's on the fly facades feature to use the service "statically". We prefer to alias it to ShopifyAPI while we're at it.
use Facades\RocketCode\Shopify\API as ShopifyAPI; Route::get('/', function () { $call = ShopifyAPI::call( [ 'URL' => 'products.json', 'METHOD' => 'GET', 'DATA' => [ 'limit' => 5, 'published_status' => 'any' ] ]); });
Credits
License
The MIT License (MIT). Please see License File for more information.