| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Name | Name | Last commit date | ||
|---|---|---|---|---|
This library provides support for Ruby Shopify apps to access the Shopify Admin API, by making it easier to perform the following actions:
In addition to the Admin API, this library also allows querying the Storefront API.
You can use this library in any application that has a Ruby backend, since it doesn't rely on any specific framework — you can include it alongside your preferred stack and use the features that you need to build your app.
Note: These instructions apply to v10 or later of this package. If you're running v9 in your app, you can find the documentation in this branch.
If using in the Rails framework, we highly recommend you use the shopify_app gem to interact with this gem. Authentication, session storage, webhook registration, and other frequently implemented paths are managed in that gem with easy to use configurations.
To follow these usage guides, you will need to:
Add the following to your Gemfile:
gem "shopify_api"or use bundler:
bundle add shopify_apiStart by initializing the ShopifyAPI::Context with the parameters of your app by calling ShopifyAPI::Context.setup (example below) when your app starts (e.g application.rb in a Rails app).
ShopifyAPI::Context.setup(
api_key: "<api-key>",
api_secret_key: "<api-secret-key>",
host: "<https://application-host-name.com>",
scope: "read_orders,read_products,etc",
is_embedded: true, # Set to true if you are building an embedded app
api_version: "2022-01", # The version of the API you would like to use
is_private: false, # Set to true if you have an existing private app
)You need to go through OAuth as described here to create sessions for shops using your app. The Shopify API gem tries to make this easy by providing functions to begin and complete the OAuth process. See the Oauth doc for instructions on how to use these.
If you intend to use webhooks in your application follow the steps in the Webhooks doc for instructions on registering and handling webhooks.
Once your app can perform OAuth, it can now make authenticated Shopify API calls, see docs for:
We've rewritten this library for v10, so that it provides all essential features for a Shopify app without depending on the Active Resource or graphql-client libraries.
Here are the main features it provides:
Please refer to the documentation in this repository for instructions on how to use each of these components.
With this, a lot changed in how apps access the library. Here are the updates you should make when migrating to v10:
Call ShopifyAPI::Context.setup when setting up your app. This class holds global configurations for your app and defines how the library behaves.
If not using the shopify_app gem, your app needs to provide an implementation of ShopifyAPI::Auth::SessionStorage for production. Read more about this in our documentation.
To change the User-Agent header, use user_agent_prefix in ShopifyAPI::Context.setup.
Usages of the ActiveResource classes for REST API requests need to be refactored into the new format. You can find detailed examples on how each of the endpoints work in our reference documentation.
Please see below a (non-exhaustive) list of common replacements to guide you in your updates, using the Order resource as an example.
| Before | After |
|---|---|
| Order.find(:all, params: {param1: value1}) | Order.all(param1: value1) |
| Order.find(<id>) | Order.find(id: <id>) |
| order = Order.new(<id>) order.post(:close) |
order = Order.new order.close |
| order = Order.new(<id>) order.delete |
Order.delete(id: <id>) |
See BREAKING_CHANGES_FOR_OLDER_VERSIONS
After cloning the repository, you can install the dependencies with bundler:
bundle installTo run the automated tests:
bundle exec rake testWe use rubocop to lint/format the code. You can run it with the following command:
bundle exec rubocop| Back | FazBrowse Home | New Git URL |