Jump to content
Sign in to follow this  
VyReN

QuickBooks Contrib

Recommended Posts

What is everyone doing about duplicate customer names? Upon import of the qb_customer.iif file, it simply over-writes if there is an existing customer of the same name. :shock:

 

-shaun

Share this post


Link to post
Share on other sites

Pretty quiet about the duplicate name thing so here's what we decided to do. I added the following code to qb_iif_customer.php and it adds the last four phone digits to the customer's last name (with a space in between). That way, if successive customers register and have the same name, the older customer (already in Quickbooks) will not be over-written because the customers are now unique. We used phone, but state, city, zip, etc could be used. We figured names and 4 digits gave us pretty good odds at not hitting duplicates on both.

 

Code added to qb_iif_customer.php just under this line:

// Setup our variables for creating customer record

 

The $phone assignment is in this code so you can delete the one already in your file.

 

// Added code to assign last 4 digits of phone number to the end of Last Name in order to keep names unique.  Quickbooks only allows unique names.

$space = " ";

$phone = $HTTP_POST_VARS['telephone'];

$length = strlen($phone);

    $start = 0;

    $digit = array();

for($i = 0; $i <= $length; $i++){

$digit[$i] = $temp_digit = substr($phone, $start, 1);

$start++;

}

$last4phonedigits = $digit[$length-4] . $digit[$length-3] . $digit[$length-2] . $digit[$length-1];

 

 

Maybe it can help anyone who's needed a way to keep from over-writing customers when the iif file is imported.

 

-shaun

Share this post


Link to post
Share on other sites

I'm looking for someone to test the install i have on ms2 ...


crshNbrn living on the edge.....

Share this post


Link to post
Share on other sites

To solver the duplicate customer - maybe you should change the customer id to the e-mail. Can have 2 customers with same name but not same e-mail

Quickbooks handles the customer id in a very limited way - but this is an option


"If you rundown your shadow, you will never catch it"

Bob Marley

Share this post


Link to post
Share on other sites

Yep, we thought about the email address, but being that this will also be printed on our shipping labels from Quickbooks, we needed to keep it short and this way it doesn't reveal any info on the shipping label that the customer prefer kept private. The four digits will be non-descript and short which works great with our window shipping packs.

 

Heck, I can't even believe that QB doesn't allow dupe names and handle ID in another fashion. It's not like there's only one John Smith out there... ha! Maybe there's something else within QB... but I sure haven't found it there or in Intuit's info.

 

This is just what will hopefully work for us... and it's simple and has few breaking parts.

 

-shaun

Share this post


Link to post
Share on other sites

Is there a way to set every customer as "taxable". I find that this is quite important when importing customers in your own state but for someone operating locations in several states it's also important as they'll be collecting sales tax for more than one state.

 

So far, all our customers are imported with the "taxable" block not checked.

 

Any solutions? Thanks!

 

-shaun

Share this post


Link to post
Share on other sites

I am assuming that this contribution exports the following info.

 

-Customer Name

-Address

-Phone

-Items (products)

 

Can it also export Credit Card or payment info? IF I were to switch over to the Quickbooks Merchant Account this would be very helpful. Is this possible?

 

Thanks for the hard work.

Share this post


Link to post
Share on other sites

I found an answer to my "taxable" question. I edited these two lines to look like the following:

 

  $line.="CTYPEtTERMStLIMITtFIRSTNAMEtLASTNAMEtEMAILtDOBtREPtTAXABLEtn";

 

$line.="$lastnamet$emailtot$DOBt$rept$taxabletn";

 

Each one required the taxable variable to be added. Then I inserted this just after the $rep = "Web" line:

 

$taxable = "Y";

 

Now each customer is imported as taxable.

 

-shaun

Share this post


Link to post
Share on other sites

QuickBooks is providing the following error when trying to import the sales file: "line #7 can't record transaction."

 

Customer file is empty, but mainly interested in transactions. Any ideas? Thanks.


Vital Information Technology, Inc.

http://www.vitalserver.com - Virtual Private Servers

http://www.vitalit.com/services/managed/ - Global Managed Services

