2,301

(3 ответов, оставленных в Вопросы по работе с системой)

Веб-сайт -> Уведомления

2,302

(3 ответов, оставленных в Вопросы по работе с системой)

Как вносить изменения в стандартные шаблоны, стили, чтобы изменения сохранялись после обновления системы?

2,303

(18 ответов, оставленных в Вопросы по работе с системой)

Отлично.
Для проверки цены, нужно в условиях проверок в методе getCost указывать третий аргумент в false, т.к. он отвечает за форматирование цены в строку с пробелом с тысячных(10 000) в виде строки. Если третий аргумент в false, то будет 10000 именно как число. А то будет конфуз.
Например.

{$product->getCost('Зачеркнутая цена', $key, false)}

Подробнее описание можно почитать в классе комплектации "Offer" в файле /modules/catalog/model/orm/offer.inc.php и там найти функцию getCost.

Что касается js, то можно так проверить.

$.each(list, function(selector, cost) { //Перебор объекта в data-change-cost 
   if (selector=='.lastPrice'){
          if (cost=="0"){ //Если цена равна 0
               $(selector, context).text('');
          }else{
               $(selector, context).text(cost);
          }
   }else{
          $(selector, context).text(cost);
   } 
   
});

2,304

(18 ответов, оставленных в Вопросы по работе с системой)

Отпишитесь о результате в конце пожалуйста

2,305

(18 ответов, оставленных в Вопросы по работе с системой)

Прошу прощения, немного не правильно подсказал.
Вообщем, зачёркнутую цену в шаблоне нужно оставить без условия.

data-change-cost='{ 
                                        ".offerBarcode": "{$offer.barcode|default:$product.barcode}",
                                        ".myCost": "{$product->getCost(null, $key)}",
                                        ".lastPrice": "{$product->getCost('Зачеркнутая цена', $key)}"
                                    }' 

Как и было раньше. Тогда у нас в зачёркнутую цену будет идти 0 (ноль).
А вот в самой js (jquery.changeoffer.js) сделать проверку на "0" (ноль).
Там где :

//Сменим артикул и цену
$.each(list, function(selector, cost) { 
    $(selector, context).text(cost);
});

Сменим на:
//Сменим артикул и цену

$.each(list, function(selector, cost) { 
    if (cost){ //Если цена больше нуля
       $(selector, context).text(cost);
   }else{
       $(selector, context).text('');
   }
});

2,306

(6 ответов, оставленных в Вопросы по работе с системой)

Ольга пишет:

А что изменяется в темах при обновлении? Номера тоже увеличиваются.

Там в основном подправляют мелкие ошибки, но бывает, что исправления например касаются отображения или действия функцию на мобильной версии при адаптации.

2,307

(18 ответов, оставленных в Вопросы по работе с системой)

Дело вот в чём. Предполагается, что если вы предоставляете скидку на товар, то она распространяется на все его комплектации. Поэтому мы возвращаем зачёркнутую цену соответственно правилу в комплектации.
У Вас стоит в комплектации для зачёркнутой цена равна "+" 0(пустое поле - тоже ноль) рублей от зачёркнутой цены базовой комплектации.
Соответственно, если мы хотим, чтобы в зачёркнутой цене не было значения (0), то надо поменять знак с "+" на "=", тогда в зачёркнутую цену пойдёт 0, т.к. поле со значением в комплектации пустое, а уже в шаблоне можно проверить на равность нулю.
Строки:

data-change-cost='{ 
                                        ".offerBarcode": "{$offer.barcode|default:$product.barcode}",
                                        ".myCost": "{$product->getCost(null, $key)}",
                                        ".lastPrice": "{$product->getCost('Зачеркнутая цена', $key)}"
                                    }' 

Эти строки подхватывает javascript обработчик, который перебором из данного объекта выставляет значение элементам по классу (вы можете детально посмотреть это в файле jquery.changeoffer.js в свой теме оформления). Мы знаем, что в Зачёркнутую цену пойдёт 0, поэтому на него и проверим.

{$lastprice=$product->getCost('Зачеркнутая цена', $key)}
data-change-cost='{ 
                                        ".offerBarcode": "{$offer.barcode|default:$product.barcode}",
                                        ".myCost": "{$product->getCost(null, $key)}",
                                        {if $lastprice}
                                            ".lastPrice": "{$product->getCost('Зачеркнутая цена', $key)}"
                                        {/if}
                                    }' 

