Дополнительные типы блоков (EBT) — новый опыт конструктора страниц❗

Дополнительные типы блоков (EBT) — стилизованные, настраиваемые типы блоков: слайдшоу, вкладки, карточки, аккордеоны и многие другие. Встроенные настройки для фона, DOM Box, плагины Javascript.

Демо EBT модули Скачать EBT модули

❗Дополнительные типы параграфов (EPT) — новый опыт работы с параграфами

Дополнительные типы параграфов (EPT) — набор модулей, основанный на аналогичных параграфах.

Демо EPT модули Скачать EPT модули

Scroll

Мультивалютность в Drupal Commerce

22/02/2025, by Гость (не проверено)

Добрый день. На сайте прикрутил модуль Multicurrency для коммерц. Все работаешь зашибись. Вот только стоимость доставки и сумму заказа  считает  не в текущей валюте а в валюте по умолчанию установленной в системе.  Есть у меня две валюты, баксы и еврики, вот по умолчанию стоит бакс а иногда надо посчитать в евро, а этого не делается. Может правило необходимо какое создать илиу словие? но какое...


Здравствуйте, у вас для каждой валюты есть своя таблица. Вам нужно будет исходя из текущего курса валют (модуль позволяет определять курсы валют) по крону пересчитывать текущую цену в рублях. Что-то вроде этого:

function custom_cron(){


  $euro = db_query('SELECT * FROM {field_data_commerce_price_eur}', array());
 // dsm($euro);
  $rub = db_query('SELECT * FROM {field_data_commerce_price}', array());
  $rub_prices = array();
  foreach($rub as $money){
    $rub_prices[] = $money->entity_id;
  }





  foreach($euro as $one){
    $commerce_multicurrency = variable_get('commerce_multicurrency_conversion_settings');
    $sum = $one->commerce_price_eur_amount * $commerce_multicurrency['EUR']['rates']['RUB']['rate'];
    $sum = round($sum);
    if(in_array($one->entity_id,$rub_prices)){
      $query = db_update('field_data_commerce_price')
        ->fields(array(
          'entity_type' => 'commerce_product',
          'bundle' => $one->bundle,
          'deleted' => $one->deleted,
          'entity_id' => $one->entity_id,
          'revision_id' => $one->revision_id,
          'language' => $one->language,
          'delta' => $one->delta,
          'commerce_price_amount' => $sum,
          'commerce_price_currency_code' => 'RUB',
          'commerce_price_data' => $one->commerce_price_eur_data,
        ))
        ->condition('entity_id', $one->entity_id)
        ->execute();
    }else{
      $query = db_insert('field_data_commerce_price')
        ->fields(array(
          'entity_type' => 'commerce_product',
          'bundle' => $one->bundle,
          'deleted' => $one->deleted,
          'entity_id' => $one->entity_id,
          'revision_id' => $one->revision_id,
          'language' => $one->language,
          'delta' => $one->delta,
          'commerce_price_amount' => $sum,
          'commerce_price_currency_code' => 'RUB',
          'commerce_price_data' => $one->commerce_price_eur_data,
        ))
        ->execute();
    }
  }
}