hace un tiempo desarrolle algo así para una tienda de sublimados, en ese caso se realizo una pagina con un formulario donde el cliente podia indicar el SKU, nombre, o Id del producto, la cantidad a comprar y variaciones (color, talla, etc) al final el formulario envia todos esos datos a una funcion php que itera la información y realiza un create_order asignada al usuario si este estaba logeado, o en caso de que no genera un comprador guest a partir de un correo, esto ultimo permite vincular compras viejas a usuarios nuevos si el usuario se registra luego de hacer algunas compras, o vincular compras nuevas a una cuenta existente siempre y cuando el correo ya exista como un usuario registrado.
Esto también funcionaba con una función que exporta en un csv con información de compras por clientes para gestionar algunos métodos de pagos obtener métricas y otros.