This is a common problem, and the solution is fairly simple: Always read a complete line every time you read something.
Never leave newlines in the input buffer, to mess up later reads. Don't (as it seems you are doing now) leave them there and try to skip them later, when reading text lines. Always consume the entire line the user typed, including the newline at the end.
The usual advice on exactly how to do this is to use fgets or something similar to read the lines, and then process the contents using atoi or sscanf or something similar. Another possibility is to always immediately read and throw away the newline character using getchar, when you have one left in the input buffer.
So never just do this:
scanf("%d", &p_customer->priority);
Either do this:
fgets(line, sizeof line, stdin);
sscanf(line, "%d", &p_customer->priority);
or, possibly, this:
scanf("%d", &p_customer->priority);
while (getchar() != '\n')
;
With error handling, which I have conveniently (for me) left out.