I spend a good bit of time on this with Shopify Support. The quick summary is you need to be diligent about how you are processing the transactions. The rule of thumb: any local transactions should be processed using ShopifyPOS. The reason is any purchase made online will always utilize the customers' address, even if local pickup is selected. This is the direction that all the sales tax nexus is going, so it's not worth fighting. That is, state are eliminating the condition when the purchase is made out-of-state and the customer wishes to pickup to avoid paying taxes.
Per my discussion with Shopify Support, in order to force the collection of tax for a local pickup transaction the alternative is to process all local transactions through ShopifyPOS. Conversely from Shopify Online Store transactions, ShopifyPOS assumes all transactions are local in-store and therefore will charge the local sales tax. It's not ideal, but when catch local pickup out-of-state transactions without nexus (therefore no tax collected), we politely request to the customer to refund the online sale and reprocess the purchases as a POS trx. I know this is an ugly solution, but it's the best we've discovered so far.
Here's also where you need to be diligent. Orders processed manually via the Shopify admin portal /web interface are STILL considered online orders even if processed onsite locally and will use the customers' address for tax nexus even if the sale was done completely onsite and never shipped. This took us a long time to figure out. I hope it helps someone else.
Anymore development on this? We are having this same issue! We border a few states and are only 15 minutes from the Indiana line. We have a lot of customers who shop with us and are buying online and choosing local pickup and not being charged tax.
Also-- my accountant wants my sales tax report broken up to show where tax was not collected. How do you do that? I cannot find a report like that?