Shopify Rust Client
A Rust client library for interacting with the Shopify Admin API. Currently focused on order management with plans to support all Shopify Admin APIs (REST and GraphQL).
Features
Current Support
- 🔍 Order Retrieval: Fetch orders by ID or order name
- ✏️ Order Updates: Update order properties (e.g., tags)
- 📦 Type-Safe: Strongly typed models for Shopify API responses
- 🚀 Async/Await: Built on
reqwestfor asynchronous HTTP requests - 🔐 Secure: Token-based authentication support
Roadmap
- 🚧 Full Admin REST API: Support for Products, Customers, Inventory, Fulfillments, and more
- 🚧 GraphQL Admin API: Complete GraphQL API support with query builder
- 🚧 Webhook Support: Handle and validate Shopify webhooks
- 🚧 Rate Limiting: Built-in request throttling and retry logic
Installation
Add this to your Cargo.toml:
[]
= "0.1.0"
Or install directly:
Usage
Get Order by ID
use get_order_with_id;
async
Get Order by Name
use get_order_with_name;
async
Update Order (Patch)
use patch_order;
use ;
async
Data Models
The library provides strongly-typed models for Shopify API responses:
- Order: Complete order information including customer, line items, fulfillments, and pricing
- Customer: Customer details (ID, email, phone, name)
- LineItem: Product line items with quantities, prices, and properties
- Fulfillment: Fulfillment tracking information
- PriceSet: Multi-currency pricing information
Error Handling
The library uses a custom APIError enum for error handling:
Authentication
This client requires a Shopify Admin API access token. You can obtain one by:
- Creating a custom app in your Shopify admin panel
- Generating an Admin API access token
- Granting the necessary permissions (e.g.,
read_orders,write_orders)
API Version
Currently uses Shopify Admin API version 2024-07.
Requirements
- Rust 1.56 or later (2021 edition)
- Dependencies:
reqwest(with JSON support)serde(with derive feature)serde_json
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
License
This project is licensed under your preferred license.
Disclaimer
This is an unofficial Shopify client library. For official SDKs and documentation, visit Shopify's Developer Documentation.