There are ways on keeping your customers shopping in your store, this is what would work for me:
Have a well stocked sales table..... for backings
Offer a discount on backing when customer purchases all fabric for the top...
Offer 20% off if they come back to purchase batting and backing in the next couple of month after buying their fabric for the top..
Good friendly customer service, even when a small purchase is made
Try and get to know your customers name
If you don't have what they are after, suggest another local business, customers will come back to you because you help them find what they are looking for...
Quick mail order, I don't want to wait 2 weeks for a parcel that is local....
Offer free how too's workshops
Offer smaller cuts, for a flat rate cutting charge, i.e if your customer needs lots of 2inch strips ( charge something like $5 ) they still safe by not having to purchase the minimum of 20cm.
What would make you purchase local and not online?