Rakuten.RMS.Api
Rakuten (Japan) E-Commerce API access client library for .NET
Install / Use
/learn @JakeJP/Rakuten.RMS.ApiREADME
Rakuten RMS WEB API .NET client library
楽天RMS WEB API へ接続するための .NET クライアントライブラリです。
楽天RMSは楽天出店者が商品や注文の管理を行うウェブプラットフォームです。RMSでは出店者用にWEB APIが公開されており APIを通じて商品、注文、在庫などほとんどの管理を行うことができます。
本ライブラリは、このRMS WEB APIへ接続をサポートする .NET Standard 2.0 クライアントライブラリです。 .NET Framework 4.6.1以降、.NET Core 2.0以降、.NET 5以降で利用可能です。Python.NET を使用すると Python からも API を利用できます。
煩雑な通信部分、メッセージの読み書き部分を内蔵しているため、プログラマーは用途に合ったロジックの構築に集中できます。
本ライブラリは楽天RMS APIへ接続する社内受注管理システムの開発、評価のために作られました。
サーバーサイドAPIと、その仕様、関連するドキュメントは楽天が所有するものであり、それらの詳細については楽天RMS で参照してください。なお楽天RMS APIの利用について、楽天と正式な契約関係のある開発者を支援することを前提としています。
本ライブラリは楽天とは一切関係がありません。動作の安定性、整合性など、楽天の認証や監修を受けたものではありません。このライブラリについて楽天へ問い合わせ等は遠慮ください。
また、RMS APIの仕様、動作などに関する当方へのお問合せもご遠慮ください。
本ライブラリについての議論、未完成部分の実装、バグの報告・修正など、外部からのコミット(pull request等)は常に歓迎します。
履歴
- 2025-12-29 .NET Standard 2.0 プロジェクトへ変更(SDK形式のcsprojに移行)
- 2025-06-07 あす楽関連プロパティ削除。ItemAPI20 Item のValidation実装。クラス配置変更。その他の不具合修正。
- 2024-01-07 システムイベント系DLL分離とバグ修正
- 2023-11-10 全メソッドの実装
- 2023-11-01 ドキュメント類追加
- 2023-09-30 最初のコミット
Copyright and license
Copyright (c) 2023-2026 Jake Yoshimura, Yokinsoft. Released under MIT license.
https://opensource.org/license/mit/
動作環境
Rakuten.RMS.Api(メインライブラリ)
- .NET Standard 2.0
- .NET Framework 4.6.1 以上
- .NET Core 2.0 以上
- .NET 5 以上
- Mono 5.4 以上
- Newtonsoft.Json 13.0.4 以上
- System.ComponentModel.Annotations 5.0.0 以上
Rakuten.RMS.Api.Python(Python連携用)
- 上記に加えて pythonnet 3.0.5
Rakuten.RMS.Api.SystemEventNotification(ASP.NET用イベントハンドラ)
- .NET Framework 4.8 専用
- ASP.NET Web Forms または ASP.NET MVC
インストール
API
ServiceProvider クラスがクライアントの認証情報とカテゴリ別のAPIへアクセスするクラスへのアクセスを提供します。
var provider = new ServiceProvider( serviceSecret, licenseKey );
serviceSecret と licenseKey はRMSのAPI設定から取得できる認証用の文字列です。
各カテゴリ別のAPI群へのアクセスは ServiceProvider のメソッドからオブジェクトを取得します。APIの分類別にアクセスするためのクラスが対応します。
| RMS WEB API カテゴリ | ServiceProvider メソッド | 対応クラス | |:---|:---|:--- | 商品API<br/> 商品API 2.0(ItemAPI 2.0)| GetItemAPI20() | ItemAPI20.ItemAPI20 | カテゴリAPI<br/> カテゴリAPI 2.0(CategoryAPI 2.0)| GetCategoryAPI20() | CategoryAPI20.CategoryAPI20 | 在庫API 在庫API 2.1(InventoryAPI 2.1)| GetInventoryAPI21() | InventoryAPI21.RakutenInventoryServiceV21 | 在庫API 2.0(InventoryAPI 2.0)| GetInventoryAPI20() | InventoryAPI20.RakutenInventoryServiceV2 | ナビゲーションAPI ジャンル・商品属性情報検索API(NavigationAPI 2.0)| GetNavigationAPI20() | NavigationAPI20.NavigationAPI20 | 組み合わせ販売API(ItemBundleAPI)| GetItemBundleAPI() | ItemBundleAPI.ItemBundleAPI | R-CabinetAPI(CabinetAPI) | GetCabinetAPI() | CabinetAPI.CabinetAPI | 製品API(ProductAPI)| GetProductAPI() | ProductAPI.ProductAPI | 楽天ペイ受注API(RakutenPayOrderAPI)| GetRakutenPayOrderAPI() | RakutenPayOrderAPI.RakutenPayOrderService | 購入商品API(PurchaseItemAPI) | GetPurchaseItemAPI() | PurchaseItemAPI.PurchaseItemAPI | 購入申込API(ReserveAPI) | GetReserveAPI() | ReserveAPI.ReserveAPI | 問い合わせ管理API(InquiryManagementAPI) | GetInquiryManagementAPI() | InquiryManagementAPI.InquiryManagementAPI | 店舗情報API(ShopAPI)| GetShopAPI() | ShopAPI.ShopAPI | 店舗ページAPI(ShopPageAPI)| GetShopPageAPI() | ShopPageAPI.ShopPageAPI | クーポンAPI(CouponAPI)| GetCouponAPI() | CouponAPI.CouponAPI | ライセンス管理API(LicenseManagementAPI)| GetLicenseManagementAPI() | LicenseManagementAPI.LicenseManagementAPI
API呼び出しメソッドは、基本的にサービスのエンドポイントで定義されている名前を尊重し、C# 形式、また [動詞][目的語] (GetItemなど)の順になるように定義しなおしています。
コードサンプル
特定の注文番号を指定して注文データを取得する例
using Rakuten.RMS.Api;
var provider = new ServiceProvider( "SPxxxxxxxxxxxxxxxxx","SLxxxxxxxxxxxxxx" );
var orderApi = provider.GetRakutenPayOrderAPI();
var orderList = orderApi.GetOrder( new [] { "123456-12341234-1234567890" } );
Python から利用する方法
Python.NET を使用して Python からAPIにアクセスることができます。
Python.NET を使用して Python から使用するための環境の構築と使用方法の詳細
Python から使用では、list や パラメータのクラスオブジェクトの指定が簡単になります。
注文データの取得の例
sp = ServiceProvider('SPxxxxxxxxxxxxxxxxx','SLxxxxxxxxxxxxxx')
api = sp.GetRakutenPayOrderAPI()
orders = api.GetOrder( ["123456-12341234-1234567890"])
システム通知イベント
楽天からのシステム通知(注文通知、商品編集完了通知など)を受信するための専用ライブラリは、別パッケージとして提供されています。
パッケージ: Yokinsoft.Rakuten.RMS.Api.SystemEventNotification
要件: .NET Framework 4.8、ASP.NET Web Forms または ASP.NET MVC
⚠️ 注意: このパッケージは ASP.NET Framework 専用です。.NET Core / .NET 5+ では使用できません。
実装状況
現在、すべてのAPIとメソッドが実装されているわけではありません。 当面は最新バージョンのAPIのみの実装を目標とします。 SOAP形式など旧来のAPIや廃止されたAPIの実装は省略します。
商品・画像管理
| API | メソッド | 実装 | --- | --- | --- | 商品API 商品API 2.0(ItemAPI 2.0)| items.get |〇 | |items.upsert |〇 | |items.patch |〇 | |items.delete |〇 | |items.search |〇 ||items.inventory-related-settings.get |〇 ||items.inventory-related-settings.update |〇 |カテゴリAPI カテゴリAPI 2.0(CategoryAPI 2.0)| category.shop-categories.get |〇 ||category.shop-categories.insert |〇 ||category.shop-categories.update |〇 ||category.item-mappings.get |〇 ||category.item-mappings.upsert |〇 ||category.item-mappings.delete |〇 ||category.category-trees.get |〇 ||category.category-trees.upsert |〇 ||category.category-set-lists.get |〇 |在庫API 在庫API 2.1(InventoryAPI 2.1)|inventories.variants.get |〇 ||inventories.variants.upsert |〇 ||inventories.variants.delete |〇 ||inventories.bulk.get.range |〇 ||inventories.bulk.get |〇 ||inventories.bulk.upsert |〇 |在庫API 2.0(InventoryAPI 2.0)|inventories.variants.get |〇 ||inventories.variants.upsert |〇 ||inventories.variants.delete |〇 ||inventories.bulk.get.range |〇 ||inventories.bulk.get |〇 ||inventories.bulk.upsert |〇 |ナビゲーションAPI ジャンル・商品属性情報検索API(NavigationAPI 2.0))|version.get |〇 ||genres.get |〇 ||genres.attributes.get |〇 ||genres.attributes.dictionaryValues.get |〇 |組み合わせ販売API(ItemBundleAPI))|ItemBundle.create |△ ||ItemBundle.delete |△ ||ItemBundle.getBundleList |△ ||ItemBundle.update |△ |R-CabinetAPI(CabinetAPI)|cabinet.usage.get |〇 ||cabinet.folders.get |〇 ||cabinet.folder.files.get |〇 ||cabinet.files.search |〇 ||cabinet.file.delete |〇 ||cabinet.trashbox.files.get |〇 ||cabinet.trashbox.files.revert |〇 ||cabinet.file.insert |〇 ||cabinet.file.update |〇 ||cabinet.folder.insert |〇 |製品API(ProductAPI)|product.search |〇
受注・問い合わせ管理
| API | メソッド| 実装 | --- | --- | --- |楽天ペイ受注API(RakutenPayOrderAPI)|searchOrder |〇 ||getOrder |〇 ||confirmOrder |〇 ||updateOrdershipping |〇 ||updateOrderShippingAsync |〇 ||getResultUpdateOrderShippingAsync |〇 ||getSubStatusList |〇 ||updateOrderSubStatus |〇 ||updateOrderMemo |〇 ||updateOrderRemarks |〇 ||updateOrderSender |〇 ||updateOrderSenderAfterShipping |〇 ||cancelOrder |〇 ||cancelOrderAfterShipping |〇 ||updateOrderOrderer |〇 ||updateOrderDelivery |〇 ||simulateCouponAmount |〇 ||getPayment|〇 |購入商品API(PurchaseItemAPI) |searchOrderItem|〇 || getOrderItem|〇 |購入申込API(ReserveAPI) |reserve.infoList.get|〇 ||reserve.earlyCommit.update|〇 |問い合わせ管理API(InquiryManagementAPI) |inquirymngapi.counts.get|〇 ||inquirymngapi.inquiries.get|〇 ||inquirymngapi.inquiry.get|〇 ||inquirymngapi.reply.post|〇 ||inquirymngapi.attachment.post|〇 ||inquirymngapi.attachment.get|〇 ||inquirymngapi.inquiries.patch.read|〇 ||inquirymngapi.inquiries.patch.complete/incomplete|〇
店舗情報
| API | メソッド| 実装 | --- | --- | --- |店舗情報API(ShopAPI)| shop.topDisplay.get | 〇 || shop.topDisplay.edit | 〇 || shop.shopLayoutImage.get | 〇 || shop.shopLayoutImage.edit | 〇 || shop.shopLayoutCommon.get | 〇 || shop.shopLayoutCommon.edit | 〇 || shop.naviButtonInfo.get | 〇 || shop.naviButtonInfo.edit | 〇 || shop.naviButton.get | 〇 || shop.naviButton.edit | 〇 ||
