If you're going to have customers on terms I'd recommend:
1. Setting up their account so they have a max credit. You'll have to use your best judgement, but for example, I deal with a local golf club doing a lot of small orders and I had to cap them at $500 or $750. They'd never pay even after notification of outstanding debt. Finally had to say enough.
2. Always get a PO. This is the most important thing. "Hey, can I order 500 water bottles engraved with "God Bless You" is not an order. Get a purchase order. This is a vendor contract which basically means as long as you deliver, you have to get paid. It puts you on their books as someone they owe money to. While this isn't important for a $100 order, if you start getting some decent orders, you want to be on their books. I can't tell you how often some guy will order something on behalf of the company, never submits the invoice, and you're left chasing money 30 days after they picked it up. Chasing money is a waste of time.
3. We've looked at it more than once. While I'd love everyone to pay me on time via check or cash, it doesn't happen. I don't trust treasurers to pay on time and I don't trust accounts payable to pay me on time (assuming they ever got the invoice in the first place). If someone can pay me via credit card and it means I'm guaranteed to get paid, I'll eat the 3%. We don't have a cash flow issue, but getting paid at pickup or at the time of order makes following cash flow so much easier than waiting 30+ days for payment.