To a large bowl, add oil, shallots, 2 tablespoons vinegar, and parsley. Whisk to combine. Taste and adjust seasoning with salt, pepper, and sugar. Fold in cranberries and set aside.
Prepare an ice bath. Bring a large pan of water to a boil over high heat, season generously with salt. Add the beans and cook until crisp-tender, about 3 minutes. Drain the beans and transfer to the ice bath to cool completely. Once cool, dry the beans in a clean kitchen towel.
Add the beans, toasted walnuts, and parsley to the bowl with the dressing and toss to combine. Taste and adjust seasoning with salt and pepper.