Commerce 2: Can Cash and Check payments be implemented? My client's business and website is primarily online purchases. However, there are instances when special customers or referrals come into their office and buy the product by cash or check.

My client wants those purchases to be recorded in the same database as online orders, along with the same captured contact information.

Is there a way to implement the checkout process so that certain employees with designated privileges can enter orders through the online store, but no request for payment information is required.  Or for those and only those privileged people an additional cash / check option is shown? (And the check option may also ask for additional info, such as the bank name and check number.)
You can do this by adding an additional payment gateway.


Add a role, Pay with Cash or whatever you want to call it.
Add a new payment gateway (at /admin/commerce/config/payment-gateways/add). 


Name: Cash or Check
Plugin: Manual
Customer: Limit by Role: Pay with Cash role



The "Manual" gateway does not ask for any payment information, so orders with the manual payment selected (which only users with the Pay with Cash role will be able to select) will automatically be processed as completed when this payment method is selected.

If you want to record bank info for checks, you can make two separate gateways, one cash and one checks, and then customize the check gateway with additional fields.