Intereting Posts
Классы PHP: когда использовать :: vs. ->? Карты Google – панорамирование и масштабирование по областям – маркеры не появляются при увеличении или панорамировании – ПОМОЩЬ! Ограничение запроса в MS Access в PHP Как удалить продукт из категории magento 1.5 У меня есть 2 записи в базе данных. Vue выводит 8 записей как получить в настоящее время зарегистрированных пользователей в mysql? Вызов неопределенного метода PDO :: execute () PHP Выбирает текущее имя страницы без расширения? Как хранить пары данных в базе данных mysql? как отображать несколько изображений (blob) из mysql с помощью php? Как избежать динамических свойств в PHP (поднять ошибку при установке необъявленного свойства) .htaccess условие – действие зависит от типа файла Как вставить данные в базу данных mysql из таблицы HTML выбранное значение получает от db в выпадающем списке, используя опцию php mysql Загрузка клиентской библиотеки google api в кодеритер

Magento: добавление пошлин / налогов к котировке во время обзора

Мне нужно позвонить в сторонний API, чтобы получить актуальность Обязанности / налоги для международной доставки в течение этапа обзора процесса оформления заказа. У меня есть API-вызов, готовый к работе, но мне не хватает способа добавить возвращенные пошлины и налоги в цитату.

Есть ли встроенный способ сделать это?

я надеюсь, что есть что-то вроде

$quote->addCostComponent("Duties", 5.0); 

Solutions Collecting From Web of "Magento: добавление пошлин / налогов к котировке во время обзора"

Вам необходимо выполнить следующие действия:

  1. Прежде всего, вам нужно создать атрибуты для ваших таможенных пошлин / налогов для их отображения в порядке, а не только добавить к общей сумме. Должно быть не менее двух атрибутов для значения в валюте сайта (используется при base_ платежа, и у него должен быть префикс base_ ) и одно значение в отображаемой валюте (используется только для отображения суммы в желаемой валюте для клиента). Эти атрибуты должны быть добавлены к каждому объекту с финансовой частью (quote_address, order, invoice). Например, это должно быть: base_your_attribute_code и your_attribute_code с десятичным типом.

  2. Затем вам нужно создать общую модель коллекционера, которая должна быть расширена с Mage_Sales_Model_Quote_Address_Total_Abstract и реализовать методы сбора и получения, как в этом примере:

     /** * Your custom total model * */ class Your_Module_Model_Total_Custom extends Mage_Sales_Model_Quote_Address_Total_Abstract { /** * Constructor that should initiaze */ public function __construct() { $this->setCode('your_attribute_code'); } /** * Used each time when collectTotals is invoked * * @param Mage_Sales_Model_Quote_Address $address * @return Your_Module_Model_Total_Custom */ public function collect(Mage_Sales_Model_Quote_Address $address) { parent::collect($address); // ... Some your api calls to retrive amount ... // Set base amount of your custom fee $this->_setBaseAmount($calculatedAmount); // Set amount of your custom fee in displayed currency $this->_setAmount( $address->getQuote()->getStore()->convertPrice($calculatedAmount, false) ); return $this; } /** * Used each time when totals are displayed * * @param Mage_Sales_Model_Quote_Address $address * @return Your_Module_Model_Total_Custom */ public function fetch(Mage_Sales_Model_Quote_Address $address) { // Display total only if it is not zero if ($address->getYourAttributeCode() != 0) { $address->addTotal(array( 'code' => $this->getCode(), 'title' => 'My Custom Duty', 'value' => $address->getYourAttributeCode() )); } } } 
  3. После создания модели коллектора вам необходимо добавить ее в конфигурацию:

     <config> <global> <sales> <quote> <totals> <your_total_code> <class>your_module/total_custom</class> <before>grand_total</before> <after>shipping</after> </your_total_code> </totals> </quote> </sales> </global> </config> тем <config> <global> <sales> <quote> <totals> <your_total_code> <class>your_module/total_custom</class> <before>grand_total</before> <after>shipping</after> </your_total_code> </totals> </quote> </sales> </global> </config> тем <config> <global> <sales> <quote> <totals> <your_total_code> <class>your_module/total_custom</class> <before>grand_total</before> <after>shipping</after> </your_total_code> </totals> </quote> </sales> </global> </config> 
    • Узел класса содержит псевдоним класса вашей модели коллектора
    • до и после узлов указывают порядок обращения вашего коллекционера.
  4. Вам нужно добавить свои общие атрибуты к наборам полей, которые будут использоваться для копирования данных в заказ или счет-фактуру:

     <config> <global> <fieldsets> <!-- copies data from quote address to order during the order placement --> <sales_convert_quote_address> <base_your_attribute_code><to_order>*</to_order></base_your_attribute_code> <your_attribute_code><to_order>*</to_order></your_attribute_code> </sales_convert_quote_address> <!-- copies data from order to invoice/shipment/creditmemo during their creation --> <sales_convert_order> <base_your_attribute_code><to_invoice>*</to_invoice><to_shipment>*</to_shipment><to_cm>*</to_cm></base_your_attribute_code> <your_attribute_code><to_invoice>*</to_invoice><to_shipment>*</to_shipment><to_cm>*</to_cm></your_attribute_code> </sales_convert_order> </fieldsets> </global> </config> 
  5. После выполнения этих шагов вы сможете увидеть свой таможенный сбор в порядке сумм