Walmart is to stop sales of some types of ammunition following recent shootings, including one at one of its stores in Texas that left 22 dead.
The head of the company said it will discontinue sales of some bullets that can be used in assault-style weapons, and those used in handguns.
The move comes amid increasing pressure on the company, often cited as the largest firearms seller in the US.
Chief executive Doug McMillon said the company had been “listening”.
“It’s clear to us that the status quo is unacceptable,” he said in a note to employees and published on the firm’s website.
The firm also said it would discontinue handgun sales in Alaska, the only place it still offered such weapons.
The firm asked customers at Walmart and its Sam’s Club stores to stop carrying firearms openly, even in states where it is legally permitted, saying such actions have caused fear and evacuations.
Mr McMillon said: “We know these decisions will inconvenience some of our customers, and we hope they will understand.”
Mr McMillon, who also called on the US Congress to pass stricter gun laws, said he expected the changes to reduce the firm’s share of the ammunition market from about 20% to a range of 6% to 9%.
The company will continue to sell hunting rifles and shotguns, and much of the ammunition for those weapons, he added.
Walmart has lagged other US retailers in changes to its gun policies.
In 2018, after a mass shooting at a school in Parkland, Florida, Kroger-owned Fred Meyer stopped selling guns. That same year, Dick’s Sporting Goods ended the sale of assault weapons and raised the minimum age to 21 for gun purchases.
Walmart stock was little changed after the announcement. Shares in some gun-makers, such as Vista Outdoors, slumped.
America’s gun lobby, the National Rifle Association, said Walmart’s business would move elsewhere. It called the firm’s decision to restrict its sales “shameful”.
Mass shootings in the US
Walmart’s decision follows two incidents at stores last month, in which a gunman killed 22 people in El Paso, Texas, and a former employee killed two workers at a Walmart store in Mississippi.
Last month, other mass shootings – defined since 2012 as incidents as those that kill at least three people – in Ohio and Texas left more than a dozen dead.
There have been more than 110 mass shootings in the US since 1982, according to investigative magazine Mother Jones.