3
This document details the operations, transfer method, fields, and encryption scheme used to implement the SwiftAPI.
| Operation | Description |
|---|---|
| home | A user visits the website's homepage. |
| product | A user visits a product details page - a page that lists all information about a single product. |
| cart | A user adds products to the shopping cart. |
| order | A user successfully places an order on the website. |
| pastorder | When a client first sets up the plugin on their website it will send all historical order data to the Swift system, unless the client decides to opt out. |
| subscription | A user submits their email address to join a newsletter using Magento's standard newsletter subscription feature. |
| viewmail | A user accesses the website via a link in one of the Swift system's emails. |
| sendmail | The Swift system has generated an email to be sent by a clients site. |
| unsubscribe | A user unsubscribes from the Swift system. |
Requests to the API will be send via HTTPS POST.
| Key | Data Type | Description |
|---|---|---|
| version | Integer | The API version number. |
| domain | String | The domain name of the SwiftCRM clients site. |
| data | String | A base64 encoded string containing an AES-256 initialization vector followed by a AES-256 encrypted JSON object comprised of the Data Fields listed below. |
| Field | Data Type | Required for Operations | Optional for Operations | Description |
|---|---|---|---|---|
| domain | String | ALL | The domain name of the SwiftCRM clients site. (This is required to be duplicated in the data section to prevent forged requests.) | |
| date | String - ISO 8601 Date | ALL | An ISO Date when the request was generated in the format YYYY-MM-DDThh:mm e.g. 2007-04-05T14:30 | |
| operation | String - SwiftAPI Operation ID | ALL | One of the SwiftAPI operation ID's | |
| user | String - UUID | ALL | A universally unique identifier generated by the SwiftCRM client site/plugin used to identify a user over the duration of their visit to a site. | |
| url | String | home | The URL of the page where the API request was triggered. | |
| String | order, pastorder, subscription, viewmail, sendmail, unsubscribe | home, product, cart | The users email address. | |
| forename | String | order, pastorder | The users forename. | |
| surname | String | order, pastorder | The users surname. | |
| product | String | product, viewmail | A site specific product identifier (Should correspond to ID's provided in the sites 'product XML file'). | |
| products | Array | cart, order, pastorder | An array of JSON objects containing Product Fields. | |
| subject | String | sendmail | Message subject for a swift email. | |
| body | String | sendmail | Message content for a swift email. |
| Field | Data Type | Description |
|---|---|---|
| product | String | A site specific product identifier (Should correspond to ID's provided in the sites 'product XML file'). |
| quantity | Integer | The number of products in the order. |
| price | String | The product price (May potentially differ from the value specified in the sites 'product XML file'). |