CRM
The CRM (Customer Relationship Manager) module allows merchants to correspond with their customers through a managed ticket system. Customers can contact the merchant through a contact form on their website and their 3dcart store's software will automatically keep a record of all interactions.
The 3dcart REST API allows applications to access a store's CRM module to Create, Retrieve, Update, and Delete CRM tickets/interactions, messages, statuses, saved replies and departments.
See our Knowledgebase article on the CRM Module for more information.
CRM
Create a CRM ticket
To create a CRM ticket in the store, use the code below. Make sure to add your Secure URL, Private Key, and Token as described in Authentication. See Object Definitions for more information on the CRM object.
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://apirest.3dcart.com/3dCartWebAPI/v2/CRM");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_HEADER, FALSE);
curl_setopt($ch, CURLOPT_POST, TRUE);
curl_setopt($ch, CURLOPT_POSTFIELDS, "{
\"CrmID\": -96719196,
\"DateOpened\": \"1965-10-13T18:57:26.841Z\",
\"DateLastAction\": \"1993-02-20T22:22:18.158Z\",
\"Subject\": \"aliquip culpa cupida\",
\"DepartmentID\": -45898072,
\"StatusID\": 42907803,
\"CustomerName\": \"nulla magna voluptate\",
\"CustomerEmail\": \"irure dolore nostrud\",
\"CustomerPhone\": \"reprehenderit irure velit\",
\"CustomerIpAddress\": \"nisi et eu\",
\"OrderID\": 62167845,
\"CustomerID\": -1683604,
\"ProductId\": -50664090,
\"CrmMessageList\": [
{
\"MessageId\": -32067752,
\"DateCreated\": \"1960-01-03T09:31:12.907Z\",
\"Message\": \"eu aliquip\",
\"Sender\": -93057008,
\"SenderName\": \"consectetur nulla in dolore\",
\"SenderEmail\": \"sed\",
\"CustomerIPAddress\": \"i\",
\"CrmFileList\": [
{
\"FileId\": -62732864,
\"FileName\": \"deserunt\",
\"DateCreated\": \"2013-12-25T04:30:44.996Z\",
\"IsAdminUploaded\": true
},
{
\"FileId\": -42095705,
\"FileName\": \"pariatur cupidatat veniam\",
\"DateCreated\": \"2009-01-31T18:53:32.300Z\",
\"IsAdminUploaded\": true
}
]
},
{
\"MessageId\": -93125579,
\"DateCreated\": \"1961-10-19T22:27:33.227Z\",
\"Message\": \"mollit non culpa\",
\"Sender\": -59662916,
\"SenderName\": \"tempor cillum elit sit\",
\"SenderEmail\": \"laboris do ut pariatur irure\",
\"CustomerIPAddress\": \"ess\",
\"CrmFileList\": [
{
\"FileId\": 84436169,
\"FileName\": \"non qui\",
\"DateCreated\": \"2011-08-24T23:22:47.869Z\",
\"IsAdminUploaded\": true
},
{
\"FileId\": 37915868,
\"FileName\": \"ea\",
\"DateCreated\": \"2011-01-11T09:38:41.670Z\",
\"IsAdminUploaded\": false
},
{
\"FileId\": -82440936,
\"FileName\": \"amet in tempor\",
\"DateCreated\": \"1979-03-25T00:26:59.719Z\",
\"IsAdminUploaded\": true
},
{
\"FileId\": 86997525,
\"FileName\": \"cupidatat cillum sint pariatur\",
\"DateCreated\": \"1967-03-14T19:24:16.226Z\",
\"IsAdminUploaded\": false
}
]
},
{
\"MessageId\": -74067042,
\"DateCreated\": \"1971-05-25T15:16:34.220Z\",
\"Message\": \"nisi qu\",
\"Sender\": 71647899,
\"SenderName\": \"commodo \",
\"SenderEmail\": \"Excepteur\",
\"CustomerIPAddress\": \"esse nul\",
\"CrmFileList\": [
{
\"FileId\": 35885510,
\"FileName\": \"dolore eu anim\",
\"DateCreated\": \"2004-06-13T10:12:11.684Z\",
\"IsAdminUploaded\": true
},
{
\"FileId\": -21259561,
\"FileName\": \"proident laboris Lorem sint\",
\"DateCreated\": \"1970-06-20T08:27:33.721Z\",
\"IsAdminUploaded\": true
}
]
},
{
\"MessageId\": 44658796,
\"DateCreated\": \"1953-07-26T23:26:11.335Z\",
\"Message\": \"ea incididunt mollit id ut\",
\"Sender\": 723745,
\"SenderName\": \"reprehenderit ut\",
\"SenderEmail\": \"Duis est consequat\",
\"CustomerIPAddress\": \"dolor venia\",
\"CrmFileList\": [
{
\"FileId\": -87569586,
\"FileName\": \"veniam dolor\",
\"DateCreated\": \"1948-07-13T05:06:01.141Z\",
\"IsAdminUploaded\": false
},
{
\"FileId\": 6134085,
\"FileName\": \"est proident in qui\",
\"DateCreated\": \"1990-08-16T01:03:44.959Z\",
\"IsAdminUploaded\": false
},
{
\"FileId\": 68599238,
\"FileName\": \"eu\",
\"DateCreated\": \"1985-05-13T22:17:33.553Z\",
\"IsAdminUploaded\": true
}
]
}
]
}");
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
"Content-Type: application/json",
"Accept: application/json",
"SecureURL: ",
"PrivateKey: ",
"Token: "
));
$response = curl_exec($ch);
curl_close($ch);
var_dump($response);
//Common testing requirement. If you are consuming an API in a sandbox/test region, uncomment this line of code ONLY for non production uses.
//System.Net.ServicePointManager.ServerCertificateValidationCallback = delegate { return true; };
//Be sure to run "Install-Package Microsoft.Net.Http" from your nuget command line.
using System;
using System.Net.Http;
var baseAddress = new Uri("https://apirest.3dcart.com/");
using (var httpClient = new HttpClient{ BaseAddress = baseAddress })
{
httpClient.DefaultRequestHeaders.TryAddWithoutValidation("accept", "application/json");
httpClient.DefaultRequestHeaders.TryAddWithoutValidation("secureurl", "");
httpClient.DefaultRequestHeaders.TryAddWithoutValidation("privatekey", "");
httpClient.DefaultRequestHeaders.TryAddWithoutValidation("token", "");
using (var content = new StringContent("{ \"CrmID\": -96719196, \"DateOpened\": \"1965-10-13T18:57:26.841Z\", \"DateLastAction\": \"1993-02-20T22:22:18.158Z\", \"Subject\": \"aliquip culpa cupida\", \"DepartmentID\": -45898072, \"StatusID\": 42907803, \"CustomerName\": \"nulla magna voluptate\", \"CustomerEmail\": \"irure dolore nostrud\", \"CustomerPhone\": \"reprehenderit irure velit\", \"CustomerIpAddress\": \"nisi et eu\", \"OrderID\": 62167845, \"CustomerID\": -1683604, \"ProductId\": -50664090, \"CrmMessageList\": [ { \"MessageId\": -32067752, \"DateCreated\": \"1960-01-03T09:31:12.907Z\", \"Message\": \"eu aliquip\", \"Sender\": -93057008, \"SenderName\": \"consectetur nulla in dolore\", \"SenderEmail\": \"sed\", \"CustomerIPAddress\": \"i\", \"CrmFileList\": [ { \"FileId\": -62732864, \"FileName\": \"deserunt\", \"DateCreated\": \"2013-12-25T04:30:44.996Z\", \"IsAdminUploaded\": true }, { \"FileId\": -42095705, \"FileName\": \"pariatur cupidatat veniam\", \"DateCreated\": \"2009-01-31T18:53:32.300Z\", \"IsAdminUploaded\": true } ] }, { \"MessageId\": -93125579, \"DateCreated\": \"1961-10-19T22:27:33.227Z\", \"Message\": \"mollit non culpa\", \"Sender\": -59662916, \"SenderName\": \"tempor cillum elit sit\", \"SenderEmail\": \"laboris do ut pariatur irure\", \"CustomerIPAddress\": \"ess\", \"CrmFileList\": [ { \"FileId\": 84436169, \"FileName\": \"non qui\", \"DateCreated\": \"2011-08-24T23:22:47.869Z\", \"IsAdminUploaded\": true }, { \"FileId\": 37915868, \"FileName\": \"ea\", \"DateCreated\": \"2011-01-11T09:38:41.670Z\", \"IsAdminUploaded\": false }, { \"FileId\": -82440936, \"FileName\": \"amet in tempor\", \"DateCreated\": \"1979-03-25T00:26:59.719Z\", \"IsAdminUploaded\": true }, { \"FileId\": 86997525, \"FileName\": \"cupidatat cillum sint pariatur\", \"DateCreated\": \"1967-03-14T19:24:16.226Z\", \"IsAdminUploaded\": false } ] }, { \"MessageId\": -74067042, \"DateCreated\": \"1971-05-25T15:16:34.220Z\", \"Message\": \"nisi qu\", \"Sender\": 71647899, \"SenderName\": \"commodo \", \"SenderEmail\": \"Excepteur\", \"CustomerIPAddress\": \"esse nul\", \"CrmFileList\": [ { \"FileId\": 35885510, \"FileName\": \"dolore eu anim\", \"DateCreated\": \"2004-06-13T10:12:11.684Z\", \"IsAdminUploaded\": true }, { \"FileId\": -21259561, \"FileName\": \"proident laboris Lorem sint\", \"DateCreated\": \"1970-06-20T08:27:33.721Z\", \"IsAdminUploaded\": true } ] }, { \"MessageId\": 44658796, \"DateCreated\": \"1953-07-26T23:26:11.335Z\", \"Message\": \"ea incididunt mollit id ut\", \"Sender\": 723745, \"SenderName\": \"reprehenderit ut\", \"SenderEmail\": \"Duis est consequat\", \"CustomerIPAddress\": \"dolor venia\", \"CrmFileList\": [ { \"FileId\": -87569586, \"FileName\": \"veniam dolor\", \"DateCreated\": \"1948-07-13T05:06:01.141Z\", \"IsAdminUploaded\": false }, { \"FileId\": 6134085, \"FileName\": \"est proident in qui\", \"DateCreated\": \"1990-08-16T01:03:44.959Z\", \"IsAdminUploaded\": false }, { \"FileId\": 68599238, \"FileName\": \"eu\", \"DateCreated\": \"1985-05-13T22:17:33.553Z\", \"IsAdminUploaded\": true } ] } ]}", System.Text.Encoding.Default, "application/json"))
{
using (var response = await httpClient.PostAsync("3dCartWebAPI/v1/CRM", content))
{
string responseData = await response.Content.ReadAsStringAsync();
}
}
}
var request = new XMLHttpRequest();
request.open('POST', 'https://apirest.3dcart.com/3dCartWebAPI/v2/CRM');
request.setRequestHeader('Content-Type', 'application/json');
request.setRequestHeader('Accept', 'application/json');
request.setRequestHeader('SecureURL', '');
request.setRequestHeader('PrivateKey', '');
request.setRequestHeader('Token', '');
request.onreadystatechange = function () {
if (this.readyState === 4) {
console.log('Status:', this.status);
console.log('Headers:', this.getAllResponseHeaders());
console.log('Body:', this.responseText);
}
};
var body = {
'CrmID': -96719196,
'DateOpened': '1965-10-13T18:57:26.841Z',
'DateLastAction': '1993-02-20T22:22:18.158Z',
'Subject': 'aliquip culpa cupida',
'DepartmentID': -45898072,
'StatusID': 42907803,
'CustomerName': 'nulla magna voluptate',
'CustomerEmail': 'irure dolore nostrud',
'CustomerPhone': 'reprehenderit irure velit',
'CustomerIpAddress': 'nisi et eu',
'OrderID': 62167845,
'CustomerID': -1683604,
'ProductId': -50664090,
'CrmMessageList': [
{
'MessageId': -32067752,
'DateCreated': '1960-01-03T09:31:12.907Z',
'Message': 'eu aliquip',
'Sender': -93057008,
'SenderName': 'consectetur nulla in dolore',
'SenderEmail': 'sed',
'CustomerIPAddress': 'i',
'CrmFileList': [
{
'FileId': -62732864,
'FileName': 'deserunt',
'DateCreated': '2013-12-25T04:30:44.996Z',
'IsAdminUploaded': true
},
{
'FileId': -42095705,
'FileName': 'pariatur cupidatat veniam',
'DateCreated': '2009-01-31T18:53:32.300Z',
'IsAdminUploaded': true
}
]
},
{
'MessageId': -93125579,
'DateCreated': '1961-10-19T22:27:33.227Z',
'Message': 'mollit non culpa',
'Sender': -59662916,
'SenderName': 'tempor cillum elit sit',
'SenderEmail': 'laboris do ut pariatur irure',
'CustomerIPAddress': 'ess',
'CrmFileList': [
{
'FileId': 84436169,
'FileName': 'non qui',
'DateCreated': '2011-08-24T23:22:47.869Z',
'IsAdminUploaded': true
},
{
'FileId': 37915868,
'FileName': 'ea',
'DateCreated': '2011-01-11T09:38:41.670Z',
'IsAdminUploaded': false
},
{
'FileId': -82440936,
'FileName': 'amet in tempor',
'DateCreated': '1979-03-25T00:26:59.719Z',
'IsAdminUploaded': true
},
{
'FileId': 86997525,
'FileName': 'cupidatat cillum sint pariatur',
'DateCreated': '1967-03-14T19:24:16.226Z',
'IsAdminUploaded': false
}
]
},
{
'MessageId': -74067042,
'DateCreated': '1971-05-25T15:16:34.220Z',
'Message': 'nisi qu',
'Sender': 71647899,
'SenderName': 'commodo ',
'SenderEmail': 'Excepteur',
'CustomerIPAddress': 'esse nul',
'CrmFileList': [
{
'FileId': 35885510,
'FileName': 'dolore eu anim',
'DateCreated': '2004-06-13T10:12:11.684Z',
'IsAdminUploaded': true
},
{
'FileId': -21259561,
'FileName': 'proident laboris Lorem sint',
'DateCreated': '1970-06-20T08:27:33.721Z',
'IsAdminUploaded': true
}
]
},
{
'MessageId': 44658796,
'DateCreated': '1953-07-26T23:26:11.335Z',
'Message': 'ea incididunt mollit id ut',
'Sender': 723745,
'SenderName': 'reprehenderit ut',
'SenderEmail': 'Duis est consequat',
'CustomerIPAddress': 'dolor venia',
'CrmFileList': [
{
'FileId': -87569586,
'FileName': 'veniam dolor',
'DateCreated': '1948-07-13T05:06:01.141Z',
'IsAdminUploaded': false
},
{
'FileId': 6134085,
'FileName': 'est proident in qui',
'DateCreated': '1990-08-16T01:03:44.959Z',
'IsAdminUploaded': false
},
{
'FileId': 68599238,
'FileName': 'eu',
'DateCreated': '1985-05-13T22:17:33.553Z',
'IsAdminUploaded': true
}
]
}
]
};
request.send(JSON.stringify(body));
require 'rubygems' if RUBY_VERSION < '1.9'
require 'rest_client'
values = '{
"CrmID": -96719196,
"DateOpened": "1965-10-13T18:57:26.841Z",
"DateLastAction": "1993-02-20T22:22:18.158Z",
"Subject": "aliquip culpa cupida",
"DepartmentID": -45898072,
"StatusID": 42907803,
"CustomerName": "nulla magna voluptate",
"CustomerEmail": "irure dolore nostrud",
"CustomerPhone": "reprehenderit irure velit",
"CustomerIpAddress": "nisi et eu",
"OrderID": 62167845,
"CustomerID": -1683604,
"ProductId": -50664090,
"CrmMessageList": [
{
"MessageId": -32067752,
"DateCreated": "1960-01-03T09:31:12.907Z",
"Message": "eu aliquip",
"Sender": -93057008,
"SenderName": "consectetur nulla in dolore",
"SenderEmail": "sed",
"CustomerIPAddress": "i",
"CrmFileList": [
{
"FileId": -62732864,
"FileName": "deserunt",
"DateCreated": "2013-12-25T04:30:44.996Z",
"IsAdminUploaded": true
},
{
"FileId": -42095705,
"FileName": "pariatur cupidatat veniam",
"DateCreated": "2009-01-31T18:53:32.300Z",
"IsAdminUploaded": true
}
]
},
{
"MessageId": -93125579,
"DateCreated": "1961-10-19T22:27:33.227Z",
"Message": "mollit non culpa",
"Sender": -59662916,
"SenderName": "tempor cillum elit sit",
"SenderEmail": "laboris do ut pariatur irure",
"CustomerIPAddress": "ess",
"CrmFileList": [
{
"FileId": 84436169,
"FileName": "non qui",
"DateCreated": "2011-08-24T23:22:47.869Z",
"IsAdminUploaded": true
},
{
"FileId": 37915868,
"FileName": "ea",
"DateCreated": "2011-01-11T09:38:41.670Z",
"IsAdminUploaded": false
},
{
"FileId": -82440936,
"FileName": "amet in tempor",
"DateCreated": "1979-03-25T00:26:59.719Z",
"IsAdminUploaded": true
},
{
"FileId": 86997525,
"FileName": "cupidatat cillum sint pariatur",
"DateCreated": "1967-03-14T19:24:16.226Z",
"IsAdminUploaded": false
}
]
},
{
"MessageId": -74067042,
"DateCreated": "1971-05-25T15:16:34.220Z",
"Message": "nisi qu",
"Sender": 71647899,
"SenderName": "commodo ",
"SenderEmail": "Excepteur",
"CustomerIPAddress": "esse nul",
"CrmFileList": [
{
"FileId": 35885510,
"FileName": "dolore eu anim",
"DateCreated": "2004-06-13T10:12:11.684Z",
"IsAdminUploaded": true
},
{
"FileId": -21259561,
"FileName": "proident laboris Lorem sint",
"DateCreated": "1970-06-20T08:27:33.721Z",
"IsAdminUploaded": true
}
]
},
{
"MessageId": 44658796,
"DateCreated": "1953-07-26T23:26:11.335Z",
"Message": "ea incididunt mollit id ut",
"Sender": 723745,
"SenderName": "reprehenderit ut",
"SenderEmail": "Duis est consequat",
"CustomerIPAddress": "dolor venia",
"CrmFileList": [
{
"FileId": -87569586,
"FileName": "veniam dolor",
"DateCreated": "1948-07-13T05:06:01.141Z",
"IsAdminUploaded": false
},
{
"FileId": 6134085,
"FileName": "est proident in qui",
"DateCreated": "1990-08-16T01:03:44.959Z",
"IsAdminUploaded": false
},
{
"FileId": 68599238,
"FileName": "eu",
"DateCreated": "1985-05-13T22:17:33.553Z",
"IsAdminUploaded": true
}
]
}
]
}'
headers = {
:content_type => 'application/json',
:accept => 'application/json',
:secureurl => '',
:privatekey => '',
:token => ''
}
response = RestClient.post 'https://apirest.3dcart.com/3dCartWebAPI/v2/CRM', values, headers
puts response
from urllib2 import Request, urlopen
values = """
{
"CrmID": -96719196,
"DateOpened": "1965-10-13T18:57:26.841Z",
"DateLastAction": "1993-02-20T22:22:18.158Z",
"Subject": "aliquip culpa cupida",
"DepartmentID": -45898072,
"StatusID": 42907803,
"CustomerName": "nulla magna voluptate",
"CustomerEmail": "irure dolore nostrud",
"CustomerPhone": "reprehenderit irure velit",
"CustomerIpAddress": "nisi et eu",
"OrderID": 62167845,
"CustomerID": -1683604,
"ProductId": -50664090,
"CrmMessageList": [
{
"MessageId": -32067752,
"DateCreated": "1960-01-03T09:31:12.907Z",
"Message": "eu aliquip",
"Sender": -93057008,
"SenderName": "consectetur nulla in dolore",
"SenderEmail": "sed",
"CustomerIPAddress": "i",
"CrmFileList": [
{
"FileId": -62732864,
"FileName": "deserunt",
"DateCreated": "2013-12-25T04:30:44.996Z",
"IsAdminUploaded": true
},
{
"FileId": -42095705,
"FileName": "pariatur cupidatat veniam",
"DateCreated": "2009-01-31T18:53:32.300Z",
"IsAdminUploaded": true
}
]
},
{
"MessageId": -93125579,
"DateCreated": "1961-10-19T22:27:33.227Z",
"Message": "mollit non culpa",
"Sender": -59662916,
"SenderName": "tempor cillum elit sit",
"SenderEmail": "laboris do ut pariatur irure",
"CustomerIPAddress": "ess",
"CrmFileList": [
{
"FileId": 84436169,
"FileName": "non qui",
"DateCreated": "2011-08-24T23:22:47.869Z",
"IsAdminUploaded": true
},
{
"FileId": 37915868,
"FileName": "ea",
"DateCreated": "2011-01-11T09:38:41.670Z",
"IsAdminUploaded": false
},
{
"FileId": -82440936,
"FileName": "amet in tempor",
"DateCreated": "1979-03-25T00:26:59.719Z",
"IsAdminUploaded": true
},
{
"FileId": 86997525,
"FileName": "cupidatat cillum sint pariatur",
"DateCreated": "1967-03-14T19:24:16.226Z",
"IsAdminUploaded": false
}
]
},
{
"MessageId": -74067042,
"DateCreated": "1971-05-25T15:16:34.220Z",
"Message": "nisi qu",
"Sender": 71647899,
"SenderName": "commodo ",
"SenderEmail": "Excepteur",
"CustomerIPAddress": "esse nul",
"CrmFileList": [
{
"FileId": 35885510,
"FileName": "dolore eu anim",
"DateCreated": "2004-06-13T10:12:11.684Z",
"IsAdminUploaded": true
},
{
"FileId": -21259561,
"FileName": "proident laboris Lorem sint",
"DateCreated": "1970-06-20T08:27:33.721Z",
"IsAdminUploaded": true
}
]
},
{
"MessageId": 44658796,
"DateCreated": "1953-07-26T23:26:11.335Z",
"Message": "ea incididunt mollit id ut",
"Sender": 723745,
"SenderName": "reprehenderit ut",
"SenderEmail": "Duis est consequat",
"CustomerIPAddress": "dolor venia",
"CrmFileList": [
{
"FileId": -87569586,
"FileName": "veniam dolor",
"DateCreated": "1948-07-13T05:06:01.141Z",
"IsAdminUploaded": false
},
{
"FileId": 6134085,
"FileName": "est proident in qui",
"DateCreated": "1990-08-16T01:03:44.959Z",
"IsAdminUploaded": false
},
{
"FileId": 68599238,
"FileName": "eu",
"DateCreated": "1985-05-13T22:17:33.553Z",
"IsAdminUploaded": true
}
]
}
]
}
"""
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'SecureURL': '',
'PrivateKey': '',
'Token': ''
}
request = Request('https://apirest.3dcart.com/3dCartWebAPI/v2/CRM', data=values, headers=headers)
response_body = urlopen(request).read()
print response_body
The above request will receive a response with JSON structured like this:
[
{
"Key":"CrmID",
"Value":"1234",
"Status":"201",
"Message":"Created successfully",
}
]
Adds a new CRM ticket to the store. See Object Definitions for more information on the CRM object.
HTTP Request
POST https://apirest.3dcart.com/3dCartWebAPI/v2/CRM
Responses and Errors
Response Code | Description |
---|---|
201 | Successful response code. |
400 | Bad request. Check request headers/parameters/body for errors. |
401 | Authentication failure. The PrivateKey/Token/SecureURL combination is invalid, or the application scope does not have the correct read/write privileges. |
Retrieve a list of CRM tickets
To retrieve a list of CRM tickets from the store, use the code below. Make sure to add your Secure URL, Private Key, and Token as described in Authentication.
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://apirest.3dcart.com/3dCartWebAPI/v2/CRM?subject=&departmentid=&statusid=&openedstartdate=&openedenddate=&lastactionstartdate=&lastactionenddate=&customername=&customeremail=&customerphone=&customeripaddress=&orderid=&custid=&productid=&limit=&offset=&countonly=");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_HEADER, FALSE);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
"Content-Type: application/json",
"Accept: application/json",
"SecureURL: ",
"PrivateKey: ",
"Token: "
));
$response = curl_exec($ch);
curl_close($ch);
var_dump($response);
//Common testing requirement. If you are consuming an API in a sandbox/test region, uncomment this line of code ONLY for non production uses.
//System.Net.ServicePointManager.ServerCertificateValidationCallback = delegate { return true; };
//Be sure to run "Install-Package Microsoft.Net.Http" from your nuget command line.
using System;
using System.Net.Http;
var baseAddress = new Uri("https://apirest.3dcart.com/");
using (var httpClient = new HttpClient{ BaseAddress = baseAddress })
{
httpClient.DefaultRequestHeaders.TryAddWithoutValidation("accept", "application/json");
httpClient.DefaultRequestHeaders.TryAddWithoutValidation("secureurl", "");
httpClient.DefaultRequestHeaders.TryAddWithoutValidation("privatekey", "");
httpClient.DefaultRequestHeaders.TryAddWithoutValidation("token", "");
using(var response = await httpClient.GetAsync("3dCartWebAPI/v1/CRM"))
{
string responseData = await response.Content.ReadAsStringAsync();
}
}
var request = new XMLHttpRequest();
request.open('GET', 'https://apirest.3dcart.com/3dCartWebAPI/v2/CRM?subject=&departmentid=&statusid=&openedstartdate=&openedenddate=&lastactionstartdate=&lastactionenddate=&customername=&customeremail=&customerphone=&customeripaddress=&orderid=&custid=&productid=&limit=&offset=&countonly=');
request.setRequestHeader('Content-Type', 'application/json');
request.setRequestHeader('Accept', 'application/json');
request.setRequestHeader('SecureURL', '');
request.setRequestHeader('PrivateKey', '');
request.setRequestHeader('Token', '');
request.onreadystatechange = function () {
if (this.readyState === 4) {
console.log('Status:', this.status);
console.log('Headers:', this.getAllResponseHeaders());
console.log('Body:', this.responseText);
}
};
request.send();
require 'rubygems' if RUBY_VERSION < '1.9'
require 'rest_client'
headers = {
:content_type => 'application/json',
:accept => 'application/json',
:secureurl => '',
:privatekey => '',
:token => ''
}
response = RestClient.get 'https://apirest.3dcart.com/3dCartWebAPI/v2/CRM?subject=&departmentid=&statusid=&openedstartdate=&openedenddate=&lastactionstartdate=&lastactionenddate=&customername=&customeremail=&customerphone=&customeripaddress=&orderid=&custid=&productid=&limit=&offset=&countonly=', headers
puts response
from urllib2 import Request, urlopen
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'SecureURL': '',
'PrivateKey': '',
'Token': ''
}
request = Request('https://apirest.3dcart.com/3dCartWebAPI/v2/CRM?subject=&departmentid=&statusid=&openedstartdate=&openedenddate=&lastactionstartdate=&lastactionenddate=&customername=&customeremail=&customerphone=&customeripaddress=&orderid=&custid=&productid=&limit=&offset=&countonly=', headers=headers)
response_body = urlopen(request).read()
print response_body
The above request will receive a response with JSON structured like this (See Object Definitions for more information on the CRM object):
[
{
"CrmID": 1,
"DateOpened": "02/26/2019 17:01",
"DateLastAction": "02/26/2019 17:01",
"Subject": "sample string 1",
"DepartmentID": 1,
"StatusID": 1,
"CustomerName": "sample string 2",
"CustomerEmail": "sample string 3",
"CustomerPhone": "sample string 4",
"CustomerIpAddress": "sample string 5",
"OrderID": 1,
"CustomerID": 1,
"ProductId": 1,
"CrmMessageList": [
{
"MessageId": 1,
"DateCreated": "02/26/2019 17:01",
"Message": "sample string 1",
"Sender": 1,
"SenderName": "sample string 2",
"SenderEmail": "sample string 3",
"CustomerIPAddress": "sample string 4",
"CrmFileList": [
{
"FileId": 1,
"FileName": "sample string 1",
"DateCreated": "02/26/2019 17:01",
"IsAdminUploaded": true
},
{
"FileId": 1,
"FileName": "sample string 1",
"DateCreated": "02/26/2019 17:01",
"IsAdminUploaded": true
}
]
},
{
"MessageId": 1,
"DateCreated": "02/26/2019 17:01",
"Message": "sample string 1",
"Sender": 1,
"SenderName": "sample string 2",
"SenderEmail": "sample string 3",
"CustomerIPAddress": "sample string 4",
"CrmFileList": [
{
"FileId": 1,
"FileName": "sample string 1",
"DateCreated": "02/26/2019 17:01",
"IsAdminUploaded": true
},
{
"FileId": 1,
"FileName": "sample string 1",
"DateCreated": "02/26/2019 17:01",
"IsAdminUploaded": true
}
]
}
]
},
{
"CrmID": 1,
"DateOpened": "02/26/2019 17:01",
"DateLastAction": "02/26/2019 17:01",
"Subject": "sample string 1",
"DepartmentID": 1,
"StatusID": 1,
"CustomerName": "sample string 2",
"CustomerEmail": "sample string 3",
"CustomerPhone": "sample string 4",
"CustomerIpAddress": "sample string 5",
"OrderID": 1,
"CustomerID": 1,
"ProductId": 1,
"CrmMessageList": [
{
"MessageId": 1,
"DateCreated": "02/26/2019 17:01",
"Message": "sample string 1",
"Sender": 1,
"SenderName": "sample string 2",
"SenderEmail": "sample string 3",
"CustomerIPAddress": "sample string 4",
"CrmFileList": [
{
"FileId": 1,
"FileName": "sample string 1",
"DateCreated": "02/26/2019 17:01",
"IsAdminUploaded": true
},
{
"FileId": 1,
"FileName": "sample string 1",
"DateCreated": "02/26/2019 17:01",
"IsAdminUploaded": true
}
]
},
{
"MessageId": 1,
"DateCreated": "02/26/2019 17:01",
"Message": "sample string 1",
"Sender": 1,
"SenderName": "sample string 2",
"SenderEmail": "sample string 3",
"CustomerIPAddress": "sample string 4",
"CrmFileList": [
{
"FileId": 1,
"FileName": "sample string 1",
"DateCreated": "02/26/2019 17:01",
"IsAdminUploaded": true
},
{
"FileId": 1,
"FileName": "sample string 1",
"DateCreated": "02/26/2019 17:01",
"IsAdminUploaded": true
}
]
}
]
}
]
Retrieve a list of all CRM tickets in the store.
HTTP Request
GET https://apirest.3dcart.com/3dCartWebAPI/v2/CRM
URL Parameters
Parameter | Required | Description |
---|---|---|
limit | optional | Maximum number of items that can be returned |
offset | optional | Starting point for the return data |
subject | optional | Subject of the CRM |
departmentid | optional | Department of the CRM |
statusid | optional | Status of the CRM |
openedstartdate | optional | Search tickets opened after this date (mm/dd/yyyy hh:mm:ss) |
openedenddate | optional | Search tickets opened before this date (mm/dd/yyyy hh:mm:ss) |
lastactionstartdate | optional | Search tickets with last action occurring after this date (mm/dd/yyyy hh:mm:ss) |
lastactionenddate | optional | Search tickets with last action occurring before this date (mm/dd/yyyy hh:mm:ss) |
customername | optional | Search tickets by customer name |
customeremail | optional | Search tickets by customer email |
customerphone | optional | Search tickets by customer phone |
customeripaddress | optional | Search tickets by the customer's IP address |
orderid | optional | Search tickets by orderid |
custid | optional | Search tickets by customerid |
productid | optional | Search tickets by productid |
countonly | optional | Count the number of rows only |
Responses and Errors
Response Code | Description |
---|---|
200 | Successful response code. |
400 | Bad request. Check request headers/parameters/body for errors. |
401 | Authentication failure. The PrivateKey/Token/SecureURL combination is invalid, or the application scope does not have the correct read/write privileges. |
404 | The specified CRM does not exist. |
Retrieve a specific CRM by id
To retrieve a CRM from the store, use the code below. Make sure to add your Secure URL, Private Key, and Token as described in Authentication. See Object Definitions for more information on the CRM object.
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://apirest.3dcart.com/3dCartWebAPI/v2/CRM/{id}");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_HEADER, FALSE);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
"Content-Type: application/json",
"Accept: application/json",
"SecureURL: ",
"PrivateKey: ",
"Token: "
));
$response = curl_exec($ch);
curl_close($ch);
var_dump($response);
//Common testing requirement. If you are consuming an API in a sandbox/test region, uncomment this line of code ONLY for non production uses.
//System.Net.ServicePointManager.ServerCertificateValidationCallback = delegate { return true; };
//Be sure to run "Install-Package Microsoft.Net.Http" from your nuget command line.
using System;
using System.Net.Http;
var baseAddress = new Uri("https://apirest.3dcart.com/");
using (var httpClient = new HttpClient{ BaseAddress = baseAddress })
{
httpClient.DefaultRequestHeaders.TryAddWithoutValidation("accept", "application/json");
httpClient.DefaultRequestHeaders.TryAddWithoutValidation("secureurl", "");
httpClient.DefaultRequestHeaders.TryAddWithoutValidation("privatekey", "");
httpClient.DefaultRequestHeaders.TryAddWithoutValidation("token", "");
using(var response = await httpClient.GetAsync("3dCartWebAPI/v1/CRM/{id}"))
{
string responseData = await response.Content.ReadAsStringAsync();
}
}
var request = new XMLHttpRequest();
request.open('GET', 'https://apirest.3dcart.com/3dCartWebAPI/v2/CRM/{id}');
request.setRequestHeader('Content-Type', 'application/json');
request.setRequestHeader('Accept', 'application/json');
request.setRequestHeader('SecureURL', '');
request.setRequestHeader('PrivateKey', '');
request.setRequestHeader('Token', '');
request.onreadystatechange = function () {
if (this.readyState === 4) {
console.log('Status:', this.status);
console.log('Headers:', this.getAllResponseHeaders());
console.log('Body:', this.responseText);
}
};
request.send();
require 'rubygems' if RUBY_VERSION < '1.9'
require 'rest_client'
headers = {
:content_type => 'application/json',
:accept => 'application/json',
:secureurl => '',
:privatekey => '',
:token => ''
}
response = RestClient.get 'https://apirest.3dcart.com/3dCartWebAPI/v2/CRM/{id}', headers
puts response
from urllib2 import Request, urlopen
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'SecureURL': '',
'PrivateKey': '',
'Token': ''
}
request = Request('https://apirest.3dcart.com/3dCartWebAPI/v2/CRM/{id}', headers=headers)
response_body = urlopen(request).read()
print response_body
The above request will receive a response with JSON structured like this (See Object Definitions for more information on the CRM object):
{
"CrmID": 1,
"DateOpened": "02/26/2019 17:07",
"DateLastAction": "02/26/2019 17:07",
"Subject": "sample string 1",
"DepartmentID": 1,
"StatusID": 1,
"CustomerName": "sample string 2",
"CustomerEmail": "sample string 3",
"CustomerPhone": "sample string 4",
"CustomerIpAddress": "sample string 5",
"OrderID": 1,
"CustomerID": 1,
"ProductId": 1,
"CrmMessageList": [
{
"MessageId": 1,
"DateCreated": "02/26/2019 17:07",
"Message": "sample string 1",
"Sender": 1,
"SenderName": "sample string 2",
"SenderEmail": "sample string 3",
"CustomerIPAddress": "sample string 4",
"CrmFileList": [
{
"FileId": 1,
"FileName": "sample string 1",
"DateCreated": "02/26/2019 17:07",
"IsAdminUploaded": true
},
{
"FileId": 1,
"FileName": "sample string 1",
"DateCreated": "02/26/2019 17:07",
"IsAdminUploaded": true
}
]
},
{
"MessageId": 1,
"DateCreated": "02/26/2019 17:07",
"Message": "sample string 1",
"Sender": 1,
"SenderName": "sample string 2",
"SenderEmail": "sample string 3",
"CustomerIPAddress": "sample string 4",
"CrmFileList": [
{
"FileId": 1,
"FileName": "sample string 1",
"DateCreated": "02/26/2019 17:07",
"IsAdminUploaded": true
},
{
"FileId": 1,
"FileName": "sample string 1",
"DateCreated": "02/26/2019 17:07",
"IsAdminUploaded": true
}
]
}
]
}
Retrieves a CRM ticket by the specified id. See Object Definitions for more information on the CRM object.
HTTP Request
GET https://apirest.3dcart.com/3dCartWebAPI/v2/CRM/{id}
URL Parameters
Parameter | Required | Description |
---|---|---|
id | required | The ID of the CRM ticket |
Responses and Errors
Response Code | Description |
---|---|
200 | Successful response code. |
400 | Bad request. Check request headers/parameters/body for errors. |
401 | Authentication failure. The PrivateKey/Token/SecureURL combination is invalid, or the application scope does not have the correct read/write privileges. |
404 | The specified CRM does not exist. |
Update a specific CRM ticket by id
This method is used to update a single CRM record in the database. The {id} parameter specifies which CRM record to update. See Object Definitions for more information on the CRM object.
To update a specific CRM ticket in the store, use the code below. Make sure to add your Secure URL, Private Key, and Token as described in Authentication. See Object Definitions for more information on the CRM object.
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://apirest.3dcart.com/3dCartWebAPI/v2/CRM/department/{id}");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_HEADER, FALSE);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "PUT");
curl_setopt($ch, CURLOPT_POSTFIELDS, "{
\"DepartmentId\": -99961439,
\"Name\": \"adipisicing nulla qui magna enim\",
\"Visible\": true
}");
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
"Content-Type: application/json",
"Accept: application/json",
"SecureURL: ",
"PrivateKey: ",
"Token: "
));
$response = curl_exec($ch);
curl_close($ch);
var_dump($response);
//Common testing requirement. If you are consuming an API in a sandbox/test region, uncomment this line of code ONLY for non production uses.
//System.Net.ServicePointManager.ServerCertificateValidationCallback = delegate { return true; };
//Be sure to run "Install-Package Microsoft.Net.Http" from your nuget command line.
using System;
using System.Net.Http;
var baseAddress = new Uri("https://apirest.3dcart.com/");
using (var httpClient = new HttpClient{ BaseAddress = baseAddress })
{
httpClient.DefaultRequestHeaders.TryAddWithoutValidation("accept", "application/json");
httpClient.DefaultRequestHeaders.TryAddWithoutValidation("secureurl", "");
httpClient.DefaultRequestHeaders.TryAddWithoutValidation("privatekey", "");
httpClient.DefaultRequestHeaders.TryAddWithoutValidation("token", "");
using (var content = new StringContent("{ \"DepartmentId\": -99961439, \"Name\": \"adipisicing nulla qui magna enim\", \"Visible\": true}", System.Text.Encoding.Default, "application/json"))
{
using (var response = await httpClient.PutAsync("3dCartWebAPI/v1/CRM/department/{id}", content))
{
string responseData = await response.Content.ReadAsStringAsync();
}
}
}
var request = new XMLHttpRequest();
request.open('PUT', 'https://apirest.3dcart.com/3dCartWebAPI/v2/CRM/department/{id}');
request.setRequestHeader('Content-Type', 'application/json');
request.setRequestHeader('Accept', 'application/json');
request.setRequestHeader('SecureURL', '');
request.setRequestHeader('PrivateKey', '');
request.setRequestHeader('Token', '');
request.onreadystatechange = function () {
if (this.readyState === 4) {
console.log('Status:', this.status);
console.log('Headers:', this.getAllResponseHeaders());
console.log('Body:', this.responseText);
}
};
var body = {
'DepartmentId': -99961439,
'Name': 'adipisicing nulla qui magna enim',
'Visible': true
};
request.send(JSON.stringify(body));
require 'rubygems' if RUBY_VERSION < '1.9'
require 'rest_client'
values = '{
"DepartmentId": -99961439,
"Name": "adipisicing nulla qui magna enim",
"Visible": true
}'
headers = {
:content_type => 'application/json',
:accept => 'application/json',
:secureurl => '',
:privatekey => '',
:token => ''
}
response = RestClient.put 'https://apirest.3dcart.com/3dCartWebAPI/v2/CRM/department/{id}', values, headers
puts response
ATTRIBUTES
DepartmentId
number
Primary key. Auto-incremented. database reference = CRM_Department.id
Name
string
database reference = CRM_Department.department
Visible
boolean
database reference = CRM_Department.visible
from urllib2 import Request, urlopen
values = """
{
"DepartmentId": -99961439,
"Name": "adipisicing nulla qui magna enim",
"Visible": true
}
"""
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'SecureURL': '',
'PrivateKey': '',
'Token': ''
}
request = Request('https://apirest.3dcart.com/3dCartWebAPI/v2/CRM/department/{id}', data=values, headers=headers)
request.get_method = lambda: 'PUT'
response_body = urlopen(request).read()
print response_body
The above request will receive a response with JSON structured like this:
[
{
"Key":"CrmID",
"Value":"1234",
"Status":"200",
"Message":"Updated successfully",
}
]
HTTP Request
PUT https://apirest.3dcart.com/3dCartWebAPI/v2/CRM/{id}
URL Parameters
Parameter | Required | Description |
---|---|---|
id | required | The ID of the CRM ticket |
Responses and Errors
Response Code | Description |
---|---|
200 | Successful response code. |
400 | Bad request. Check request headers/parameters/body for errors. |
401 | Authentication failure. The PrivateKey/Token/SecureURL combination is invalid, or the application scope does not have the correct read/write privileges. |
404 | The specified CRM does not exist. |
Delete a specific CRM ticket by id
Delete a CRM in the system.
To delete a specific CRM ticket from the store, use the code below. Make sure to add your Secure URL, Private Key, and Token as described in Authentication.
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://apirest.3dcart.com/3dCartWebAPI/v2/CRM/{id}");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_HEADER, FALSE);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "DELETE");
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
"Content-Type: application/json",
"Accept: application/json",
"SecureURL: ",
"PrivateKey: ",
"Token: "
));
$response = curl_exec($ch);
curl_close($ch);
var_dump($response);
//Common testing requirement. If you are consuming an API in a sandbox/test region, uncomment this line of code ONLY for non production uses.
//System.Net.ServicePointManager.ServerCertificateValidationCallback = delegate { return true; };
//Be sure to run "Install-Package Microsoft.Net.Http" from your nuget command line.
using System;
using System.Net.Http;
var baseAddress = new Uri("https://apirest.3dcart.com/");
using (var httpClient = new HttpClient{ BaseAddress = baseAddress })
{
httpClient.DefaultRequestHeaders.TryAddWithoutValidation("accept", "application/json");
httpClient.DefaultRequestHeaders.TryAddWithoutValidation("secureurl", "");
httpClient.DefaultRequestHeaders.TryAddWithoutValidation("privatekey", "");
httpClient.DefaultRequestHeaders.TryAddWithoutValidation("token", "");
using(var response = await httpClient.DeleteAsync("3dCartWebAPI/v1/CRM/{id}"))
{
string responseData = await response.Content.ReadAsStringAsync();
}
}
var request = new XMLHttpRequest();
request.open('DELETE', 'https://apirest.3dcart.com/3dCartWebAPI/v2/CRM/{id}');
request.setRequestHeader('Content-Type', 'application/json');
request.setRequestHeader('Accept', 'application/json');
request.setRequestHeader('SecureURL', '');
request.setRequestHeader('PrivateKey', '');
request.setRequestHeader('Token', '');
request.onreadystatechange = function () {
if (this.readyState === 4) {
console.log('Status:', this.status);
console.log('Headers:', this.getAllResponseHeaders());
console.log('Body:', this.responseText);
}
};
request.send();
require 'rubygems' if RUBY_VERSION < '1.9'
require 'rest_client'
headers = {
:content_type => 'application/xml',
:accept => 'application/json',
:secureurl => '',
:privatekey => '',
:token => ''
}
response = RestClient.delete 'https://apirest.3dcart.com/3dCartWebAPI/v2/CRM/{id}', headers
puts response
from urllib2 import Request, urlopen
headers = {
'Content-Type': 'application/xml',
'Accept': 'application/json',
'SecureURL': '',
'PrivateKey': '',
'Token': ''
}
request = Request('https://apirest.3dcart.com/3dCartWebAPI/v2/CRM/{id}', headers=headers)
request.get_method = lambda: 'DELETE'
response_body = urlopen(request).read()
print response_body
The above request will receive a response with JSON structured like this:
[
{
"Key":"CrmID",
"Value":"1234",
"Status":"200",
"Message":"Deleted successfully",
}
]
HTTP Request
DELETE https://apirest.3dcart.com/3dCartWebAPI/v2/CRM/{id}
URL Parameters
Parameter | Required | Description |
---|---|---|
id | required | The ID of the CRM ticket |
Responses and Errors
Response Code | Description |
---|---|
200 | Successful response code. |
400 | Bad request. Check request headers/parameters/body for errors. |
401 | Authentication failure. The PrivateKey/Token/SecureURL combination is invalid, or the application scope does not have the correct read/write privileges. |
404 | The specified CRM does not exist. |
CRM Messages
The CRM Messages web service allows an application to Create, Retrieve, and Delete CRM Messages to and from the customer (Updating a message is not available, as an email is sent once the message is created).
Create a message in a specific CRM ticket
To create a message in a specific CRM ticket, use the code below. Make sure to add your Secure URL, Private Key, and Token as described in Authentication. See Object Definitions for more information on the CrmMessage object.
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://apirest.3dcart.com/3dCartWebAPI/v2/CRM/{id}/message");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_HEADER, FALSE);
curl_setopt($ch, CURLOPT_POST, TRUE);
curl_setopt($ch, CURLOPT_POSTFIELDS, "{
\"MessageId\": 9725714,
\"DateCreated\": \"1991-05-24T03:47:48.232Z\",
\"Message\": \"commodo in sed\",
\"Sender\": 80134704,
\"SenderName\": \"tempor\",
\"SenderEmail\": \"qui mollit\",
\"CustomerIPAddress\": \"dolore cupidata\",
\"CrmFileList\": [
{
\"FileId\": -43806323,
\"FileName\": \"elit sed dolore cupidatat enim\",
\"DateCreated\": \"2013-06-16T22:55:49.227Z\",
\"IsAdminUploaded\": false
}
]
}");
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
"Content-Type: application/json",
"Accept: application/json",
"SecureURL: ",
"PrivateKey: ",
"Token: "
));
$response = curl_exec($ch);
curl_close($ch);
var_dump($response);
//Common testing requirement. If you are consuming an API in a sandbox/test region, uncomment this line of code ONLY for non production uses.
//System.Net.ServicePointManager.ServerCertificateValidationCallback = delegate { return true; };
//Be sure to run "Install-Package Microsoft.Net.Http" from your nuget command line.
using System;
using System.Net.Http;
var baseAddress = new Uri("https://apirest.3dcart.com/");
using (var httpClient = new HttpClient{ BaseAddress = baseAddress })
{
httpClient.DefaultRequestHeaders.TryAddWithoutValidation("accept", "application/json");
httpClient.DefaultRequestHeaders.TryAddWithoutValidation("secureurl", "");
httpClient.DefaultRequestHeaders.TryAddWithoutValidation("privatekey", "");
httpClient.DefaultRequestHeaders.TryAddWithoutValidation("token", "");
using (var content = new StringContent("{ \"MessageId\": 9725714, \"DateCreated\": \"1991-05-24T03:47:48.232Z\", \"Message\": \"commodo in sed\", \"Sender\": 80134704, \"SenderName\": \"tempor\", \"SenderEmail\": \"qui mollit\", \"CustomerIPAddress\": \"dolore cupidata\", \"CrmFileList\": [ { \"FileId\": -43806323, \"FileName\": \"elit sed dolore cupidatat enim\", \"DateCreated\": \"2013-06-16T22:55:49.227Z\", \"IsAdminUploaded\": false } ]}", System.Text.Encoding.Default, "application/json"))
{
using (var response = await httpClient.PostAsync("3dCartWebAPI/v1/CRM/{id}/message", content))
{
string responseData = await response.Content.ReadAsStringAsync();
}
}
}
var request = new XMLHttpRequest();
request.open('POST', 'https://apirest.3dcart.com/3dCartWebAPI/v2/CRM/{id}/message');
request.setRequestHeader('Content-Type', 'application/json');
request.setRequestHeader('Accept', 'application/json');
request.setRequestHeader('SecureURL', '');
request.setRequestHeader('PrivateKey', '');
request.setRequestHeader('Token', '');
request.onreadystatechange = function () {
if (this.readyState === 4) {
console.log('Status:', this.status);
console.log('Headers:', this.getAllResponseHeaders());
console.log('Body:', this.responseText);
}
};
var body = {
'MessageId': 9725714,
'DateCreated': '1991-05-24T03:47:48.232Z',
'Message': 'commodo in sed',
'Sender': 80134704,
'SenderName': 'tempor',
'SenderEmail': 'qui mollit',
'CustomerIPAddress': 'dolore cupidata',
'CrmFileList': [
{
'FileId': -43806323,
'FileName': 'elit sed dolore cupidatat enim',
'DateCreated': '2013-06-16T22:55:49.227Z',
'IsAdminUploaded': false
}
]
};
request.send(JSON.stringify(body));
require 'rubygems' if RUBY_VERSION < '1.9'
require 'rest_client'
values = '{
"MessageId": 9725714,
"DateCreated": "1991-05-24T03:47:48.232Z",
"Message": "commodo in sed",
"Sender": 80134704,
"SenderName": "tempor",
"SenderEmail": "qui mollit",
"CustomerIPAddress": "dolore cupidata",
"CrmFileList": [
{
"FileId": -43806323,
"FileName": "elit sed dolore cupidatat enim",
"DateCreated": "2013-06-16T22:55:49.227Z",
"IsAdminUploaded": false
}
]
}'
headers = {
:content_type => 'application/json',
:accept => 'application/json',
:secureurl => '',
:privatekey => '',
:token => ''
}
response = RestClient.post 'https://apirest.3dcart.com/3dCartWebAPI/v2/CRM/{id}/message', values, headers
puts response
from urllib2 import Request, urlopen
values = """
{
"MessageId": 9725714,
"DateCreated": "1991-05-24T03:47:48.232Z",
"Message": "commodo in sed",
"Sender": 80134704,
"SenderName": "tempor",
"SenderEmail": "qui mollit",
"CustomerIPAddress": "dolore cupidata",
"CrmFileList": [
{
"FileId": -43806323,
"FileName": "elit sed dolore cupidatat enim",
"DateCreated": "2013-06-16T22:55:49.227Z",
"IsAdminUploaded": false
}
]
}
"""
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'SecureURL': '',
'PrivateKey': '',
'Token': ''
}
request = Request('https://apirest.3dcart.com/3dCartWebAPI/v2/CRM/{id}/message', data=values, headers=headers)
response_body = urlopen(request).read()
print response_body
The above request will receive a response with JSON structured like this:
[
{
"Key":"MessageId",
"Value":"1234",
"Status":"201",
"Message":"Created successfully",
}
]
Adds a new message to a specific CRM ticket. See Object Definitions for more information on the CrmMessage object.
HTTP Request
POST https://apirest.3dcart.com/3dCartWebAPI/v2/CRM/{id}/message
URL Parameters
Parameter | Required | Description |
---|---|---|
id | required | The ID of the CRM ticket where the message will be added |
Responses and Errors
Response Code | Description |
---|---|
201 | Successful response code. |
400 | Bad request. Check request headers/parameters/body for errors. |
401 | Authentication failure. The PrivateKey/Token/SecureURL combination is invalid, or the application scope does not have the correct read/write privileges. |
404 | The specified CRM does not exist. |
Retrieve all the messages from a specific CRM
To retrieve all messages from a specific CRM ticket in the store, use the code below. Make sure to add your Secure URL, Private Key, and Token as described in Authentication. See Object Definitions for more information on the CrmMessage object.
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://apirest.3dcart.com/3dCartWebAPI/v2/CRM/{crmid}/message?limit=&offset=");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_HEADER, FALSE);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
"Content-Type: application/json",
"Accept: application/json",
"SecureURL: ",
"PrivateKey: ",
"Token: "
));
$response = curl_exec($ch);
curl_close($ch);
var_dump($response);
//Common testing requirement. If you are consuming an API in a sandbox/test region, uncomment this line of code ONLY for non production uses.
//System.Net.ServicePointManager.ServerCertificateValidationCallback = delegate { return true; };
//Be sure to run "Install-Package Microsoft.Net.Http" from your nuget command line.
using System;
using System.Net.Http;
var baseAddress = new Uri("https://apirest.3dcart.com/");
using (var httpClient = new HttpClient{ BaseAddress = baseAddress })
{
httpClient.DefaultRequestHeaders.TryAddWithoutValidation("accept", "application/json");
httpClient.DefaultRequestHeaders.TryAddWithoutValidation("secureurl", "");
httpClient.DefaultRequestHeaders.TryAddWithoutValidation("privatekey", "");
httpClient.DefaultRequestHeaders.TryAddWithoutValidation("token", "");
using(var response = await httpClient.GetAsync("3dCartWebAPI/v1/CRM/{crmid}/message"))
{
string responseData = await response.Content.ReadAsStringAsync();
}
}
var request = new XMLHttpRequest();
request.open('GET', 'https://apirest.3dcart.com/3dCartWebAPI/v2/CRM/{crmid}/message?limit=&offset=');
request.setRequestHeader('Content-Type', 'application/json');
request.setRequestHeader('Accept', 'application/json');
request.setRequestHeader('SecureURL', '');
request.setRequestHeader('PrivateKey', '');
request.setRequestHeader('Token', '');
request.onreadystatechange = function () {
if (this.readyState === 4) {
console.log('Status:', this.status);
console.log('Headers:', this.getAllResponseHeaders());
console.log('Body:', this.responseText);
}
};
request.send();
require 'rubygems' if RUBY_VERSION < '1.9'
require 'rest_client'
headers = {
:content_type => 'application/json',
:accept => 'application/json',
:secureurl => '',
:privatekey => '',
:token => ''
}
response = RestClient.get 'https://apirest.3dcart.com/3dCartWebAPI/v2/CRM/{crmid}/message?limit=&offset=', headers
puts response
from urllib2 import Request, urlopen
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'SecureURL': '',
'PrivateKey': '',
'Token': ''
}
request = Request('https://apirest.3dcart.com/3dCartWebAPI/v2/CRM/{crmid}/message?limit=&offset=', headers=headers)
response_body = urlopen(request).read()
print response_body
The above request will receive a response with JSON structured like this (See Object Definitions for more information on the CrmMessage object):
[
{
"MessageId": 1,
"DateCreated": "02/27/2019 10:56",
"Message": "sample string 1",
"Sender": 1,
"SenderName": "sample string 2",
"SenderEmail": "sample string 3",
"CustomerIPAddress": "sample string 4",
"CrmFileList": [
{
"FileId": 1,
"FileName": "sample string 1",
"DateCreated": "02/27/2019 10:56",
"IsAdminUploaded": true
},
{
"FileId": 1,
"FileName": "sample string 1",
"DateCreated": "02/27/2019 10:56",
"IsAdminUploaded": true
}
]
},
{
"MessageId": 1,
"DateCreated": "02/27/2019 10:56",
"Message": "sample string 1",
"Sender": 1,
"SenderName": "sample string 2",
"SenderEmail": "sample string 3",
"CustomerIPAddress": "sample string 4",
"CrmFileList": [
{
"FileId": 1,
"FileName": "sample string 1",
"DateCreated": "02/27/2019 10:56",
"IsAdminUploaded": true
},
{
"FileId": 1,
"FileName": "sample string 1",
"DateCreated": "02/27/2019 10:56",
"IsAdminUploaded": true
}
]
}
]
This method retrieves a list of all messages from a specific CRM ticket. See Object Definitions for more information on the CrmMessage object.
HTTP Request
GET https://apirest.3dcart.com/3dCartWebAPI/v2/CRM/{id}/message
URL Parameters
Parameter | Required | Description |
---|---|---|
crmid | required | The ID of the CRM ticket |
Responses and Errors
Response Code | Description |
---|---|
200 | Successful response code. |
400 | Bad request. Check request headers/parameters/body for errors. |
401 | Authentication failure. The PrivateKey/Token/SecureURL combination is invalid, or the application scope does not have the correct read/write privileges. |
404 | The specified CRM does not exist, or has no messages. |
Retrieve a specific CRM message
To retrieve a specific message from a specific CRM ticket in the store, use the code below. Make sure to add your Secure URL, Private Key, and Token as described in Authentication. See Object Definitions for more information on the CrmMessage object.
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://apirest.3dcart.com/3dCartWebAPI/v2/CRM/{crmid}/message/{msgid}");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_HEADER, FALSE);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
"Content-Type: application/json",
"Accept: application/json",
"SecureURL: ",
"PrivateKey: ",
"Token: "
));
$response = curl_exec($ch);
curl_close($ch);
var_dump($response);
//Common testing requirement. If you are consuming an API in a sandbox/test region, uncomment this line of code ONLY for non production uses.
//System.Net.ServicePointManager.ServerCertificateValidationCallback = delegate { return true; };
//Be sure to run "Install-Package Microsoft.Net.Http" from your nuget command line.
using System;
using System.Net.Http;
var baseAddress = new Uri("https://apirest.3dcart.com/");
using (var httpClient = new HttpClient{ BaseAddress = baseAddress })
{
httpClient.DefaultRequestHeaders.TryAddWithoutValidation("accept", "application/json");
httpClient.DefaultRequestHeaders.TryAddWithoutValidation("secureurl", "");
httpClient.DefaultRequestHeaders.TryAddWithoutValidation("privatekey", "");
httpClient.DefaultRequestHeaders.TryAddWithoutValidation("token", "");
using(var response = await httpClient.GetAsync("3dCartWebAPI/v1/CRM/{crmid}/message/{msgid}"))
{
string responseData = await response.Content.ReadAsStringAsync();
}
}
var request = new XMLHttpRequest();
request.open('GET', 'https://apirest.3dcart.com/3dCartWebAPI/v2/CRM/{crmid}/message/{msgid}');
request.setRequestHeader('Content-Type', 'application/json');
request.setRequestHeader('Accept', 'application/json');
request.setRequestHeader('SecureURL', '');
request.setRequestHeader('PrivateKey', '');
request.setRequestHeader('Token', '');
request.onreadystatechange = function () {
if (this.readyState === 4) {
console.log('Status:', this.status);
console.log('Headers:', this.getAllResponseHeaders());
console.log('Body:', this.responseText);
}
};
request.send();
require 'rubygems' if RUBY_VERSION < '1.9'
require 'rest_client'
headers = {
:content_type => 'application/json',
:accept => 'application/json',
:secureurl => '',
:privatekey => '',
:token => ''
}
response = RestClient.get 'https://apirest.3dcart.com/3dCartWebAPI/v2/CRM/{crmid}/message/{msgid}', headers
puts response
from urllib2 import Request, urlopen
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'SecureURL': '',
'PrivateKey': '',
'Token': ''
}
request = Request('https://apirest.3dcart.com/3dCartWebAPI/v2/CRM/{crmid}/message/{msgid}', headers=headers)
response_body = urlopen(request).read()
print response_body
The above request will receive a response with JSON structured like this (See Object Definitions for more information on the CrmMessage object):
[
{
"MessageId": 1,
"DateCreated": "02/27/2019 10:56",
"Message": "sample string 1",
"Sender": 1,
"SenderName": "sample string 2",
"SenderEmail": "sample string 3",
"CustomerIPAddress": "sample string 4",
"CrmFileList": [
{
"FileId": 1,
"FileName": "sample string 1",
"DateCreated": "02/27/2019 10:56",
"IsAdminUploaded": true
},
{
"FileId": 1,
"FileName": "sample string 1",
"DateCreated": "02/27/2019 10:56",
"IsAdminUploaded": true
}
]
},
{
"MessageId": 1,
"DateCreated": "02/27/2019 10:56",
"Message": "sample string 1",
"Sender": 1,
"SenderName": "sample string 2",
"SenderEmail": "sample string 3",
"CustomerIPAddress": "sample string 4",
"CrmFileList": [
{
"FileId": 1,
"FileName": "sample string 1",
"DateCreated": "02/27/2019 10:56",
"IsAdminUploaded": true
},
{
"FileId": 1,
"FileName": "sample string 1",
"DateCreated": "02/27/2019 10:56",
"IsAdminUploaded": true
}
]
}
]
This method is used to retrieve a specific message from a specific CRM ticket. See Object Definitions for more information on the CrmMessage object.
HTTP Request
GET https://apirest.3dcart.com/3dCartWebAPI/v2/CRM/{crmid}/message/{msgid}
URL Parameters
Parameter | Required | Description |
---|---|---|
crmid | required | The ID of the CRM ticket |
msgid | required | The ID of the message |
Responses and Errors
Response Code | Description |
---|---|
200 | Successful response code. |
400 | Bad request. Check request headers/parameters/body for errors. |
401 | Authentication failure. The PrivateKey/Token/SecureURL combination is invalid, or the application scope does not have the correct read/write privileges. |
404 | The specified CRM and/or message does not exist. |
Delete a CRM Message
To delete a message from the store, use the code below. Make sure to add your Secure URL, Private Key, and Token as described in Authentication.
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://apirest.3dcart.com/3dCartWebAPI/v2/CRM/{crmid}/message/{msgid}");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_HEADER, FALSE);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "DELETE");
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
"Content-Type: application/json",
"Accept: application/json",
"SecureURL: ",
"PrivateKey: ",
"Token: "
));
$response = curl_exec($ch);
curl_close($ch);
var_dump($response);
//Common testing requirement. If you are consuming an API in a sandbox/test region, uncomment this line of code ONLY for non production uses.
//System.Net.ServicePointManager.ServerCertificateValidationCallback = delegate { return true; };
//Be sure to run "Install-Package Microsoft.Net.Http" from your nuget command line.
using System;
using System.Net.Http;
var baseAddress = new Uri("https://apirest.3dcart.com/");
using (var httpClient = new HttpClient{ BaseAddress = baseAddress })
{
httpClient.DefaultRequestHeaders.TryAddWithoutValidation("accept", "application/json");
httpClient.DefaultRequestHeaders.TryAddWithoutValidation("secureurl", "");
httpClient.DefaultRequestHeaders.TryAddWithoutValidation("privatekey", "");
httpClient.DefaultRequestHeaders.TryAddWithoutValidation("token", "");
using(var response = await httpClient.DeleteAsync("3dCartWebAPI/v1/CRM/{crmid}/message/{msgid}"))
{
string responseData = await response.Content.ReadAsStringAsync();
}
}
var request = new XMLHttpRequest();
request.open('DELETE', 'https://apirest.3dcart.com/3dCartWebAPI/v2/CRM/{crmid}/message/{msgid}');
request.setRequestHeader('Content-Type', 'application/json');
request.setRequestHeader('Accept', 'application/json');
request.setRequestHeader('SecureURL', '');
request.setRequestHeader('PrivateKey', '');
request.setRequestHeader('Token', '');
request.onreadystatechange = function () {
if (this.readyState === 4) {
console.log('Status:', this.status);
console.log('Headers:', this.getAllResponseHeaders());
console.log('Body:', this.responseText);
}
};
request.send();
require 'rubygems' if RUBY_VERSION < '1.9'
require 'rest_client'
headers = {
:content_type => 'application/json',
:accept => 'application/json',
:secureurl => '',
:privatekey => '',
:token => ''
}
response = RestClient.delete 'https://apirest.3dcart.com/3dCartWebAPI/v2/CRM/{crmid}/message/{msgid}', headers
puts response
from urllib2 import Request, urlopen
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'SecureURL': '',
'PrivateKey': '',
'Token': ''
}
request = Request('https://apirest.3dcart.com/3dCartWebAPI/v2/CRM/{crmid}/message/{msgid}', headers=headers)
request.get_method = lambda: 'DELETE'
response_body = urlopen(request).read()
print response_body
The above request will receive a response with JSON structured like this:
[
{
"Key":"MessageId",
"Value":"1234",
"Status":"200",
"Message":"Deleted successfully",
}
]
This method is used to delete a specific message from a specific CRM ticket.
HTTP Request
DELETE https://apirest.3dcart.com/3dCartWebAPI/v2/CRM/{crmid}/message/{msgid}
URL Parameters
Parameter | Required | Description |
---|---|---|
crmid | required | The ID of the CRM ticket |
msgid | required | The ID of the message |
Responses and Errors
Response Code | Description |
---|---|
200 | Successful response code. |
400 | Bad request. Check request headers/parameters/body for errors. |
401 | Authentication failure. The PrivateKey/Token/SecureURL combination is invalid, or the application scope does not have the correct read/write privileges. |
404 | The specified CRM and/or message does not exist. |
CRM Departments
CRM "Departments" are selectable items from the store's "Contact Us" page that allows the form submission to be pre-sorted within the CRM module. For example, you might have a "Billing" and "Shipping" Department. These Departments will be available for the customer to select when using the Contact Us page. The CRM Departments web service allows an application to retrieve and update the list of Departments within the CRM Module (Create and Delete methods are not available).
Retrieve a list of all CRM Departments
To retrieve a list of all CRM departments from the store, use the code below. Make sure to add your Secure URL, Private Key, and Token as described in Authentication. See Object Definitions for more information on the CrmDepartment object.
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://apirest.3dcart.com/3dCartWebAPI/v2/CRM/department?limit=&offset=&countonly=");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_HEADER, FALSE);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
"Content-Type: application/json",
"Accept: application/json",
"SecureURL: ",
"PrivateKey: ",
"Token: "
));
$response = curl_exec($ch);
curl_close($ch);
var_dump($response);
//Common testing requirement. If you are consuming an API in a sandbox/test region, uncomment this line of code ONLY for non production uses.
//System.Net.ServicePointManager.ServerCertificateValidationCallback = delegate { return true; };
//Be sure to run "Install-Package Microsoft.Net.Http" from your nuget command line.
using System;
using System.Net.Http;
var baseAddress = new Uri("https://apirest.3dcart.com/");
using (var httpClient = new HttpClient{ BaseAddress = baseAddress })
{
httpClient.DefaultRequestHeaders.TryAddWithoutValidation("accept", "application/json");
httpClient.DefaultRequestHeaders.TryAddWithoutValidation("secureurl", "");
httpClient.DefaultRequestHeaders.TryAddWithoutValidation("privatekey", "");
httpClient.DefaultRequestHeaders.TryAddWithoutValidation("token", "");
using(var response = await httpClient.GetAsync("3dCartWebAPI/v1/CRM/department"))
{
string responseData = await response.Content.ReadAsStringAsync();
}
}
var request = new XMLHttpRequest();
request.open('GET', 'https://apirest.3dcart.com/3dCartWebAPI/v2/CRM/department?limit=&offset=&countonly=');
request.setRequestHeader('Content-Type', 'application/json');
request.setRequestHeader('Accept', 'application/json');
request.setRequestHeader('SecureURL', '');
request.setRequestHeader('PrivateKey', '');
request.setRequestHeader('Token', '');
request.onreadystatechange = function () {
if (this.readyState === 4) {
console.log('Status:', this.status);
console.log('Headers:', this.getAllResponseHeaders());
console.log('Body:', this.responseText);
}
};
request.send();
require 'rubygems' if RUBY_VERSION < '1.9'
require 'rest_client'
headers = {
:content_type => 'application/json',
:accept => 'application/json',
:secureurl => '',
:privatekey => '',
:token => ''
}
response = RestClient.get 'https://apirest.3dcart.com/3dCartWebAPI/v2/CRM/department?limit=&offset=&countonly=', headers
puts response
from urllib2 import Request, urlopen
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'SecureURL': '',
'PrivateKey': '',
'Token': ''
}
request = Request('https://apirest.3dcart.com/3dCartWebAPI/v2/CRM/department?limit=&offset=&countonly=', headers=headers)
response_body = urlopen(request).read()
print response_body
The above request will receive a response with JSON structured like this:
[
{
"DepartmentId": 1,
"Name": "sample string 1",
"Visible": true
},
{
"DepartmentId": 1,
"Name": "sample string 1",
"Visible": true
}
]
HTTP Request
GET https://apirest.3dcart.com/3dCartWebAPI/v2/CRM/department
URL Parameters
Parameter | Required | Description |
---|---|---|
limit | optional | Maximum number of items that can be returned |
offset | optional | Starting point for the return data |
countonly | optional | Count the number of rows only |
Responses and Errors
Response Code | Description |
---|---|
200 | Successful response code. |
400 | Bad request. Check request headers/parameters/body for errors. |
401 | Authentication failure. The PrivateKey/Token/SecureURL combination is invalid, or the application scope does not have the correct read/write privileges. |
404 | There are no departments. |
Update a specific CRM department by id
To update a specific CRM department, use the code below. Make sure to add your Secure URL, Private Key, and Token as described in Authentication. See Object Definitions for more information on the CrmDepartment object.
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://apirest.3dcart.com/3dCartWebAPI/v2/CRM/department/{id}");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_HEADER, FALSE);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "PUT");
curl_setopt($ch, CURLOPT_POSTFIELDS, "{
\"DepartmentId\": -99961439,
\"Name\": \"adipisicing nulla qui magna enim\",
\"Visible\": true
}");
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
"Content-Type: application/json",
"Accept: application/json",
"SecureURL: ",
"PrivateKey: ",
"Token: "
));
$response = curl_exec($ch);
curl_close($ch);
var_dump($response);
//Common testing requirement. If you are consuming an API in a sandbox/test region, uncomment this line of code ONLY for non production uses.
//System.Net.ServicePointManager.ServerCertificateValidationCallback = delegate { return true; };
//Be sure to run "Install-Package Microsoft.Net.Http" from your nuget command line.
using System;
using System.Net.Http;
var baseAddress = new Uri("https://apirest.3dcart.com/");
using (var httpClient = new HttpClient{ BaseAddress = baseAddress })
{
httpClient.DefaultRequestHeaders.TryAddWithoutValidation("accept", "application/json");
httpClient.DefaultRequestHeaders.TryAddWithoutValidation("secureurl", "");
httpClient.DefaultRequestHeaders.TryAddWithoutValidation("privatekey", "");
httpClient.DefaultRequestHeaders.TryAddWithoutValidation("token", "");
using (var content = new StringContent("{ \"DepartmentId\": -99961439, \"Name\": \"adipisicing nulla qui magna enim\", \"Visible\": true}", System.Text.Encoding.Default, "application/json"))
{
using (var response = await httpClient.PutAsync("3dCartWebAPI/v1/CRM/department/{id}", content))
{
string responseData = await response.Content.ReadAsStringAsync();
}
}
}
var request = new XMLHttpRequest();
request.open('PUT', 'https://apirest.3dcart.com/3dCartWebAPI/v2/CRM/department/{id}');
request.setRequestHeader('Content-Type', 'application/json');
request.setRequestHeader('Accept', 'application/json');
request.setRequestHeader('SecureURL', '');
request.setRequestHeader('PrivateKey', '');
request.setRequestHeader('Token', '');
request.onreadystatechange = function () {
if (this.readyState === 4) {
console.log('Status:', this.status);
console.log('Headers:', this.getAllResponseHeaders());
console.log('Body:', this.responseText);
}
};
var body = {
'DepartmentId': -99961439,
'Name': 'adipisicing nulla qui magna enim',
'Visible': true
};
request.send(JSON.stringify(body));
require 'rubygems' if RUBY_VERSION < '1.9'
require 'rest_client'
values = '{
"DepartmentId": -99961439,
"Name": "adipisicing nulla qui magna enim",
"Visible": true
}'
headers = {
:content_type => 'application/json',
:accept => 'application/json',
:secureurl => '',
:privatekey => '',
:token => ''
}
response = RestClient.put 'https://apirest.3dcart.com/3dCartWebAPI/v2/CRM/department/{id}', values, headers
puts response
from urllib2 import Request, urlopen
values = """
{
"DepartmentId": -99961439,
"Name": "adipisicing nulla qui magna enim",
"Visible": true
}
"""
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'SecureURL': '',
'PrivateKey': '',
'Token': ''
}
request = Request('https://apirest.3dcart.com/3dCartWebAPI/v2/CRM/department/{id}', data=values, headers=headers)
request.get_method = lambda: 'PUT'
response_body = urlopen(request).read()
print response_body
The above request will receive a response with JSON structured like this:
[
{
"Key":"DepartmentId",
"Value":"1234",
"Status":"200",
"Message":"Updated successfully",
}
]
This method is used to update a single CRM Department record in the database. The {id} parameter specifies which CRM Department record to update. See Object Definitions for more information on the CrmDepartment object.
HTTP Request
PUT https://apirest.3dcart.com/3dCartWebAPI/v2/CRM/department/{id}
URL Parameters
Parameter | Required | Description |
---|---|---|
id | required | The id of the CRM department to update |
Responses and Errors
Response Code | Description |
---|---|
200 | Successful response code. |
400 | Bad request. Check request headers/parameters/body for errors. |
401 | Authentication failure. The PrivateKey/Token/SecureURL combination is invalid, or the application scope does not have the correct read/write privileges. |
404 | The specified department does not exist. |
CRM Saved Reply
Beginning with version 7.2.2 of the 3dcart platform, a store's CRM functionality can now be set up with "Saved Replies" which can be used when replying to the CRM tickets. This can be useful when replying to multiple tickets that contain essentially the same message over and over again.
Create a Saved Reply
To add a new Saved Reply to the store, use the code below. Make sure to add your Secure URL, Private Key, and Token as described in Authentication. See Object Definitions for more information on the CrmSavedReply object.
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://apirest.3dcart.com/3dCartWebAPI/v2/CRM/savedreply");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_HEADER, FALSE);
curl_setopt($ch, CURLOPT_POST, TRUE);
curl_setopt($ch, CURLOPT_POSTFIELDS, "{
\"Id\": -19067482,
\"Title\": \"amet exercitation\",
\"Message\": \"nulla commodo Excepteur\"
}");
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
"Content-Type: application/json",
"Accept: application/json",
"SecureURL: ",
"PrivateKey: ",
"Token: "
));
$response = curl_exec($ch);
curl_close($ch);
var_dump($response);
//Common testing requirement. If you are consuming an API in a sandbox/test region, uncomment this line of code ONLY for non production uses.
//System.Net.ServicePointManager.ServerCertificateValidationCallback = delegate { return true; };
//Be sure to run "Install-Package Microsoft.Net.Http" from your nuget command line.
using System;
using System.Net.Http;
var baseAddress = new Uri("https://apirest.3dcart.com/");
using (var httpClient = new HttpClient{ BaseAddress = baseAddress })
{
httpClient.DefaultRequestHeaders.TryAddWithoutValidation("accept", "application/json");
httpClient.DefaultRequestHeaders.TryAddWithoutValidation("secureurl", "");
httpClient.DefaultRequestHeaders.TryAddWithoutValidation("privatekey", "");
httpClient.DefaultRequestHeaders.TryAddWithoutValidation("token", "");
using (var content = new StringContent("{ \"Id\": -19067482, \"Title\": \"amet exercitation\", \"Message\": \"nulla commodo Excepteur\"}", System.Text.Encoding.Default, "application/json"))
{
using (var response = await httpClient.PostAsync("3dCartWebAPI/v1/CRM/savedreply", content))
{
string responseData = await response.Content.ReadAsStringAsync();
}
}
}
var request = new XMLHttpRequest();
request.open('POST', 'https://apirest.3dcart.com/3dCartWebAPI/v2/CRM/savedreply');
request.setRequestHeader('Content-Type', 'application/json');
request.setRequestHeader('Accept', 'application/json');
request.setRequestHeader('SecureURL', '');
request.setRequestHeader('PrivateKey', '');
request.setRequestHeader('Token', '');
request.onreadystatechange = function () {
if (this.readyState === 4) {
console.log('Status:', this.status);
console.log('Headers:', this.getAllResponseHeaders());
console.log('Body:', this.responseText);
}
};
var body = {
'Id': -19067482,
'Title': 'amet exercitation',
'Message': 'nulla commodo Excepteur'
};
request.send(JSON.stringify(body));
require 'rubygems' if RUBY_VERSION < '1.9'
require 'rest_client'
values = '{
"Id": -19067482,
"Title": "amet exercitation",
"Message": "nulla commodo Excepteur"
}'
headers = {
:content_type => 'application/json',
:accept => 'application/json',
:secureurl => '',
:privatekey => '',
:token => ''
}
response = RestClient.post 'https://apirest.3dcart.com/3dCartWebAPI/v2/CRM/savedreply', values, headers
puts response
from urllib2 import Request, urlopen
values = """
{
"Id": -19067482,
"Title": "amet exercitation",
"Message": "nulla commodo Excepteur"
}
"""
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'SecureURL': '',
'PrivateKey': '',
'Token': ''
}
request = Request('https://apirest.3dcart.com/3dCartWebAPI/v2/CRM/savedreply', data=values, headers=headers)
response_body = urlopen(request).read()
print response_body
The above request will receive a response with JSON structured like this:
[
{
"Key":"SavedReplyID",
"Value":"1234",
"Status":"201",
"Message":"Created successfully",
}
]
This method is used to add a new CRM SaveReply to the system. See Object Definitions for more information on the CrmSavedReply object.
HTTP Request
POST https://apirest.3dcart.com/3dCartWebAPI/v2/CRM/savedreply
Responses and Errors
Response Code | Description |
---|---|
201 | Successful response code. |
400 | Bad request. Check request headers/parameters/body for errors. |
401 | Authentication failure. The PrivateKey/Token/SecureURL combination is invalid, or the application scope does not have the correct read/write privileges. |
Retrieve a list of all Saved Replies
To retrieve a list of all Saved Replies from the store, use the code below. Make sure to add your Secure URL, Private Key, and Token as described in Authentication.
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://apirest.3dcart.com/3dCartWebAPI/v2/CRM/savedreply?title=&limit=&offset=&countonly=");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_HEADER, FALSE);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
"Content-Type: application/json",
"Accept: application/json",
"SecureURL: ",
"PrivateKey: ",
"Token: "
));
$response = curl_exec($ch);
curl_close($ch);
var_dump($response);
//Common testing requirement. If you are consuming an API in a sandbox/test region, uncomment this line of code ONLY for non production uses.
//System.Net.ServicePointManager.ServerCertificateValidationCallback = delegate { return true; };
//Be sure to run "Install-Package Microsoft.Net.Http" from your nuget command line.
using System;
using System.Net.Http;
var baseAddress = new Uri("https://apirest.3dcart.com/");
using (var httpClient = new HttpClient{ BaseAddress = baseAddress })
{
httpClient.DefaultRequestHeaders.TryAddWithoutValidation("accept", "application/json");
httpClient.DefaultRequestHeaders.TryAddWithoutValidation("secureurl", "");
httpClient.DefaultRequestHeaders.TryAddWithoutValidation("privatekey", "");
httpClient.DefaultRequestHeaders.TryAddWithoutValidation("token", "");
using(var response = await httpClient.GetAsync("3dCartWebAPI/v1/CRM/savedreply"))
{
string responseData = await response.Content.ReadAsStringAsync();
}
}
var request = new XMLHttpRequest();
request.open('GET', 'https://apirest.3dcart.com/3dCartWebAPI/v2/CRM/savedreply?title=&limit=&offset=&countonly=');
request.setRequestHeader('Content-Type', 'application/json');
request.setRequestHeader('Accept', 'application/json');
request.setRequestHeader('SecureURL', '');
request.setRequestHeader('PrivateKey', '');
request.setRequestHeader('Token', '');
request.onreadystatechange = function () {
if (this.readyState === 4) {
console.log('Status:', this.status);
console.log('Headers:', this.getAllResponseHeaders());
console.log('Body:', this.responseText);
}
};
request.send();
require 'rubygems' if RUBY_VERSION < '1.9'
require 'rest_client'
headers = {
:content_type => 'application/json',
:accept => 'application/json',
:secureurl => '',
:privatekey => '',
:token => ''
}
response = RestClient.get 'https://apirest.3dcart.com/3dCartWebAPI/v2/CRM/savedreply?title=&limit=&offset=&countonly=', headers
puts response
from urllib2 import Request, urlopen
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'SecureURL': '',
'PrivateKey': '',
'Token': ''
}
request = Request('https://apirest.3dcart.com/3dCartWebAPI/v2/CRM/savedreply?title=&limit=&offset=&countonly=', headers=headers)
response_body = urlopen(request).read()
print response_body
The above request will receive a response with JSON structured like this (See Object Definitions for more information on the CrmSavedReply object):
[
{
"Id": 1,
"Title": "sample string 1",
"Message": "sample string 2"
},
{
"Id": 1,
"Title": "sample string 1",
"Message": "sample string 2"
}
]
This method is used to retrieve a list of all Saved Replies in the system. See Object Definitions for more information on the CrmSavedReply object.
HTTP Request
GET https://apirest.3dcart.com/3dCartWebAPI/v2/CRM/savedreply{?title,limit,offset,countonly}
URL Parameters
Parameter | Required | Description |
---|---|---|
title | optional | Filter results by the title of the saved reply |
limit | optional | Maximum number of items that can be returned |
offset | optional | Starting point for the return data |
countonly | optional | Count the number of rows only |
Responses and Errors
Response Code | Description |
---|---|
200 | Successful response code. |
400 | Bad request. Check request headers/parameters/body for errors. |
401 | Authentication failure. The PrivateKey/Token/SecureURL combination is invalid, or the application scope does not have the correct read/write privileges. |
404 | The specified saved reply does not exist. |
Retrieve a specific Saved Reply by id
To retrieve a Saved Reply from the store, use the code below. Make sure to add your Secure URL, Private Key, and Token as described in Authentication.
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://apirest.3dcart.com/3dCartWebAPI/v2/CRM/savedreply/{id}");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_HEADER, FALSE);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
"Content-Type: application/json",
"Accept: application/json",
"SecureURL: ",
"PrivateKey: ",
"Token: "
));
$response = curl_exec($ch);
curl_close($ch);
var_dump($response);
//Common testing requirement. If you are consuming an API in a sandbox/test region, uncomment this line of code ONLY for non production uses.
//System.Net.ServicePointManager.ServerCertificateValidationCallback = delegate { return true; };
//Be sure to run "Install-Package Microsoft.Net.Http" from your nuget command line.
using System;
using System.Net.Http;
var baseAddress = new Uri("https://apirest.3dcart.com/");
using (var httpClient = new HttpClient{ BaseAddress = baseAddress })
{
httpClient.DefaultRequestHeaders.TryAddWithoutValidation("accept", "application/json");
httpClient.DefaultRequestHeaders.TryAddWithoutValidation("secureurl", "");
httpClient.DefaultRequestHeaders.TryAddWithoutValidation("privatekey", "");
httpClient.DefaultRequestHeaders.TryAddWithoutValidation("token", "");
using(var response = await httpClient.GetAsync("3dCartWebAPI/v1/CRM/savedreply/{id}"))
{
string responseData = await response.Content.ReadAsStringAsync();
}
}
var request = new XMLHttpRequest();
request.open('GET', 'https://apirest.3dcart.com/3dCartWebAPI/v2/CRM/savedreply/{id}');
request.setRequestHeader('Content-Type', 'application/json');
request.setRequestHeader('Accept', 'application/json');
request.setRequestHeader('SecureURL', '');
request.setRequestHeader('PrivateKey', '');
request.setRequestHeader('Token', '');
request.onreadystatechange = function () {
if (this.readyState === 4) {
console.log('Status:', this.status);
console.log('Headers:', this.getAllResponseHeaders());
console.log('Body:', this.responseText);
}
};
request.send();
require 'rubygems' if RUBY_VERSION < '1.9'
require 'rest_client'
headers = {
:content_type => 'application/json',
:accept => 'application/json',
:secureurl => '',
:privatekey => '',
:token => ''
}
response = RestClient.get 'https://apirest.3dcart.com/3dCartWebAPI/v2/CRM/savedreply/{id}', headers
puts response
from urllib2 import Request, urlopen
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'SecureURL': '',
'PrivateKey': '',
'Token': ''
}
request = Request('https://apirest.3dcart.com/3dCartWebAPI/v2/CRM/savedreply/{id}', headers=headers)
response_body = urlopen(request).read()
print response_body
The above request will receive a response with JSON structured like this (See Object Definitions for more information on the CrmSavedReply object):
[
{
"Id": 1,
"Title": "sample string 1",
"Message": "sample string 2"
},
{
"Id": 1,
"Title": "sample string 1",
"Message": "sample string 2"
}
]
This method is used to retrieve a specific Saved Reply in the system. See Object Definitions for more information on the CrmSavedReply object.
HTTP Request
GET https://apirest.3dcart.com/3dCartWebAPI/v2/CRM/savedreply{id}
URL Parameters
Parameter | Required | Description |
---|---|---|
id | required | The ID of Saved Reply you want to retrieve. |
Responses and Errors
Response Code | Description |
---|---|
200 | Successful response code. |
400 | Bad request. Check request headers/parameters/body for errors. |
401 | Authentication failure. The PrivateKey/Token/SecureURL combination is invalid, or the application scope does not have the correct read/write privileges. |
404 | The specified saved reply does not exist. |
Update a specific Saved Reply
To update a specific Saved Reply in the store, use the code below. Make sure to add your Secure URL, Private Key, and Token as described in Authentication. See Object Definitions for more information on the CrmSavedReply object.
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://apirest.3dcart.com/3dCartWebAPI/v2/CRM/savedreply/{id}");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_HEADER, FALSE);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "PUT");
curl_setopt($ch, CURLOPT_POSTFIELDS, "{
\"Id\": 42533140,
\"Title\": \"eu mollit cup\",
\"Message\": \"dolore est dolor\"
}");
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
"Content-Type: application/json",
"Accept: application/json",
"SecureURL: ",
"PrivateKey: ",
"Token: "
));
$response = curl_exec($ch);
curl_close($ch);
var_dump($response);
//Common testing requirement. If you are consuming an API in a sandbox/test region, uncomment this line of code ONLY for non production uses.
//System.Net.ServicePointManager.ServerCertificateValidationCallback = delegate { return true; };
//Be sure to run "Install-Package Microsoft.Net.Http" from your nuget command line.
using System;
using System.Net.Http;
var baseAddress = new Uri("https://apirest.3dcart.com/");
using (var httpClient = new HttpClient{ BaseAddress = baseAddress })
{
httpClient.DefaultRequestHeaders.TryAddWithoutValidation("accept", "application/json");
httpClient.DefaultRequestHeaders.TryAddWithoutValidation("secureurl", "");
httpClient.DefaultRequestHeaders.TryAddWithoutValidation("privatekey", "");
httpClient.DefaultRequestHeaders.TryAddWithoutValidation("token", "");
using (var content = new StringContent("{ \"Id\": 42533140, \"Title\": \"eu mollit cup\", \"Message\": \"dolore est dolor\"}", System.Text.Encoding.Default, "application/json"))
{
using (var response = await httpClient.PutAsync("3dCartWebAPI/v1/CRM/savedreply/{id}", content))
{
string responseData = await response.Content.ReadAsStringAsync();
}
}
}
var request = new XMLHttpRequest();
request.open('PUT', 'https://apirest.3dcart.com/3dCartWebAPI/v2/CRM/savedreply/{id}');
request.setRequestHeader('Content-Type', 'application/json');
request.setRequestHeader('Accept', 'application/json');
request.setRequestHeader('SecureURL', '');
request.setRequestHeader('PrivateKey', '');
request.setRequestHeader('Token', '');
request.onreadystatechange = function () {
if (this.readyState === 4) {
console.log('Status:', this.status);
console.log('Headers:', this.getAllResponseHeaders());
console.log('Body:', this.responseText);
}
};
var body = {
'Id': 42533140,
'Title': 'eu mollit cup',
'Message': 'dolore est dolor'
};
request.send(JSON.stringify(body));
require 'rubygems' if RUBY_VERSION < '1.9'
require 'rest_client'
values = '{
"Id": 42533140,
"Title": "eu mollit cup",
"Message": "dolore est dolor"
}'
headers = {
:content_type => 'application/json',
:accept => 'application/json',
:secureurl => '',
:privatekey => '',
:token => ''
}
response = RestClient.put 'https://apirest.3dcart.com/3dCartWebAPI/v2/CRM/savedreply/{id}', values, headers
puts response
from urllib2 import Request, urlopen
values = """
{
"Id": 42533140,
"Title": "eu mollit cup",
"Message": "dolore est dolor"
}
"""
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'SecureURL': '',
'PrivateKey': '',
'Token': ''
}
request = Request('https://apirest.3dcart.com/3dCartWebAPI/v2/CRM/savedreply/{id}', data=values, headers=headers)
request.get_method = lambda: 'PUT'
response_body = urlopen(request).read()
print response_body
The above request will receive a response with JSON structured like this:
[
{
"Key":"SavedReplyID",
"Value":"1234",
"Status":"200",
"Message":"Updated successfully",
}
]
This method is used to update a single CRM SavedReply record in the database. The {id} parameter specifies which CRM SavedReply record to update. See Object Definitions for more information on the CrmSavedReply object.
HTTP Request
PUT https://apirest.3dcart.com/3dCartWebAPI/v2/CRM/savedreply{id}
URL Parameters
Parameter | Required | Description |
---|---|---|
id | required | The ID of Saved Reply you want to update. |
Responses and Errors
Response Code | Description |
---|---|
200 | Successful response code. |
400 | Bad request. Check request headers/parameters/body for errors. |
401 | Authentication failure. The PrivateKey/Token/SecureURL combination is invalid, or the application scope does not have the correct read/write privileges. |
404 | The specified saved reply does not exist. |
Delete a CRM SavedReply in the system
To delete a Saved Reply from the store, use the code below. Make sure to add your Secure URL, Private Key, and Token as described in Authentication.
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://apirest.3dcart.com/3dCartWebAPI/v2/CRM/savedreply/{id}");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_HEADER, FALSE);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "DELETE");
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
"Content-Type: application/json",
"Accept: application/json",
"SecureURL: ",
"PrivateKey: ",
"Token: "
));
$response = curl_exec($ch);
curl_close($ch);
var_dump($response);
//Common testing requirement. If you are consuming an API in a sandbox/test region, uncomment this line of code ONLY for non production uses.
//System.Net.ServicePointManager.ServerCertificateValidationCallback = delegate { return true; };
//Be sure to run "Install-Package Microsoft.Net.Http" from your nuget command line.
using System;
using System.Net.Http;
var baseAddress = new Uri("https://apirest.3dcart.com/");
using (var httpClient = new HttpClient{ BaseAddress = baseAddress })
{
httpClient.DefaultRequestHeaders.TryAddWithoutValidation("accept", "application/json");
httpClient.DefaultRequestHeaders.TryAddWithoutValidation("secureurl", "");
httpClient.DefaultRequestHeaders.TryAddWithoutValidation("privatekey", "");
httpClient.DefaultRequestHeaders.TryAddWithoutValidation("token", "");
using(var response = await httpClient.DeleteAsync("3dCartWebAPI/v1/CRM/savedreply/{id}"))
{
string responseData = await response.Content.ReadAsStringAsync();
}
}
var request = new XMLHttpRequest();
request.open('DELETE', 'https://apirest.3dcart.com/3dCartWebAPI/v2/CRM/savedreply/{id}');
request.setRequestHeader('Content-Type', 'application/xml');
request.setRequestHeader('Accept', 'application/json');
request.setRequestHeader('SecureURL', '');
request.setRequestHeader('PrivateKey', '');
request.setRequestHeader('Token', '');
request.onreadystatechange = function () {
if (this.readyState === 4) {
console.log('Status:', this.status);
console.log('Headers:', this.getAllResponseHeaders());
console.log('Body:', this.responseText);
}
};
request.send();
require 'rubygems' if RUBY_VERSION < '1.9'
require 'rest_client'
headers = {
:content_type => 'application/json',
:accept => 'application/json',
:secureurl => '',
:privatekey => '',
:token => ''
}
response = RestClient.delete 'https://apirest.3dcart.com/3dCartWebAPI/v2/CRM/savedreply/{id}', headers
puts response
from urllib2 import Request, urlopen
headers = {
'Content-Type': 'application/xml',
'Accept': 'application/json',
'SecureURL': '',
'PrivateKey': '',
'Token': ''
}
request = Request('https://apirest.3dcart.com/3dCartWebAPI/v2/CRM/savedreply/{id}', headers=headers)
request.get_method = lambda: 'DELETE'
response_body = urlopen(request).read()
print response_body
The above request will receive a response with JSON structured like this:
[
{
"Key":"SavedReplyID",
"Value":"1234",
"Status":"200",
"Message":"Deleted successfully",
}
]
HTTP Request
DELETE https://apirest.3dcart.com/3dCartWebAPI/v2/CRM/savedreply{id}
URL Parameters
Parameter | Required | Description |
---|---|---|
id | required | The ID of Saved Reply you want to delete. |
Responses and Errors
Response Code | Description |
---|---|
200 | Successful response code. |
400 | Bad request. Check request headers/parameters/body for errors. |
401 | Authentication failure. The PrivateKey/Token/SecureURL combination is invalid, or the application scope does not have the correct read/write privileges. |
404 | The specified saved reply does not exist. |
CRM Status
Retrieve a list of all CRM Statuses
To retrieve a list of CRM Statuses from the store, use the code below. Make sure to add your Secure URL, Private Key, and Token as described in Authentication.
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://apirest.3dcart.com/3dCartWebAPI/v2/CRM/status?limit=&offset=&countonly=");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_HEADER, FALSE);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
"Content-Type: application/json",
"Accept: application/json",
"SecureURL: ",
"PrivateKey: ",
"Token: "
));
$response = curl_exec($ch);
curl_close($ch);
var_dump($response);
//Common testing requirement. If you are consuming an API in a sandbox/test region, uncomment this line of code ONLY for non production uses.
//System.Net.ServicePointManager.ServerCertificateValidationCallback = delegate { return true; };
//Be sure to run "Install-Package Microsoft.Net.Http" from your nuget command line.
using System;
using System.Net.Http;
var baseAddress = new Uri("https://apirest.3dcart.com/");
using (var httpClient = new HttpClient{ BaseAddress = baseAddress })
{
httpClient.DefaultRequestHeaders.TryAddWithoutValidation("accept", "application/json");
httpClient.DefaultRequestHeaders.TryAddWithoutValidation("secureurl", "");
httpClient.DefaultRequestHeaders.TryAddWithoutValidation("privatekey", "");
httpClient.DefaultRequestHeaders.TryAddWithoutValidation("token", "");
using(var response = await httpClient.GetAsync("3dCartWebAPI/v1/CRM/status"))
{
string responseData = await response.Content.ReadAsStringAsync();
}
}
var request = new XMLHttpRequest();
request.open('GET', 'https://apirest.3dcart.com/3dCartWebAPI/v2/CRM/status?limit=&offset=&countonly=');
request.setRequestHeader('Content-Type', 'application/json');
request.setRequestHeader('Accept', 'application/json');
request.setRequestHeader('SecureURL', '');
request.setRequestHeader('PrivateKey', '');
request.setRequestHeader('Token', '');
request.onreadystatechange = function () {
if (this.readyState === 4) {
console.log('Status:', this.status);
console.log('Headers:', this.getAllResponseHeaders());
console.log('Body:', this.responseText);
}
};
request.send();
require 'rubygems' if RUBY_VERSION < '1.9'
require 'rest_client'
headers = {
:content_type => 'application/json',
:accept => 'application/json',
:secureurl => '',
:privatekey => '',
:token => ''
}
response = RestClient.get 'https://apirest.3dcart.com/3dCartWebAPI/v2/CRM/status?limit=&offset=&countonly=', headers
puts response
from urllib2 import Request, urlopen
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'SecureURL': '',
'PrivateKey': '',
'Token': ''
}
request = Request('https://apirest.3dcart.com/3dCartWebAPI/v2/CRM/status?limit=&offset=&countonly=', headers=headers)
response_body = urlopen(request).read()
print response_body
The above request will receive a response with JSON structured like this (See Object Definitions for more information on the CrmStatus object):
[
{
"Id": 1,
"StatusId": 1,
"StatusName": "sample string 1"
},
{
"Id": 1,
"StatusId": 1,
"StatusName": "sample string 1"
}
]
This method is used to retrieve a list of all CRM statuses in the store. See Object Definitions for more information on the CrmStatus object.
HTTP Request
GET https://apirest.3dcart.com/3dCartWebAPI/v2/CRM/status{?limit,offset,countonly}
URL Parameters
Parameter | Required | Description |
---|---|---|
limit | optional | The maximum number of records to return. |
offset | optional | The starting point of the data to return. |
countonly | optional | Count the number of rows only. |
Responses and Errors
Response Code | Description |
---|---|
200 | Successful response code. |
400 | Bad request. Check request headers/parameters/body for errors. |
401 | Authentication failure. The PrivateKey/Token/SecureURL combination is invalid, or the application scope does not have the correct read/write privileges. |
404 | There are no Statuses. |
Retrieve a specific Status by id
To retrieve a CRM Status from the store, use the code below. Make sure to add your Secure URL, Private Key, and Token as described in Authentication.
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://apirest.3dcart.com/3dCartWebAPI/v2/CRM/status/{id}");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_HEADER, FALSE);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "PUT");
curl_setopt($ch, CURLOPT_POSTFIELDS, "{
\"Id\": 51620653,
\"StatusId\": 21695314,
\"StatusName\": \"sunt ea Excepteur\"
}");
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
"Content-Type: application/json",
"Accept: application/json",
"SecureURL: ",
"PrivateKey: ",
"Token: "
));
$response = curl_exec($ch);
curl_close($ch);
var_dump($response);
//Common testing requirement. If you are consuming an API in a sandbox/test region, uncomment this line of code ONLY for non production uses.
//System.Net.ServicePointManager.ServerCertificateValidationCallback = delegate { return true; };
//Be sure to run "Install-Package Microsoft.Net.Http" from your nuget command line.
using System;
using System.Net.Http;
var baseAddress = new Uri("https://apirest.3dcart.com/");
using (var httpClient = new HttpClient{ BaseAddress = baseAddress })
{
httpClient.DefaultRequestHeaders.TryAddWithoutValidation("accept", "application/json");
httpClient.DefaultRequestHeaders.TryAddWithoutValidation("secureurl", "");
httpClient.DefaultRequestHeaders.TryAddWithoutValidation("privatekey", "");
httpClient.DefaultRequestHeaders.TryAddWithoutValidation("token", "");
using (var content = new StringContent("{ \"Id\": 51620653, \"StatusId\": 21695314, \"StatusName\": \"sunt ea Excepteur\"}", System.Text.Encoding.Default, "application/json"))
{
using (var response = await httpClient.PutAsync("3dCartWebAPI/v1/CRM/status/{id}", content))
{
string responseData = await response.Content.ReadAsStringAsync();
}
}
}
var request = new XMLHttpRequest();
request.open('PUT', 'https://apirest.3dcart.com/3dCartWebAPI/v2/CRM/status/{id}');
request.setRequestHeader('Content-Type', 'application/json');
request.setRequestHeader('Accept', 'application/json');
request.setRequestHeader('SecureURL', '');
request.setRequestHeader('PrivateKey', '');
request.setRequestHeader('Token', '');
request.onreadystatechange = function () {
if (this.readyState === 4) {
console.log('Status:', this.status);
console.log('Headers:', this.getAllResponseHeaders());
console.log('Body:', this.responseText);
}
};
var body = {
'Id': 51620653,
'StatusId': 21695314,
'StatusName': 'sunt ea Excepteur'
};
request.send(JSON.stringify(body));
require 'rubygems' if RUBY_VERSION < '1.9'
require 'rest_client'
values = '{
"Id": 51620653,
"StatusId": 21695314,
"StatusName": "sunt ea Excepteur"
}'
headers = {
:content_type => 'application/json',
:accept => 'application/json',
:secureurl => '',
:privatekey => '',
:token => ''
}
response = RestClient.put 'https://apirest.3dcart.com/3dCartWebAPI/v2/CRM/status/{id}', values, headers
puts response
from urllib2 import Request, urlopen
values = """
{
"Id": 51620653,
"StatusId": 21695314,
"StatusName": "sunt ea Excepteur"
}
"""
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'SecureURL': '',
'PrivateKey': '',
'Token': ''
}
request = Request('https://apirest.3dcart.com/3dCartWebAPI/v2/CRM/status/{id}', data=values, headers=headers)
request.get_method = lambda: 'PUT'
response_body = urlopen(request).read()
print response_body
The above request will receive a response with JSON structured like this (See Object Definitions for more information on the CrmStatus object):
[
{
"Id": 1,
"StatusId": 1,
"StatusName": "sample string 1"
},
{
"Id": 1,
"StatusId": 1,
"StatusName": "sample string 1"
}
]
This method is used to retrieve a specific Status by the id. See Object Definitions for more information on the CrmStatus object.
HTTP Request
GET https://apirest.3dcart.com/3dCartWebAPI/v2/CRM/status{id}
URL Parameters
Parameter | Required | Description |
---|---|---|
id | required | The ID of the Status to return. |
Responses and Errors
Response Code | Description |
---|---|
200 | Successful response code. |
400 | Bad request. Check request headers/parameters/body for errors. |
401 | Authentication failure. The PrivateKey/Token/SecureURL combination is invalid, or the application scope does not have the correct read/write privileges. |
404 | The status does not exist. |
Update a specific CRM Status by id
To update a specific CRM Status in the store, use the code below. Make sure to add your Secure URL, Private Key, and Token as described in Authentication. See Object Definitions for more information on the CrmStatus object.
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://apirest.3dcart.com/3dCartWebAPI/v2/CRM/status/{id}");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_HEADER, FALSE);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "PUT");
curl_setopt($ch, CURLOPT_POSTFIELDS, "{
\"Id\": 51620653,
\"StatusId\": 21695314,
\"StatusName\": \"sunt ea Excepteur\"
}");
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
"Content-Type: application/json",
"Accept: application/json",
"SecureURL: ",
"PrivateKey: ",
"Token: "
));
$response = curl_exec($ch);
curl_close($ch);
var_dump($response);
//Common testing requirement. If you are consuming an API in a sandbox/test region, uncomment this line of code ONLY for non production uses.
//System.Net.ServicePointManager.ServerCertificateValidationCallback = delegate { return true; };
//Be sure to run "Install-Package Microsoft.Net.Http" from your nuget command line.
using System;
using System.Net.Http;
var baseAddress = new Uri("https://apirest.3dcart.com/");
using (var httpClient = new HttpClient{ BaseAddress = baseAddress })
{
httpClient.DefaultRequestHeaders.TryAddWithoutValidation("accept", "application/json");
httpClient.DefaultRequestHeaders.TryAddWithoutValidation("secureurl", "");
httpClient.DefaultRequestHeaders.TryAddWithoutValidation("privatekey", "");
httpClient.DefaultRequestHeaders.TryAddWithoutValidation("token", "");
using (var content = new StringContent("{ \"Id\": 51620653, \"StatusId\": 21695314, \"StatusName\": \"sunt ea Excepteur\"}", System.Text.Encoding.Default, "application/json"))
{
using (var response = await httpClient.PutAsync("3dCartWebAPI/v1/CRM/status/{id}", content))
{
string responseData = await response.Content.ReadAsStringAsync();
}
}
}
var request = new XMLHttpRequest();
request.open('PUT', 'https://apirest.3dcart.com/3dCartWebAPI/v2/CRM/status/{id}');
request.setRequestHeader('Content-Type', 'application/json');
request.setRequestHeader('Accept', 'application/json');
request.setRequestHeader('SecureURL', '');
request.setRequestHeader('PrivateKey', '');
request.setRequestHeader('Token', '');
request.onreadystatechange = function () {
if (this.readyState === 4) {
console.log('Status:', this.status);
console.log('Headers:', this.getAllResponseHeaders());
console.log('Body:', this.responseText);
}
};
var body = {
'Id': 51620653,
'StatusId': 21695314,
'StatusName': 'sunt ea Excepteur'
};
request.send(JSON.stringify(body));
require 'rubygems' if RUBY_VERSION < '1.9'
require 'rest_client'
values = '{
"Id": 51620653,
"StatusId": 21695314,
"StatusName": "sunt ea Excepteur"
}'
headers = {
:content_type => 'application/json',
:accept => 'application/json',
:secureurl => '',
:privatekey => '',
:token => ''
}
response = RestClient.put 'https://apirest.3dcart.com/3dCartWebAPI/v2/CRM/status/{id}', values, headers
puts response
from urllib2 import Request, urlopen
values = """
{
"Id": 51620653,
"StatusId": 21695314,
"StatusName": "sunt ea Excepteur"
}
"""
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'SecureURL': '',
'PrivateKey': '',
'Token': ''
}
request = Request('https://apirest.3dcart.com/3dCartWebAPI/v2/CRM/status/{id}', data=values, headers=headers)
request.get_method = lambda: 'PUT'
response_body = urlopen(request).read()
print response_body
The above request will receive a response with JSON structured like this:
[
{
"Key":"StatusId",
"Value":"1234",
"Status":"200",
"Message":"Updated successfully",
}
]
This method is used to update a single CRM Status record in the database. The {id} parameter specifies which CRM Status record to update.
HTTP Request
PUT https://apirest.3dcart.com/3dCartWebAPI/v2/CRM/status{id}
URL Parameters
Parameter | Required | Description |
---|---|---|
id | required | The ID of the Status to update. |
Responses and Errors
Response Code | Description |
---|---|
200 | Successful response code. |
400 | Bad request. Check request headers/parameters/body for errors. |
401 | Authentication failure. The PrivateKey/Token/SecureURL combination is invalid, or the application scope does not have the correct read/write privileges. |
404 | The status does not exist. |