curl --request GET \
--url https://api.loopreturns.com/api/v1/draft-returns/{draft_return_id}/order/items \
--header 'X-Authorization: <api-key>'import requests
url = "https://api.loopreturns.com/api/v1/draft-returns/{draft_return_id}/order/items"
headers = {"X-Authorization": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-Authorization': '<api-key>'}};
fetch('https://api.loopreturns.com/api/v1/draft-returns/{draft_return_id}/order/items', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.loopreturns.com/api/v1/draft-returns/{draft_return_id}/order/items",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-Authorization: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.loopreturns.com/api/v1/draft-returns/{draft_return_id}/order/items"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-Authorization", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.loopreturns.com/api/v1/draft-returns/{draft_return_id}/order/items")
.header("X-Authorization", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.loopreturns.com/api/v1/draft-returns/{draft_return_id}/order/items")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-Authorization"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"_links": {
"self": {
"href": "<string>"
}
},
"_embedded": {
"items": [
{
"id": 123,
"description": "<string>",
"image": "<string>",
"parent_line_item_id": 123,
"price": 123,
"discount": 123,
"discounted_price": 123,
"compare_at_price": 123,
"price_original": 123,
"current_variant_price": 123,
"outcome": "<string>",
"available_outcomes": [
{
"type": "refund"
},
{
"type": "exchange"
},
{
"type": "store-credit"
}
],
"return_reasons": [
{
"id": 123,
"name": "<string>",
"parent_return_reason_id": 123,
"parent_return_reason_name": "<string>"
}
],
"eligibility": {
"return": {
"status": true,
"reason": "<string>",
"expiration": "<string>"
},
"warranty": {
"status": true,
"reason": "<string>",
"expiration": "<string>"
}
},
"title": "<string>",
"translated_title": "<string>",
"provider_product_id": 123,
"variant": {
"id": 123,
"title": "<string>",
"options": [
{
"name": "<string>",
"value": "<string>"
}
],
"translated_title": "<string>",
"translated_options": [
{
"name": "<string>",
"value": "<string>"
}
]
},
"advanced_exchange": {
"id": 123,
"title": "<string>",
"title_visible": true,
"options": [
{}
]
},
"capabilities": [
"<string>"
]
}
]
}
}{
"errors": [
{
"code": "unauthorized",
"message": "Unauthorized."
}
]
}List Order Line Items
Returns the order’s line items in the context of the draft return, including return and warranty eligibility, available return reasons, variant details, and advanced-exchange options. Prices are integers in minor units (e.g. cents).
Send X-Loop-Locale to receive translated product titles and variant options alongside the
default-language fields (translated_title, variant.translated_title,
variant.translated_options). The default-language fields never change.
Each item’s available_outcomes lists the outcomes the item can get, one object per outcome.
Ignore any type value or object key you do not recognise: new ones can be added without notice.
The shop-now value in each item’s capabilities is deprecated: read available_outcomes instead.
curl --request GET \
--url https://api.loopreturns.com/api/v1/draft-returns/{draft_return_id}/order/items \
--header 'X-Authorization: <api-key>'import requests
url = "https://api.loopreturns.com/api/v1/draft-returns/{draft_return_id}/order/items"
headers = {"X-Authorization": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-Authorization': '<api-key>'}};
fetch('https://api.loopreturns.com/api/v1/draft-returns/{draft_return_id}/order/items', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.loopreturns.com/api/v1/draft-returns/{draft_return_id}/order/items",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-Authorization: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.loopreturns.com/api/v1/draft-returns/{draft_return_id}/order/items"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-Authorization", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.loopreturns.com/api/v1/draft-returns/{draft_return_id}/order/items")
.header("X-Authorization", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.loopreturns.com/api/v1/draft-returns/{draft_return_id}/order/items")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-Authorization"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"_links": {
"self": {
"href": "<string>"
}
},
"_embedded": {
"items": [
{
"id": 123,
"description": "<string>",
"image": "<string>",
"parent_line_item_id": 123,
"price": 123,
"discount": 123,
"discounted_price": 123,
"compare_at_price": 123,
"price_original": 123,
"current_variant_price": 123,
"outcome": "<string>",
"available_outcomes": [
{
"type": "refund"
},
{
"type": "exchange"
},
{
"type": "store-credit"
}
],
"return_reasons": [
{
"id": 123,
"name": "<string>",
"parent_return_reason_id": 123,
"parent_return_reason_name": "<string>"
}
],
"eligibility": {
"return": {
"status": true,
"reason": "<string>",
"expiration": "<string>"
},
"warranty": {
"status": true,
"reason": "<string>",
"expiration": "<string>"
}
},
"title": "<string>",
"translated_title": "<string>",
"provider_product_id": 123,
"variant": {
"id": 123,
"title": "<string>",
"options": [
{
"name": "<string>",
"value": "<string>"
}
],
"translated_title": "<string>",
"translated_options": [
{
"name": "<string>",
"value": "<string>"
}
]
},
"advanced_exchange": {
"id": 123,
"title": "<string>",
"title_visible": true,
"options": [
{}
]
},
"capabilities": [
"<string>"
]
}
]
}
}{
"errors": [
{
"code": "unauthorized",
"message": "Unauthorized."
}
]
}Authorizations
Headers
The unique identifier of the shop associated with the draft return.
This header is not required, as the merchant's shop is identified by the API key present in the request.
Optional. Responses use Content-Type: application/prs.hal-forms+json.
application/prs.hal-forms+json The shopper's locale: a two-letter language code with an optional two-letter region,
for example fr or fr-CA.
When the value is valid and product translations are enabled for the shop, the response includes translated product text in the operation's translated fields. Otherwise those fields are not populated.
"fr-CA"
Path Parameters
The unique identifier of the draft return.
Query Parameters
The page number to return (default 1).
x >= 1Number of order line items per page. Must be between 1 and 250 (inclusive). Defaults to 250, so leaving it out returns up to 250 line items in one page.
1 <= x <= 250