getRate() и процент налога Magento

Я пытаюсь получить налоговую ставку (в процентах , а не валюта) для заданного почтового индекса, поэтому я могу отобразить его в распечатке PDF-файла сторонней цитаты (никакого отношения к «цитатам», которые Magento использует в качестве корзины перед оформлением заказа). Хотя я все еще относительно новичок в Magento, это Похоже, что getRateRequest() и getRate() — это две основные функции, которые получают налоговую ставку на основе всех переменных (налоговый класс продукта, налоговый класс клиента и т. д.)

. все наши продукты облагаются налогом, я решил, что просто использую getRate() с правильным вводом объекта Varien, и он вернет налоговую ставку После недели проб и ошибок я не могу понять, почему Я всегда получаю нулевую ставку.Я подтвердил, что вызываю функцию getRate() и что она не возвращает ноль из первого оператора if(), проверяющего идентификатор класса Country и Customer/Product. Кроме того, я подтвердил, что все переменные передаются и доступны в самой функции getRate().

Я создал объект с приведенным ниже вводом (на основе вывода getRateRequest()), который я вызываю с помощью getRate(), и надеюсь, что кто-нибудь сможет пролить свет на то, что не так с моими входными данными или почему getRate( ) всегда возвращает нулевой результат. (На самом деле я устанавливаю $variables ниже, они просто определены ранее, и одно из моих тестовых значений приведено ниже)

    // UPDATED CODE (variable values come from 3rd party quote extension)

    $country = 'US';  // use short country code
    $region = '12';   // must be numeric!
    $postcode = '95050';
    // our quote extension stores the customer id ('2') which we use to get the tax class
    $customer = Mage::getModel('customer/customer')->load( '2' );
    $custTax = $customer->getTaxClassId();

    $TaxRequest  = new Varien_Object();
    $TaxRequest->setCountryId( $country );
    $TaxRequest->setRegionId( $region );
    $TaxRequest->setPostcode( $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);

Мой резервный план состоит в том, чтобы просто выполнить формулу прямого поиска SQL, хотя это, вероятно, будет немного запутанным. . Поскольку наша команда веб-разработок не совсем следовала хорошим стандартам кодирования, возможное переписывание сайта в любом случае в моем будущем, как только будут внесены первоначальные исправления запуска (все 4 страницы).

Спасибо за любую помощь и за то, что нашли время прочитать это.

РЕДАКТИРОВАТЬ. Переполнение стека — это круто :)

6
задан mtns_cll 18 July 2013 в 20:54
поделиться