"I have bought two cotton shirts."
Translation:J'ai acheté deux chemises en coton.
Why can't it be "J'ai acheté deux chemises cotones" Cotton is an adjective,right?
It is both a noun and an adjective. When speaking of what something is made of, the noun is used - en coton means "(made from/of) cotton".
Les vêtements en coton sont frais → "Cotton garments are cool."
NOTE: That it is a masculine noun and no plural agreement is required.
When coton is used as an adjective, it has an entirely different meaning: → "tough, tricky"
Ce problème est coton à résoudre. → "This is a tough problem to solve."