How can I force users to input a shipping address when using the Commerce Paypal WPS submodule? I just built a store in Commerce using Drupal 7 and I am taking payments by the Commerce PayPal WPS submodule.  However, when I tested checkout, I found it was possible to buy a product without supplying a shipping address.

In the PayPal Express Checkout documentation, it shows there is an option for forcing users to provide an address.  However, the WPS documentation is less comprehensive and does not include any information about whether it is possible to force a shipping address to be displayed or not.
Have you tested this:

You need to activate the Shipping pane under checkout process:


Go to Administration > Store settings > Advanced store settings > Checkout settings (admin/commerce/config/checkout),
Check Shipping service under "Checkout pane configuration" or if you use recent version of DC move "Shipping information" pane from disabled panes section to Checkout section,
Save.




If you want to alter data before sending, use the hook_commerce_paypal_wps_order_form_data_alter(). You need to fetch the customer shipping profile for the current order using commerce_customer_profile_load() and add the values you need from the shipping profile to the $data array.