Курс 2016 года “Разработка на UMI.CMS от 0 до готового сайта”
Динамическое изменение цены при выборе опционального свойства.

Автор denis_savinРаздел Шаблоны TPL

Ответов: 7
Просмотров: 8747
Последний ответ 18 Марта 2014, 18:45:34
от ilyar
Динамическое обновление цены при выборе количества товара

Автор johnРаздел JS и AJAX

Ответов: 1
Просмотров: 5455
Последний ответ 08 Августа 2014, 00:01:13
от admin
Подскажите, пожалуйста, как вывести подсказку в зависимости от цены

Автор nitoitiРаздел Макросы UMI.CMS

Ответов: 1
Просмотров: 3731
Последний ответ 04 Ноября 2014, 19:56:24
от nitoiti
JS+AJAX - формат цены без суффикса и префикса

Автор samРаздел JS и AJAX

Ответов: 3
Просмотров: 4146
Последний ответ 20 Октября 2014, 00:45:31
от sam
Цены в разных валютах. Проблемы и странности

Автор crazygeorgioРаздел Custom макросы

Ответов: 0
Просмотров: 2140
Последний ответ 03 Октября 2015, 03:22:49
от crazygeorgio

0 Пользователей и 1 Гость просматривают эту тему.

*

albion

  • ***
  • 109
  • +3/-0
    • Просмотр профиля
    • Веб-Админ
Подгрузка цены с помощью JQuery
« : 16 Июня 2015, 11:02:29 »
Опишу суть проблемы. В свое время сделал на сайте файловое кеширование с возможностью выставлять срок хранения кеша, но из за постоянного изменения курса валют (спасибо государству) кеш приходиться постоянно удалять. Сайт достаточно большой - товаров только 2500 примерно. И если после удаления приходит какой то робот, то возникает нагрузка на дисковую подсистему хостера - на что он и жалуется. Пришла идея, что кеш можно создавать со сроком хранения примерно месяц, и что бы его не удалять при смене курса необходимо через JQuery подгрузить цену товара, а как ее вытащить с помощью JQuery не понятно. Может, кто подскажет?

*

atach

  • ***
  • 165
  • +6/-0
    • Просмотр профиля
Re: Подгрузка цены с помощью JQuery
« Ответ #1 : 16 Июня 2015, 16:07:37 »
Я обычно стучусь так (не знаю на сколько правильно).

$.ajax({
    url: '/upage/' + ide + '.json',
    type: "get",
    dataType: 'json',    
    success: function (data) {
}

*

albion

  • ***
  • 109
  • +3/-0
    • Просмотр профиля
    • Веб-Админ
Re: Подгрузка цены с помощью JQuery
« Ответ #2 : 16 Июня 2015, 16:44:04 »
Так получаются данные в евро (цена, которая забита в базу). 

P.S. JQuery знаком на уровне - что то подправить. Писать с 0 не приходилось.
« Последнее редактирование: 16 Июня 2015, 16:45:45 от albion »

*

atach

  • ***
  • 165
  • +6/-0
    • Просмотр профиля
Re: Подгрузка цены с помощью JQuery
« Ответ #3 : 16 Июня 2015, 16:58:33 »
Тогда не понятно, вытащить цену нужно из предыдущего кеша?

*

albion

  • ***
  • 109
  • +3/-0
    • Просмотр профиля
    • Веб-Админ
Re: Подгрузка цены с помощью JQuery
« Ответ #4 : 16 Июня 2015, 17:22:01 »
Не. Как то получить уже перемноженную цену (то, что в базе умноженное на курс).

*

atach

  • ***
  • 165
  • +6/-0
    • Просмотр профиля
Re: Подгрузка цены с помощью JQuery
« Ответ #5 : 16 Июня 2015, 17:27:08 »
курсы записаны в системе как? в модуле "ИМ" -> "Валюты" ?
Тогда через /udata/emarket/currencySelector

Просто вы не полностью описываете сам процесс. Обновление валют происходит как и где

*

albion

  • ***
  • 109
  • +3/-0
    • Просмотр профиля
    • Веб-Админ
Re: Подгрузка цены с помощью JQuery
« Ответ #6 : 17 Июня 2015, 09:26:28 »
Сейчас все делается (кроме кеша) стандартными методами UMI на tpl шаблонизаторе. И курсы записаны в модуле ИМ-Валюты. КЕШ состоит из сгенерированного HTML контентной части страницы. И необходимо, что бы в сохраненке кеша был код JavaScript, который будет вызывать цену текущего товара уже перемноженного на курс. Т.е. по сути цена не будет кешироваться.

*

admin

  • *****
  • 2444
  • +172/-1
    • Просмотр профиля
Re: Подгрузка цены с помощью JQuery
« Ответ #7 : 08 Июля 2015, 15:06:02 »
новую цену (в том числе в других валютах) можно получить через макрос udata/emarket/price
и обратиться к нему для конкретного товара через примерно такой скрипт:

Берем откуда-то id товара  например перебираем dom элементы содержащим инфу о товаре (например по классу .catalog_object) и у каждого такого элемента есть параметр el_id с id данного товара (который мы формирует на уровне шаблона). Можно перебирать все эти элементы и в цикле выполнять такой запрос.
var id = $(this).attr('el_id');
$.ajax({
    url: '/udata/emarket/price/' + id + '.json',
    dataType: 'json',    
    success: function (data) {
         if (typeof data->price->actual != 'undefined') {
              var price = data->price->actual; //может вам нужна цена из другого блока, запросите макрос вручную в адресной строке и посмотрите что возвращает umi и что вам из этого нужно
              // выводим значение переменной price в блок с ценой
         }

    }
});