The save function of the class.product API doesn't insert the prices or the categories.
After the call to the save function, you want to call the updateCategories and the updatePrices functions of class.product.
You can see an example of that in the saveForm function of the class.product API:
if($status){
$status = $this->save($element);
}else{
JRequest::setVar( 'fail', $element );
return $status;
}
if($status){
$this->updateCategories($element,$status);
$this->updatePrices($element,$status);
$this->updateFiles($element,$status,'files');
$this->updateFiles($element,$status,'images',$element->imagesorder);
$this->updateRelated($element,$status,'related');
$this->updateRelated($element,$status,'options');
$this->updateCharacteristics($element,$status);
$class->handleTranslations('product',$status,$element);
}