Scroll
Мультивалютность в Drupal Commerce
Мультивалютность в Drupal Commerce
Добрый день. На сайте прикрутил модуль Multicurrency для коммерц. Все работаешь зашибись. Вот только стоимость доставки и сумму заказа считает не в текущей валюте а в валюте по умолчанию установленной в системе. Есть у меня две валюты, баксы и еврики, вот по умолчанию стоит бакс а иногда надо посчитать в евро, а этого не делается. Может правило необходимо какое создать илиу словие? но какое...
1 answer
votes: 713
Answer
Здравствуйте, у вас для каждой валюты есть своя таблица. Вам нужно будет исходя из текущего курса валют (модуль позволяет определять курсы валют) по крону пересчитывать текущую цену в рублях. Что-то вроде этого:
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(); } } }