Downloadable product data types
The DownloadableProduct
data type implements ProductInterface
and CustomizableProductInterface
. As a result, attributes that are specific to downloadable products can be used when performing a products
query.
Downloadable product
The DownloadableProduct
object contains the following attributes:
Attribute | Type | Description |
---|---|---|
downloadable_product_links |
[DownloadableProductLinks ] |
An array containing information about the links for this downloadable product |
downloadable_product_samples |
[DownloadableProductSamples ] |
An array containing information about samples of this downloadable product |
links_purchased_separately |
Int | A value of 1 indicates that each link in the array must be purchased separately |
links_title |
String | The heading above the list of downloadable products |
DownloadableProductSamples object
The DownloadableProductSamples
object contains the following attributes:
Attribute | Type | Description |
---|---|---|
id |
Int | Deprecated. This attribute is not applicable for GraphQL |
sample_file |
String | Deprecated. Use sample_url instead |
sample_type |
DownloadableFileTypeEnum | Deprecated. Use sample_url instead |
sample_url |
String | The URL to the downloadable sample |
sort_order |
Int | A number indicating the sort order |
title |
String | The display name of the sample |
DownloadableProductLinks object
The DownloadableProductLinks
object contains the following attributes:
Attribute | Type | Description |
---|---|---|
id |
Int | Deprecated. This information should not be exposed on frontend |
is_shareable |
Boolean | Deprecated. This attribute is not applicable for GraphQL |
link_type |
DownloadableFileTypeEnum | Deprecated. Use sample_url instead |
number_of_downloads |
Int | Deprecated. This attribute is not applicable for GraphQL |
price |
Float | The price of the downloadable product |
sample_file |
String | Deprecated. Use sample_url instead |
sample_type |
DownloadableFileTypeEnum | Deprecated. Use sample_url instead |
sample_url |
String | The URL to the downloadable sample |
sort_order |
Int | A number indicating the sort order |
title |
String | The display name of the link |
Example usage
Add the following inline fragment to the output section of your products
query to return information specific to downloadable products:
1
2
3
4
5
... on DownloadableProduct {
items {
<attributes>
}
}
The following query returns information about downloadable product 240-LV04
, which is defined in the sample data.
Request:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
{
products(filter: { sku: { eq: "240-LV04" } }) {
items {
id
name
sku
type_id
price {
regularPrice {
amount {
value
currency
}
}
}
... on DownloadableProduct {
links_title
links_purchased_separately
downloadable_product_links {
id
sample_url
sort_order
title
link_type
price
}
downloadable_product_samples {
title
sort_order
sample_file
}
}
}
}
}
Response:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
{
"data": {
"products": {
"items": [
{
"id": 47,
"name": "Beginner's Yoga",
"sku": "240-LV04",
"type_id": "downloadable",
"price": {
"regularPrice": {
"amount": {
"value": 6,
"currency": "USD"
}
}
},
"links_title": "Downloads",
"links_purchased_separately": 0,
"downloadable_product_links": [
{
"id": 1,
"sample_url": null,
"sort_order": 1,
"title": "Beginner's Yoga",
"link_type": "FILE",
"price": 6
}
],
"downloadable_product_samples": [
{
"title": "Trailer #1",
"sort_order": 1,
"sample_file": "/l/u/luma_background_-_model_against_fence_4_sec_.mp4"
},
{
"title": "Trailer #2",
"sort_order": 1,
"sample_file": "/l/u/luma_background_-_model_against_fence_4_sec_.mp4"
},
{
"title": "Trailer #3",
"sort_order": 1,
"sample_file": "/l/u/luma_background_-_model_against_fence_4_sec_.mp4"
}
]
}
]
}
}
}