"Wait" is NOT the same thing as "stay".
If you tell your dog to stay when you leave the house, then technically he should be in exactly the same spot where
you left him when you return home. That's not fair. And it's not fair to teach him that stay means "don't move" when you're
training, but then expect him to determine the difference when you really don't mean for him to freeze, such
as leaving for work, etc.
For this, you should introduce "wait". When you tell your dog to wait, it simply means don't "cross this
threshold
until/unless I say".
STEP 1. With your dog on-leash for more control, approach the door or entrance as you normally would,
but prepare yourself to do whatever is necessary
(within reason) to halt your dog. If he gets past you, then your command means nothing, and you won't be taken
serious next time you try it.
STEP 2. Next you will command "wait" and attempt to open the door.
STEP 3. When your dog tries to jet past you, stomp your foot in front of him and repeat the
command "wait". Remember, he doesn't speak English, so the first few times he will look at you out of confusion. Don't
mistake this for hurt feelings. He is simply computing. (After 3-4 times [sometimes quicker] he will begin to understand.)
STEP 4. When he finally appears to be apprehensive about moving forward, give him gentle praise that
won't excite him, then command "okay, let's go" and lead him through the doorway with more praise.
*** Trouble Shooting ***
Here are some problems you might have and some answers that might help...
My dog is relentless!
If your dog is relentless in trying to get past you, you must be relentless as well. Also, try other things to keep
him from passing you, a sharp jerk back on the leash, putting him in a "sit" first, or closing the door before he can
reach it. Don't give up. Be strong. Be the pack leader! ;-)