1. All shirts are 10 % off.

2. All shirts are on sale, 10 % off.
--------------
Are both the same? Does 'on sale' mean 'at a reduced price' in Sentence 2?

3. All shirts have 10 % off.
(Is this grammatical?)

4. The watermelons are for sale.
5. The watermelons are not for sale.
6. The watermelons are on sale.
7. The watermelons are not on sale.
(Are they all grammatical? Can we use those sentences at a shop? What is the diference because of 'for' and on'?)

I would keep 1 and omit 2. "on sale" in sentence 2 is repetitive.

3 is not correct, no.

4 - 7 are all correct and can be used in a shop or marketplace.

6 implies that the price of the watermelons is marked down from their normal price. (4 is referring to their normal price.)