Niente da fare.
Da quello che ho visto credo che il problema sia perché il loop passa sempre tutti i prodotti indipendentemente dalla paginazione impostata.
Semplicemente i prodotti che non devono essere mostrati sono nascosti dal file "product.html.twig" con l'aggiunta della classe "d-none" che aggiunge "display: none!important;" all'elemento.
Infatti se si controlla l'html della pagina, si può vedere che in un ordine con 20 prodotti paginati a 8, è sempre presente l'html di tutti e 20 i prodotti.
Questo è il codice usato:
{% if rowIsDisplayed %} d-none d-print-table-row{% endif %}
La variabile viene impostata a inizio file in questo modo:
{% set rowIsDisplayed = (productIndex is defined and paginationNum is defined and productIndex > paginationNum) %}
Sto cercando di capire se riesco a sfruttare questa variabile per nascondere il blocco dove non necessario.