I am new to Magento and want to set USPS shipping charge for all products.
Currently, it is visible for those products which have weight.
How can I do this? Am I missing any configuration?
Basically You can allow this method based on country. The reason why it appear only to products which have weight because Magento sends weight information to UPS and USPS
Specify Allowed Methods and Applicable Countries
In the Allowed Methods list, choose each USPS shipping method to be available to your customers. The methods appear under USPS during checkout. (Hold the Ctrl key down to select multiple options). Then, do the following:
a. Set the Free Method list to the method you want to use for free shipping. If you don’t want to offer free shipping through USPS, choose “None.”
b. In the Free Shipping Amount Threshold field, enter the minimum amount that qualifies an order for free shipping with USPS.
The Displayed Error Message text box is preset with a default message. You can either leave this message or enter the message that you want to appear if USPS becomes unavailable.
- Set Ship to Applicable Countries to one of the following:
All Allowed Countries
Customers from all countries specified in your store configuration can use this shipping method.
After choosing this option, the Ship to Specific Countries list appears. Select each country in the list where this shipping method can be used.
- Set Show Method if Not Applicable to one of the following:
Lists all available USPS shipping methods during checkout, including those that don’t apply to the shipment.
Lists only the USPS shipping methods that are applicable to the shipment.
For more details of configuration of USPS check the reference: https://docs.magento.com/m2/ce/user_guide/shipping/usps.html