Thank you for taking the time to write this great article.
I have experimented with a few different methods over the last couple of years here's somethings to consider.
When a customer orders online from one of my websites it ONLY excepts Bitcoin as payment. I'm using IBEXPAY, it batches following day to a wallet of my choice. This is done auto pilot. Repeating I do NOT want to accept credit cards, I ONLY want payment in SATS or on chain.
Link to IBEX
I have been made fun of for not accepting credit cards online. That's ok I'm long term Bitcoin and actually feel if I don't do this (just use Bitcoin in a circular way on a daily basis, I'm delaying building in the Worldwide eco system of Bitcoin).
If the business person like myself has day to day transactions are B2B there are usually many line items, as well as sizes, colors, styles etc. and some many are exported out of the USA so there is the need for adding HARMON codes as and other paperwork.
Sometimes I have to send a more formal invoice zaprite works fine for this maybe customer needs to send wire transfer. This is a link to zaprite
https://zaprite.com/product You can select which payment method(s) you want to accept.
Because my goal is to as much as possible work with REPEAT B2B customers and have the benefit of receiving SATS to work with from a circular perspective.
In regards to occasional B2C small orders in person IBEXPAY works great on a tablet, phone etc.
Other issues a merchant B2B and/or B2C should plan for in advance is
  1. Their return policy and paperwork flow.
  2. The need for a complete phone number especially when using FedEx, DHL etc.
  3. Baby steps, I strongly encourage making test products and test, test, test making sure what the customer sees or does not see on any receipt, order confirmation, stated terms and conditions etc.
Aloha Rich