В твиге сначала собрать все ссылки в один JS массив. Тогда в вопросе покажем реальное общее количество ссылок, а не хардкодед "100".
Можно просто зарядить таймауты с пачками ссылок:
function LINKNAME() {
const urls = [];
{% if products %}
{% for product in products %}
{% for actione in product.actione %}
{% if actione.url %}
urls.push('{{ actione.url }}');
{% endif %}
{% endfor %}
{% endfor %}
{% endif %}
const isOkay = confirm(`Открыть ${urls.length} вкладок?`);
if (!isOkay){
alert('Сообщение при отмене');
return;
}
// открываем
const batchSize = 5; // по сколько за 1 раз одновременно открывать
const pause = 3; // пауза в секундах между пачками
let iteration = 0;
while (urls.length) {
const batch = urls.splice(0, batchSize);
setTimeout(() => batch.forEach(url => window.open(url)), iteration * pause * 1000);
iteration++;
}
}
А то можно бы с генератором..