curl --request GET \
--url https://staging.api.commercengine.io/api/v1/{store_id}/storefront/catalog/marketplace/products/similar \
--header 'Authorization: Bearer <token>'import requests
url = "https://staging.api.commercengine.io/api/v1/{store_id}/storefront/catalog/marketplace/products/similar"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://staging.api.commercengine.io/api/v1/{store_id}/storefront/catalog/marketplace/products/similar', 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://staging.api.commercengine.io/api/v1/{store_id}/storefront/catalog/marketplace/products/similar",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$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://staging.api.commercengine.io/api/v1/{store_id}/storefront/catalog/marketplace/products/similar"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://staging.api.commercengine.io/api/v1/{store_id}/storefront/catalog/marketplace/products/similar")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://staging.api.commercengine.io/api/v1/{store_id}/storefront/catalog/marketplace/products/similar")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"message": "<string>",
"success": true,
"content": {
"products": [
{
"product_id": "<string>",
"variant_id": "<string>",
"sku": "<string>",
"product_slug": "<string>",
"variant_slug": "<string>",
"product_name": "<string>",
"variant_name": "<string>",
"short_description": "<string>",
"active": true,
"stock_available": true,
"on_subscription": true,
"on_promotion": true,
"category_ids": [
"<string>"
],
"tags": [
"<string>"
],
"reviews_count": 123,
"reviews_rating_sum": 123,
"attributes": [
{
"id": "<string>",
"name": "<string>",
"key": "<string>",
"type": "color",
"value": [
{
"name": "<string>",
"hexcode": "<string>"
}
]
}
],
"images": [
{
"id": "<string>",
"title": "<string>",
"alternate_text": "<string>",
"sort_order": 123,
"url_tiny": "<string>",
"url_thumbnail": "<string>",
"url_standard": "<string>",
"url_zoom": "<string>"
}
],
"pricing": {
"currency": "<string>",
"tax_type": "GST",
"tax_rate": 123,
"price_including_tax": true,
"listing_price": 123,
"selling_price": 123,
"min_order_quantity": 1,
"max_order_quantity": 123,
"incremental_quantity": 1,
"selling_price_excluding_tax": 123
},
"promotion": {
"id": "<string>",
"starts_at": "2023-11-07T05:31:56Z",
"expires_at": "2023-11-07T05:31:56Z",
"details": {
"discount_percent": 123,
"discount_fixed_amount": 123
}
},
"subscription": [
{
"id": "<string>",
"subscription_plan": "<string>",
"subscription_price": 123,
"billing_interval": 123,
"billing_limit": 123,
"fulfill_separately": false,
"order_interval": 123,
"order_limit": 123,
"minimum_quantity": 123,
"billing_trial_days": 123
}
],
"associated_options": {
"background_color": {
"name": "Background Color",
"value": {
"name": "Blue",
"hexcode": "#0000FF"
},
"type": "color"
},
"size": {
"name": "Size",
"value": "Large",
"type": "single-select"
}
},
"seller_id": "<string>",
"seller_detail": {
"id": "<string>",
"trade_name": "<string>",
"legal_name": "<string>",
"business_type": "<string>",
"tax_identification_number": "<string>"
},
"backorder": true,
"categories": [
{
"id": "<string>",
"name": "<string>",
"slug": "<string>",
"description": "<string>",
"parent_category_id": "<string>",
"product_count": 123,
"active": true
}
],
"shipping": {
"handling_charges_including_tax": 123,
"handling_charges_excluding_tax": 123,
"tax_type": "<string>",
"tax_rate": 123
},
"inventory": [
{
"lot_batch": "<string>",
"mfg_date": "2023-12-25",
"exp_date": "2023-12-25",
"manufacturer": "<string>",
"stock_quantity": 123
}
]
}
],
"pagination": {
"total_records": 123,
"total_pages": 123,
"limit": 123,
"next_page": 123,
"previous_page": 123
}
}
}{
"message": "<string>",
"success": false,
"code": "<string>"
}{
"message": "<string>",
"success": true,
"code": "<string>"
}Retrieve similar products
Retrieves a list of products similar to a specified product based on their attributes and category. The similar products are returned sorted by relevance, with the most closely matching products appearing first. Useful for providing product recommendations to your customers.
curl --request GET \
--url https://staging.api.commercengine.io/api/v1/{store_id}/storefront/catalog/marketplace/products/similar \
--header 'Authorization: Bearer <token>'import requests
url = "https://staging.api.commercengine.io/api/v1/{store_id}/storefront/catalog/marketplace/products/similar"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://staging.api.commercengine.io/api/v1/{store_id}/storefront/catalog/marketplace/products/similar', 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://staging.api.commercengine.io/api/v1/{store_id}/storefront/catalog/marketplace/products/similar",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$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://staging.api.commercengine.io/api/v1/{store_id}/storefront/catalog/marketplace/products/similar"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://staging.api.commercengine.io/api/v1/{store_id}/storefront/catalog/marketplace/products/similar")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://staging.api.commercengine.io/api/v1/{store_id}/storefront/catalog/marketplace/products/similar")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"message": "<string>",
"success": true,
"content": {
"products": [
{
"product_id": "<string>",
"variant_id": "<string>",
"sku": "<string>",
"product_slug": "<string>",
"variant_slug": "<string>",
"product_name": "<string>",
"variant_name": "<string>",
"short_description": "<string>",
"active": true,
"stock_available": true,
"on_subscription": true,
"on_promotion": true,
"category_ids": [
"<string>"
],
"tags": [
"<string>"
],
"reviews_count": 123,
"reviews_rating_sum": 123,
"attributes": [
{
"id": "<string>",
"name": "<string>",
"key": "<string>",
"type": "color",
"value": [
{
"name": "<string>",
"hexcode": "<string>"
}
]
}
],
"images": [
{
"id": "<string>",
"title": "<string>",
"alternate_text": "<string>",
"sort_order": 123,
"url_tiny": "<string>",
"url_thumbnail": "<string>",
"url_standard": "<string>",
"url_zoom": "<string>"
}
],
"pricing": {
"currency": "<string>",
"tax_type": "GST",
"tax_rate": 123,
"price_including_tax": true,
"listing_price": 123,
"selling_price": 123,
"min_order_quantity": 1,
"max_order_quantity": 123,
"incremental_quantity": 1,
"selling_price_excluding_tax": 123
},
"promotion": {
"id": "<string>",
"starts_at": "2023-11-07T05:31:56Z",
"expires_at": "2023-11-07T05:31:56Z",
"details": {
"discount_percent": 123,
"discount_fixed_amount": 123
}
},
"subscription": [
{
"id": "<string>",
"subscription_plan": "<string>",
"subscription_price": 123,
"billing_interval": 123,
"billing_limit": 123,
"fulfill_separately": false,
"order_interval": 123,
"order_limit": 123,
"minimum_quantity": 123,
"billing_trial_days": 123
}
],
"associated_options": {
"background_color": {
"name": "Background Color",
"value": {
"name": "Blue",
"hexcode": "#0000FF"
},
"type": "color"
},
"size": {
"name": "Size",
"value": "Large",
"type": "single-select"
}
},
"seller_id": "<string>",
"seller_detail": {
"id": "<string>",
"trade_name": "<string>",
"legal_name": "<string>",
"business_type": "<string>",
"tax_identification_number": "<string>"
},
"backorder": true,
"categories": [
{
"id": "<string>",
"name": "<string>",
"slug": "<string>",
"description": "<string>",
"parent_category_id": "<string>",
"product_count": 123,
"active": true
}
],
"shipping": {
"handling_charges_including_tax": 123,
"handling_charges_excluding_tax": 123,
"tax_type": "<string>",
"tax_rate": 123
},
"inventory": [
{
"lot_batch": "<string>",
"mfg_date": "2023-12-25",
"exp_date": "2023-12-25",
"manufacturer": "<string>",
"stock_quantity": 123
}
]
}
],
"pagination": {
"total_records": 123,
"total_pages": 123,
"limit": 123,
"next_page": 123,
"previous_page": 123
}
}
}{
"message": "<string>",
"success": false,
"code": "<string>"
}{
"message": "<string>",
"success": true,
"code": "<string>"
}Authorizations
Access token
Headers
This param is used to determine product pricing, promotions, and subscription rates. If a valid customer group id is provided, pricing details will be retrieved accordingly. If no matching data is found for the specified customer group id, the system will fall back to the default customer group id. If no data is found for the default group either, the highest applicable price will be returned.
Query Parameters
no of rows per page
page number in pagination
to retrieve similar products of specified products
json to sort records
Was this page helpful?