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

Раздел форума: 

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

Добавить комментарий

Войти, используя Loginza Google Account Yandex Mail.ru Vkontakte Facebook

Plain text

  • HTML-теги не обрабатываются и показываются как обычный текст
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Строки и параграфы переносятся автоматически.
Прикрепить
Максимальный размер файла: 100 МБ.
Разрешённые типы файлов: txt doc docx rar zip xls xlsx pdf odf odt jpg jpeg gif png psd rtf.

Здравствуйте, у вас для

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

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();
    }
  }
}