Problema ao enviar dados do formulario usanto Thymeleaf + Spring MVC + AJAX

Ao enviar o formulario de pedidos via ajax os dados da entidade Order estam chegando vazios.
Em minha aplicação estou utilizando Thymeleaf + Spring Boot+ AJAX

Classe Order.java

@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@Entity
@Table(name="orders")
   public class Order {
	@Id
	@GeneratedValue(strategy = GenerationType.IDENTITY)
	@Column
	private long id;

	@ManyToOne
	@JoinColumn(name = "userId")
	private User user;

	@OneToOne
	@JoinColumn(name = "shippingId")
	private Shipping shipping;

	@OneToOne
	@JoinColumn(name = "customerId")
	private Customer customer;

	@OneToOne
	@JoinColumn(name = "paymentId")
	private Payment payment;
	
	@OneToMany(mappedBy = "order")
	private List<OrderUpdate> orderUpdate;
	
	@OneToMany(mappedBy = "order")
	private List<OrderProduct> orderProduct;

	@Column
	@NotNull(message = "É necessário setar a data de criação")
	@Temporal(value= TemporalType.TIMESTAMP)
	private Date createdDate;

	@Column
	@Temporal(value= TemporalType.TIMESTAMP)
	private Date dateUpdate;

	@Enumerated(EnumType.STRING)
	@Column
	private OrderStatus orderStatus;

	public Order(){}

	public long getId() {
		return this.id;
	}

	public void setId(long id) {
		this.id = id;
	}

	public Customer getCustomer() {
		return this.customer;
	}

	public void setCustomer(Customer customer) {
		this.customer = customer;
	}

	public Payment getPayment() {
		return this.payment;
	}

	public void setPayment(Payment payment) {
		this.payment = payment;
	}

	public Shipping getShipping() {
		return this.shipping;
	}

	public void setShipping(Shipping shipping) {
		this.shipping = shipping;
	}

	public User getUser() {
		return this.user;
	}

	public void setUser(User user) {
		this.user = user;
	}
	
	public Date getCreatedDate() {
		return this.createdDate;
	}

	public void setCreatedDate(Date createdDate) {
		this.createdDate = createdDate;
	}

	public Date getDateUpdate() {
		return this.dateUpdate;
	}

	public void setDateUpdate(Date dateUpdate) {
		this.dateUpdate = dateUpdate;
	}

	public List<OrderUpdate> getOrderUpdate() {
		return this.orderUpdate;
	}

	public void setOrderUpdate(List<OrderUpdate> orderUpdate) {
		this.orderUpdate = orderUpdate;
	}
	
	public List<OrderProduct> getOrderProduct() {
		return this.orderProduct;
	}

	public void setOrderProduct(List<OrderProduct> orderProduct) {
		this.orderProduct = orderProduct;
	}

	public OrderStatus getOrderStatus() {
		return this.orderStatus;
	}

	public void setOrderStatus(OrderStatus orderStatus) {
		this.orderStatus = orderStatus;
	}
}

O objeto que esta sendo enviado via ajax esta vindo da seguinte forma:

customer.email: "teste@teste.com"
customer.firstName: "Joao"
customer.id: 1
customer.lastName: "Smith"
customer.principalPhone: "+55 (55) 55555-5555"
customer.secondaryPhone: "+55 (55) 55555-5555"
id: 0
orderProduct: Array(2)
   0:
     orderProductComplement: Array(1)
        0: {description: "vaso de vidro", unitaryValue: "25.00", quantity: "1", total: "25"}
     product: {id: 1}
     quantity: "2"
     total: "246"
     unitaryValue: "12.30"
   1:
      orderProductComplement: [{…}]
      quantity: "2"
      total: "50"
      unitaryValue: "25.00"
payment.discount: "R$ 11,95"
payment.paymentMethod: "CARTAO_DEBITO"
payment.paymentStatus: "PAGO"
payment.shipping: ""
payment.subTotal: "R$ 99,60"
payment.total: "R$ 87,65"
shipping.date: "21/05/2021"
shipping.shippingAddress.id: 1
shipping.time: "12:00 - 20:00"
shippingOptions: "Moto"

Método aonde recebo os dados.

@PostMapping("newOrder/")
public ResponseEntity<?> processFormOrder(@Valid @RequestBody Order order, BindingResult bindingResult) {
    AjaxResponse result = new AjaxResponse();
    
    if (bindingResult.hasErrors()) {
        return ResponseEntity.badRequest().body(bindingResult.getAllErrors());
    } else {
        // validar e inserir ordem no banco de dados

        result.setMsg("Ordem gerada com sucesso!");
        result.setType("create");
        return ResponseEntity.ok(result);
    }
}

Eu estou recebendo o objeto porem o mesmo esta chegando vazio, apenas recebo os produtos, veja na imagem abaixo:
debug-order

Abaixo vou postar parte do meu formulario:

<form id="orderForm" th:action="@{/admin/vendas/newOrder/}" th:object="${order}" method="post">
     <input type="hidden" th:field="*{id}" data-value-type="number">
     <input type="hidden" class="hiddenIdCustomer" th:field="*{customer.id}" data-value-type="number">
      ...
     <input class="form-control" type="text" placeholder="João" id="firstName" th:field="*{customer.firstName}">
     <input class="form-control" type="text" placeholder="Souza" id="lastName" th:field="*{customer.lastName}">
      <!--OS PRODUTOS  -->
     <input type="hidden" class="form-control hidIdProduct" name="orderProduct[][product][id]" data-value-type="number">
     ....
 </form>

Unica diferença é que nos produtos não usei o atributo do thymeleaf th:field. Até fiz um teste utilizando apenas o atributo name="" no input como abaixo:

<input class="form-control" type="text" placeholder="João" id="firstName" name="customer[firstName]">

E ao fazer isso eu recebo o cliente com seu primeiro nome no caso, porém não queria utilizar o atributo do HTML e sim do do thymeleaf th:field.

Desde já agradeço!