Esta web utiliza cookies para mejorar la navegación y con fines analíticos. Si continua navegando, consideraremos que acepta la política de cookies.
Más información     Aceptar

software de gestión  

Síguenos en:  facebook twitter youtube pinterest  

MANUAL QFACWIN

  • Inicio
  • Novedades de la versión
  • Instalación en red
  • Como empezar
  • Preguntas frecuentes
  • Enviar documentos por e-mail
  • Enviar whatsapp
  • Utilizar código de barras
  • Archivos
  • Procesos
  • TPV
  • Listados
  • Estadística
  • Empresa
  • Configurar
  • Utilidades
  • Agenda
  • QFACWEB
  • OsCommerce
  • Prestashop
  • WooCommerce
  • Magento
  • Apéndices
  • Recoger pedidos de OsCommerce

    Video-tutoriales: vídeos osCommerce

    Este proceso recoge los datos de los clientes y sus pedidos incorporándolos automáticamente a los archivos del software de gestión QFACWIN. Si marca la casilla de validación Bajar solo los clientes, el programa le permite bajar los clientes o usuarios que tengan pedidos en la web sin bajar los pedidos.

    El programa marca los pedidos procesados (ya bajados) de forma que se pueden seleccionar para recoger sólo los pedidos pendientes de procesar.

    También puede seleccionar los pedidos a bajar por fecha y en este caso se bajaran todos los seleccionados se hayan bajado o no.

    Si su tienda ya contiene datos, el proceso de instalación marca todos los pedidos como bajados ya que es posible que tenga pedidos antiguos almacenados en la tienda que no quiera descargar en el ejercicio actual. Si quiere bajarlos todos deberá seleccionarlos por fecha.

    Al activar el módulo para gestionar 5 tiendas de Internet en esta pantalla se muestra un desplegable para seleccionar de qué tienda deben bajar los pedidos. Encontrará información acerca del módulo en el blog de QFACWIN.

    Seleccione los pedidos a mostrar (pendientes o desde fecha) y pulse mostrar pedidos. El programa procesará los pedidos existentes en su tienda y mostrará los solicitados. Una vez mostrados, se activa el botón de incorporar pedidos.

    Empiece la incorporación pulsando el botón incorporar pedidos.

    El proceso de incorporación realiza las siguientes tareas:

    Comprueba que el cliente exista por NIF o en su defecto por e-mail. Si el cliente no existe se añade al archivo de clientes. Si ya existe se modifica actualizando los siguientes datos:
    - e-mail, teléfono y fax si los campos se han llenado en el pedido y son distintos (los antiguos se graban en la pestaña Notas).
    - llena el número de la tarjeta si es diferente y se ha indicado una nueva (los números antiguos se graban en la pestaña Notas).
    - compara las direcciones de facturación y envío con las del cliente. Si no las encuentra las añade.

    Se inserta el pedido en el archivo de pedidos, dejándolo listo para traspasar a albaranes o facturas.

    El programa recalcula el pedido y comprueba que coincida con el total del pedido emitido en la tienda. En caso de que no coincidan, se avisa en el log de la diferencia. Esta puede ser debida a redondeos en cálculos con muchos decimales, a la no aplicación del IVA en gastos de transporte debido a que se hayan configurado como suplidos, debido a que el cliente existente tenga o no la casilla de exento de iva marcada, etc. Guarde y revise el log para determinar y corregir las causas del descuadre.

    Una vez incorporados, los pedidos se marcan como traspasados.

    Durante el proceso de incorporación, se van escribiendo en un log todos los detalles del mismo. Para configurar que el programa le avise interactivamente con un mensaje para cada detalle relevante conforme se vayan procesando, marque la casilla Mensajes interactivos al bajar los pedidos en la pestaña general de configuración.


    IMPORTANTE: Adaptaciones para descargar pedidos con atributos de osCommerce y ZenCart. Adaptación para grabar las anotaciones iniciales del cliente en ZenCart.

    - Adaptación para descargar pedidos con atributos de osCommerce

    OsCommerce sólo guarda las descripciones de las propiedades y atributos en el pedido pero no sus códigos con lo que al descargar pedidos, se hace muy difícil determinar exactamente las propiedades de los artículos del pedido. Ya que hay que buscarlos por la descripción y podría confundirse con otra propiedad.
    Para solventar esto y que las propiedades de los pedidos puedan bajarse correctamente hay que incorporar una pequeña modificación en el archivo checkout_process.php de la carpeta principal de osCommerce. Si se utiliza pago por PayPal, hay que hacer la misma modificación en paypal_standard.php y en general en todos los scripts de pago que sustituyan a checkout_process.php. Sólo se descargarán correctamente los pedidos hechos después de aplicar estas modificaciones.

    Buscar (aproximadamente por la linea 215):

    if (DOWNLOAD_ENABLED == 'true') {
    $attributes_query = "select popt.products_options_name, poval.products_options_values_name, pa.options_values_price, pa.price_prefix, pad.products_attributes_maxdays, pad.products_attributes_maxcount , pad.products_attributes_filename
    from " . TABLE_PRODUCTS_OPTIONS . " popt, " . TABLE_PRODUCTS_OPTIONS_VALUES . " poval, " . TABLE_PRODUCTS_ATTRIBUTES . " pa

    y sustituirlo por:

    // qfacwin attributtes
    if (DOWNLOAD_ENABLED == 'true') {
    $attributes_query = "select popt.products_options_name, poval.products_options_values_name, pa.options_values_price, pa.price_prefix, pad.products_attributes_maxdays, pad.products_attributes_maxcount , pad.products_attributes_filename, pa.products_attributes_id
    from " . TABLE_PRODUCTS_OPTIONS . " popt, " . TABLE_PRODUCTS_OPTIONS_VALUES . " poval, " . TABLE_PRODUCTS_ATTRIBUTES . " pa

    Buscar (aproximadamente por la linea 220):
    $attributes = tep_db_query("select popt.products_options_name, poval.products_options_values_name, pa.options_values_price, pa.price_prefix from " . TABLE_PRODUCTS_OPTIONS . " popt, " . TABLE_PRODUCTS_OPTIONS_VALUES . " poval, " . TABLE_PRODUCTS_ATTRIBUTES . " pa where pa.products_id = '" . $order->products[$i]['id'] . "' and pa.options_id = '" . $order->products[$i]['attributes'][$j]['option_id'] . "' and pa.options_id = popt.products_options_id and pa.options_values_id = '" . $order->products[$i]['attributes'][$j]['value_id'] . "' and pa.options_values_id = poval.products_options_values_id and popt.language_id = '" . $languages_id . "' and poval.language_id = '" . $languages_id . "'"); */

    y sustituirlo por:
    // qfacwin attributtes
    $attributes = tep_db_query("select popt.products_options_name, poval.products_options_values_name, pa.options_values_price, pa.price_prefix, pa.products_attributes_id from " . TABLE_PRODUCTS_OPTIONS . " popt, " . TABLE_PRODUCTS_OPTIONS_VALUES . " poval, " . TABLE_PRODUCTS_ATTRIBUTES . " pa where pa.products_id = '" . $order->products[$i]['id'] . "' and pa.options_id = '" . $order->products[$i]['attributes'][$j]['option_id'] . "' and pa.options_id = popt.products_options_id and pa.options_values_id = '" . $order->products[$i]['attributes'][$j]['value_id'] . "' and pa.options_values_id = poval.products_options_values_id and popt.language_id = '" . $languages_id . "' and poval.language_id = '" . $languages_id . "'");
    //eof qfacwin attributes

    y unas líneas más abajo:

    Buscar:

    $sql_data_array = array('orders_id' => $insert_id,
    'orders_products_id' => $order_products_id,
    'products_options' => $attributes_values['products_options_name'],
    'products_options_values' => $attributes_values['products_options_values_name'],
    'options_values_price' => $attributes_values['options_values_price'],
    'price_prefix' => $attributes_values['price_prefix']);

    y sustiturlo por:

    $sql_data_array = array('orders_id' => $insert_id,
    'orders_products_id' => $order_products_id,
    'products_options' => $attributes_values['products_options_name'],
    'products_options_values' => $attributes_values['products_options_values_name'],
    'options_values_price' => $attributes_values['options_values_price'],
    // qfacwin attributtes
    'NIDATRIB' => $attributes_values['products_attributes_id'],
    //eof qfacwin attributes

    'price_prefix' => $attributes_values['price_prefix']);

    Con estos cambios, se guardan los códigos de los atributos en el pedido con lo que se consigue una identificación exacta de los atributos en el momento de descargar los pedidos.
    Hay que tener en cuenta que sólo se descargarán correctamente los pedidos hechos después de aplicar estas modificaciones.

    - Contribución Grid Attributes:

    Esta contribución permite trabajar con los atributos en modo tabla (uno o dos atributos por artículo) poniendo el primer atributo como fila y el segundo como columnas. Además implementa el control de stock y los incrementos de precios.

    Si tiene instalada esta contribución, hay que marcarlo en la pestaña contribuciones del menú web-> osCommerce configurar.Hay que tener en cuenta que sólo se descargarán correctamente los pedidos hechos después de aplicar estas modificaciones.
    Para poder bajar correctamente los pedidos a esta contribución hay que hacer las siguientes modificaciones en el archivo checkout_process.php de la tienda

    Buscar (aproximadamente linea 177

    // Update products_ordered (for bestsellers list)
    tep_db_query("update " . TABLE_PRODUCTS . " set products_ordered = products_ordered + " . sprintf('%d', $order->products[$i]['qty']) . " where products_id = '" . tep_get_prid($order->products[$i]['id']) . "'");
    $sql_data_array = array('orders_id' => $insert_id,
    'products_id' => tep_get_prid($order->products[$i]['id']),
    'products_model' => $order->products[$i]['model'],
    'products_name' => $order->products[$i]['name'],
    $sql_data_array = array('orders_id' => $insert_id,
    'products_id' => tep_get_prid($order->products[$i]['id']),
    'products_model' => $order->products[$i]['model'],
    'products_name' => $order->products[$i]['name'],
    'products_price' => $order->products[$i]['price'],
    'final_price' => $order->products[$i]['final_price'],
    'products_tax' => $order->products[$i]['tax'],
    'products_quantity' => $order->products[$i]['qty']);
    tep_db_perform(TABLE_ORDERS_PRODUCTS, $sql_data_array);
    $order_products_id = tep_db_insert_id();

    y sustituirlo por:

    // Update products_ordered (for bestsellers list)
    tep_db_query("update " . TABLE_PRODUCTS . " set products_ordered = products_ordered + " . sprintf('%d', $order->products[$i]['qty']) . " where products_id = '" . tep_get_prid($order->products[$i]['id']) . "'");

    //qfacwin grid attributes
    $qgrid_query =tep_db_query("select v.CCODIVAL as CCODIVAL1, v.products_options_values_name as cnomval1, v2.CCODIVAL as CCODIVAL2, v2.products_options_values_name as cnomval2 from products_grid pg
    left join products_options_values v on (v.products_options_values_id = pg.row_options_value_id and v.language_id = ". $languages_id . ")
    left join products_options_values v2 on (v2.products_options_values_id = pg.col_options_value_id and v2.language_id = ". $languages_id . ") where products_grid_id =" . tep_get_grid($order->products[$i]['id'] ) );
    $qgrid = tep_db_fetch_array($qgrid_query);
    $qprop_query =tep_db_query("select p1.CCODIPROP as CCODIPROP1, p1.products_options_name as cnomprop1, p2.CCODIPROP as CCODIPROP2, p2.products_options_name as cnomprop2 from products_grid_row_col g
    left join products_options p1 on (p1.products_options_id = row_head_id and p1.language_id = ". $languages_id . ")
    left join products_options p2 on (p2.products_options_id = col_head_id and p2.language_id = ". $languages_id . ") where products_id = ". tep_get_prid($order->products[$i]['id']) );
    $qprop = tep_db_fetch_array($qprop_query);
    //end qfacwin grig attributes


    $sql_data_array = array('orders_id' => $insert_id,
    'products_id' => tep_get_prid($order->products[$i]['id']),
    'products_model' => $order->products[$i]['model'],
    'products_name' => $order->products[$i]['name'],
    'products_price' => $order->products[$i]['price'],
    'final_price' => $order->products[$i]['final_price'],
    'products_tax' => $order->products[$i]['tax'],
    //qfacwin grig attributes
    'CCODIVAL1' => $qgrid['CCODIVAL1' ],
    'CCODIPROP1' => $qprop['CCODIPROP1' ],
    'CPROP1' => trim ( $qprop["cnomprop1"]) . ': '. trim ( $qgrid["cnomval1"]) ,
    'CCODIVAL2' => $qgrid['CCODIVAL2' ],
    'CCODIPROP2' => $qprop['CCODIPROP2' ],
    'CPROP2' => trim ( $qprop["cnomprop2"]) . ': '. trim ( $qgrid["cnomval2"]) ,
    //end qfacwin grig attributes

    'products_quantity' => $order->products[$i]['qty']);
    tep_db_perform(TABLE_ORDERS_PRODUCTS, $sql_data_array);
    $order_products_id = tep_db_insert_id();

     

    - Adaptación para descargar pedidos con atributos de ZenCart

    ZenCart tampoco guarda los códigos de atributos en el con lo que al descargar pedidos, se hace muy difícil determinar exactamente las propiedades de los artículos del pedido, ya que hay que buscarlos por la descripción y podría confundirse con otra propiedad.

    Para solventar esto y que las propiedades de los pedidos puedan bajarse correctamente hay que incorporar una pequeña modificación en el archivo carpeta /includes/classes/order.php :

    Buscar (linea 771 aprox):

    $attributes_query = "select popt.products_options_name, poval.products_options_values_name,
    pa.options_values_price, pa.price_prefix,
    pa.product_attribute_is_free, pa.products_attributes_weight, pa.products_attributes_weight_prefix,
    pa.attributes_discounted, pa.attributes_price_base_included, pa.attributes_price_onetime,
    pa.attributes_price_factor, pa.attributes_price_factor_offset,
    pa.attributes_price_factor_onetime, pa.attributes_price_factor_onetime_offset,
    pa.attributes_qty_prices, pa.attributes_qty_prices_onetime,
    pa.attributes_price_words, pa.attributes_price_words_free,
    pa.attributes_price_letters, pa.attributes_price_letters_free,
    pad.products_attributes_maxdays, pad.products_attributes_maxcount, pad.products_attributes_filename
    from " . TABLE_PRODUCTS_OPTIONS . " popt, " . TABLE_PRODUCTS_OPTIONS_VALUES . " poval, " .
    TABLE_PRODUCTS_ATTRIBUTES . " pa
    left join " . TABLE_PRODUCTS_ATTRIBUTES_DOWNLOAD . " pad
    on pa.products_attributes_id=pad.products_attributes_id
    where pa.products_id = '" . zen_db_input($this->products[$i]['id']) . "'
    and pa.options_id = '" . $this->products[$i]['attributes'][$j]['option_id'] . "'
    and pa.options_id = popt.products_options_id
    and pa.options_values_id = '" . $this->products[$i]['attributes'][$j]['value_id'] . "'
    and pa.options_values_id = poval.products_options_values_id
    and popt.language_id = '" . $_SESSION['languages_id'] . "'
    and poval.language_id = '" . $_SESSION['languages_id'] . "'";

    y sustituirlo por:

    $attributes_query = "select popt.products_options_name, poval.products_options_values_name,
    pa.options_values_price, pa.price_prefix,
    pa.products_attributes_id ,
    pa.product_attribute_is_free, pa.products_attributes_weight, pa.products_attributes_weight_prefix,
    pa.attributes_discounted, pa.attributes_price_base_included, pa.attributes_price_onetime,
    pa.attributes_price_factor, pa.attributes_price_factor_offset,
    pa.attributes_price_factor_onetime, pa.attributes_price_factor_onetime_offset,
    pa.attributes_qty_prices, pa.attributes_qty_prices_onetime,
    pa.attributes_price_words, pa.attributes_price_words_free,
    pa.attributes_price_letters, pa.attributes_price_letters_free,
    pad.products_attributes_maxdays, pad.products_attributes_maxcount, pad.products_attributes_filename
    from " . TABLE_PRODUCTS_OPTIONS . " popt, " . TABLE_PRODUCTS_OPTIONS_VALUES . " poval, " .
    TABLE_PRODUCTS_ATTRIBUTES . " pa
    left join " . TABLE_PRODUCTS_ATTRIBUTES_DOWNLOAD . " pad
    on pa.products_attributes_id=pad.products_attributes_id
    where pa.products_id = '" . zen_db_input($this->products[$i]['id']) . "'
    and pa.options_id = '" . $this->products[$i]['attributes'][$j]['option_id'] . "'
    and pa.options_id = popt.products_options_id
    and pa.options_values_id = '" . $this->products[$i]['attributes'][$j]['value_id'] . "'
    and pa.options_values_id = poval.products_options_values_id
    and popt.language_id = '" . $_SESSION['languages_id'] . "'
    and poval.language_id = '" . $_SESSION['languages_id'] . "'";

     

    Buscar (tres líneas más abajo):

    $attributes_values = $db->Execute("select popt.products_options_name, poval.products_options_values_name,
    pa.options_values_price, pa.price_prefix,
    pa.product_attribute_is_free, pa.products_attributes_weight, pa.products_attributes_weight_prefix,
    pa.attributes_discounted, pa.attributes_price_base_included, pa.attributes_price_onetime,
    pa.attributes_price_factor, pa.attributes_price_factor_offset,
    pa.attributes_price_factor_onetime, pa.attributes_price_factor_onetime_offset,
    pa.attributes_qty_prices, pa.attributes_qty_prices_onetime,
    pa.attributes_price_words, pa.attributes_price_words_free,
    pa.attributes_price_letters, pa.attributes_price_letters_free
    from " . TABLE_PRODUCTS_OPTIONS . " popt, " . TABLE_PRODUCTS_OPTIONS_VALUES . " poval, " . TABLE_PRODUCTS_ATTRIBUTES . " pa
    where pa.products_id = '" . $this->products[$i]['id'] . "' and pa.options_id = '" . (int)$this->products[$i]['attributes'][$j]['option_id'] . "' and pa.options_id = popt.products_options_id and pa.options_values_id = '" . (int)$this->products[$i]['attributes'][$j]['value_id'] . "' and pa.options_values_id = poval.products_options_values_id and popt.language_id = '" . $_SESSION['languages_id'] . "' and poval.language_id = '" . $_SESSION['languages_id'] . "'");

    y sustituirlo por:


    $attributes_values = $db->Execute("select popt.products_options_name, poval.products_options_values_name,
    pa.options_values_price, pa.price_prefix,
    pa.product_attribute_is_free, pa.products_attributes_weight, pa.products_attributes_weight_prefix,
    pa.products_attributes_id ,
    pa.attributes_discounted, pa.attributes_price_base_included, pa.attributes_price_onetime,
    pa.attributes_price_factor, pa.attributes_price_factor_offset,
    pa.attributes_price_factor_onetime, pa.attributes_price_factor_onetime_offset,
    pa.attributes_qty_prices, pa.attributes_qty_prices_onetime,
    pa.attributes_price_words, pa.attributes_price_words_free,
    pa.attributes_price_letters, pa.attributes_price_letters_free
    from " . TABLE_PRODUCTS_OPTIONS . " popt, " . TABLE_PRODUCTS_OPTIONS_VALUES . " poval, " . TABLE_PRODUCTS_ATTRIBUTES . " pa
    where pa.products_id = '" . $this->products[$i]['id'] . "' and pa.options_id = '" . (int)$this->products[$i]['attributes'][$j]['option_id'] . "' and pa.options_id = popt.products_options_id and pa.options_values_id = '" . (int)$this->products[$i]['attributes'][$j]['value_id'] . "' and pa.options_values_id = poval.products_options_values_id and popt.language_id = '" . $_SESSION['languages_id'] . "' and poval.language_id = '" . $_SESSION['languages_id'] . "'");

    Buscar (3 lineas más abajo):

    $sql_data_array = array('orders_id' => $zf_insert_id,
    'orders_products_id' => $order_products_id,
    'products_options' => $attributes_values->fields['products_options_name'],

    // 'products_options_values' => $attributes_values->fields['products_options_values_name'],
    'products_options_values' => $this->products[$i]['attributes'][$j]['value'],
    'options_values_price' => $attributes_values->fields['options_values_price'],
    'price_prefix' => $attributes_values->fields['price_prefix'],
    'product_attribute_is_free' => $attributes_values->fields['product_attribute_is_free'],
    'products_attributes_weight' => $attributes_values->fields['products_attributes_weight'],
    'products_attributes_weight_prefix' => $attributes_values->fields['products_attributes_weight_prefix'],
    'attributes_discounted' => $attributes_values->fields['attributes_discounted'],
    'attributes_price_base_included' => $attributes_values->fields['attributes_price_base_included'],
    'attributes_price_onetime' => $attributes_values->fields['attributes_price_onetime'],
    'attributes_price_factor' => $attributes_values->fields['attributes_price_factor'],
    'attributes_price_factor_offset' => $attributes_values->fields['attributes_price_factor_offset'],
    'attributes_price_factor_onetime' => $attributes_values->fields['attributes_price_factor_onetime'],
    'attributes_price_factor_onetime_offset' => $attributes_values->fields['attributes_price_factor_onetime_offset'],
    'attributes_qty_prices' => $attributes_values->fields['attributes_qty_prices'],
    'attributes_qty_prices_onetime' => $attributes_values->fields['attributes_qty_prices_onetime'],
    'attributes_price_words' => $attributes_values->fields['attributes_price_words'],
    'attributes_price_words_free' => $attributes_values->fields['attributes_price_words_free'],
    'attributes_price_letters' => $attributes_values->fields['attributes_price_letters'],
    'attributes_price_letters_free' => $attributes_values->fields['attributes_price_letters_free'],
    'products_options_id' => (int)$this->products[$i]['attributes'][$j]['option_id'],
    'products_options_values_id' => (int)$this->products[$i]['attributes'][$j]['value_id'],
    'products_prid' => $this->products[$i]['id']
    );

    y sustituirlo por:

    $sql_data_array = array('orders_id' => $zf_insert_id,
    'orders_products_id' => $order_products_id,
    'products_options' => $attributes_values->fields['products_options_name'],

    // 'products_options_values' => $attributes_values->fields['products_options_values_name'],
    'products_options_values' => $this->products[$i]['attributes'][$j]['value'],
    'options_values_price' => $attributes_values->fields['options_values_price'],
    'price_prefix' => $attributes_values->fields['price_prefix'],
    'product_attribute_is_free' => $attributes_values->fields['product_attribute_is_free'],
    'products_attributes_weight' => $attributes_values->fields['products_attributes_weight'],
    'products_attributes_weight_prefix' => $attributes_values->fields['products_attributes_weight_prefix'],
    // qfacwin attributtes
    'NIDATRIB' => $attributes_values->fields['products_attributes_id'],
    //eof qfacwin attributes

    'attributes_discounted' => $attributes_values->fields['attributes_discounted'],
    'attributes_price_base_included' => $attributes_values->fields['attributes_price_base_included'],
    'attributes_price_onetime' => $attributes_values->fields['attributes_price_onetime'],
    'attributes_price_factor' => $attributes_values->fields['attributes_price_factor'],
    'attributes_price_factor_offset' => $attributes_values->fields['attributes_price_factor_offset'],
    'attributes_price_factor_onetime' => $attributes_values->fields['attributes_price_factor_onetime'],
    'attributes_price_factor_onetime_offset' => $attributes_values->fields['attributes_price_factor_onetime_offset'],
    'attributes_qty_prices' => $attributes_values->fields['attributes_qty_prices'],
    'attributes_qty_prices_onetime' => $attributes_values->fields['attributes_qty_prices_onetime'],
    'attributes_price_words' => $attributes_values->fields['attributes_price_words'],
    'attributes_price_words_free' => $attributes_values->fields['attributes_price_words_free'],
    'attributes_price_letters' => $attributes_values->fields['attributes_price_letters'],
    'attributes_price_letters_free' => $attributes_values->fields['attributes_price_letters_free'],
    'products_options_id' => (int)$this->products[$i]['attributes'][$j]['option_id'],
    'products_options_values_id' => (int)$this->products[$i]['attributes'][$j]['value_id'],
    'products_prid' => $this->products[$i]['id']
    );

    Con estos cambios, se guardan los códigos de los atributos en el pedido con lo que se consigue una identificación exacta de los atributos en el momento de descargar los pedidos.
    Hay que tener en cuenta que sólo se descargaran correctamente los pedidos hechos después de aplicar estas modificaciones.

    - Adaptación para grabar las anotaciones iniciales del cliente en ZenCart.

    Al descargar el pedido, se leen las observaciones del pedido con estado pendiente (código = 1) y se descarga la primera. Se supone que cuando un cliente hace un pedido con observaciones, la que se graba del cliente es la primera y está en estado pendiente. Esto es así para no descargar las anotaciones de tramitación como observaciones del pedido. Al grabar el pedido, ZenCart pone las anotaciones iniciales del cliente (observaciones) en el mismo estado que el pedido. Si, debido a la forma de pago, el pedido queda marcado como "en proceso", las anotaciones iniciales del cliente también quedan marcadas "en proceso" y no se descargan en QFACWIN. Para evitarlo hay que hacer la siguiente modificación en /includes/classes/orders.php para que, independientemente del estado del pedido, la anotación inicial quede siempre con estado 1= Pendiente.

    Buscar (linea 650 aprox.):

    $sql_data_array = array('orders_id' => $insert_id,
    'orders_status_id' => $this->info['order_status'],
    'date_added' => 'now()',
    'customer_notified' => $customer_notification,
    'comments' => $this->info['comments']);

    y sustituirlo por:

    $sql_data_array = array('orders_id' => $insert_id,
    //QFACWIN estado anotación del cliente siempre = 1 'orders_status_id' => $this->info['order_status'],
    'orders_status_id' => '1',

    'date_added' => 'now()',
    'customer_notified' => $customer_notification,
    'comments' => $this->info['comments']);


    Temas relacionados:

    Video-tutoriales: vídeos osCommerce
    Actualizar tienda
    Importar datos de osCommerce a QFACWIN
    Configurar integración con OsCommerce