Выкладываю пример, который использовался мной, когда возникла необходимость определить налоговую ставку (Tax Rate) для расчета стоимости товара в интернет-магазине на базе CMS Magento:
$country = 'US'; // use short country code
// $region = '12'; // uncomment if needed !must be numeric!
// $postcode = '95050'; // uncomment if needed
$customer = Mage::getModel('customer/customer')->load( '2' ); // our quote extension stores the customer id ('2') which we use to get the tax class
$custTax = $customer->getTaxClassId();
$TaxRequest = new Varien_Object();
$TaxRequest->setCountryId( $country );
// $TaxRequest->setRegionId( $region ); // uncomment if needed '$region'
// $TaxRequest->setPostcode( $postcode ); // uncomment if needed '$postcode'
$TaxRequest->setStore( Mage::app()->getStore() );
$TaxRequest->setCustomerClassId( $custTax );
$TaxRequest->setProductClassId(2); // 2=taxable id (all our products are taxable)
$taxCalculationModel = Mage::getSingleton('tax/calculation');
$rate = $taxCalculationModel->getRate($TaxRequest);
В моем случае, определение региона ($region
) и почтового индекса ($postcode
) были не нужны, поэтому они закомментированы. Чтобы учитывать их в определении результата нужно просто раскомментировать соответствующие поля.
На этом все.