pdeans / miva-rest-api
PHP REST API wrapper library for interacting with the Miva JSON API.
Installs: 11
Dependents: 0
Suggesters: 0
Security: 0
Stars: 4
Watchers: 2
Forks: 0
Open Issues: 0
Type:project
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
This package is abandoned and no longer maintained.
Miva JSON API REST Wrapper
PHP library providing a RESTful interface for interacting with the Miva JSON API.
Table Of Contents
- Installation
- Getting Started
- Issuing Requests
- Filtering
- API Endpoints
- Availability Group Endpoints
- Load Availability Groups List
- Load Availability Group
- Update Availability Group Business Account Assignment
- Update Availability Group Customer Account Assignment
- Update Availability Group Payment Method Assignment
- Update Availability Group Product Assignment
- Update Availability Group Shipping Method Assignment
- Category Endpoints
- Coupon Endpoints
- Customer Endpoints
- Note Endpoints
- Order Endpoints
- Order Queue Endpoints
- Payment Endpoints
- Price Group Endpoints
- Product Endpoints
- Provisioning Endpoints
- Shipment Endpoints
- Availability Group Endpoints
Installation
Install via Composer.
$ composer create-project pdeans/miva-rest-api RestApi
Getting Started
Web Server Setup
The web server setup assumes a standard Miva Merchant installation on the server. Issuing the composer command above will download the library files into a directory named RestApi
. This directory should then be uploaded to the web server's root directory via FTP. Alternatively, the composer command may be issued directly to the web server's root directory if installing via SSH.
NOTE: The project files should NEVER be placed in a public facing directory on the web server as this can expose API credentials. Typically, this is the /httpdocs
directory.
Next, within the /RestApi
directory root, locate the /httpdocs
directory and copy or move the /api
directory and all of its contents to the root of the web server's public directory. Again, the public directory is generally /httpdocs
for standard Miva Merchant installations.
The directory and file structure should resemble the following from the web server root:
/httpdocs (public directory)
|-- /api
|-- .htaccess
|-- index.php
/RestApi
|-- Project Files
Essentially, the require statement in the /httpdocs/api/index.php
file should link to the project's /bootstrap/app.php
path.
# /httpdocs/api/index.php $app = require_once __DIR__.'/../../RestApi/bootstrap/app.php';
Configuration
All of the configuration options for the project are stored in the .env
file on the project root.
Here is a breakdown of the settings relevant to the Miva Merchant JSON API:
Key | Required | Description |
---|---|---|
MM_STORE_CODE | Yes | The store code. |
MM_API_URL | Yes | The Api endpoint URL. |
MM_API_TOKEN | Yes | The Api access token. |
MM_API_KEY | Yes | The Api private key. |
MM_API_HTTP_HEADERS | No | Http headers to issue on each API request. The header name and value are separated by a colon ":". Multiple headers can be issued via comma separated list. Example value: "Auth: Basic dXNlcjpwYXNzd29yZA==, Custom: header-value" |
MM_API_HTTP_CLIENT_OPTS | No | Curl options to set on the underlying http client. The curl option name and value are separated by a colon ":". Multiple options can be issued via comma separated list. Example value: "CURLOPT_SSL_VERIFYPEER:0, CURLOPT_SSL_VERIFYHOST:0" |
IP Whitelisting
The web server's IP address will need to be added to the Allowed IP Address(es) list under the API Tokens configuration in the Miva Merchant admin.
Issuing Requests
The REST interface allows for making client and server sided requests to interact with Miva JSON API functions.
Request Authentication
API request authentication is handled behind the scenes based on the credentials provided to the configuration settings in the project root's .env
file. Each request to a REST API endpoint will automatically issue the X-Miva-API-Authorization
and Content-Type
headers, as well as the Miva_Request_Timestamp
and Store_Code
request body parameters. For this reason, these should be omitted in the requests issued to the REST API endpoints.
Function Permissions
Each REST API endpoint maps to a specific JSON API function that must be assigned to the provided API Token in the Miva Merchant admin to enable the REST API endpoint. The API Endpoints definitions specifies the function to enable for each endpoint.
PUT And DELETE Requests
PUT
and DELETE
http methods that target a single resource can omit the "identifier" parameter in the JSON body provided to the endpoint. These parameters are listed in the respective section of the API Endpoints definitions.
Filtering
Filtering for list load and single load resource endpoints can be achieved through the query parameters listed below. See the API Endpoints definitions to see which filter options are supported for each individual endpoint. The filter query parameters may be combined as needed to generate the desired results.
Count
The count
query parameter may be issued to limit the number of records returned for list load endpoints.
Example: ?count=15
Offset
The offset
query parameter may be issued to offset the first record returned for list load endpoints. The offset value is 0 based.
Example: ?offset=5
On Demand Columns
The odc
query parameter may be issued to specify the on demand columns to be included for list load and single resource load endpoints that support the filter. Multiple columns should be provided via comma separated list.
Example: ?odc=categories,CustomField_Values:*
Search
The search
query parameter may be issued on list load endpoints to filter by the provided search terms. The following is the basic pattern used for issuing searches:
search[<index>][values][<index>][field]=<field_code>
search[<index>][values][<index>][operator]=<operator>
search[<index>][values][<index>][value]=<search_value>
- field specifies the field code to target.
- operator specifies the search operator.
- value specifies the search value.
The search value may be provided as a comma separated list for operators that support a list of values (ex: IN).
Additionally, the value segment of the search parameter should be omitted for operators that do not require a value. Currently, these operators include:
- TRUE
- FALSE
- NULL
Simple Searches
The following is an example search query string to filter results by the "code" field equal to a value of "prod1":
?search[0][values][0][field]=code&search[0][values][0][operator]=EQ&search[0][values][0][value]=prod1
AND Searches
A logical AND search can be performed by providing multiple indexes for the search[<index>]
portion of the query string. The pattern should resemble the following:
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>
If we were to provide an additional AND search condition, we would issue a new search
index of 2 in this example, search[2]
. This pattern should be followed for each addtional AND condition.
The following is an example AND search query string that filters the results by category assignment and price criteria:
?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 Searches
A logical OR search can be performed by providing multiple indexes for the values[<index>]
portion of the query string. The pattern should resemble the following:
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>
If we were to provide an additional OR search condition, we would issue a new values
index of 2 in this example, values[2]
. This pattern should be followed for each addtional OR condition.
The following is an example OR search query string that filters the results by records that match either value for the last name of a customer shipping address:
?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
PARENTHETICAL Comparisons
A parenthetical comparison can be performed by providing multidimensional indexes for the values[<index>]
portion of the query string. The pattern should roughly resemble the following:
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>
The parenthetical portion of the search clause is first initiated by setting the value
to []
on the values
index:
search[0][values][1][value]=[]
Next, a new index dimension is provided to the values
indices with the subsequent search criteria to build the desired comparison:
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>
Take following search query for example:
?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
This will generate the following search filter for the API request:
"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
The show
query parameter may be issued to filter list load results according to the provided value.
Example: ?show=Active
Sort
The sort
query parameter may be issued to sort results by the provided column name. To sort the results in descending order, prepend the parameter value with the "-" character.
Example: ?sort=-code
Assigned / Unassigned
The assigned
and unassigned
query parameters may be issued to filter list load results according to their provided value.
API Endpoints
The following section defines the endpoints available for the REST API. The endpoints are based off of the public path set for the REST API's public directory files. Follwing the Web Server Setup, the base uri would be set to /api
. The full url path would then be set as follows:
http(s)://www.yourdomain.com/api/<endpoint>
Availability Group Endpoints
Load Availability Groups List
GET /availabilitygroups
Enable Function: AvailabilityGroupList_Load_Query
HTTP Method | Endpoint | Filters |
---|---|---|
GET | /availabilitygroups | count offset search sort |
Load Availability Group
GET /availabilitygroups/{id}
Enable Function: AvailabilityGroupList_Load_Query
HTTP Method | Endpoint | Path Identifier |
---|---|---|
GET | /availabilitygroups/{id} | {id} = Availability Group Id |
Update Availability Group Business Account Assignment
PUT /availabilitygroups/{id}/businessaccounts
Enable Function: AvailabilityGroupBusinessAccount_Update_Assigned
HTTP Method | Endpoint | Path Identifier | Omit Request Parameter |
---|---|---|---|
PUT | /availabilitygroups/{id}/businessaccounts | {id} = Availability Group Id | AvailabilityGroup_ID |
Example Request Body
{ "BusinessAccount_Title": "Wholesale", "Assigned": true }
Update Availability Group Customer Account Assignment
PUT /availabilitygroups/{id}/customers
Enable Function: AvailabilityGroupCustomer_Update_Assigned
HTTP Method | Endpoint | Path Identifier | Omit Request Parameter |
---|---|---|---|
PUT | /availabilitygroups/{id}/customers | {id} = Availability Group Id | AvailabilityGroup_ID |
Example Request Body
{ "Customer_Login": "pstearns", "Assigned": true }
Update Availability Group Payment Method Assignment
PUT /availabilitygroups/{id}/paymentmethods
Enable Function: AvailabilityGroupPaymentMethod_Update_Assigned
HTTP Method | Endpoint | Path Identifier | Omit Request Parameter |
---|---|---|---|
PUT | /availabilitygroups/{id}/paymentmethods | {id} = Availability Group Id | AvailabilityGroup_ID |
Example Request Body
{ "Module_Code": "check", "Method_Code": "check", "Assigned": true }
Update Availability Group Product Assignment
PUT /availabilitygroups/{id}/products
Enable Function: AvailabilityGroupProduct_Update_Assigned
HTTP Method | Endpoint | Path Identifier | Omit Request Parameter |
---|---|---|---|
PUT | /availabilitygroups/{id}/products | {id} = Availability Group Id | AvailabilityGroup_ID |
Example Request Body
{ "Product_Code": "prod1", "Assigned": true }
Update Availability Group Shipping Method Assignment
PUT /availabilitygroups/{id}/shippingmethods
Enable Function: AvailabilityGroupShippingMethod_Update_Assigned
HTTP Method | Endpoint | Path Identifier | Omit Request Parameter |
---|---|---|---|
PUT | /availabilitygroups/{id}/shippingmethods | {id} = Availability Group Id | AvailabilityGroup_ID |
Example Request Body
{ "Module_Code": "flatrate", "Method_Code": "Standard", "Assigned": true }
Category Endpoints
Load Categories List
GET /categories
Enable Function: CategoryList_Load_Query
HTTP Method | Endpoint | Filters |
---|---|---|
GET | /categories | count odc offset search show sort |
Load Category
GET /categories/{id}
Enable Function: CategoryList_Load_Query
HTTP Method | Endpoint | Path Identifier | Filter |
---|---|---|---|
GET | /categories/{id} | {id} = Category Id | odc |
Create Category
POST /categories
Enable Function: Category_Insert
HTTP Method | Endpoint |
---|---|
POST | /categories |
Example Request Body
{ "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" } } }
Update Category
PUT /categories/{id}
Enable Function: Category_Update
HTTP Method | Endpoint | Path Identifier | Omit Request Parameter |
---|---|---|---|
PUT | /categories/{id} | {id} = Category Id | Category_ID |
Example Request Body
{ "Category_Name": "Sample Categoryyy", "Category_Page_Title": "Sample Category Page Title Update" }
Delete Category
DELETE /categories/{id}
Enable Function: Category_Delete
HTTP Method | Endpoint | Path Identifier |
---|---|---|
DELETE | /categories/{id} | {id} = Category Id |
Load Category Products List
GET /categories/{id}/products
Enable Function: CategoryProductList_Load_Query
HTTP Method | Endpoint | Path Identifier | Filters |
---|---|---|---|
GET | /categories/{id}/products | {id} = Category Id | count odc offset search show sort assigned unassigned |
Update Category Product Assignment
PUT /categories/{id}/products
Enable Function: CategoryProduct_Update_Assigned
HTTP Method | Endpoint | Path Identifier | Omit Request Parameter |
---|---|---|---|
PUT | /categories/{id}/products | {id} = Category Id | Category_ID |
Example Request Body
{ "Product_Code": "prod1", "Assigned": true }
Load Category Subcategories List
GET /categories/{id}/subcategories
Enable Function: CategoryList_Load_Parent
HTTP Method | Endpoint | Path Identifier |
---|---|---|
GET | /categories/{id}/subcategories | {id} = Category Id |
Coupon Endpoints
Load Coupons List
GET /coupons
Enable Function: CouponList_Load_Query
HTTP Method | Endpoint | Filters |
---|---|---|
GET | /coupons | count offset search sort |
Load Coupon
GET /coupons/{id}
Enable Function: CouponList_Load_Query
HTTP Method | Endpoint | Path Identifier |
---|---|---|
GET | /coupons/{id} | {id} = Coupon Id |
Create Coupon
POST /coupons
Enable Function: Coupon_Insert
HTTP Method | Endpoint |
---|---|
POST | /coupons |
Example Request Body
{ "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 }
Update Coupon
PUT /coupons/{id}
Enable Function: Coupon_Update
HTTP Method | Endpoint | Path Identifier | Omit Request Parameter |
---|---|---|---|
PUT | /coupons/{id} | {id} = Coupon Id | Coupon_ID |
Example Request Body
{ "Description": "25 Percent Off 2019" }
Delete Coupons
DELETE /coupons
Enable Function: CouponList_Delete
HTTP Method | Endpoint |
---|---|
DELETE | /coupons |
Example Request Body
{ "Coupon_Ids": [49,50] }
Load Coupon Price Group List
GET /coupons/{id}/pricegroups
Enable Function: CouponPriceGroupList_Load_Query
HTTP Method | Endpoint | Path Identifier |
---|---|---|
GET | /coupons/{id}/pricegroups | {id} = Coupon Id |
Update Coupon Price Group Assignment
PUT /coupons/{id}/pricegroups
Enable Function: CouponPriceGroup_Update_Assigned
HTTP Method | Endpoint | Path Identifier | Omit Request Parameter |
---|---|---|---|
PUT | /coupons/{id}/pricegroups | {id} = Coupon Id | Coupon_Id |
Example Request Body
{ "PriceGroup_Name": "2OFF", "Assigned": true }
Customer Endpoints
Load Customers List
GET /customers
Enable Function: CustomerList_Load_Query
HTTP Method | Endpoint | Filters |
---|---|---|
GET | /customers | count offset search sort |
Load Customer
GET /customers/{id}
Enable Function: CustomerList_Load_Query
HTTP Method | Endpoint | Path Identifier |
---|---|---|
GET | /customers/{id} | {id} = Customer Id |
Create Customer
POST /customers
Enable Function: Customer_Insert
HTTP Method | Endpoint |
---|---|
POST | /customers |
Example Request Body
{ "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" }
Update Customer
PUT /customers/{id}
Enable Function: Customer_Update
HTTP Method | Endpoint | Path Identifier | Omit Request Parameter |
---|---|---|---|
PUT | /customers/{id} | {id} = Customer Id | Customer_ID |
Example Request Body
{ "Customer_Login": "psteezy" }
Delete Customer
DELETE /customers/{id}
Enable Function: Customer_Delete
HTTP Method | Endpoint | Path Identifier |
---|---|---|
DELETE | /customers/{id} | {id} = Customer Id |
Load Customer Addresses List
GET /customers/{id}/addresses
Enable Function: CustomerAddressList_Load_Query
HTTP Method | Endpoint | Filters |
---|---|---|
GET | /customers/{id}/addresses | count offset search sort |
Load Customer Price Groups List
GET /customers/{id}/pricegroups
Enable Function: CustomerPriceGroupList_Load_Query
HTTP Method | Endpoint | Filters |
---|---|---|
GET | /customers/{id}/pricegroups | count offset search sort assigned unassigned |
Note Endpoints
Load Notes List
GET /notes
Enable Function: NoteList_Load_Query
HTTP Method | Endpoint | Filters |
---|---|---|
GET | /notes | count offset search sort |
Load Note
GET /notes/{id}
Enable Function: NoteList_Load_Query
HTTP Method | Endpoint | Path Identifier |
---|---|---|
GET | /notes/{id} | {id} = Note Id |
Create Note
POST /notes
Enable Function: Note_Insert
HTTP Method | Endpoint |
---|---|
POST | /notes |
Example Request Body
{ "NoteText": "This is a custom note for an order", "Order_ID": 97208 }
Update Note
PUT /notes/{id}
Enable Function: Note_Update
HTTP Method | Endpoint | Path Identifier | Omit Request Parameter |
---|---|---|---|
PUT | /notes/{id} | {id} = Note Id | Note_ID |
Example Request Body
{ "NoteText" : "This is an updated custom note for an order" }
Delete Note
DELETE /notes/{id}
Enable Function: Note_Delete
HTTP Method | Endpoint | Path Identifier |
---|---|---|
DELETE | /notes/{id} | {id} = Note Id |
Order Endpoints
Load Orders List
GET /orders
Enable Function: OrderList_Load_Query
HTTP Method | Endpoint | Filters |
---|---|---|
GET | /orders | count odc offset search sort |
Load Order
GET /orders/{id}
Enable Function: OrderList_Load_Query
HTTP Method | Endpoint | Path Identifier | Filter |
---|---|---|---|
GET | /orders/{id} | {id} = Order Id | odc |
Create Order
POST /orders
Enable Function: Order_Create
HTTP Method | Endpoint |
---|---|
POST | /orders |
Example Request Body
{ "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 Order
DELETE /orders/{id}
Enable Function: Order_Delete
HTTP Method | Endpoint | Path Identifier |
---|---|---|
DELETE | /orders/{id} | {id} = Order Id |
Update Order Customer Information
PUT /orders/{id}/customers
Enable Function: Order_Update_Customer_Information
HTTP Method | Endpoint | Path Identifier | Omit Request Parameter |
---|---|---|---|
PUT | /orders/{id}/customers | {id} = Order Id | Order_ID |
Example Request Body
{ "Ship_FirstName": "Peter", "Ship_LastName": "Pan" }
Create Order Item
POST /orders/{id}/items
Enable Function: OrderItem_Add
HTTP Method | Endpoint | Path Identifier |
---|---|---|
POST | /orders/{id}/items | {id} = Order Id |
Example Request Body
{ "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 } ] }
Update Order Item
PUT /orders/{id}/items/{line_id}
Enable Function: OrderItem_Update
HTTP Method | Endpoint | Path Identifiers | Omit Request Parameters |
---|---|---|---|
PUT | /orders/{id}/items/{line_id} | {id} = Order Id {line_id} = Line Item Id |
Order_ID Line_ID |
Example Request Body
{ "Code": "tea-shirt", "Name": "Custom Tea Shirt" }
Cancel Order Items
PUT /orders/{id}/items/cancel
Enable Function: OrderItemList_Cancel
HTTP Method | Endpoint | Path Identifier | Omit Request Parameter |
---|---|---|---|
PUT | /orders/{id}/items/cancel | {id} = Order Id | Order_ID |
Example Request Body
{ "Reason" : "Customer called to remove items", "line_ids": [9525] }
Delete Order Items
PUT /orders/{id}/items/delete
Enable Function: OrderItemList_Delete
HTTP Method | Endpoint | Path Identifier | Omit Request Parameter |
---|---|---|---|
PUT | /orders/{id}/items/delete | {id} = Order Id | Order_ID |
Example Request Body
{ "line_ids": [9525, 9526] }
Backorder Order Items
PUT /orders/{id}/items/backorder
Enable Function: OrderItemList_Backorder
HTTP Method | Endpoint | Path Identifier | Omit Request Parameter |
---|---|---|---|
PUT | /orders/{id}/items/backorder | {id} = Order Id | Order_ID |
Example Request Body
{ "Date_InStock" : 1550658619, "line_ids": [9524] }
Load Orders Custom Fields List
GET /orders/customfields
Enable Function: OrderCustomFieldList_Load
HTTP Method | Endpoint |
---|---|
GET | /orders/customfields |
Update Order Custom Field Values
PUT /orders/{id}/customfields
Enable Function: OrderCustomFields_Update
HTTP Method | Endpoint | Path Identifier | Omit Request Parameter |
---|---|---|---|
PUT | /orders/{id}/customfields | {id} = Order Id | Order_ID |
Example Request Body
{ "CustomField_Values": { "customfields": { "order_test": "Hola Mundo" } } }
Order Queue Endpoints
Load Order Queue List
GET /orderqueues/{code}
Enable Function: QueueOrderList_Load_Query
HTTP Method | Endpoint | Path Identifier | Filters |
---|---|---|---|
GET | /orderqueues/{code} | {code} = Queue Code | count odc offset search sort |
Create Order Queue Acknowledgement
POST /orderqueues
Enable Function: OrderList_Acknowledge
HTTP Method | Endpoint |
---|---|
POST | /orderqueues |
Example Request Body
{ "Order_Ids": [97213, 97214] }
Payment Endpoints
Capture Order Payment
PUT /payments/{id}/capture
Enable Function: OrderPayment_Capture
HTTP Method | Endpoint | Path Identifier | Omit Request Parameter |
---|---|---|---|
PUT | /payments/{id}/capture | {id} = Order Payment Id | OrderPayment_ID |
Example Request Body
{ "Amount": 8.00 }
Refund Order Payment
PUT /payments/{id}/refund
Enable Function: OrderPayment_Refund
HTTP Method | Endpoint | Path Identifier | Omit Request Parameter |
---|---|---|---|
PUT | /payments/{id}/refund | {id} = Order Payment Id | OrderPayment_ID |
Example Request Body
{ "Amount": 8.00 }
Void Order Payment
PUT /payments/{id}/void
Enable Function: OrderPayment_VOID
HTTP Method | Endpoint | Path Identifier | Omit Request Parameter |
---|---|---|---|
PUT | /payments/{id}/void | {id} = Order Payment Id | OrderPayment_ID |
Example Request Body
{ "Amount": 8.00 }
Price Group Endpoints
Load Price Groups List
GET /pricegroups
Enable Function: PriceGroupList_Load_Query
HTTP Method | Endpoint | Filters |
---|---|---|
GET | /pricegroups | count offset search sort |
Load Price Group
GET /pricegroups/{id}
Enable Function: PriceGroupList_Load_Query
HTTP Method | Endpoint | Path Identifier | Filters |
---|---|---|---|
GET | /pricegroups/{id} | {id} = Price Group Id | count odc offset search show sort assigned unassigned |
Load Price Group Products List
GET /pricegroups/{id}/products
Enable Function: PriceGroupProductList_Load_Query
HTTP Method | Endpoint | Path Identifier |
---|---|---|
GET | /pricegroups/{id}/products | {id} = Price Group Id |
Update Price Group Product Assignment
PUT /pricegroups/{id}/products
Enable Function: PriceGroupProduct_Update_Assigned
HTTP Method | Endpoint | Path Identifier | Omit Request Parameter |
---|---|---|---|
PUT | /pricegroups/{id}/products | {id} = Price Group Id | PriceGroup_ID |
Example Request Body
{ "Product_Code": "prod1", "Assigned": true }
Update Price Group Customer Assignment
PUT /pricegroups/{id}/customers
Enable Function: PriceGroupCustomer_Update_Assigned
HTTP Method | Endpoint | Path Identifier | Omit Request Parameter |
---|---|---|---|
PUT | /pricegroups/{id}/customers | {id} = Price Group Id | PriceGroup_ID |
Example Request Body
{ "Customer_login": "psteezy", "Assigned": true }
Product Endpoints
Load Products List
GET /products
Enable Function: ProductList_Load_Query
HTTP Method | Endpoint | Filters |
---|---|---|
GET | /products | count odc offset search show sort |
Load Product
GET /products/{id}
Enable Function: ProductList_Load_Query
HTTP Method | Endpoint | Path Identifier | Filter |
---|---|---|---|
GET | /products/{id} | {id} = Product Id | odc |
Create Product
POST /products
Enable Function: Product_Insert
HTTP Method | Endpoint |
---|---|
POST | /products |
Example Request Body
{ "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" } } }
Update Product
PUT /products/{id}
Enable Function: Product_Update
HTTP Method | Endpoint | Path Identifier | Omit Request Parameter |
---|---|---|---|
PUT | /products/{id} | {id} = Product Id | Product_ID |
Example Request Body
{ "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 Product
DELETE /products/{id}
Enable Function: Product_Delete
HTTP Method | Endpoint | Path Identifier |
---|---|---|
DELETE | /products/{id} | {id} = Product Id |
Adjust Product List Inventory
POST /products/inventory
Enable Function: ProductList_Adjust_Inventory
HTTP Method | Endpoint |
---|---|
POST | /products/inventory |
Example Request Body
{ "Inventory_Adjustments": [ { "product_code": "new-new-product", "adjustment": 9 }, { "product_code": "psteezy-deluxe", "adjustment": 50 }, { "product_code": "blk-shirt", "adjustment": -100 } ] }
Create Product Image
POST /products/{id}/images
Enable Function: ProductImage_Add
HTTP Method | Endpoint | Path Identifier | Omit Request Parameter |
---|---|---|---|
POST | /products/{id}/images | {id} = Product Id | Product_ID |
Example Request Body
{ "Filepath": "graphics/00000001/B1009.001.png", "ImageType_ID": 0 }
Delete Product Image
DELETE /products/images/{id}
Enable Function: ProductImage_Delete
HTTP Method | Endpoint | Path Identifier |
---|---|---|
DELETE | /products/images/{id} | {id} = Product Image Id |
Load Product Variants List
GET /products/{id}/variants
Enable Function: ProductVariantList_Load_Product
HTTP Method | Endpoint | Path Identifier |
---|---|---|
GET | /products/{id}/variants | {id} = Product Id |
Provisioning Endpoints
Domain Level Provisioning
POST /provisioning/domain
Enable Function: Provision_Domain
HTTP Method | Endpoint |
---|---|
POST | /provisioning/domain |
Example Request Body
{ "xml": "<User_Add><Name>miva_merchant<\/Name><Password>password<\/Password><Administrator>Yes<\/Administrator><\/User_Add>" }
Store Level Provisioning
POST /provisioning/store
Enable Function: Provision_Store
HTTP Method | Endpoint |
---|---|
POST | /provisioning/store |
Example Request Body
{ "xml": "<Product_CustomField module=\"baskinv\" field=\"total_inv\" product=\"test\">500</Product_CustomField>" }
Shipment Endpoints
Create Order Shipment
POST /shipments
Enable Function: OrderItemList_CreateShipment
HTTP Method | Endpoint |
---|---|
POST | /shipments |
Example Request Body
{ "Order_Id": 97209, "line_ids": [9513, 9514] }
Update Order Shipments
PUT /shipments
Enable Function: OrderShipmentList_Update
HTTP Method | Endpoint |
---|---|
PUT | /shipments |
Example Request Body
{ "Shipment_Updates": [ { "shpmnt_id": 287, "mark_shipped": true, "tracknum": "12345", "tracktype": "UPS", "cost": "5.00" } ] }