# color_me_shop ColorMeShop - the Ruby gem for the カラーミーショップ API # カラーミーショップ API [カラーミーショップ](https://shop-pro.jp) APIでは、受注の検索や商品情報の更新を行うことができます。 ## 利用手順 はじめに、カラーミーデベロッパーアカウントを用意します。[デベロッパー登録ページ](https://api.shop-pro.jp/developers/sign_up)から登録してください。 次に、[登録ページ](https://api.shop-pro.jp/oauth/applications/new)からアプリケーション登録を行ってください。 スマートフォンのWebViewを利用する場合は、リダイレクトURLに`urn:ietf:wg:oauth:2.0:oob`を入力してください。 その後、カラーミーショップアカウントの認証ページを開きます。認証ページのURLは、`https://api.shop-pro.jp/oauth/authorize`に必要なパラメータをつけたものです。 |パラメータ名|値| |---|---| |`client_id`|アプリケーション詳細画面で確認できるクライアントID| |`response_type`|\"code\"という文字列| |`scope`| 別表参照| |`redirect_url`|アプリケーション登録時に入力したリダイレクトURL| `scope`は、以下のうち、アプリケーションが利用したい機能をスペース区切りで指定してください。 |スコープ|機能| |---|---| |`read_products`|商品データの参照| |`write_products`|在庫データの更新| |`read_sales`|受注・顧客データの参照| |`write_sales`|受注データの更新| 以下のようなURLとなります。 ``` https://api.shop-pro.jp/oauth/authorize?client_id=CLIENT_ID&redirect_uri=REDIRECT_URL&response_type=code&scope=read_products%20write_products ``` 初めてこのページを訪れる場合は、カラーミーショップアカウントのIDとパスワードの入力を求められます。 承認ボタンを押すと、このアプリケーションがショップのデータにアクセスすることが許可され、リダイレクトURLへリダイレクトされます。 承認された場合は、`code`というクエリパラメータに認可コードが付与されます。承認がキャンセルされた、またはエラーが起きた場合は、 `error`パラメータにエラーの内容を表す文字列が与えられます。 アプリケーション登録時のリダイレクトURLに`urn:ietf:wg:oauth:2.0:oob`を指定した場合は、以下のようなURLにリダイレクトされます。 末尾のパスが認可コードになっています。 ``` https://api.shop-pro.jp/oauth/authorize/AUTH_CODE ``` 認可コードの有効期限は発行から10分間です。 最後に、認可コードとアクセストークンを交換します。以下のパラメータを付けて、`https://api.shop-pro.jp/oauth/token`へリクエストを送ります。 |パラメータ名|値| |---|---| |`client_id`|アプリケーション詳細画面に表示されているクライアントID| |`client_secret`|アプリケーション詳細画面に表示されているクライアントシークレット| |`code`|取得した認可コード| |`grant_type`|\"authorization_code\"という文字列| |`redirect_uri`|アプリケーション登録時に入力したリダイレクトURL| ```console # curl での例 $ curl -X POST \\ -d'client_id=CLIENT_ID' \\ -d'client_secret=CLIENT_SECRET' \\ -d'code=CODE' \\ -d'grant_type=authorization_code' \\ -d'redirect_uri=REDIRECT_URI' \\ 'https://api.shop-pro.jp/oauth/token' ``` リクエストが成功すると、以下のようなJSONが返ってきます。 ```json { \"access_token\": \"d461ab8XXXXXXXXXXXXXXXXXXXXXXXXX\", \"token_type\": \"bearer\", \"scope\": \"read_products write_products\" } ``` アクセストークンに有効期限はありませんが、許可済みアプリケーション一覧画面から失効させることができます。なお、同じ認可コードをアクセストークンに交換できるのは1度だけです。 取得したアクセストークンは、Authorizationヘッダに入れて使用します。以下にショップ情報を取得する際の例を示します。 ```console # curlの例 $ curl -H 'Authorization: Bearer d461ab8XXXXXXXXXXXXXXXXXXXXXXXXX' https://api.shop-pro.jp/v1/shop.json ``` ## エラー カラーミーショップAPI v1では - エラーコード - エラーメッセージ - ステータスコード の配列でエラーを表現します。以下に例を示します。 ```json { \"errors\": [ { \"code\": 404100, \"message\": \"レコードが見つかりませんでした。\", \"status\": 404 } ] } ``` This SDK is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project: - API version: 1.0.0 - Package version: 1.1.0 - Build package: org.openapitools.codegen.languages.RubyClientCodegen For more information, please visit [https://shop-pro.jp/?mode=inq](https://shop-pro.jp/?mode=inq) ## Installation ### Build a gem To build the Ruby code into a gem: ```shell gem build color_me_shop.gemspec ``` Then either install the gem locally: ```shell gem install ./color_me_shop-1.1.0.gem ``` (for development, run `gem install --dev ./color_me_shop-1.1.0.gem` to install the development dependencies) or publish the gem to a gem hosting service, e.g. [RubyGems](https://rubygems.org/). Finally add this to the Gemfile: gem 'color_me_shop', '~> 1.1.0' ### Install from Git If the Ruby gem is hosted at a git repository: https://github.com/GIT_USER_ID/GIT_REPO_ID, then add the following in the Gemfile: gem 'color_me_shop', :git => 'https://github.com/GIT_USER_ID/GIT_REPO_ID.git' ### Include the Ruby code directly Include the Ruby code directly using `-I` as follows: ```shell ruby -Ilib script.rb ``` ## Getting Started Please follow the [installation](#installation) procedure and then run the following code: ```ruby # Load the gem require 'color_me_shop' # Setup authorization ColorMeShop.configure do |config| # Configure OAuth2 access token for authorization: OAuth2 config.access_token = 'YOUR ACCESS TOKEN' end api_instance = ColorMeShop::CategoryApi.new begin #商品カテゴリー一覧を取得 result = api_instance.get_product_categories p result rescue ColorMeShop::ApiError => e puts "Exception when calling CategoryApi->get_product_categories: #{e}" end ``` ## Documentation for API Endpoints All URIs are relative to *https://api.shop-pro.jp* Class | Method | HTTP request | Description ------------ | ------------- | ------------- | ------------- *ColorMeShop::CategoryApi* | [**get_product_categories**](docs/CategoryApi.md#get_product_categories) | **GET** /v1/categories.json | 商品カテゴリー一覧を取得 *ColorMeShop::ChargeApi* | [**activate_application_charge**](docs/ChargeApi.md#activate_application_charge) | **POST** /v1/application_charges/{applicationChargeId}/activate.json | スポット課金データをアクティベートする *ColorMeShop::ChargeApi* | [**activate_recurring_application_charge**](docs/ChargeApi.md#activate_recurring_application_charge) | **POST** /v1/recurring_application_charges/{recurringApplicationChargeId}/activate.json | 月額課金データをアクティベートする *ColorMeShop::ChargeApi* | [**cancel_recurring_application_charge**](docs/ChargeApi.md#cancel_recurring_application_charge) | **POST** /v1/recurring_application_charges/{recurringApplicationChargeId}/cancel.json | 月額課金データをキャンセルする *ColorMeShop::ChargeApi* | [**get_application_charge**](docs/ChargeApi.md#get_application_charge) | **GET** /v1/application_charges/{applicationChargeId}.json | スポット課金データの取得 *ColorMeShop::ChargeApi* | [**get_application_charges**](docs/ChargeApi.md#get_application_charges) | **GET** /v1/application_charges.json | スポット課金一覧の取得 *ColorMeShop::ChargeApi* | [**get_recurring_application_charge**](docs/ChargeApi.md#get_recurring_application_charge) | **GET** /v1/recurring_application_charges/{recurringApplicationChargeId}.json | 月額課金データの取得 *ColorMeShop::ChargeApi* | [**get_recurring_application_charges**](docs/ChargeApi.md#get_recurring_application_charges) | **GET** /v1/recurring_application_charges.json | 月額課金一覧の取得 *ColorMeShop::ChargeApi* | [**post_application_charge**](docs/ChargeApi.md#post_application_charge) | **POST** /v1/application_charges.json | スポット課金データの作成 *ColorMeShop::ChargeApi* | [**post_recurring_application_charge**](docs/ChargeApi.md#post_recurring_application_charge) | **POST** /v1/recurring_application_charges.json | 月額課金データの作成 *ColorMeShop::CustomerApi* | [**get_customer**](docs/CustomerApi.md#get_customer) | **GET** /v1/customers/{customerId}.json | 顧客データの取得 *ColorMeShop::CustomerApi* | [**get_customers**](docs/CustomerApi.md#get_customers) | **GET** /v1/customers.json | 顧客データのリストを取得 *ColorMeShop::CustomerApi* | [**post_customers**](docs/CustomerApi.md#post_customers) | **POST** /v1/customers.json | 顧客データを追加 *ColorMeShop::DeliveryApi* | [**get_deliveries**](docs/DeliveryApi.md#get_deliveries) | **GET** /v1/deliveries.json | 配送方法一覧を取得 *ColorMeShop::DeliveryApi* | [**get_delivery_date_setting**](docs/DeliveryApi.md#get_delivery_date_setting) | **GET** /v1/deliveries/date.json | 配送日時設定を取得 *ColorMeShop::EtcApi* | [**delete_device_token**](docs/EtcApi.md#delete_device_token) | **DELETE** /v1/device_tokens/{token}.json | デバイストークンの削除 *ColorMeShop::GiftApi* | [**get_gift**](docs/GiftApi.md#get_gift) | **GET** /v1/gift.json | ギフト設定を取得 *ColorMeShop::GroupApi* | [**get_product_groups**](docs/GroupApi.md#get_product_groups) | **GET** /v1/groups.json | 商品グループ一覧を取得 *ColorMeShop::PaymentApi* | [**get_payments**](docs/PaymentApi.md#get_payments) | **GET** /v1/payments.json | 決済設定の一覧を取得 *ColorMeShop::ProductApi* | [**delete_product_pickup**](docs/ProductApi.md#delete_product_pickup) | **DELETE** /v1/products/{productId}/pickups/{pickupType}.json | おすすめ商品情報の削除 *ColorMeShop::ProductApi* | [**get_product**](docs/ProductApi.md#get_product) | **GET** /v1/products/{productId}.json | 商品データの取得 *ColorMeShop::ProductApi* | [**get_products**](docs/ProductApi.md#get_products) | **GET** /v1/products.json | 商品一覧の取得 *ColorMeShop::ProductApi* | [**post_product_pickup**](docs/ProductApi.md#post_product_pickup) | **POST** /v1/products/{productId}/pickups.json | おすすめ商品情報の追加 *ColorMeShop::ProductApi* | [**update_product**](docs/ProductApi.md#update_product) | **PUT** /v1/products/{productId}.json | 商品データの更新 *ColorMeShop::SaleApi* | [**cancel_sale**](docs/SaleApi.md#cancel_sale) | **PUT** /v1/sales/{saleId}/cancel.json | 受注のキャンセル *ColorMeShop::SaleApi* | [**get_sale**](docs/SaleApi.md#get_sale) | **GET** /v1/sales/{saleId}.json | 受注データの取得 *ColorMeShop::SaleApi* | [**get_sales**](docs/SaleApi.md#get_sales) | **GET** /v1/sales.json | 受注データのリストを取得 *ColorMeShop::SaleApi* | [**send_sales_mail**](docs/SaleApi.md#send_sales_mail) | **POST** /v1/sales/{saleId}/mails.json | メールの送信 *ColorMeShop::SaleApi* | [**stat_sale**](docs/SaleApi.md#stat_sale) | **GET** /v1/sales/stat.json | 売上集計の取得 *ColorMeShop::SaleApi* | [**update_sale**](docs/SaleApi.md#update_sale) | **PUT** /v1/sales/{saleId}.json | 受注データの更新 *ColorMeShop::ScriptApi* | [**create_script_tag**](docs/ScriptApi.md#create_script_tag) | **POST** /v1/script_tags.json | スクリプトタグの作成 *ColorMeShop::ScriptApi* | [**delete_script_tag**](docs/ScriptApi.md#delete_script_tag) | **DELETE** /v1/script_tags/{scriptTagId}.json | スクリプトタグの削除 *ColorMeShop::ScriptApi* | [**get_script_tag**](docs/ScriptApi.md#get_script_tag) | **GET** /v1/script_tags/{scriptTagId}.json | スクリプトタグの取得 *ColorMeShop::ScriptApi* | [**get_script_tags**](docs/ScriptApi.md#get_script_tags) | **GET** /v1/script_tags.json | スクリプトタグの取得 *ColorMeShop::ScriptApi* | [**update_script_tag**](docs/ScriptApi.md#update_script_tag) | **PUT** /v1/script_tags/{scriptTagId}.json | スクリプトタグの更新 *ColorMeShop::ShopApi* | [**get_shop**](docs/ShopApi.md#get_shop) | **GET** /v1/shop.json | ショップ情報の取得 *ColorMeShop::StockApi* | [**get_stocks**](docs/StockApi.md#get_stocks) | **GET** /v1/stocks.json | 在庫情報の取得 ## Documentation for Models - [ColorMeShop::ApplicationCharge](docs/ApplicationCharge.md) - [ColorMeShop::ApplicationChargeCreateResponse](docs/ApplicationChargeCreateResponse.md) - [ColorMeShop::Customer](docs/Customer.md) - [ColorMeShop::Delivery](docs/Delivery.md) - [ColorMeShop::DeliveryChargeByPrefecture](docs/DeliveryChargeByPrefecture.md) - [ColorMeShop::DeliveryDateSetting](docs/DeliveryDateSetting.md) - [ColorMeShop::Meta](docs/Meta.md) - [ColorMeShop::Payment](docs/Payment.md) - [ColorMeShop::Product](docs/Product.md) - [ColorMeShop::ProductCategory](docs/ProductCategory.md) - [ColorMeShop::ProductGroup](docs/ProductGroup.md) - [ColorMeShop::ProductOption](docs/ProductOption.md) - [ColorMeShop::ProductPickup](docs/ProductPickup.md) - [ColorMeShop::ProductUpdateRequest](docs/ProductUpdateRequest.md) - [ColorMeShop::ProductVariant](docs/ProductVariant.md) - [ColorMeShop::RecurringApplicationCharge](docs/RecurringApplicationCharge.md) - [ColorMeShop::RecurringApplicationChargeCreateResponse](docs/RecurringApplicationChargeCreateResponse.md) - [ColorMeShop::Sale](docs/Sale.md) - [ColorMeShop::SaleDelivery](docs/SaleDelivery.md) - [ColorMeShop::SaleDetail](docs/SaleDetail.md) - [ColorMeShop::ScriptTag](docs/ScriptTag.md) - [ColorMeShop::Shop](docs/Shop.md) - [ColorMeShop::Stock](docs/Stock.md) ## Documentation for Authorization ### OAuth2 - **Type**: OAuth - **Flow**: accessCode - **Authorization URL**: https://api.shop-pro.jp/oauth/authorize - **Scopes**: - read_products: 商品データを参照 - write_products: 在庫データを更新 - read_sales: 受注・顧客データを参照 - write_sales: 受注データを更新