И еще, как сделать чтобы в блоке Акция выводилась всегда цена со скидкой, а не цена первой комплектации.

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

{if $product->isOffersUse()} {*Проверяем есть ли комплектации и одновременно загружаем их*}
    {foreach from=$product.offers.items key=key item=offer name=offers} {* Перебираем их *}
          {$lastprice=$product->getCost('Зачеркнутая цена', $key)} {*Получаем зачёркнутую цену для нужной комплектации*}
          {if $lastprice} {*Если зачёркнутая цена существует и она больше нуля*}
              {$product->getCost(null, $key)} {*Выводим базовую цену нужной комплектации*}
          {/if}   
    {/foreach}  
{/if}

2,308

(6 ответов, оставленных в Вопросы по работе с системой)

У нас когда кнопка горит, что есть обновления и вы её нажимаете, то осуществляется переход на страницу с обновлениями. На этой странице справа напротив каждого модуля, есть ссылка "Подробнее". Если её нажать, то можно увидеть какие именно были сделаны изменения.  Вас точно интересует именно 15.06.2015? Или всё же 15.07.2015?

Не за что)

Понял закономерность. Цена не выводится у тех товаров, у которых есть комплектации. У товаров без комплектаций все в порядке.
----
Что-то очень странное у Вас.
Конструкция $product->getCost('Розничные цены'), всегда возвращает цену у комплектации основной. Конструкция, что я привел работает.

Я так подозреваю, что вы пытаетесь у товара сменить комплектацию и Вам пишем 0 рублей на Розничные цены.
Так? А для нулевой комплектации всё в порядке.
Если да, то обратите внимание в файле шаблона на строки с

data-change-cost

Они отвечают как раз за смену комплектаций, а именно за смену на нужную цену при их переключении, у Вас там что написано? Я так полагаю у Вас там берётся не та цена.

Что-то очень странно... вверху у вас не выводится. А в конструкции с var_dump выводит. Т.к. var_dump всего лишь выводит значение и его формат. Могу предположить что где-то ошиблись с написании.
Попробуйте так:

{assign var=last_price value=$product->getCost('Розничные цены', null, false)}
{if $last_price>0}<div class="lastPrice">{$product->getCost('Розничные цены')}</div>{/if}

2,312

(3 ответов, оставленных в Вопросы по работе с системой)

Как функционал  "покупки в 1 клик" из модуля Каталог перенести в модуль Магазин?
Все же покупка это покупка, а не свойства товара...
Пусть он падает как заказ но с пустыми полями (только с заполненным телефоном и используемыми полями).
По сути, заказ в 1 клик - это для тех клиентов, кому нужен звонок

Никак. Он будет в данном модуле, т.к. в редакции "Маркет" и "Гипермаркет" нет модуля "магазин". А для "Витрины" как раз и существует "Покупка в 1 клик", которая находится в модуле "каталог". Т.к. это единственная возможность в витрине купить товар.

Метод getCost('Наименование цены или ничего'), применяет точное соответствие названию цены. У Вас наименование цены совпадает с тем наименованием, что у Вас в системе заведено?
Если в этом методе наименование цены не использовать, а оставить пустым, то вернётся значение цены указанной в системе как по умолчанию.

{$product->getCost()}

У товара указана "Розничная цена"?
Вы можете проверить какой ответ возвращает метод так:

{var_dump($product->getCost())}

2,314

(4 ответов, оставленных в Вопросы по работе с системой)

Кстати, фильтр по части наименования не работает? к примеру  если "bosch wlx20460" искать только по цифрам 20460?
----
Работает. У вас в настройках поиска тип поиска какой стоит?

Решение будет в ближайшем обновлении.

2,316

(6 ответов, оставленных в Вопросы по работе с системой)

Сделал <a data-href="{$router->getUrl('shop-front-myorders')}" class="registrHeader inDialog" title="Мои заказы"></a> - при клике всплывает маленькое окошко в котором кроме крестика ничего нет. Похоже самому не получится, придется к вам обращаться.

Т.к. Вы поставили ссылку не в конструкции проверки авторизованный ли пользователь, у Вас делается запрос на отдачу страницы, где Вы не авторизованны. А пользователь для просмотра своих заказов уже должен быть авторизован.

Хорошо. Мы решим данную проблему.

2,318

(6 ответов, оставленных в Вопросы по работе с системой)

