Respuesta ->
Primero genera un carrito y asigna un customer a ese carrito.
$cart = new Cart();
$cart->id_customer = $id_customer;
$cart->id_address_delivery = $id_address_shipping;
$cart->id_address_invoice = $id_address_shipping;
$cart->id_lang = $id_lang;
$cart->id_currency = $id_currency;
$cart->id_carrier = $id_carrier;
$cart->recyclable = 0;
$cart->gift = 0;
$cart->add();
$id_cart = $cart->id;
Añade el producto al carrito, con cantidad, ID, el ID del atributo, y operator ="up" o "down"
$cart->updateQty($qty, $id_product, $attr,null, $operator);
$cart->update();
Recuerda leer el cliente para que puedas leer el secure_key de ese cliente
$customer = new customer($id_customer);
Una vez tienes el carrito, confirma el pedido usando un modulo de pago
$order_status = 2; // cambia el id de estado
$id_currency = 2; //comprueba el ID del Euro
$pago = Module::getInstanceByName('bankwire'); // comprueba que en 1.7 se llama diferente el modulo de transferencia usa contado (añade antes), paypal, tarjeta, etc..
$total_products = $cart->getOrderTotal(true, Cart :: BOTH);
$pago->validateOrder($id_cart, $order_status, $total_products, 'Pagado por TPV', NULL, array(), (int)$id_currency, false, $customer->secure_key);