Extra Block Types (EBT) - New Layout Builder experience❗

Extra Block Types (EBT) - styled, customizable block types: Slideshows, Tabs, Cards, Accordions and many others. Built-in settings for background, DOM Box, javascript plugins. Experience the future of layout building today.

Demo EBT modules Download EBT modules

❗Extra Paragraph Types (EPT) - New Paragraphs experience

Extra Paragraph Types (EPT) - analogical paragraph based set of modules.

Demo EPT modules Download EPT modules

Scroll

Вопрос по мультивалютности в Drupal 7 + Ubercart 3

Вопрос по мультивалютности в Drupal 7 + Ubercart 3
, by

Добрый день.

Создаю магазин на Ubercart 3. Тематика - различный инструмент.

Столкнулся с такой проблемой. Необходимо чтобы ввод цены при добавлении товара вводился в долларах но на сайте автоматом выводилась цена в рублях, с завязкой курсов валют крайне желательно.

1 answer
votes: 928
Answer

Здравствуйте, я делал следующим образом:

1. Нужен модуль, который добавляет в друпал переменные с курсами валют:

https://drupal.org/project/currency

https://drupal.org/project/commerce_multicurrency

2. Нужно поле для доллара куда будет записываться цена.

3. Нужен код, который по hook_cron() используя валюты модуля будет изменять цену товара. Вот пример кода для Drupal commerce с использованием модуля commerce multicurrency.

 

<?php
function custom_cron(){

   $euro = db_select('field_data_commerce_price_eur', 'c') // здесь ищем все товары с валютой
    ->fields('c')
    ->execute()
    ->fetchAll();

  $commerce_multicurrency = variable_get('commerce_multicurrency_conversion_settings'); // вытаскиваем курс из переменной
  $euroCur = 1 / $commerce_multicurrency['RUB']['rates']['EUR']['rate']; // конвертируем курс к рублю
  foreach($euro as $one){ // перебираем все товары с валютой и меняем цены в рублях
    $sum = $one->commerce_price_eur_amount * $euroCur;
    $sum = round($sum);

    $product2 = commerce_product_load($one->entity_id); //загружаем товар и меняем в нем поля
    $product2->commerce_price['und'][0]['amount'] = $sum;
    $product2->commerce_price['und'][0]['currency_code'] = 'RUB';
    commerce_product_save($product2); //сохраняем изменения
        
  }
}
?>

 


А есть ли подобный код для Ubercart 3 ? В пхп не профи, разбираться долго.


Данный код нужно ставить в cron.php ? или создать блок с кодом ?


Привет!

Подскажите пожалуйста:

  1. где создавали поле: в ноде или товаре?
  2. курс валют вводить вручную каждый день?

Поле создается в товаре, курс валют обновляется если в настройках это выбрано.