robokassa / cms-opencart

Официальный модуль приема платежей Robokassa для OpenCart
5 stars 10 forks source link

Налоги не учитываются в стоимости товара #17

Closed RTechSn closed 1 month ago

RTechSn commented 2 months ago

Добрый день. В данный момент модуль Робокассы имеет собственную независимую настройку налога, несмотря на то, что налоги ставятся в настройках OpenCart. Кроме того, налог считается отдельно, а цена каждого отдельного товара передается без учёта налога. Это может приводить к расхождению того, что мы видим в корзине и в итоговом чеке. Как следствие, списывается одна сумма, а чек выбивается на другую.

$tax = $this->config->get('payment_robokassa_tax');

// ..........

$item_price = $order_product['price'];

// ..........
$items[] = [
    'name' => utf8_substr(trim(htmlspecialchars($order_product['name'])), 0, 63),
    'cost' => round($item_price, 2),
    'quantity' => $order_product['quantity'],
    'payment_method' => $payment_method,
    'payment_object' => $payment_object,
    'tax' => $tax
 ];

Как видно в этом участке кода, цена товара просто берется как есть. Для примера возьмём кусок кода, где цена товара считается в OpenCart - в корзине или на странице заказа в админке.

$data['products'][] = array(
    'order_product_id' => $product['order_product_id'],
    'product_id'       => $product['product_id'],
    'name'             => $product['name'],
    'model'            => $product['model'],
    'option'           => $option_data,
    'quantity'         => $product['quantity'],
    'price'            => $this->currency->format($product['price'] + ($this->config->get('config_tax') ? $product['tax'] : 0), $order_info['currency_code'], $order_info['currency_value']),
    'total'            => $this->currency->format($product['total'] + ($this->config->get('config_tax') ? ($product['tax'] * $product['quantity']) : 0), $order_info['currency_code'], $order_info['currency_value']),
    'href'             => $this->url->link('catalog/product/edit', 'user_token=' . $this->session->data['user_token'] . '&product_id=' . $product['product_id'], true)
    );
dmtew commented 1 month ago

Спасибо за ваше сообщение и предложения!

Хотим отметить, что наш модуль Робокассы на протяжении многих лет успешно выполняет свои функции, и менять текущую логику работы с налогами мы не планируем. Налоговая ставка передается в соответствии с нашей документацией: https://docs.robokassa.ru/fiscalization/.

Тем не менее, наш модуль является open-source, и мы всегда рады любым предложениям по улучшению. Вы можете предложить свои улучшения через pull request и мы с радостью их рассмотрим.

Если у вас возникнут дополнительные вопросы или предложения, пожалуйста, не стесняйтесь обращаться к нашей технической поддержке.