you can achieve everything via rest/V1/products endpoint
// get token
$userData = array("username" => "MyUsername", "password" => "MyPassword");
$ch = curl_init("https://example.com/index.php/rest/V1/integration/admin/token");
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($userData));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-Type: application/json", "Content-Lenght: " . strlen(json_encode($userData))));
$token = curl_exec($ch);
$token = str_replace('"', '', $token);
// get product special price
$ch = curl_init("https://example.com/index.php/rest/V1/products/24-MB04");
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-Type: application/json", "Authorization: Bearer " . $token));
$result = curl_exec($ch);
$data = json_decode($result,true);
$specialPrice = $data['price'];
foreach ($data['custom_attributes'] as $attr) {
if ($attr['attribute_code'] == 'special_price') {
$specialPrice = $attr['value'];
}
}
echo $specialPrice;
// update special price
$productUpdate = [
'product' => [
'sku' => '24-MB04',
'custom_attributes' => [
'special_price' => 20.99,
]
]
];
$productsJson = json_encode($productUpdate);
$ch = curl_init('https://example.com/index.php/rest/V1/products');
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $productsJson);
curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-Type: application/json", "Authorization: Bearer " . $token));
$result = curl_exec($ch);