For version 1.5.1 I edited the /includes/classes/order.php file and included the following code (highlighted in green) to somewhere around line 325. Now all taxable goods are treated to sales tax from the store location, regardless of customer shipping/billing address. I can't believe how hard it was to finally find an answer. This solution came from posts by Ajeh, numinix, and DrByte. The earlier post by DrByte was missing the ['id'] that I needed to make this work.
Store pickup should already be set up to charge sales tax based on store location, hope they fix this in formal releases as it was a pain to figure out.
Code:
} else {
$tax_address_query = "select ab.entry_country_id, ab.entry_zone_id
from " . TABLE_ADDRESS_BOOK . " ab
left join " . TABLE_ZONES . " z on (ab.entry_zone_id = z.zone_id)
where ab.customers_id = '" . (int)$_SESSION['customer_id'] . "'
and ab.address_book_id = '" . (int)($this->content_type == 'virtual' ? $_SESSION['billto'] : $_SESSION['sendto']) . "'";
}
}
//Bogue Rat Creations edit to enable tax on all store pickups that are of taxable class.
if (strstr($_SESSION['shipping']['id'],'storepickup') == TRUE) {
$taxCountryId = STORE_COUNTRY;
$taxZoneId = STORE_ZONE;
$tax_address_query = '';
}
// End BRC Edit
if ($tax_address_query != '') {
$tax_address = $db->Execute($tax_address_query);
if ($tax_address->recordCount() > 0) {
$taxCountryId = $tax_address->fields['entry_country_id'];
$taxZoneId = $tax_address->fields['entry_zone_id'];
}
}