Página 1 de 1

Alterar o cadastro de pedidos ( RESOLVIDO )

Enviado: 31 Out 2011, 13:25
por akkil
Olá.

Preciso alterar o insert que é feito para salvar os produtos comprados na tabela order_product.
Tive que adicionar dois campos weight e length para ser mostrado no order/invoice .
Alterei a tabela no banco de adicionei esse dois campos, a view do invoice eu já estou buscado corretamente esse 2 campos na tabela order_product.
Agora gostaria de saber qual insert eu devo alterar para que quando cadastrar um novo registro na tabela order_product já cadastrar o weight e length do product.
Código: Selecionar todos
        if (isset($data['order_product'])) {
          $weight = 10.3;
          foreach ($data['order_product'] as $order_product) {
            $this->db->query("INSERT INTO " . DB_PREFIX . "order_product SET order_id = '" . (int)$order_id . "', product_id = '" . (int)$return_product['product_id'] . "', name = '" . $this->db->escape($return_product['name']) . "', model = '" . $this->db->escape($return_product['model']) . "', quantity = '" . (int)$return_product['quantity'] . "', manufacturer = '" . (int)$return_product['manufacturer'] . "', return_reason_id = '" . (int)$return_product['return_reason_id'] . "', opened = '" . (int)$return_product['opened'] . "', comment = '" . $this->db->escape($return_product['comment']) . "', return_action_id = '" . (int)$return_product['return_action_id'] . "'");
      }
Achei esse código no model sales/order que faz o insert na tabela order_product mas nada que eu faça ou altere, nada acontece. =/
É por ai mesmo? Estou certo?

Desde já, obrigado.

Re: Alterar o cadastro de pedidos (RESOLVIDO)

Enviado: 31 Out 2011, 14:55
por akkil
Resolvi isso da seguinte forma.

Peguei o length e o weight direto do produto sem precisar dos campos extras na tabela order_product.

No controller order.php no método invoice()

Eu adicionei as seguinte linhas.
$this->load->model('catalog/product'); // para carregar o módulo product.


Código: Selecionar todos
       
 foreach ($products as $product) {
          $product_info = $this->model_catalog_product->getProduct($product["product_id"]);   // pega um hash com todos os campos do produto.

          $option_data = array();
          $product["length"] = $product_info["length"];
          $product["weight"] = $product_info["weight"];
....
E dentro do loop que era feito pegando os products da tabela order_product

Eu adicionei uma key no hash(sim é um hash e não um array) que é criado product, passando as keys 'length' e 'weight' e os seus valores vindo do hash $product_info.

E na view eu só chamei o valor.
Código: Selecionar todos
<?php echo $product['length']; ?
Se alguém tiver outra solução, ficarei muito agradecido. :D