Skip to content
This repository was archived by the owner on Nov 30, 2022. It is now read-only.
Tyler King edited this page Nov 2, 2018 · 20 revisions

Here's some helpful tips on using this package's facade.

Accessing the current shop

Using the facade:

// Returns instance of \OhMyBrew\ShopifyApp\Models\Shop
ShopifyApp::shop()

Accessing API for the current shop

// Returns instance of \OhMyBrew\BasicShopifyAPI (ohmybrew/basic-shopify-api)
$shop = ShopifyApp::shop();
$shop->api()->rest(...);

Example:

$shop = ShopifyApp::shop();
$request = $shop->api()->rest('GET', '/admin/shop.json');
echo $request->body->shop->name;

Accessing Shopify data for a charge

For single/recurring/credit type charges, you can access them via the Charge model's retrieve method for charges which exist in the database for a shop.

Example:

$shop = ShopifyApp::shop();
$charge = $shop->charges()->get()->last();
print_r($charge->retrieve()); // Returns an object of the API data for the charge

Rate Limiting

The package (through BasicShopifyAPI library) has the ability to handle basic rate limiting to ensure your code only runs a single API call during x milliseconds. For all plans of Shopify except Plus, you're allowed 1 call per 500ms (2 calls per second) and for Plus, you're allowed 2 calls per 500ms (4 calls per second).

To enable, edit your environment variables or config/shopify-app.php, example (for env variables):

SHOPIFY_API_RATE_LIMITING_ENABLED=true
SHOPIFY_API_RATE_LIMIT_CYCLE=500 # This is default
SHOPIFY_API_RATE_LIMIT_BUFFER=100 # This is default

This will not handle any exceptions for you but it will track the time it takes to completed one API calls to another, and if the call is too quick, it will calculate the required microseconds needed to sleep before making another call.

For more information on Shopify's rate limiting, see Shopify's documentation for this.

Welcome to the wiki!

Please see the homepage for a list of relevant pages.

Clone this wiki locally