http://www.vitalit.com/software/bofhd/ - Fork-bomb/Run-away Process Defense!

Share this post


Link to post
Share on other sites
QuickBooks is providing the following error when trying to import the sales file: "line #7 can't record transaction."

 

Customer file is empty, but mainly interested in transactions. Any ideas? Thanks.

 

You using MS 2 or MS1?

 

MS 2 install is a bit different.


crshNbrn living on the edge.....

Share this post


Link to post
Share on other sites

It looks like im the only person having a problem installing the code :(

I am getting the following error

Parse error: parse error, expecting `T_OLD_FUNCTION' or `T_FUNCTION' or `T_VAR' or `'}'' in /home/virtual/site4/fst/var/www/html/shop2/includes/classes/shopping_cart.php on line 321

Warning: session_start(): Cannot send session cookie - headers already sent by (output started at /home/virtual/site4/fst/var/www/html/shop2/includes/classes/shopping_cart.php:321) in /home/virtual/site4/fst/var/www/html/shop2/includes/functions/sessions.php on line 67

Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /home/virtual/site4/fst/var/www/html/shop2/includes/classes/shopping_cart.php:321) in /home/virtual/site4/fst/var/www/html/shop2/includes/functions/sessions.php on line 67

Fatal error: Cannot instantiate non-existent class: shoppingcart in /home/virtual/site4/fst/var/www/html/shop2/includes/application_top.php on line 381

 

Looks Like I have done something wrong in the shopping_cart.php class file, I followed the instructions, but i guess theres a syntax prob someone that might conflict with another mod. Can someone help me out please?

My shopping cart code follows

<?php
/*
 $Id: shopping_cart.php,v 1.2 2003/01/15 20:23:38 wilt Exp $

 osCommerce, Open Source E-Commerce Solutions
 http://www.oscommerce.com

 Copyright (c) 2002 osCommerce

 Released under the GNU General Public License
*/

 class shoppingCart {
   var $contents, $total, $weight, $cartID, $content_type;
// mod indvship
var $shiptotal;
// end indvship

   function shoppingCart() {
     $this->reset();
   }

   function restore_contents() {
     global $customer_id;

     if (!$customer_id) return 0;

// insert current cart contents in database
     if ($this->contents) {
       reset($this->contents);
       while (list($products_id, ) = each($this->contents)) {
         $qty = $this->contents[$products_id]['qty'];
         $product_query = tep_db_query("select products_id from " . TABLE_CUSTOMERS_BASKET . " where customers_id = '" . $customer_id . "' and products_id = '" . $products_id . "'");
         if (!tep_db_num_rows($product_query)) {
           tep_db_query("insert into " . TABLE_CUSTOMERS_BASKET . " (customers_id, products_id, customers_basket_quantity, customers_basket_date_added) values ('" . $customer_id . "', '" . $products_id . "', '" . $qty . "', '" . date('Ymd') . "')");
           if ($this->contents[$products_id]['attributes']) {
             reset($this->contents[$products_id]['attributes']);
             while (list($option, $value) = each($this->contents[$products_id]['attributes'])) {
               tep_db_query("insert into " . TABLE_CUSTOMERS_BASKET_ATTRIBUTES . " (customers_id, products_id, products_options_id, products_options_value_id) values ('" . $customer_id . "', '" . $products_id . "', '" . $option . "', '" . $value . "')");
             }
           }
         } else {
           tep_db_query("update " . TABLE_CUSTOMERS_BASKET . " set customers_basket_quantity = '" . $qty . "' where customers_id = '" . $customer_id . "' and products_id = '" . $products_id . "'");
         }
       }
     }

// reset per-session cart contents, but not the database contents
     $this->reset(FALSE);

     $products_query = tep_db_query("select products_id, customers_basket_quantity from " . TABLE_CUSTOMERS_BASKET . " where customers_id = '" . $customer_id . "'");
     while ($products = tep_db_fetch_array($products_query)) {
       $this->contents[$products['products_id']] = array('qty' => $products['customers_basket_quantity']);
// attributes
       $attributes_query = tep_db_query("select products_options_id, products_options_value_id from " . TABLE_CUSTOMERS_BASKET_ATTRIBUTES . " where customers_id = '" . $customer_id . "' and products_id = '" . $products['products_id'] . "'");
       while ($attributes = tep_db_fetch_array($attributes_query)) {
         $this->contents[$products['products_id']]['attributes'][$attributes['products_options_id']] = $attributes['products_options_value_id'];
       }
     }

     $this->cleanup();
   }

   function reset($reset_database = FALSE) {
     global $customer_id;

     $this->contents = array();
     $this->total = 0;
     $this->weight = 0;
     $this->content_type = false;
// mod indvship
     $this->shiptotal = 0;
// end indvship

     if ($customer_id && $reset_database) {
       tep_db_query("delete from " . TABLE_CUSTOMERS_BASKET . " where customers_id = '" . $customer_id . "'");
       tep_db_query("delete from " . TABLE_CUSTOMERS_BASKET_ATTRIBUTES . " where customers_id = '" . $customer_id . "'");
     }

     unset($this->cartID);
     if (tep_session_is_registered('cartID')) tep_session_unregister('cartID');
   }

   function add_cart($products_id, $qty = '', $attributes = '', $notify = true) {
     global $new_products_id_in_cart, $customer_id;

     $products_id = tep_get_uprid($products_id, $attributes);
     if ($notify == true) {
       $new_products_id_in_cart = $products_id;
       tep_session_register('new_products_id_in_cart');
     }

     if ($this->in_cart($products_id)) {
       $this->update_quantity($products_id, $qty, $attributes);
     } else {
       if ($qty == '') $qty = '1'; // if no quantity is supplied, then add '1' to the customers basket

       $this->contents[] = array($products_id);
       $this->contents[$products_id] = array('qty' => $qty);
// insert into database
       if ($customer_id) tep_db_query("insert into " . TABLE_CUSTOMERS_BASKET . " (customers_id, products_id, customers_basket_quantity, customers_basket_date_added) values ('" . $customer_id . "', '" . $products_id . "', '" . $qty . "', '" . date('Ymd') . "')");

       if (is_array($attributes)) {
         reset($attributes);
         while (list($option, $value) = each($attributes)) {
           $this->contents[$products_id]['attributes'][$option] = $value;
// insert into database
           if ($customer_id) tep_db_query("insert into " . TABLE_CUSTOMERS_BASKET_ATTRIBUTES . " (customers_id, products_id, products_options_id, products_options_value_id) values ('" . $customer_id . "', '" . $products_id . "', '" . $option . "', '" . $value . "')");
         }
       }
     }
     $this->cleanup();

// assign a temporary unique ID to the order contents to prevent hack attempts during the checkout procedure
     $this->cartID = $this->generate_cart_id();
   }

   function update_quantity($products_id, $quantity = '', $attributes = '') {
     global $customer_id;

     if ($quantity == '') return true; // nothing needs to be updated if theres no quantity, so we return true..

     $this->contents[$products_id] = array('qty' => $quantity);
// update database
     if ($customer_id) tep_db_query("update " . TABLE_CUSTOMERS_BASKET . " set customers_basket_quantity = '" . $quantity . "' where customers_id = '" . $customer_id . "' and products_id = '" . $products_id . "'");

     if (is_array($attributes)) {
       reset($attributes);
       while (list($option, $value) = each($attributes)) {
         $this->contents[$products_id]['attributes'][$option] = $value;
// update database
         if ($customer_id) tep_db_query("update " . TABLE_CUSTOMERS_BASKET_ATTRIBUTES . " set products_options_value_id = '" . $value . "' where customers_id = '" . $customer_id . "' and products_id = '" . $products_id . "' and products_options_id = '" . $option . "'");
       }
     }
   }

   function cleanup() {
     global $customer_id;

     reset($this->contents);
     while (list($key,) = each($this->contents)) {
       if ($this->contents[$key]['qty'] < 1) {
         unset($this->contents[$key]);
// remove from database
         if ($customer_id) {
           tep_db_query("delete from " . TABLE_CUSTOMERS_BASKET . " where customers_id = '" . $customer_id . "' and products_id = '" . $key . "'");
           tep_db_query("delete from " . TABLE_CUSTOMERS_BASKET_ATTRIBUTES . " where customers_id = '" . $customer_id . "' and products_id = '" . $key . "'");
         }
       }
     }
   }

   function count_contents() {  // get total number of items in cart 
       $total_items = 0;
       if (is_array($this->contents)) {
           reset($this->contents);
           while (list($products_id, ) = each($this->contents)) {
               $total_items += $this->get_quantity($products_id);
           }
       }
       return $total_items;
   }

   function get_quantity($products_id) {
     if ($this->contents[$products_id]) {
       return $this->contents[$products_id]['qty'];
     } else {
       return 0;
     }
   }

   function in_cart($products_id) {
     if ($this->contents[$products_id]) {
       return true;
     } else {
       return false;
     }
   }

   function remove($products_id) {
     global $customer_id;

     unset($this->contents[$products_id]);
// remove from database
     if ($customer_id) {
       tep_db_query("delete from " . TABLE_CUSTOMERS_BASKET . " where customers_id = '" . $customer_id . "' and products_id = '" . $products_id . "'");
       tep_db_query("delete from " . TABLE_CUSTOMERS_BASKET_ATTRIBUTES . " where customers_id = '" . $customer_id . "' and products_id = '" . $products_id . "'");
     }

// assign a temporary unique ID to the order contents to prevent hack attempts during the checkout procedure
     $this->cartID = $this->generate_cart_id();
   }

   function remove_all() {
     $this->reset();
   }

   function get_product_id_list() {
     $product_id_list = '';
     if (is_array($this->contents))
     {
       reset($this->contents);
       while (list($products_id, ) = each($this->contents)) {
         $product_id_list .= ', ' . $products_id;
       }
     }
     return substr($product_id_list, 2);
   }

   function calculate() {
     $this->total_virtual = 0;
     $this->total = 0;
     $this->weight = 0;
// mod indvship
     $this->shiptotal = 0;
// end indvship
     if (!is_array($this->contents)) return 0;

     reset($this->contents);
     while (list($products_id, ) = each($this->contents)) {
       $qty = $this->contents[$products_id]['qty'];

// products price
       $product_query = tep_db_query("select products_id, products_price, products_ship_price, products_tax_class_id, products_weight from " . TABLE_PRODUCTS . " where products_id='" . tep_get_prid($products_id) . "'");
       if ($product = tep_db_fetch_array($product_query)) {
// ICW ORDER TOTAL CREDIT CLASS Start Amendment
         $no_count=1;
         $gv_query=tep_db_query("select products_model from ".TABLE_PRODUCTS." where products_id='".$products_id."'");
         $gv_result=tep_db_fetch_array($gv_query);
         if (ereg('^GIFT', $gv_result['products_model'])) {
           $no_count=0;
         }
// ICW ORDER TOTAL  CREDIT CLASS End Amendment
         $prid = $product['products_id'];
         $products_tax = tep_get_tax_rate($product['products_tax_class_id']);
         $products_price = $product['products_price'];
         $products_weight = $product['products_weight'];
// mod indvship
   $products_ship_price = $product['products_ship_price'];
// end indvship

   $special_price = tep_get_products_special_price($prid);
         if ($special_price) {
           $products_price = $special_price;
         }
         $this->total_virtual += tep_add_tax($products_price, $products_tax) * $qty*$no_count;// CREDIT CLASS;
         $this->weight_virtual += ($qty * $products_weight)*$no_count;// CREDIT CLASS;
         $this->total += tep_add_tax($products_price, $products_tax) * $qty;
// mod indvship
   $this->shiptotal += ($products_ship_price * $qty);
// end indvship
         $this->weight += ($qty * $products_weight);
       }

// attributes price
       if ($this->contents[$products_id]['attributes']) {
         reset($this->contents[$products_id]['attributes']);
         while (list($option, $value) = each($this->contents[$products_id]['attributes'])) {
           $attribute_price_query = tep_db_query("select options_values_price, price_prefix from " . TABLE_PRODUCTS_ATTRIBUTES . " where products_id = '" . $prid . "' and options_id = '" . $option . "' and options_values_id = '" . $value . "'");
           $attribute_price = tep_db_fetch_array($attribute_price_query);
           if ($attribute_price['price_prefix'] == '+') {
             $this->total += $qty * tep_add_tax($attribute_price['options_values_price'], $products_tax);
           } else {
             $this->total -= $qty * tep_add_tax($attribute_price['options_values_price'], $products_tax);
           }
         }
       }
     }
   }

   function attributes_price($products_id) {
     if ($this->contents[$products_id]['attributes']) {
       reset($this->contents[$products_id]['attributes']);
       while (list($option, $value) = each($this->contents[$products_id]['attributes'])) {
         $attribute_price_query = tep_db_query("select options_values_price, price_prefix from " . TABLE_PRODUCTS_ATTRIBUTES . " where products_id = '" . $products_id . "' and options_id = '" . $option . "' and options_values_id = '" . $value . "'");
         $attribute_price = tep_db_fetch_array($attribute_price_query);
         if ($attribute_price['price_prefix'] == '+') {
           $attributes_price += $attribute_price['options_values_price'];
         } else {
           $attributes_price -= $attribute_price['options_values_price'];
         }
       }
     }

     return $attributes_price;
   }

       function get_products() {
     global $languages_id;

     if (!is_array($this->contents)) return 0;
     $products_array = array();
     reset($this->contents);
     while (list($products_id, ) = each($this->contents)) {
       $products_query = tep_db_query("select p.products_id, pd.products_name, p.products_model, p.products_price, p.products_weight, p.products_tax_class_id, products_qb_sales_class, products_qb_sales_account from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_DESCRIPTION . " pd where p.products_id='" . tep_get_prid($products_id) . "' and pd.products_id = p.products_id and pd.language_id = '" . $languages_id . "'");
       if ($products = tep_db_fetch_array($products_query)) {
         $prid = $products['products_id'];
         $products_price = $products['products_price'];

         $specials_query = tep_db_query("select specials_new_products_price from " . TABLE_SPECIALS . " where products_id = '" . $prid . "' and status = '1'");
         if (tep_db_num_rows($specials_query)) {
           $specials = tep_db_fetch_array($specials_query);
           $products_price = $specials['specials_new_products_price'];
         }

         $products_array[] = array('id' => $products_id,
                                   'name' => $products['products_name'],
                                   'model' => $products['products_model'],
                                   'price' => $products_price,
                                   'quantity' => $this->contents[$products_id]['qty'],
                                   'weight' => $products['products_weight'],
       'class' => $products['products_qb_sales_class'],
       'accnt' => $products['products_qb_sales_account'],
                                   'final_price' => ($products_price + $this->attributes_price($products_id)),
                                   'tax_class_id' => $products['products_tax_class_id'],
                                   'attributes' => $this->contents[$products_id]['attributes']);
       }
     }
     return $products_array;
   }
{
     global $languages_id;

     if (!is_array($this->contents)) return 0;
     $products_array = array();
     reset($this->contents);
     while (list($products_id, ) = each($this->contents)) {
       $products_query = tep_db_query("select p.products_id, pd.products_name, p.products_model, p.products_price, p.products_weight, p.products_tax_class_id from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_DESCRIPTION . " pd where p.products_id='" . tep_get_prid($products_id) . "' and pd.products_id = p.products_id and pd.language_id = '" . $languages_id . "'");
       if ($products = tep_db_fetch_array($products_query)) {
         $prid = $products['products_id'];
         $products_price = $products['products_price'];

        $special_price = tep_get_products_special_price($prid);
         if ($special_price) {
           $products_price = $special_price;
         }

         $products_array[] = array('id' => $products_id,
                                   'name' => $products['products_name'],
                                   'model' => $products['products_model'],
                                   'price' => $products_price,
                                   'quantity' => $this->contents[$products_id]['qty'],
                                   'weight' => $products['products_weight'],
                                   'final_price' => ($products_price + $this->attributes_price($products_id)),
                                   'tax_class_id' => $products['products_tax_class_id'],
                                   'attributes' => $this->contents[$products_id]['attributes']);
       }
     }
     return $products_array;
   }

   function show_total() {
     $this->calculate();

     return $this->total;
   }

function get_shiptotal() {
   $this->calculate();

   return $this->shiptotal;
   }

   function show_weight() {
     $this->calculate();

     return $this->weight;
   }

// CREDIT CLASS Start Amendment    
   function show_total_virtual() {
     $this->calculate();

     return $this->total_virtual;
   }

   function show_weight_virtual() {
     $this->calculate();

     return $this->weight_virtual;
   }
// CREDIT CLASS End Amendment
   function generate_cart_id($length = 5) {
     return tep_create_random_value($length, 'digits');
   }

   function unserialize($broken) {
     for(reset($broken);$kv=each($broken);) {
       $key=$kv['key'];
       if (gettype($this->$key)!="user function")
       $this->$key=$kv['value'];
     }
   }

   function get_content_type() {
     $this->content_type = false;

     if ( (DOWNLOAD_ENABLED == 'true') && ($this->count_contents() > 0) ) {
       reset($this->contents);
       while (list($products_id, ) = each($this->contents)) {
         if (isset($this->contents[$products_id]['attributes'])) {
           reset($this->contents[$products_id]['attributes']);
           while (list(, $value) = each($this->contents[$products_id]['attributes'])) {
             $virtual_check_query = tep_db_query("select count(*) as total from " . TABLE_PRODUCTS_ATTRIBUTES . " pa, " . TABLE_PRODUCTS_ATTRIBUTES_DOWNLOAD . " pad where pa.products_id = '" . $products_id . "' and pa.options_values_id = '" . $value . "' and pa.products_attributes_id = pad.products_attributes_id");
             $virtual_check = tep_db_fetch_array($virtual_check_query);

             if ($virtual_check['total'] > 0) {
               switch ($this->content_type) {
                 case 'physical':
                   $this->content_type = 'mixed';

                   return $this->content_type;
                   break;
                 default:
                   $this->content_type = 'virtual';
                   break;
               }
             } else {
               switch ($this->content_type) {
                 case 'virtual':
                   $this->content_type = 'mixed';

                   return $this->content_type;
                   break;
                 default:
                   $this->content_type = 'physical';
                   break;
               }
             }
           }
         } else {
           switch ($this->content_type) {
             case 'virtual':
               $this->content_type = 'mixed';

               return $this->content_type;
               break;
             default:
               $this->content_type = 'physical';
               break;
           }
         }
       }
    } else {
       $this->content_type = 'physical';
     }

     return $this->content_type;
    }

   // ------------------------ ICWILSON Gift Voucher Addittion-------------------------------Start
  // amend count_contents to show nil contents for shipping
  // as we don't want to quote for 'virtual' item
  // GLOBAL CONSTANTS if NO_COUNT_ZERO_WEIGHT is true then we don't count any product with a weight 
  // which is less than or equal to MINIMUM_WEIGHT
  // otherwise we just don't count gift certificates

   function count_contents_virtual() {  // get total number of items in cart disregard gift vouchers 
       $total_items = 0;
       if (is_array($this->contents)) {
           reset($this->contents);
           while (list($products_id, ) = each($this->contents)) {
             $no_count=false;
             $gv_query=tep_db_query("select products_model from ".TABLE_PRODUCTS." where products_id='".$products_id."'");
             $gv_result=tep_db_fetch_array($gv_query);
             if (ereg('^GIFT', $gv_result['products_model'])) {
               $no_count=true;
             }
             if (NO_COUNT_ZERO_WEIGHT==1) {
               $gv_query = tep_db_query("select products_weight from " . TABLE_PRODUCTS . " where products_id='" . tep_get_prid($products_id) . "'");
               $gv_result=tep_db_fetch_array($gv_query);
               if ($gv_result['products_weight']<=MINIMUM_WEIGHT) {
                 $no_count=true;
               }
             }
             if ($no_count==false) $total_items += $this->get_quantity($products_id);
           }
       }
       return $total_items;
   }
// ------------------------ ICWILSON Gift Voucher Addittion-------------------------------End
 }
?>

Share this post


Link to post
Share on other sites

Hi

 

Just found this thread from someone else and had some questions about this quickbooks mod. I did not do the admin mods in the file admin/categories.php since all sales will be marked as invoice and only will need one class. When importing the iif files into quickbooks the class comes up as BTN? Question is how and where do I change the default name of BTN to something else?

 

Thanks

Share this post


Link to post
Share on other sites

Lo peeps

 

Just a quickie

 

Someone has asked me to put this on their site, have done so and I get the error a number of people have mentioned when importing sales.iif, this:

 

Error on Line 7: Can't record invalid transaction

 

Did anyone know what this was about or get it fixed at all?

Some pointers would be nice, cos I know nothing about Quickbooks.

 

A few people have mentioned it, but I have never seen the answer to it on here...

 

Thanks all.

Share this post


Link to post
Share on other sites

Still no reply, if this is an indication that nobody knows why this happens then I have a little more info that might help...

 

It appears the problem happens as subsequent orders are placed.

 

It appears on each 7, 11, 16, 20, 26, 30th lines of the .iif file.

 

In viewing it in excel you can clearly see that on those lines all display this:

 

ENDTRNS

 

Now what I need to know, is what is this in Quickbooks and can it be rectified?

 

I have been playing with it to try and work around it or to fix it with no joy.

Anyone with more experience of QB got any ideas with this??

 

Cheers guy n gals.

Share this post


Link to post
Share on other sites

Ok, seconds later I tried something obvious, adding "!" in fron of the ENDTRNS like so:

 

!ENDTRNS

 

Which obvious must comment out the End of that transfer I presume.

But now it imports with no errors, but does not actually import any sale information apart from the products code.

 

I get the code, and nothing else.

Also it doesnt link any order information to the customer info that was imported previsouly.

 

I'm a bit puzzled, cos I know nothing about QB, so I am kinda working blind.

 

I'll keep playing, in the meantime, anyone know owt gimme a shout. ta.

Share this post


Link to post
Share on other sites

I just installed this contrib for a client and they are going to be looking over the output to their quickbooks here in the next day or so ... but .. I rewrote a lot of the stuff and put all the options in the admin side I think there are like 32 of them altogether or something .. Would anybody be interested in this as a contrib?

What this does is allow you to control all the features of this contrib from the admin side ..


(my knowledge is so small you would think that an ant was a genius in comparison)

Share this post


Link to post
Share on other sites

Sounds like the best way to me!

 

If it integrates into admin it makes it so much more usuable for everyone, customers included if you design OSC for a living.

 

I sure would like to see it mate.

 

I havent yet sorted out the issues I mentioned above yet, this might help me do that.

 

Not to mention carts like X-Cart, Comersus etc all have a QB mod built into the standard code, maybe the core team would consider this as a permenant feature to the code to keep them inline with the others...

 

Nice one mate, I look forward to seeing it. ;)

Share this post


Link to post
Share on other sites

Strider,

 

Me too, I'd like to see the enhancements to the QB contrib. Can you please send it to me or tell me where to find it?

 

Ari

Share this post


Link to post
Share on other sites

Any plans for this release Strider?

 

I am guessing you have something upyour sleeve to offer this??

Share this post


Link to post
Share on other sites

Did anyone manage to find the fix for this error when importing Sales into QB??

 

Error on Line 7: Can't record invalid transaction

 

I'll be jiggeredif I can see why this willn ot import.

It all looks fine, but it will just not import into QB.

Someone I know desperately needs this, but I cant get it working right.

Anyone who knows anything about QB, HELP??!!

Share this post


Link to post
Share on other sites

I had a similar problem with this contribution. Never did get it working correctly.

 

Anyone know of an update on QB mod that will work with QB Pro 2003?

Share this post


Link to post
Share on other sites

Yeh QB 2003 Pro is what I am trying to get this working with.

 

The code all looks fine, but there is something QB doesnt like about it that is causing problems.

 

It would appear everyone has given up on this mod tho, so maybe time to move one myself and forget that mod.

I dont know enough about QB to make adifference.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×