set shop_id to input or null
cleanup
framework update and use soft delete for location