Place the graham cracker crumbs into a medium bowl. Pour in the melted butter. Stir until all the crumbs are moistened. You can also complete this step in a food processor if you'd like. Press the butter-crumb mixture into an even layer over the bottom and up the sides of a 9" pie plate.
Bake the shell for 15 minutes until it is a deep golden brown. Remove and let the crust cool completely.
In a large bowl, combine the milk and pudding mixes. Stir for 2 minutes. Pour about half of the pudding into the cooled graham shell. Drizzle the caramel evenly over the pudding layer. Use the back of a spoon to smooth the caramel over the pudding. Then, pour the rest of the pudding into the shell. Smooth the top.
If you're planning to serve it right away, refrigerate for at least 15 minutes before adding the whipped cream. If making in advance, refrigerate it for a few hours to overnight.
Place the bowl and whisk attachment of a stand mixer into the freezer for 15 minutes to chill.
When these are chilled, assemble them on the stand mixer and pour the whipping cream into the bowl. Whisk the cream on high. Slowly add in the confectioner's sugar as the mixer is running. Whisk the cream for about 3-5 minutes until it holds stiff peaks.
Spoon the whipped cream over the top of the pie. Sprinkle chocolate shavings over the cream.
Slice and serve the pie immediately or cover and refrigerate the pie for up to 8 hours before serving.
If you have never made your own graham cracker shell, you really just should. It's not difficult at all, adds very little time and it tastes out of this world.
Make sure you buy "instant pudding". It's easy to mix up the "instant" and "cook and serve" varieties! The cook and serve pudding will work of course, but it will add some time to the preparation of this pie.