Пути в системе определяют маршруты (грубо говоря маски). Они находятся в папках модулей в файлах
/config/handlers.inc.php в методе getRoute.
Маршрут для /my/orders/ находится в модуле магазина(shop). Вы можете посмотреть данные файлы, чтобы увидеть связь.
Для Вашего случая короткий алиас адреса будет shop-front-myorders .

Иван пишет:
admin пишет:

Изображения здесь не причем. мы все JS обновили. (менеджер изображений - имеется ввиду тот, что в визуальном редакторе)
В движке проблем с весом изображений никогда не было.

К сожалению, проблема есть - вес изображений для карточки товаров увеличивается в два раза. Что значительно влияет на скорость загрузки страницы.

Эта "проблема" на данный момент не решаема из-за ограничений PHP, пока способа интеллектуально через PHP уменьшать фото не существует. Вы можете уменьшить фото, только уменьшив качество изображения в специальных настройках движка, больше никак.

2,320

(13 ответов, оставленных в Вопросы по работе с системой)

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

Я думаю это будет наиболее правильно и красиво.

2,321

(13 ответов, оставленных в Вопросы по работе с системой)

Юрий пишет:

При использовании многомерной комплектации, как назначить самому основную комплектацию?

Основная комплектация, это комплектация с сортировочным индексом равным 0 (ноль). Все комплектации имеют индекс начиная от нулевой.

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

Как это сделать?

У нас в Каталоге товаров есть в правом верхнем углу выгрузка в CSV. И там как раз есть выгрузка комплектаций. Выгрузите её и измените сортировочный индекс в получившемся файлике. После чего произведите импорт данного файла обратно.

Там же я думаю и будет удобнее делать цену разным комплектациям.

2,322

(13 ответов, оставленных в Вопросы по работе с системой)

По товару такому как (Экран, карниз, смеситель врезной, подголовник, ручки хром или полеуритан, торцевой экран) да я согласен что можно внести в сопутствующие товары) хотя проще было бы находясь в позиции просто проставить галочки что им нужно и цена менялась.
А как мне предлагать комплектовать товар функциями такими как (гидромассажи, айромассажи, спинные массажи, подсветку, хромотерапию, датчик сухого пуска, кран спины, режим турбо, электронный пульт управления) это всё врезается на заводе по усмотрению клиента и отдельно не продаётся. На каждую ванну своё количество форсунок и разная цена одной и той же позиции.
А так бы просто находясь в товаре ставил галочки клиент что ему нужно, и видел сколько это стоит.
Пример я уже писал: http://www.confurn.ru/vanny/akrilovye-v … 38471.html

Тут надо наверное сделать многомерными комплектациями. Можно обойтись стандартными средствами и так как вы сделали. Но в идеале, конечно можно переделать на Ваш тип, ну тут надо переверстать шаблон товара (product.tpl) и разобраться с js которая отвечает за смену комплектаций (jquery.changeoffer.js).
Т.е. без программирования тут не как, т.к. у Вас не простой случай, надо подгонять под Вас. Вы можете обратиться к сторонним разработчикам, сделать самостоятельно, если Вы программист или заказать доработку нам на helpdesk.readyscript.ru

2,323

(13 ответов, оставленных в Вопросы по работе с системой)

Остаётся понять. Вы вручную заводите товар, или у Вас есть база 1С из которой вы выгружаете, или Мой склад Вы подключили?

2,324

(13 ответов, оставленных в Вопросы по работе с системой)

Сделать позицию: добавить ножки (цена изменится), добавить экран (цена изменится), добавить сифон (цена изменится)
просто ставить цену ножек и она будет прибавляться к цене ванны
Пробовал сделать больше комплектаций добавил гидромассаж, айромассаж, подсветку, гидромассаж спины, подголовник, ручки и т.д. Нажал кнопку создать комплектации и обалдел. Одна ванна а ценников нужно самому внести больше ста штук.
Взял калькулятор, каждый ценник складывал в одну цену и вписывал. А тут ещё такой подвох с обновлением вышел. У меня вообще руки опустились.
Подскажите неужели все так мучаются, или есть способ проще?

Вообще обычно это делают сопутствующими товарами. Т.е. у товара есть вкладка сопуствующие товары. Когда человек ложит товар в корзину, то в корзине появляется товар и к нему данные сопуствующие товары со своей ценой и всё прекрасно складывается в зависимости от того, что он выбрал.

2,325

(13 ответов, оставленных в Вопросы по работе с системой)

А вы из 1С обновляете товары с комплектациями?
У вас обновление чего прошло товаров?
Или обновление системы?