you could make it furniture, so you would have one config:
info:
namespace: blabla
items:
carpet:
display_name: "carpet"
permission: blabla
resource:
material: PAPER
generate: false
model_path: carpet
behaviours:
furniture:
solid: false
entity: item_frame
placeable_on:
floor: true
ceiling: false
walls: false
that applies a model like this:

And when you place it down it would slightly float off the ground so it doesn't z-fight with your blocks.
carpet.json{
"credit": "Made with Blockbench",
"texture_size": [64, 64],
"textures": {
"0": "carpet",
Error previewing file. It may have been deleted, or the provided file ID is invalid.