First presented last year by Poland's Solidarity trade union as a citizens' initiative bill, the new legislation limits shopping to the first and last Sundays of the month as of March 2018.
Trade will only be allowed on the last Sunday of the month in 2019 before a wider ban takes effect in 2020 that will allow shopping on seven Sundays per year, including two before Christmas and one before Easter.
Lawmakers in Poland's right-wing dominated 460-seat parliament passed the ban with 254 votes in favour to 156 against and 23 abstentions.
The Solidarity trade union says it sought the move to ensure retail staff get free weekends, but opposition politicians and other critics argue that it will limit job opportunities for students and cramp cross-border shopping from the Baltic states, Belarus, Ukraine and Slovakia.
More From This Section
Solidarity is allied with Poland's governing conservative Law and Justice (PiS) party, which is closely tied to the powerful Roman Catholic Church, long an advocate of shutting shops on Sundays for religious reasons.
The independent Kantar TNS pollsters found that 76 percent of respondents supported a compromise that would allow Sunday shopping, but also give retail workers two free weekends per month.
However, the Warsaw-based CBOS agency found that 58 per cent of respondents supported a blanket Sunday shopping ban, while just 37 per cent were opposed. It also found that 52 per cent of respondents said they shop on Sunday.
Up to now, stores in Poland have remained closed for 12 days a year for major national or religious holidays.