pglock:
The quickbooks value will not change to 1 unless a successful export has occurred, so don't worry about it. When you restart QBSync, it will pick up where it left off.
--------------
Yes, timeouts do happen sometimes -- I've noticed the same thing. We can't do much about this, as our servers control this. But, its only a minor annoyance and won't occur very often with small exports if you continue to use QBSync regularly.
--------------
Yes, you are correct. The way it was written it should have problems if the manufacturer is set to NULL. To fix it find this line:
Code:
$manuf = $this->db->Execute('SELECT * FROM '.TABLE_MANUFACTURERS.' WHERE manufacturers_id = '.$products->fields['manufacturers_id']);
and add this line just before it:
Code:
if (QBS_PREFERRED_VENDOR == 1 && $products->fields['manufacturers_id'] != NULL)
Then find this line twice:
Code:
if (QBS_PREFERRED_VENDOR == 1)
and change it both times to this line:
Code:
if (QBS_PREFERRED_VENDOR == 1 && $products->fields['manufacturers_id'] != NULL)
I'll change this code the next time I work on this, but if anyone else if having this problem in the meantime, that is the fix.
--------------
Another bug you found was with the : in the customer name. To fix that, find this line:
Code:
$listName = strtoupper(str_replace(array('{lastname}','{firstname}','{zc_customerid}'),array($customer->fields['customers_lastname'],$customer->fields['customers_firstname'], $zenCustID),QBS_CUSTOMER_NAME_FORMAT));
and change it to this
Code:
$listName = strtoupper(str_replace(array('{lastname}','{firstname}','{zc_customerid}',':'),array($customer->fields['customers_lastname'],$customer->fields['customers_firstname'], $zenCustID,''),QBS_CUSTOMER_NAME_FORMAT));
Then you need to go through the whole code and search for this:
Code:
strtoupper(str_replace(array('{lastname}','{firstname}','{zc_customerid}')
Everytime you find an instance of this, you need to do the same thing you did for the last change -> add ,':' to the end of the first array, and add ,'' to the end of the second array. This should fix this issue. Again, I'll make these changes the next time i get a chance to work on this, but in the meantime, that is how to fix this problem.
--------------
Lastly, the error you are describing is caused when the email error log is sent. It looks like too much memory is being used when this email is being sent. Try turning off email error reporting. However, this won't fix your problem -- it will just alleviate the symptom. Something else is causing a problem, otherwise it wouldn't be sending the error log in the first place. However, if I were a betting man, I would guess that your problem is that your server isn't allowing you to access enough memory for all the SQL communication required for QBSync to work considering how many customers, orders, and items you have. Try turning off Continuing Sync, as this should significantly reduce the number of SQL queries required for QBSync to work.