You can use Workflow Field Updates and Triggers to populate any Amount you like based on any calculations you like from any object you want. Then simply insert the resulting value into the field.
If you are using Products on the Opportunities, your is automatically calculated from the product totals and any pricing customizations there. In this case, the best practice would be to add additional calculations needed (such as shipping or tax) as additional product line items.
If you are using an ecommerce system to do one-time payments for online purchases, where ecommerce is handling carts, shipping and sales tax, you should complete calculations in the ecommerce system, then write the final total to be charged to the field and finally use the Chargent API to charge the payment.