⚡Add Product
This endpoint allows for the addition of a new product to the inventory, including uploading images, setting pricing, stock levels, and other details.
Endpoint
POST https://api.keepup.store/v2.0/products/add
Headers
Authorization: Bearer API_KEY
Body Parameters
product_name
string
yes
Name of the product. Example: "Widget A"
description
string
optional
Detailed description of the product. Uses sanitized content.
cost_price
float
optional
Cost price of the product. Must be a valid monetary amount. Example: 15.75
selling_price
float
yes
Selling price of the product. Must be a valid monetary amount. Example: 20.00
previous_price
float
optional
Previous selling price, if any. Must be a valid monetary amount. Example: 18.00
quantity
integer
yes
Available quantity of the product. Required if stock_limit is 'limited'. Example: 50
restock_level
integer
optional
Level at which the product should be restocked. Example: 10
stock_limit
string
yes
Whether stock is limited or unlimited. Accepts 'limited' or 'unlimited'.
show_on_storefront
string
optional
Whether to show the product on the storefront. Accepts 'yes' or 'no'. Default is 'no'.
featured_product
string
optional
Whether the product is featured. Accepts 'yes' or 'no'. Default is 'no'.
category
string
optional
Category of the product. Example: "Electronics"
tags
JSON
optional
Tags associated with the product, in JSON format. Example: ["Electronics", "Gadget"]
SKU
string
optional
Stock Keeping Unit, unique identifier for each product variant. Example: "SKU12345"
barcode
string
optional
Barcode of the product. Example: "0123456789012"
product_location
string
optional
Storage location of the product within the business. Example: "Aisle 3, Shelf 5"
Sample Requests
const axios = require('axios');
const productData = {
business_id: 'bus123',
product_name: 'Product A',
description: 'High-quality gadget',
cost_price: 15.75,
selling_price: 20.00,
quantity: 50,
restock_level: 10,
stock_limit: 'limited',
show_on_storefront: 'yes',
featured_product: 'no',
category: 'Electronics',
tags: JSON.stringify(["Electronics", "Gadget"]),
SKU: 'SKU12345',
barcode: '0123456789012',
product_location: 'Aisle 3, Shelf 5',
expirations: JSON.stringify([{
batch_number: "batch123",
expiration_date: "2024-12-31",
alert_date: "2024-12-01"
}]),
primary_product_image_index: 0
};
const config = {
method: 'post',
url: 'https://api.keepup.store/v2.0/products/add',
headers: {
'Authorization': 'Bearer API_KEY', // Replace YOUR_ACCESS_TOKEN with your actual access token
'Content-Type': 'application/json'
},
data: JSON.stringify(productData)
};
axios(config)
.then(function (response) {
console.log('Product added successfully:', response.data);
})
.catch(function (error) {
console.error('Failed to add product:', error);
});
<?php
$curl = curl_init();
$filePath = '/path/to/file.jpg';
$cfile = new CURLFile($filePath, 'image/jpeg', 'file.jpg');
$postData = array(
'product_name' => 'Widget A',
'description' => 'High-quality gadget',
'cost_price' => '15.75',
'selling_price' => '20.00',
'quantity' => '50',
'restock_level' => '10',
'show_on_storefront' => 'yes',
'featured_product' => 'no',
'category' => 'Electronics',
'tags' => json_encode(["Electronics", "Gadget"]),
'SKU' => 'SKU12345',
'barcode' => '0123456789012',
'product_location' => 'Aisle 3, Shelf 5',
'expirations' => json_encode([{ "batch_number": "batch123", "expiration_date": "2024-12-31", "alert_date": "2024-12-01" }]),
);
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://api.keepup.store/v2.0/products/add',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => $postData,
CURLOPT_HTTPHEADER => array(
'Authorization: Bearer API_KEY' // Replace 'API_KEY' with your actual API key
),
));
$response = curl_exec($curl);
if ($response === false) {
echo 'Curl error: ' . curl_error($curl);
}
curl_close($curl);
echo $response;
?>
import requests
from requests_toolbelt.multipart.encoder import MultipartEncoder
m = MultipartEncoder(
fields={
'product_name': 'Widget A',
'description': 'High-quality gadget',
'cost_price': '15.75',
'selling_price': '20.00',
'quantity': '50',
'restock_level': '10',
'show_on_storefront': 'yes',
'featured_product': 'no',
'category': 'Electronics',
'tags': json.dumps(["Electronics", "Gadget"]),
'SKU': 'SKU12345',
'barcode': '0123456789012',
'product_location': 'Aisle 3, Shelf 5',
'expirations': json.dumps([{"batch_number": "batch123", "expiration_date": "2024-12-31", "alert_date": "2024-12-01"}]),
'primary_product_image_index': '0',
}
)
response = requests.post('https://api.keepup.store/v2.0/products/add',
data=m,
headers={'Authorization': 'Bearer API_KEY', 'Content-Type': m.content_type}) # Replace YOUR_ACCESS_TOKEN with your actual access token
print(response.text)
Sample Response
{
"status": 200,
"message": "product added",
"data": {
"product_id": 19845
}
}{
"status": 401,
"error": "Authentication invalid"
}Last updated