For the logo upload, you would have to create a custom field of the table "item" and the type "file" with the column name "file_upload" via the menu Display>Custom fields (business edition).
If you want the price of $40 to be added automatically, you will have to use that plugin:
demo.hikashop.com/index.php?option=com_h...show&cid=214&lang=en
and add the code:
if(!empty($product->file_upload)) $product->prices[0]->price_value = $product->prices[0]->price_value+40;
if(!empty($product->file_upload)) $product->prices[0]->price_value_with_tax = $product->prices[0]->price_value_with_tax+40;
after the line:
$currencyClass->quantityPrices($product->prices,$quantity,$product->cart_product_total_quantity);
and the add the code:
if(!empty($product->file_upload)) $product->order_product_total_price = $product->order_product_total_price+40;
if(!empty($product->file_upload)) $product->order_product_total_price_no_vat = $product->order_product_total_price_no_vat+40;
after the line:
$product->order_product_total_price = ($product->order_product_price+$product->order_product_tax)*$quantity;