Update the product
curl --request POST \
--url https://api.hit-pay.com/v1/products/{product_id} \
--header 'Content-Type: multipart/form-data' \
--header 'X-BUSINESS-API-KEY: <x-business-api-key>' \
--form 'name=<string>' \
--form price=123 \
--form 'description=<string>' \
--form 'headline=<string>' \
--form quantity=1 \
--form quantity_alert_level=1 \
--form currency=sgd \
--form category_ids=9a12fab0-d282-4437-9460-c3d26662d11a \
--form is_manageable=1 \
--form is_pinned=0 \
--form product_weight=123 \
--form delivery_method_required=true \
--form 'existing_variation={
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"price": 123,
"quantity": 123,
"quantity_alert_level": 123,
"image": "<string>",
"product_variation_weight": 123,
"variation_value_1": "<string>",
"variation_value_2": "<string>",
"variation_value_3": "<string>"
}' \
--form 'images={
"image": "<string>"
}' \
--form publish=1 \
--form _method=PATCH \
--form existing_variation.items.image='@example-file' \
--form images.items.image='@example-file'import requests
url = "https://api.hit-pay.com/v1/products/{product_id}"
files = {
"existing_variation.items.image": ("example-file", open("example-file", "rb")),
"images.items.image": ("example-file", open("example-file", "rb"))
}
payload = {
"name": "<string>",
"price": "123",
"description": "<string>",
"headline": "<string>",
"quantity": "1",
"quantity_alert_level": "1",
"currency": "sgd",
"category_ids": "9a12fab0-d282-4437-9460-c3d26662d11a",
"is_manageable": "1",
"is_pinned": "0",
"product_weight": "123",
"delivery_method_required": "true",
"existing_variation": "{
\"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",
\"price\": 123,
\"quantity\": 123,
\"quantity_alert_level\": 123,
\"image\": \"<string>\",
\"product_variation_weight\": 123,
\"variation_value_1\": \"<string>\",
\"variation_value_2\": \"<string>\",
\"variation_value_3\": \"<string>\"
}",
"images": "{
\"image\": \"<string>\"
}",
"publish": "1",
"_method": "PATCH"
}
headers = {"X-BUSINESS-API-KEY": "<x-business-api-key>"}
response = requests.post(url, data=payload, files=files, headers=headers)
print(response.text)const form = new FormData();
form.append('name', '<string>');
form.append('price', '123');
form.append('description', '<string>');
form.append('headline', '<string>');
form.append('quantity', '1');
form.append('quantity_alert_level', '1');
form.append('currency', 'sgd');
form.append('category_ids', '9a12fab0-d282-4437-9460-c3d26662d11a');
form.append('is_manageable', '1');
form.append('is_pinned', '0');
form.append('product_weight', '123');
form.append('delivery_method_required', 'true');
form.append('existing_variation', '{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"price": 123,
"quantity": 123,
"quantity_alert_level": 123,
"image": "<string>",
"product_variation_weight": 123,
"variation_value_1": "<string>",
"variation_value_2": "<string>",
"variation_value_3": "<string>"
}');
form.append('images', '{
"image": "<string>"
}');
form.append('publish', '1');
form.append('_method', 'PATCH');
form.append('existing_variation.items.image', '{
"fileName": "example-file"
}');
form.append('images.items.image', '{
"fileName": "example-file"
}');
const options = {method: 'POST', headers: {'X-BUSINESS-API-KEY': '<x-business-api-key>'}};
options.body = form;
fetch('https://api.hit-pay.com/v1/products/{product_id}', 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.hit-pay.com/v1/products/{product_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"name\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"price\"\r\n\r\n123\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"description\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"headline\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"quantity\"\r\n\r\n1\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"quantity_alert_level\"\r\n\r\n1\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"currency\"\r\n\r\nsgd\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"category_ids\"\r\n\r\n9a12fab0-d282-4437-9460-c3d26662d11a\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"is_manageable\"\r\n\r\n1\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"is_pinned\"\r\n\r\n0\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"product_weight\"\r\n\r\n123\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"delivery_method_required\"\r\n\r\ntrue\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"existing_variation\"\r\n\r\n{\r\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\r\n \"price\": 123,\r\n \"quantity\": 123,\r\n \"quantity_alert_level\": 123,\r\n \"image\": \"<string>\",\r\n \"product_variation_weight\": 123,\r\n \"variation_value_1\": \"<string>\",\r\n \"variation_value_2\": \"<string>\",\r\n \"variation_value_3\": \"<string>\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"images\"\r\n\r\n{\r\n \"image\": \"<string>\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"publish\"\r\n\r\n1\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"_method\"\r\n\r\nPATCH\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"existing_variation.items.image\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"images.items.image\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001--",
CURLOPT_HTTPHEADER => [
"Content-Type: multipart/form-data",
"X-BUSINESS-API-KEY: <x-business-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"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.hit-pay.com/v1/products/{product_id}"
payload := strings.NewReader("-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"name\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"price\"\r\n\r\n123\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"description\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"headline\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"quantity\"\r\n\r\n1\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"quantity_alert_level\"\r\n\r\n1\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"currency\"\r\n\r\nsgd\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"category_ids\"\r\n\r\n9a12fab0-d282-4437-9460-c3d26662d11a\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"is_manageable\"\r\n\r\n1\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"is_pinned\"\r\n\r\n0\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"product_weight\"\r\n\r\n123\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"delivery_method_required\"\r\n\r\ntrue\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"existing_variation\"\r\n\r\n{\r\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\r\n \"price\": 123,\r\n \"quantity\": 123,\r\n \"quantity_alert_level\": 123,\r\n \"image\": \"<string>\",\r\n \"product_variation_weight\": 123,\r\n \"variation_value_1\": \"<string>\",\r\n \"variation_value_2\": \"<string>\",\r\n \"variation_value_3\": \"<string>\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"images\"\r\n\r\n{\r\n \"image\": \"<string>\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"publish\"\r\n\r\n1\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"_method\"\r\n\r\nPATCH\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"existing_variation.items.image\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"images.items.image\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001--")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-BUSINESS-API-KEY", "<x-business-api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.hit-pay.com/v1/products/{product_id}")
.header("X-BUSINESS-API-KEY", "<x-business-api-key>")
.body("-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"name\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"price\"\r\n\r\n123\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"description\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"headline\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"quantity\"\r\n\r\n1\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"quantity_alert_level\"\r\n\r\n1\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"currency\"\r\n\r\nsgd\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"category_ids\"\r\n\r\n9a12fab0-d282-4437-9460-c3d26662d11a\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"is_manageable\"\r\n\r\n1\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"is_pinned\"\r\n\r\n0\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"product_weight\"\r\n\r\n123\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"delivery_method_required\"\r\n\r\ntrue\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"existing_variation\"\r\n\r\n{\r\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\r\n \"price\": 123,\r\n \"quantity\": 123,\r\n \"quantity_alert_level\": 123,\r\n \"image\": \"<string>\",\r\n \"product_variation_weight\": 123,\r\n \"variation_value_1\": \"<string>\",\r\n \"variation_value_2\": \"<string>\",\r\n \"variation_value_3\": \"<string>\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"images\"\r\n\r\n{\r\n \"image\": \"<string>\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"publish\"\r\n\r\n1\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"_method\"\r\n\r\nPATCH\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"existing_variation.items.image\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"images.items.image\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001--")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.hit-pay.com/v1/products/{product_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-BUSINESS-API-KEY"] = '<x-business-api-key>'
request.body = "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"name\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"price\"\r\n\r\n123\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"description\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"headline\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"quantity\"\r\n\r\n1\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"quantity_alert_level\"\r\n\r\n1\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"currency\"\r\n\r\nsgd\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"category_ids\"\r\n\r\n9a12fab0-d282-4437-9460-c3d26662d11a\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"is_manageable\"\r\n\r\n1\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"is_pinned\"\r\n\r\n0\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"product_weight\"\r\n\r\n123\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"delivery_method_required\"\r\n\r\ntrue\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"existing_variation\"\r\n\r\n{\r\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\r\n \"price\": 123,\r\n \"quantity\": 123,\r\n \"quantity_alert_level\": 123,\r\n \"image\": \"<string>\",\r\n \"product_variation_weight\": 123,\r\n \"variation_value_1\": \"<string>\",\r\n \"variation_value_2\": \"<string>\",\r\n \"variation_value_3\": \"<string>\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"images\"\r\n\r\n{\r\n \"image\": \"<string>\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"publish\"\r\n\r\n1\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"_method\"\r\n\r\nPATCH\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"existing_variation.items.image\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"images.items.image\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001--"
response = http.request(request)
puts response.read_body{
"id": "9a12fab4-d112-48af-9d6b-050d650b0a25",
"business_id": "9130c422-bf97-4bd1-b370-07a3a6f40708",
"category_id": [
"9a12fab0-d282-4437-9460-c3d26662d11a"
],
"name": "Beanie",
"headline": null,
"description": "<p>Stylish hat suitable for the winter.</p>",
"currency": "SGD",
"price": 15,
"price_display": "SGD 15.00",
"price_stored": 1500,
"tax_id": null,
"is_manageable": 1,
"is_pinned": false,
"status": "published",
"product_weight": 250,
"delivery_method_required": true,
"has_variations": true,
"is_shopify": false,
"product_url": "<string>",
"variations_count": 2,
"variations": [
{
"id": "9a12fab4-d998-44ea-ad11-8753be88a1c9",
"stock_keeping_unit": null,
"description": "Medium",
"weight": null,
"length": null,
"width": null,
"depth": null,
"price": 18,
"price_display": "SGD 18.00",
"price_stored": 1800,
"quantity": 150,
"quantity_alert_level": 10,
"product_variation_weight": 250,
"variation_value_1": "Medium",
"variation_value_2": null,
"variation_value_3": null
},
{
"id": "9a12fab4-dd20-4f8f-9e74-de28629f863a",
"stock_keeping_unit": null,
"description": "Large",
"weight": null,
"length": null,
"width": null,
"depth": null,
"price": 20,
"price_display": "SGD 20.00",
"price_stored": 2000,
"quantity": 148,
"quantity_alert_level": 10,
"product_variation_weight": 255,
"variation_value_1": "Large",
"variation_value_2": null,
"variation_value_3": null
}
],
"variation_key_1": "Size",
"variation_key_2": null,
"variation_key_3": null,
"images": [
{
"id": "9a12fab6-1e76-448e-8c45-e84e2e38f294",
"caption": "Beanie",
"url": "<string>",
"other_dimensions": [
{
"size": "icon",
"path": "<string>"
},
{
"size": "large",
"path": "<string>"
},
{
"size": "small",
"path": "<string>"
},
{
"size": "medium",
"path": "<string>"
},
{
"size": "thumbnail",
"path": "<string>"
}
]
}
],
"is_published": true,
"created_at": "2023-09-07T13:04:22+08:00",
"updated_at": "2023-09-18T14:36:54+08:00",
"starts_at": null,
"ends_at": null
}"{\"message\":\"The given data was invalid.\",\"errors\":{\"name\":[\"The name field is required.\"]}}"Products
Update Product
Update product name, price, description, or variants
POST
/
v1
/
products
/
{product_id}
Update the product
curl --request POST \
--url https://api.hit-pay.com/v1/products/{product_id} \
--header 'Content-Type: multipart/form-data' \
--header 'X-BUSINESS-API-KEY: <x-business-api-key>' \
--form 'name=<string>' \
--form price=123 \
--form 'description=<string>' \
--form 'headline=<string>' \
--form quantity=1 \
--form quantity_alert_level=1 \
--form currency=sgd \
--form category_ids=9a12fab0-d282-4437-9460-c3d26662d11a \
--form is_manageable=1 \
--form is_pinned=0 \
--form product_weight=123 \
--form delivery_method_required=true \
--form 'existing_variation={
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"price": 123,
"quantity": 123,
"quantity_alert_level": 123,
"image": "<string>",
"product_variation_weight": 123,
"variation_value_1": "<string>",
"variation_value_2": "<string>",
"variation_value_3": "<string>"
}' \
--form 'images={
"image": "<string>"
}' \
--form publish=1 \
--form _method=PATCH \
--form existing_variation.items.image='@example-file' \
--form images.items.image='@example-file'import requests
url = "https://api.hit-pay.com/v1/products/{product_id}"
files = {
"existing_variation.items.image": ("example-file", open("example-file", "rb")),
"images.items.image": ("example-file", open("example-file", "rb"))
}
payload = {
"name": "<string>",
"price": "123",
"description": "<string>",
"headline": "<string>",
"quantity": "1",
"quantity_alert_level": "1",
"currency": "sgd",
"category_ids": "9a12fab0-d282-4437-9460-c3d26662d11a",
"is_manageable": "1",
"is_pinned": "0",
"product_weight": "123",
"delivery_method_required": "true",
"existing_variation": "{
\"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",
\"price\": 123,
\"quantity\": 123,
\"quantity_alert_level\": 123,
\"image\": \"<string>\",
\"product_variation_weight\": 123,
\"variation_value_1\": \"<string>\",
\"variation_value_2\": \"<string>\",
\"variation_value_3\": \"<string>\"
}",
"images": "{
\"image\": \"<string>\"
}",
"publish": "1",
"_method": "PATCH"
}
headers = {"X-BUSINESS-API-KEY": "<x-business-api-key>"}
response = requests.post(url, data=payload, files=files, headers=headers)
print(response.text)const form = new FormData();
form.append('name', '<string>');
form.append('price', '123');
form.append('description', '<string>');
form.append('headline', '<string>');
form.append('quantity', '1');
form.append('quantity_alert_level', '1');
form.append('currency', 'sgd');
form.append('category_ids', '9a12fab0-d282-4437-9460-c3d26662d11a');
form.append('is_manageable', '1');
form.append('is_pinned', '0');
form.append('product_weight', '123');
form.append('delivery_method_required', 'true');
form.append('existing_variation', '{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"price": 123,
"quantity": 123,
"quantity_alert_level": 123,
"image": "<string>",
"product_variation_weight": 123,
"variation_value_1": "<string>",
"variation_value_2": "<string>",
"variation_value_3": "<string>"
}');
form.append('images', '{
"image": "<string>"
}');
form.append('publish', '1');
form.append('_method', 'PATCH');
form.append('existing_variation.items.image', '{
"fileName": "example-file"
}');
form.append('images.items.image', '{
"fileName": "example-file"
}');
const options = {method: 'POST', headers: {'X-BUSINESS-API-KEY': '<x-business-api-key>'}};
options.body = form;
fetch('https://api.hit-pay.com/v1/products/{product_id}', 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.hit-pay.com/v1/products/{product_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"name\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"price\"\r\n\r\n123\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"description\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"headline\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"quantity\"\r\n\r\n1\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"quantity_alert_level\"\r\n\r\n1\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"currency\"\r\n\r\nsgd\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"category_ids\"\r\n\r\n9a12fab0-d282-4437-9460-c3d26662d11a\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"is_manageable\"\r\n\r\n1\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"is_pinned\"\r\n\r\n0\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"product_weight\"\r\n\r\n123\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"delivery_method_required\"\r\n\r\ntrue\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"existing_variation\"\r\n\r\n{\r\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\r\n \"price\": 123,\r\n \"quantity\": 123,\r\n \"quantity_alert_level\": 123,\r\n \"image\": \"<string>\",\r\n \"product_variation_weight\": 123,\r\n \"variation_value_1\": \"<string>\",\r\n \"variation_value_2\": \"<string>\",\r\n \"variation_value_3\": \"<string>\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"images\"\r\n\r\n{\r\n \"image\": \"<string>\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"publish\"\r\n\r\n1\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"_method\"\r\n\r\nPATCH\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"existing_variation.items.image\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"images.items.image\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001--",
CURLOPT_HTTPHEADER => [
"Content-Type: multipart/form-data",
"X-BUSINESS-API-KEY: <x-business-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"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.hit-pay.com/v1/products/{product_id}"
payload := strings.NewReader("-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"name\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"price\"\r\n\r\n123\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"description\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"headline\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"quantity\"\r\n\r\n1\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"quantity_alert_level\"\r\n\r\n1\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"currency\"\r\n\r\nsgd\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"category_ids\"\r\n\r\n9a12fab0-d282-4437-9460-c3d26662d11a\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"is_manageable\"\r\n\r\n1\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"is_pinned\"\r\n\r\n0\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"product_weight\"\r\n\r\n123\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"delivery_method_required\"\r\n\r\ntrue\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"existing_variation\"\r\n\r\n{\r\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\r\n \"price\": 123,\r\n \"quantity\": 123,\r\n \"quantity_alert_level\": 123,\r\n \"image\": \"<string>\",\r\n \"product_variation_weight\": 123,\r\n \"variation_value_1\": \"<string>\",\r\n \"variation_value_2\": \"<string>\",\r\n \"variation_value_3\": \"<string>\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"images\"\r\n\r\n{\r\n \"image\": \"<string>\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"publish\"\r\n\r\n1\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"_method\"\r\n\r\nPATCH\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"existing_variation.items.image\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"images.items.image\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001--")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-BUSINESS-API-KEY", "<x-business-api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.hit-pay.com/v1/products/{product_id}")
.header("X-BUSINESS-API-KEY", "<x-business-api-key>")
.body("-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"name\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"price\"\r\n\r\n123\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"description\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"headline\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"quantity\"\r\n\r\n1\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"quantity_alert_level\"\r\n\r\n1\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"currency\"\r\n\r\nsgd\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"category_ids\"\r\n\r\n9a12fab0-d282-4437-9460-c3d26662d11a\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"is_manageable\"\r\n\r\n1\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"is_pinned\"\r\n\r\n0\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"product_weight\"\r\n\r\n123\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"delivery_method_required\"\r\n\r\ntrue\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"existing_variation\"\r\n\r\n{\r\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\r\n \"price\": 123,\r\n \"quantity\": 123,\r\n \"quantity_alert_level\": 123,\r\n \"image\": \"<string>\",\r\n \"product_variation_weight\": 123,\r\n \"variation_value_1\": \"<string>\",\r\n \"variation_value_2\": \"<string>\",\r\n \"variation_value_3\": \"<string>\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"images\"\r\n\r\n{\r\n \"image\": \"<string>\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"publish\"\r\n\r\n1\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"_method\"\r\n\r\nPATCH\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"existing_variation.items.image\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"images.items.image\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001--")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.hit-pay.com/v1/products/{product_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-BUSINESS-API-KEY"] = '<x-business-api-key>'
request.body = "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"name\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"price\"\r\n\r\n123\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"description\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"headline\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"quantity\"\r\n\r\n1\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"quantity_alert_level\"\r\n\r\n1\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"currency\"\r\n\r\nsgd\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"category_ids\"\r\n\r\n9a12fab0-d282-4437-9460-c3d26662d11a\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"is_manageable\"\r\n\r\n1\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"is_pinned\"\r\n\r\n0\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"product_weight\"\r\n\r\n123\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"delivery_method_required\"\r\n\r\ntrue\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"existing_variation\"\r\n\r\n{\r\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\r\n \"price\": 123,\r\n \"quantity\": 123,\r\n \"quantity_alert_level\": 123,\r\n \"image\": \"<string>\",\r\n \"product_variation_weight\": 123,\r\n \"variation_value_1\": \"<string>\",\r\n \"variation_value_2\": \"<string>\",\r\n \"variation_value_3\": \"<string>\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"images\"\r\n\r\n{\r\n \"image\": \"<string>\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"publish\"\r\n\r\n1\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"_method\"\r\n\r\nPATCH\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"existing_variation.items.image\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"images.items.image\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001--"
response = http.request(request)
puts response.read_body{
"id": "9a12fab4-d112-48af-9d6b-050d650b0a25",
"business_id": "9130c422-bf97-4bd1-b370-07a3a6f40708",
"category_id": [
"9a12fab0-d282-4437-9460-c3d26662d11a"
],
"name": "Beanie",
"headline": null,
"description": "<p>Stylish hat suitable for the winter.</p>",
"currency": "SGD",
"price": 15,
"price_display": "SGD 15.00",
"price_stored": 1500,
"tax_id": null,
"is_manageable": 1,
"is_pinned": false,
"status": "published",
"product_weight": 250,
"delivery_method_required": true,
"has_variations": true,
"is_shopify": false,
"product_url": "<string>",
"variations_count": 2,
"variations": [
{
"id": "9a12fab4-d998-44ea-ad11-8753be88a1c9",
"stock_keeping_unit": null,
"description": "Medium",
"weight": null,
"length": null,
"width": null,
"depth": null,
"price": 18,
"price_display": "SGD 18.00",
"price_stored": 1800,
"quantity": 150,
"quantity_alert_level": 10,
"product_variation_weight": 250,
"variation_value_1": "Medium",
"variation_value_2": null,
"variation_value_3": null
},
{
"id": "9a12fab4-dd20-4f8f-9e74-de28629f863a",
"stock_keeping_unit": null,
"description": "Large",
"weight": null,
"length": null,
"width": null,
"depth": null,
"price": 20,
"price_display": "SGD 20.00",
"price_stored": 2000,
"quantity": 148,
"quantity_alert_level": 10,
"product_variation_weight": 255,
"variation_value_1": "Large",
"variation_value_2": null,
"variation_value_3": null
}
],
"variation_key_1": "Size",
"variation_key_2": null,
"variation_key_3": null,
"images": [
{
"id": "9a12fab6-1e76-448e-8c45-e84e2e38f294",
"caption": "Beanie",
"url": "<string>",
"other_dimensions": [
{
"size": "icon",
"path": "<string>"
},
{
"size": "large",
"path": "<string>"
},
{
"size": "small",
"path": "<string>"
},
{
"size": "medium",
"path": "<string>"
},
{
"size": "thumbnail",
"path": "<string>"
}
]
}
],
"is_published": true,
"created_at": "2023-09-07T13:04:22+08:00",
"updated_at": "2023-09-18T14:36:54+08:00",
"starts_at": null,
"ends_at": null
}"{\"message\":\"The given data was invalid.\",\"errors\":{\"name\":[\"The name field is required.\"]}}"Headers
Example:
"b286daabf9921b5a01a4621f026c111e046f8911feba212996c92159b98427d"
Path Parameters
Body
multipart/form-data
The name of the product
Example:
"Product Beanie"
The price of the product
The description of the product
The headline of the product
The quantity of the product
Required range:
x >= 0Example:
1
The quantity alert level of the product. It is required when quantity alert level is present.
Required range:
x >= 0Example:
1
The currency of the product
Example:
"sgd"
The list of business product category ids of the product
The category ids of the product
Example:
["9a12fab0-d282-4437-9460-c3d26662d11a"]
The is manageable of the product
Available options:
1, 0 The is pinned of the product
Available options:
1, 0 Weight in gram
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Available options:
1, 0 Response
200
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Last modified on February 25, 2026
Was this page helpful?
⌘I