pdeans / miva-rest-api
用于与Miva JSON API交互的PHP REST API包装库。
Requires
- php: >=7.1.3
- laravel/lumen-framework: 5.7.*
- pdeans/miva-api: ^1.0
- vlucas/phpdotenv: ~2.2
Requires (Dev)
- fzaninotto/faker: ~1.4
- mockery/mockery: ~1.0
- pdeans/utilities: ^1.0
- phpunit/phpunit: ~7.0
This package is auto-updated.
Last update: 2023-06-03 21:01:25 UTC
README
此包已被废弃且不再维护。
Miva JSON API REST包装器
提供RESTful接口用于与Miva JSON API交互的PHP库。
目录
安装
通过 Composer 进行安装。
$ composer create-project pdeans/miva-rest-api RestApi
入门指南
Web服务器设置
Web服务器设置假定服务器上安装了标准的Miva Merchant。运行上述composer命令将库文件下载到名为RestApi
的目录中。然后,应通过FTP将该目录上传到Web服务器的根目录。如果通过SSH安装,可以直接在Web服务器的根目录运行composer命令。
注意:项目文件绝对不应放在Web服务器的公共目录中,因为这可能会暴露API凭证。通常,这是/httpdocs
目录。
接下来,在/RestApi
目录根中,找到/httpdocs
目录,并将/api
目录及其所有内容复制或移动到Web服务器公共目录的根目录。同样,对于标准的Miva Merchant安装,公共目录通常是/httpdocs
。
目录和文件结构应类似于以下Web服务器根目录中的内容
/httpdocs (public directory)
|-- /api
|-- .htaccess
|-- index.php
/RestApi
|-- Project Files
基本上,/httpdocs/api/index.php
文件中的require语句应链接到项目的/bootstrap/app.php
路径。
# /httpdocs/api/index.php $app = require_once __DIR__.'/../../RestApi/bootstrap/app.php';
配置
所有项目配置选项都存储在项目根目录下的.env
文件中。
以下是与Miva Merchant JSON API相关的设置分解
键 | 必需 | 描述 |
---|---|---|
MM_STORE_CODE | 是 | 商店代码。 |
MM_API_URL | 是 | API端点URL。 |
MM_API_TOKEN | 是 | API访问令牌。 |
MM_API_KEY | 是 | API私钥。 |
MM_API_HTTP_HEADERS | 否 | 在每次API请求中发出的Http头部。头部名称和值由冒号":"分隔。可以通过逗号分隔的列表发出多个头部。 示例值 "Auth: Basic dXNlcjpwYXNzd29yZA==, Custom: header-value" |
MM_API_HTTP_CLIENT_OPTS | 否 | 在底层http客户端上设置的Curl选项。Curl选项名称和值由冒号":"分隔。可以通过逗号分隔的列表发出多个选项。 示例值 "CURLOPT_SSL_VERIFYPEER:0, CURLOPT_SSL_VERIFYHOST:0" |
IP白名单
需要在Miva Merchant管理员中的API令牌配置下将Web服务器的IP地址添加到允许的IP地址列表中。
发出请求
REST接口允许通过客户端和服务器端请求与Miva JSON API功能进行交互。
请求认证
API请求认证在后台根据项目根目录的.env
文件中提供的凭据处理。每个对REST API端点的请求将自动发出X-Miva-API-Authorization
和Content-Type
头部,以及Miva_Request_Timestamp
和Store_Code
请求体参数。因此,这些应在发出到REST API端点的请求中省略。
功能权限
每个REST API端点映射到特定的JSON API函数,必须在Miva Merchant管理员中分配给提供的API令牌以启用REST API端点。《API端点定义》指定了每个端点要启用的函数。
PUT和DELETE请求
针对单个资源的PUT
和DELETE
http方法可以在发送到端点的JSON体中省略“标识符”参数。这些参数列在《API端点定义》的相应部分。
过滤
通过以下列出的查询参数可以实现列表加载和单个加载资源端点的过滤。查看《API端点定义》以了解每个单个端点支持哪些过滤选项。可以根据需要组合过滤查询参数以生成所需的结果。
计数
可以发出count
查询参数以限制列表加载端点返回的记录数。
示例:?count=15
偏移量
可以发出offset
查询参数以偏移列表加载端点返回的第一个记录。偏移值基于0。
示例:?offset=5
按需列
可以发出odc
查询参数以指定列表加载和单个资源加载端点(支持过滤)中要包含的按需列。应通过逗号分隔的列表提供多个列。
示例:?odc=categories,CustomField_Values:*
搜索
可以发出search
查询参数在列表加载端点上按提供的搜索词进行过滤。以下是为执行搜索使用的基模式
search[<index>][values][<index>][field]=<field_code>
search[<index>][values][<index>][operator]=<operator>
search[<index>][values][<index>][value]=<search_value>
- field指定要针对的字段代码。
- operator指定搜索操作符。
- value指定搜索值。
对于支持值列表的操作符(例如:IN),搜索值可以作为逗号分隔的列表提供。
对于不需要值的操作符,应省略搜索参数的value
段。目前,这些操作符包括
- TRUE
- FALSE
- NULL
简单搜索
以下是一个示例搜索查询字符串,通过“code”字段等于“prod1”的值来过滤结果
?search[0][values][0][field]=code&search[0][values][0][operator]=EQ&search[0][values][0][value]=prod1
AND搜索
可以通过为查询字符串的search[<index>]
部分提供多个索引来执行逻辑AND
搜索。模式应类似于以下内容
search[0][values][0][field]=<field_code>
search[0][values][0][operator]=<operator>
search[0][values][0][value]=<search_value>
search[1][values][0][field]=<field_code>
search[1][values][0][operator]=<operator>
search[1][values][0][value]=<search_value>
如果我们要提供额外的AND
搜索条件,我们会在本例中发出新的search
索引2,即search[2]
。应遵循此模式为每个额外的AND
条件。
以下是一个AND
搜索查询字符串的示例,该字符串通过类别分配和价格标准来过滤结果
?search[0][values][0][field]=Category&search[0][values][0][operator]=IN&search[0][values][0][value]=13707,13708&search[1][values][0][field]=price&search[1][values][0][operator]=GT&search[1][values][0][value]=19.86
OR 搜索
可以通过为查询字符串中的 values[<index>]
部分提供多个索引来执行逻辑 OR 搜索。模式应类似于以下内容
search[0][values][0][field]=<field_code>
search[0][values][0][operator]=<operator>
search[0][values][0][value]=<search_value>
search[0][values][1][field]=<field_code>
search[0][values][1][operator]=<operator>
search[0][values][1][value]=<search_value>
如果我们想提供额外的 OR 搜索条件,在这个例子中,我们将发出一个 2 的新 values
索引,即 values[2]
。每个额外的 OR 条件都应遵循此模式。
以下是一个示例 OR 搜索查询字符串,该字符串通过记录匹配客户发货地址姓氏的任一值来筛选结果
?search[0][values][0][field]=ship_lname&search[0][values][0][operator]=EQ&search[0][values][0][value]=Griffin&search[0][values][1][field]=ship_lname&search[0][values][1][operator]=EQ&search[0][values][1][value]=Star
括号比较
可以通过为查询字符串中的 values[<index>]
部分提供多维索引来执行括号比较。模式应大致类似于以下内容
search[0][values][0][field]=<field_code>
search[0][values][0][operator]=<operator>
search[0][values][0][value]=<search_value>
search[0][values][1][field]=<field_code>
search[0][values][1][operator]=<operator>
search[0][values][1][value]=[]
search[0][values][1][0][field]=<field_code>
search[0][values][1][0][operator]=<operator>
search[0][values][1][0][value]=<search_value>
search[0][values][1][1][field]=<field_code>
search[0][values][1][1][operator]=<operator>
search[0][values][1][1][value]=<search_value>
搜索子句的括号部分首先通过将 values
索引上的 value
设置为 []
来启动
search[0][values][1][value]=[]
接下来,提供一个新索引维度给 values
索引,并使用随后的搜索条件来构建所需的比较
search[0][values][1][0][field]=<field_code>
search[0][values][1][0][operator]=<operator>
search[0][values][1][0][value]=<search_value>
search[0][values][1][1][field]=<field_code>
search[0][values][1][1][operator]=<operator>
search[0][values][1][1][value]=<search_value>
以下是一个示例搜索查询
?search[0][values][0][field]=ship_lname&search[0][values][0][operator]=EQ&search[0][values][0][value]=Griffin&search[0][values][1][field]=search_OR&search[0][values][1][operator]=SUBWHERE&search[0][values][1][value]=[]&search[0][values][1][0][field]=ship_fname&search[0][values][1][0][operator]=EQ&search[0][values][1][0][value]=Patrick&search[0][values][1][1][field]=ship_lname&search[0][values][1][1][operator]=EQ&search[0][values][1][1][value]=Star
这将生成以下搜索过滤器用于 API 请求
"Filter": [ { "name": "search", "value": [ { "field": "ship_lname", "operator": "EQ", "value": "Griffin" }, { "field": "search_OR", "operator": "SUBWHERE", "value": [ { "field": "ship_fname", "operator": "EQ", "value": "Patrick" }, { "field": "ship_lname", "operator": "EQ", "value": "Star" } ] } ] } ]
显示
可以使用 show
查询参数根据提供的值筛选列表加载结果。
示例: ?show=Active
排序
可以使用 sort
查询参数根据提供的列名排序结果。要按降序排序结果,请将 "-" 字符添加到参数值之前。
示例: ?sort=-code
已分配 / 未分配
可以使用 assigned
和 unassigned
查询参数根据它们的提供值筛选列表加载结果。
API 端点
以下部分定义了 REST API 可用的端点。端点基于 REST API 公共目录文件的公共路径设置。在完成 Web 服务器设置 后,基础 URI 将设置为 /api
。完整的 URL 路径将设置如下
http(s)://www.yourdomain.com/api/<endpoint>
可用性组端点
加载可用性组列表
GET /availabilitygroups
启用功能: AvailabilityGroupList_Load_Query
HTTP 方法 | 端点 | 过滤器 |
---|---|---|
GET | /availabilitygroups | count offset search sort |
加载可用性组
GET /availabilitygroups/{id}
启用功能: AvailabilityGroupList_Load_Query
HTTP 方法 | 端点 | 路径标识符 |
---|---|---|
GET | /availabilitygroups/{id} | {id} = 可用性组 ID |
更新可用性组业务账户分配
PUT /availabilitygroups/{id}/businessaccounts
启用功能: AvailabilityGroupBusinessAccount_Update_Assigned
HTTP 方法 | 端点 | 路径标识符 | 省略请求参数 |
---|---|---|---|
PUT | /availabilitygroups/{id}/businessaccounts | {id} = 可用性组 ID | AvailabilityGroup_ID |
示例请求体
{ "BusinessAccount_Title": "Wholesale", "Assigned": true }
更新可用性组客户账户分配
PUT /availabilitygroups/{id}/customers
启用功能: AvailabilityGroupCustomer_Update_Assigned
HTTP 方法 | 端点 | 路径标识符 | 省略请求参数 |
---|---|---|---|
PUT | /availabilitygroups/{id}/customers | {id} = 可用性组 ID | AvailabilityGroup_ID |
示例请求体
{ "Customer_Login": "pstearns", "Assigned": true }
更新可用性组支付方式分配
PUT /availabilitygroups/{id}/paymentmethods
启用功能: AvailabilityGroupPaymentMethod_Update_Assigned
HTTP 方法 | 端点 | 路径标识符 | 省略请求参数 |
---|---|---|---|
PUT | /availabilitygroups/{id}/paymentmethods | {id} = 可用性组 ID | AvailabilityGroup_ID |
示例请求体
{ "Module_Code": "check", "Method_Code": "check", "Assigned": true }
更新可用性组产品分配
PUT /availabilitygroups/{id}/products
启用功能: AvailabilityGroupProduct_Update_Assigned
HTTP 方法 | 端点 | 路径标识符 | 省略请求参数 |
---|---|---|---|
PUT | /availabilitygroups/{id}/products | {id} = 可用性组 ID | AvailabilityGroup_ID |
示例请求体
{ "Product_Code": "prod1", "Assigned": true }
更新可用性组配送方式分配
PUT /availabilitygroups/{id}/shippingmethods
启用功能: AvailabilityGroupShippingMethod_Update_Assigned
HTTP 方法 | 端点 | 路径标识符 | 省略请求参数 |
---|---|---|---|
PUT | /availabilitygroups/{id}/shippingmethods | {id} = 可用性组 ID | AvailabilityGroup_ID |
示例请求体
{ "Module_Code": "flatrate", "Method_Code": "Standard", "Assigned": true }
类别端点
加载类别列表
GET /categories
启用功能: CategoryList_Load_Query
HTTP 方法 | 端点 | 过滤器 |
---|---|---|
GET | /categories | count odc offset search 显示 sort |
加载类别
GET /categories/{id}
启用功能: CategoryList_Load_Query
HTTP 方法 | 端点 | 路径标识符 | 过滤 |
---|---|---|---|
GET | /categories/{id} | {id} = 类别 ID | odc |
创建类别
POST /categories
启用功能: Category_Insert
HTTP 方法 | 端点 |
---|---|
POST | /categories |
示例请求体
{ "Category_Code": "sample", "Category_Name": "Sample Category", "Category_Active": true, "Category_Page_Title": "Sample Category Page Title", "Category_Parent_Category": "", "Category_Alternate_Display_Page": "", "CustomField_Values": { "customfields": { "category_h2": "Sample Cat -- Meow" } } }
更新类别
PUT /categories/{id}
启用功能: Category_Update
HTTP 方法 | 端点 | 路径标识符 | 省略请求参数 |
---|---|---|---|
PUT | /categories/{id} | {id} = 类别 ID | 类别_ID |
示例请求体
{ "Category_Name": "Sample Categoryyy", "Category_Page_Title": "Sample Category Page Title Update" }
删除类别
DELETE /categories/{id}
启用功能: Category_Delete
HTTP 方法 | 端点 | 路径标识符 |
---|---|---|
DELETE | /categories/{id} | {id} = 类别 ID |
加载类别产品列表
GET /categories/{id}/products
启用功能: CategoryProductList_Load_Query
HTTP 方法 | 端点 | 路径标识符 | 过滤器 |
---|---|---|---|
GET | /categories/{id}/products | {id} = 类别 ID | count odc offset search 显示 sort 已分配 未分配 |
更新类别产品分配
PUT /categories/{id}/products
启用功能: CategoryProduct_Update_Assigned
HTTP 方法 | 端点 | 路径标识符 | 省略请求参数 |
---|---|---|---|
PUT | /categories/{id}/products | {id} = 类别 ID | 类别_ID |
示例请求体
{ "Product_Code": "prod1", "Assigned": true }
加载类别子类别列表
GET /categories/{id}/subcategories
启用功能: CategoryList_Load_Parent
HTTP 方法 | 端点 | 路径标识符 |
---|---|---|
GET | /categories/{id}/subcategories | {id} = 类别 ID |
优惠券端点
加载优惠券列表
GET /coupons
启用功能: CouponList_Load_Query
HTTP 方法 | 端点 | 过滤器 |
---|---|---|
GET | /coupons | count offset search sort |
加载优惠券
GET /coupons/{id}
启用功能: CouponList_Load_Query
HTTP 方法 | 端点 | 路径标识符 |
---|---|---|
GET | /coupons/{id} | {id} = 优惠券 ID |
创建优惠券
POST /coupons
启用功能: Coupon_Insert
HTTP 方法 | 端点 |
---|---|
POST | /coupons |
示例请求体
{ "Code": "25OFF2019", "Description": "25 Percent Off", "CustomerScope": "A", "DateTime_Start": 0, "DateTime_End": 0, "Max_Use": 0, "Max_Per": 0, "Active": true, "PriceGroup_ID": 1 }
更新优惠券
PUT /coupons/{id}
启用功能: Coupon_Update
HTTP 方法 | 端点 | 路径标识符 | 省略请求参数 |
---|---|---|---|
PUT | /coupons/{id} | {id} = 优惠券 ID | 优惠券ID |
示例请求体
{ "Description": "25 Percent Off 2019" }
删除优惠券
DELETE /coupons
启用功能: CouponList_Delete
HTTP 方法 | 端点 |
---|---|
DELETE | /coupons |
示例请求体
{ "Coupon_Ids": [49,50] }
加载优惠券价格组列表
GET /coupons/{id}/pricegroups
启用功能: CouponPriceGroupList_Load_Query
HTTP 方法 | 端点 | 路径标识符 |
---|---|---|
GET | /coupons/{id}/pricegroups | {id} = 优惠券 ID |
更新优惠券价格组分配
PUT /coupons/{id}/pricegroups
启用功能: CouponPriceGroup_Update_Assigned
HTTP 方法 | 端点 | 路径标识符 | 省略请求参数 |
---|---|---|---|
PUT | /coupons/{id}/pricegroups | {id} = 优惠券 ID | 优惠券ID |
示例请求体
{ "PriceGroup_Name": "2OFF", "Assigned": true }
客户端点
加载客户列表
GET /customers
启用功能: CustomerList_Load_Query
HTTP 方法 | 端点 | 过滤器 |
---|---|---|
GET | /customers | count offset search sort |
加载客户
GET /customers/{id}
启用功能: CustomerList_Load_Query
HTTP 方法 | 端点 | 路径标识符 |
---|---|---|
GET | /customers/{id} | {id} = 客户ID |
创建客户
POST /customers
启用功能: Customer_Insert
HTTP 方法 | 端点 |
---|---|
POST | /customers |
示例请求体
{ "Customer_Login": "pstearns", "Customer_PasswordEmail": "noreply@email.com", "Customer_Password": "miva@123", "Customer_ShipResidential": 1, "Customer_ShipFirstName": "Teset", "Customer_ShipLastName": "Order", "Customer_ShipEmail": "noreply@email.com", "Customer_ShipCompany": "Miva, Inc", "Customer_ShipPhone": "555-555-5555", "Customer_ShipFax": "555-555-5555", "Customer_ShipAddress1": "123 abc", "Customer_ShipAddress2": "apt 123", "Customer_ShipCity": "San Diego", "Customer_ShipState": "CA", "Customer_ShipZip": "92127", "Customer_ShipCountry": "US", "Customer_BillFirstName": "Teset", "Customer_BillLastName": "Order", "Customer_BillEmail": "noreply@email.com", "Customer_BillCompany": "Miva, Inc", "Customer_BillPhone": "555-555-5555", "Customer_BillFax": "555-555-5555", "Customer_BillAddress1": "123 abc", "Customer_BillAddress2": "apt 123", "Customer_BillCity": "San Diego", "Customer_BillState": "CA", "Customer_BillZip": "92127", "Customer_BillCountry": "US", "Customer_Tax_Exempt": "1", "Customer_BusinessAccount": "Wholesale" }
更新客户
PUT /customers/{id}
启用功能: Customer_Update
HTTP 方法 | 端点 | 路径标识符 | 省略请求参数 |
---|---|---|---|
PUT | /customers/{id} | {id} = 客户ID | 客户ID |
示例请求体
{ "Customer_Login": "psteezy" }
删除客户
DELETE /customers/{id}
启用功能: Customer_Delete
HTTP 方法 | 端点 | 路径标识符 |
---|---|---|
DELETE | /customers/{id} | {id} = 客户ID |
加载客户地址列表
GET /customers/{id}/addresses
启用功能: CustomerAddressList_Load_Query
HTTP 方法 | 端点 | 过滤器 |
---|---|---|
GET | /customers/{id}/addresses | count offset search sort |
加载客户价格组列表
GET /customers/{id}/pricegroups
启用功能: CustomerPriceGroupList_Load_Query
HTTP 方法 | 端点 | 过滤器 |
---|---|---|
GET | /customers/{id}/pricegroups | count offset search sort 已分配 未分配 |
笔记端点
加载笔记列表
GET /notes
启用功能: NoteList_Load_Query
HTTP 方法 | 端点 | 过滤器 |
---|---|---|
GET | /notes | count offset search sort |
加载笔记
GET /notes/{id}
启用功能: NoteList_Load_Query
HTTP 方法 | 端点 | 路径标识符 |
---|---|---|
GET | /notes/{id} | {id} = 笔记ID |
创建笔记
POST /notes
启用功能: Note_Insert
HTTP 方法 | 端点 |
---|---|
POST | /notes |
示例请求体
{ "NoteText": "This is a custom note for an order", "Order_ID": 97208 }
更新笔记
PUT /notes/{id}
启用功能: Note_Update
HTTP 方法 | 端点 | 路径标识符 | 省略请求参数 |
---|---|---|---|
PUT | /notes/{id} | {id} = 笔记ID | 笔记ID |
示例请求体
{ "NoteText" : "This is an updated custom note for an order" }
删除笔记
DELETE /notes/{id}
启用功能: Note_Delete
HTTP 方法 | 端点 | 路径标识符 |
---|---|---|
DELETE | /notes/{id} | {id} = 笔记ID |
订单端点
加载订单列表
GET /orders
启用功能: OrderList_Load_Query
HTTP 方法 | 端点 | 过滤器 |
---|---|---|
GET | /orders | count odc offset search sort |
加载订单
GET /orders/{id}
启用功能: OrderList_Load_Query
HTTP 方法 | 端点 | 路径标识符 | 过滤 |
---|---|---|---|
GET | /orders/{id} | {id} = 订单ID | odc |
创建订单
POST /orders
启用功能: Order_Create
HTTP 方法 | 端点 |
---|---|
POST | /orders |
示例请求体
{ "Customer_Login": "pstearns", "ShipFirstName": "John", "ShipLastName": "Smith", "ShipEmail": "noreply@superfakeemail.com", "ShipPhone": "8585551234", "ShipFax": "8585554321", "ShipCompany": "Miva, Inc.", "ShipAddress1": "12345 Beehive Ln", "ShipAddress2": "Suite 400", "ShipCity": "San Diego", "ShipState": "CA", "ShipZip": "92127", "ShipCountry": "US", "ShipResidential": false, "BillFirstName": "John", "BillLastName": "Smith", "BillEmail": "noreply@superfakeemail.com", "BillPhone": "8585555678", "BillFax": "8585558765", "BillCompany": "Umbrella Corp", "BillAddress1": "67890 End Of The Rd", "BillCity": "Stan Diego", "BillState": "CA", "BillZip": "92027", "BillCountry": "US", "Items": [ { "status": 0, "code": "aaaaa", "name": "Item 3", "sku": "SKUITEM3", "price": 1.97, "weight": 0.08, "quantity": 2, "taxable": true, "upsold": false, "options": [ { "attr_code": "color", "opt_code": "green", "price": 0.28, "weight": 0.01 } ] } ], "Charges": [ { "type": "SHIPPING", "descrip": "Standard Shipping", "amount": 5.00, "display_amount": 5.00, "tax_exempt": false }, { "type": "TAX", "descrip": "Sales Tax", "amount": 1.25, "display_amount": 1.25, "tax_exempt": true } ], "CustomField_Values": { "customfields": { "order_instructions": "Leave it soaked in the pool please." } } }
删除订单
DELETE /orders/{id}
启用功能: Order_Delete
HTTP 方法 | 端点 | 路径标识符 |
---|---|---|
DELETE | /orders/{id} | {id} = 订单ID |
更新订单客户信息
PUT /orders/{id}/customers
启用功能: Order_Update_Customer_Information
HTTP 方法 | 端点 | 路径标识符 | 省略请求参数 |
---|---|---|---|
PUT | /orders/{id}/customers | {id} = 订单ID | 订单_ID |
示例请求体
{ "Ship_FirstName": "Peter", "Ship_LastName": "Pan" }
创建订单项
POST /orders/{id}/items
启用功能: OrderItem_Add
HTTP 方法 | 端点 | 路径标识符 |
---|---|---|
POST | /orders/{id}/items | {id} = 订单ID |
示例请求体
{ "Code": "custom-schmedium-pink-shirt", "Name": "Custom Schmedium T-Shrt", "SKU": "schmedium-pink-shirt", "Quantity": 3, "Price": 10.58, "Weight": 1, "Taxable": true, "Attributes": [ { "attr_code": "size", "opt_code_or_data": "schmedium", "price": 0, "weight": 0 }, { "attr_code": "color", "opt_code_or_data": "pink", "price": 0, "weight": 0 } ] }
更新订单项
PUT /orders/{id}/items/{line_id}
启用功能: OrderItem_Update
HTTP 方法 | 端点 | 路径标识符 | 省略请求参数 |
---|---|---|---|
PUT | /orders/{id}/items/{line_id} | {id} = 订单ID {line_id} = 行项目 ID |
订单_ID 行_ID |
示例请求体
{ "Code": "tea-shirt", "Name": "Custom Tea Shirt" }
取消订单项
PUT /orders/{id}/items/cancel
启用功能: OrderItemList_Cancel
HTTP 方法 | 端点 | 路径标识符 | 省略请求参数 |
---|---|---|---|
PUT | /orders/{id}/items/cancel | {id} = 订单ID | 订单_ID |
示例请求体
{ "Reason" : "Customer called to remove items", "line_ids": [9525] }
删除订单项
PUT /orders/{id}/items/delete
启用功能: OrderItemList_Delete
HTTP 方法 | 端点 | 路径标识符 | 省略请求参数 |
---|---|---|---|
PUT | /orders/{id}/items/delete | {id} = 订单ID | 订单_ID |
示例请求体
{ "line_ids": [9525, 9526] }
创建背单订单项
PUT /orders/{id}/items/backorder
启用功能: OrderItemList_Backorder
HTTP 方法 | 端点 | 路径标识符 | 省略请求参数 |
---|---|---|---|
PUT | /orders/{id}/items/backorder | {id} = 订单ID | 订单_ID |
示例请求体
{ "Date_InStock" : 1550658619, "line_ids": [9524] }
加载订单自定义字段列表
GET /orders/customfields
启用功能: OrderCustomFieldList_Load
HTTP 方法 | 端点 |
---|---|
GET | /orders/customfields |
更新订单自定义字段值
PUT /orders/{id}/customfields
启用功能: OrderCustomFields_Update
HTTP 方法 | 端点 | 路径标识符 | 省略请求参数 |
---|---|---|---|
PUT | /orders/{id}/customfields | {id} = 订单ID | 订单_ID |
示例请求体
{ "CustomField_Values": { "customfields": { "order_test": "Hola Mundo" } } }
订单队列端点
加载订单队列列表
GET /orderqueues/{code}
启用功能: QueueOrderList_Load_Query
HTTP 方法 | 端点 | 路径标识符 | 过滤器 |
---|---|---|---|
GET | /orderqueues/{code} | {code} = 队列代码 | count odc offset search sort |
创建订单队列确认
POST /orderqueues
启用功能: OrderList_Acknowledge
HTTP 方法 | 端点 |
---|---|
POST | /orderqueues |
示例请求体
{ "Order_Ids": [97213, 97214] }
支付端点
捕获订单支付
PUT /payments/{id}/capture
启用功能: OrderPayment_Capture
HTTP 方法 | 端点 | 路径标识符 | 省略请求参数 |
---|---|---|---|
PUT | /payments/{id}/capture | {id} = 订单支付 ID | 订单支付_ID |
示例请求体
{ "Amount": 8.00 }
退款订单支付
PUT /payments/{id}/refund
启用功能: OrderPayment_Refund
HTTP 方法 | 端点 | 路径标识符 | 省略请求参数 |
---|---|---|---|
PUT | /payments/{id}/refund | {id} = 订单支付 ID | 订单支付_ID |
示例请求体
{ "Amount": 8.00 }
取消订单支付
PUT /payments/{id}/void
启用功能: OrderPayment_VOID
HTTP 方法 | 端点 | 路径标识符 | 省略请求参数 |
---|---|---|---|
PUT | /payments/{id}/void | {id} = 订单支付 ID | 订单支付_ID |
示例请求体
{ "Amount": 8.00 }
价格组端点
加载价格组列表
GET /pricegroups
启用功能: PriceGroupList_Load_Query
HTTP 方法 | 端点 | 过滤器 |
---|---|---|
GET | /pricegroups | count offset search sort |
加载价格组
GET /pricegroups/{id}
启用功能: PriceGroupList_Load_Query
HTTP 方法 | 端点 | 路径标识符 | 过滤器 |
---|---|---|---|
GET | /pricegroups/{id} | {id} = 价格组 ID | count odc offset search 显示 sort 已分配 未分配 |
加载价格组产品列表
GET /pricegroups/{id}/products
启用功能: PriceGroupProductList_Load_Query
HTTP 方法 | 端点 | 路径标识符 |
---|---|---|
GET | /pricegroups/{id}/products | {id} = 价格组 ID |
更新价格组产品分配
PUT /pricegroups/{id}/products
启用功能: PriceGroupProduct_Update_Assigned
HTTP 方法 | 端点 | 路径标识符 | 省略请求参数 |
---|---|---|---|
PUT | /pricegroups/{id}/products | {id} = 价格组 ID | PriceGroup_ID |
示例请求体
{ "Product_Code": "prod1", "Assigned": true }
更新价格组客户分配
PUT /pricegroups/{id}/customers
启用功能: PriceGroupCustomer_Update_Assigned
HTTP 方法 | 端点 | 路径标识符 | 省略请求参数 |
---|---|---|---|
PUT | /pricegroups/{id}/customers | {id} = 价格组 ID | PriceGroup_ID |
示例请求体
{ "Customer_login": "psteezy", "Assigned": true }
产品端点
加载产品列表
GET /products
启用功能: ProductList_Load_Query
HTTP 方法 | 端点 | 过滤器 |
---|---|---|
GET | /products | count odc offset search 显示 sort |
加载产品
GET /products/{id}
启用功能: ProductList_Load_Query
HTTP 方法 | 端点 | 路径标识符 | 过滤 |
---|---|---|---|
GET | /products/{id} | {id} = 产品ID | odc |
创建产品
POST /products
启用功能: Product_Insert
HTTP 方法 | 端点 |
---|---|
POST | /products |
示例请求体
{ "Product_Code": "new-product", "Product_SKU": "555182", "Product_Name": "New Product", "Product_Description": "New descripion", "Product_Page_Title": "New Product", "Product_Price": 5.29, "Product_Cost": 1.27, "Product_Weight": 3.58, "Product_Inventory": 26, "Product_Taxable": true, "Product_Active": true, "CustomField_Values": { "customfields": { "marco": "polo" } } }
更新产品
PUT /products/{id}
启用功能: Product_Update
HTTP 方法 | 端点 | 路径标识符 | 省略请求参数 |
---|---|---|---|
PUT | /products/{id} | {id} = 产品ID | Product_ID |
示例请求体
{ "Product_Code": "new-new-product", "Product_Name": "New New Product", "Product_Description": "New new descripion", "Product_Page_Title": "New New Product", "Product_Price": 5.55 }
删除产品
DELETE /products/{id}
启用功能: Product_Delete
HTTP 方法 | 端点 | 路径标识符 |
---|---|---|
DELETE | /products/{id} | {id} = 产品ID |
调整产品列表库存
POST /products/inventory
启用功能: ProductList_Adjust_Inventory
HTTP 方法 | 端点 |
---|---|
POST | /products/inventory |
示例请求体
{ "Inventory_Adjustments": [ { "product_code": "new-new-product", "adjustment": 9 }, { "product_code": "psteezy-deluxe", "adjustment": 50 }, { "product_code": "blk-shirt", "adjustment": -100 } ] }
创建产品图片
POST /products/{id}/images
启用功能: ProductImage_Add
HTTP 方法 | 端点 | 路径标识符 | 省略请求参数 |
---|---|---|---|
POST | /products/{id}/images | {id} = 产品ID | Product_ID |
示例请求体
{ "Filepath": "graphics/00000001/B1009.001.png", "ImageType_ID": 0 }
删除产品图片
DELETE /products/images/{id}
启用功能: ProductImage_Delete
HTTP 方法 | 端点 | 路径标识符 |
---|---|---|
DELETE | /products/images/{id} | {id} = 产品图片ID |
加载产品变体列表
GET /products/{id}/variants
启用功能: ProductVariantList_Load_Product
HTTP 方法 | 端点 | 路径标识符 |
---|---|---|
GET | /products/{id}/variants | {id} = 产品ID |
配置端点
域名级别配置
POST /provisioning/domain
启用功能: Provision_Domain
HTTP 方法 | 端点 |
---|---|
POST | /provisioning/domain |
示例请求体
{ "xml": "<User_Add><Name>miva_merchant<\/Name><Password>password<\/Password><Administrator>Yes<\/Administrator><\/User_Add>" }
店铺级别配置
POST /provisioning/store
启用功能: Provision_Store
HTTP 方法 | 端点 |
---|---|
POST | /provisioning/store |
示例请求体
{ "xml": "<Product_CustomField module=\"baskinv\" field=\"total_inv\" product=\"test\">500</Product_CustomField>" }
发货端点
创建订单发货
POST /shipments
启用功能: OrderItemList_CreateShipment
HTTP 方法 | 端点 |
---|---|
POST | /shipments |
示例请求体
{ "Order_Id": 97209, "line_ids": [9513, 9514] }
更新订单发货
PUT /shipments
启用功能: OrderShipmentList_Update
HTTP 方法 | 端点 |
---|---|
PUT | /shipments |
示例请求体
{ "Shipment_Updates": [ { "shpmnt_id": 287, "mark_shipped": true, "tracknum": "12345", "tracktype": "UPS", "cost": "5.00" } ] }