2,101

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

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

2,102

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

У нас поднимались вопросы по мультисайту и партёрским сайтам.
http://forum.readyscript.ru/topic/452/p … -dopsaity/
http://forum.readyscript.ru/topic/504/

Здравствуйте!
Подскажите как использовать партнерский сайт. Если указываю основной домен, меняется сайт для всех.

Что означает, меняется сайт для всех?

2,103

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

А у Вас какая тема оформления стоит?

2,104

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

Вы хотите саму статью на сайте отобразить в блоке, или список статей? Или Вам нужен ещё пункт меню?
Руководства все доступны в самом верху Вашего экрана smile

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

Да. Проверил. Тестировал уже на своё магазине.

У Вас последняя версия RS?

Добавили условие для наложенного платежа. Выйдет в ближайшем обновлении. Будет действовать на новые заказы.

Да. Вам нужен шаблон
/templates/young/users/profile.tpl, там тоже самое, что и в шаблоне с регистрацией.

<div class="userType">
        <input type="radio" id="ut_user" name="is_company" value="0" {if !$user.is_company}checked{/if}><label for="ut_user">Частное лицо</label>
        <input type="radio" id="ut_company" name="is_company" value="1" {if $user.is_company}checked{/if}><label for="ut_company">Компания</label>
    </div>   

меняем на

<div class="userType">
        <input type="radio" id="ut_user" name="is_company" value="0" {if !$user.is_company}checked{/if}><label for="ut_user">Частное лицо</label>
    </div>   

Извините за долгий ответ.
Вам необходимо из шаблоны вырезать те вещи которые отвечают за функционал юр. лица. Шаблон, который отвечает за вывод страницы с вводом адреса это:
/templates/young/moduleview/shop/checkout/address.tpl

Найдите там:

<ul class="centerBlock">
                <li class="user first"><input type="radio" id="type-user" name="user_type" value="person" {if $order.user_type=='person'}checked{/if}><label for="type-user">Частное лицо</label></li>
                <li class="company"><input type="radio" id="type-company" name="user_type" value="company" {if $order.user_type=='company'}checked{/if}><label for="type-company">Компания</label></li>
                <li class="noregister"><input type="radio" id="type-noregister" name="user_type" value="noregister" {if $order.user_type=='noregister'}checked{/if}><label for="type-noregister">Без регистрации</label></li>
                <li class="account"><input type="radio" id="type-account" name="user_type" value="user" {if $order.user_type=='user'}checked{/if}><label for="type-account">Я регистрировался ранее</label></li>
            </ul>

И замените на:

<ul class="centerBlock">
                <li class="user first"><input type="radio" id="type-user" name="user_type" value="person" {if $order.user_type=='person'}checked{/if}><label for="type-user">Частное лицо</label></li>
                <li class="noregister"><input type="radio" id="type-noregister" name="user_type" value="noregister" {if $order.user_type=='noregister'}checked{/if}><label for="type-noregister">Без регистрации</label></li>
                <li class="account"><input type="radio" id="type-account" name="user_type" value="user" {if $order.user_type=='user'}checked{/if}><label for="type-account">Я регистрировался ранее</label></li>
            </ul>

После чего сохраните и сбросьте кэш.

Шаблон от вечающий за регистрацию общую это :
/templates/young/moduleview/users/register.tpl

Найдите там:

<div class="userType">
            <input type="radio" id="ut_user" name="is_company" value="0" {if !$user.is_company}checked{/if}><label for="ut_user">Частное лицо</label>
            <input type="radio" id="ut_company" name="is_company" value="1" {if $user.is_company}checked{/if}><label for="ut_company">Компания</label>
        </div>

И замените на:

<div class="userType">
            <input type="radio" id="ut_user" name="is_company" value="0" {if !$user.is_company}checked{/if}><label for="ut_user">Частное лицо</label>
        </div>

Единственный момент... Т.к. темы оформления у нас обновляются, Вам надо отклонировать Вашу тему оформления и работать в своей папке. Для этого перейдите в Управление->Шаблоны->Справа вверху - Клонировать тему оформления и отклонируйте со своим именем. Плюс не забудьте отметить галочку - переключиться на тему оформления.

После этого можете править тему оформления в своей папке с темой.

Но с JS вы "здорово" придумали.

А как бы вы реализовали бы данные вещи? Без JS. smile

Нет. Доберёмся. Я Вам отвечу.

Где стрелка - там показывается комплектация цвет, а называется фото.

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


Кстати, а чем вас prev() не устраивает? По-моему, хороший метод. Сам не проверял, но по логике, должен работать в разы быстрее чем closest() так как объекты на prev и next у каждого объекта jquery при инициализации прописываются.

Дело в том, что prev и next это неточные обращения. Особенно если, кто-то захочет поменять вёрстку, то надо будет и javascript Ваш менять, и несколько раз допустим прописывать ещё prev prev prev. А если обращаться по идентификатору, как указано выше или через closest, то можно имея класс или идентификатор сразу обратиться к нужному элементу, не особо следя за вёрсткой.

Скажите, а предусмотрена ли (или может в планах) такая вещь, как скрытие пустых комплектаций (с 0 остатком)? Чтобы при смене, например, цвета, менялся и список остальных свойств, в зависимости от наличия на складе.

Да, в этом году поставлено задачей.

И еще вопрос - у вас в демках и в моей теме тоже остатки отображаются стиками, индикатором, возможно ли как то быстро отказаться от этой системы, и выводить остатки обычным числом?

Можно. Но нужно немного допилить js и вёрстку. Остатки по складам, присутствуют у каждой комплектации. Догрузить из можно с помощью двух методов у объекта товара

$full_stock=$product->getWarehouseFullStock() - остатки общие для комплектациям по складам

и

$offers_stock=$product->getWarehouseStock() - остатки по складам и комплектациям

Плюс у комплектаций есть поле num с общим остатком по складам.

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

Товар также обладает полем num - общий остаток по всем складам.

2,114

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

Комплектация там выбирается верная. Просто там прописано, что будет выводится. артикул самого товара. Мы внесли исправления в шаблоны, чтобы отображались артикулы комплектаций. Это будет в ближайшем обновлении.
Однако, т.к. fashion(молодежная тема) является единственной не обновлённой, то Вам надо открыть шаблон:

/templates/fashion/moduleview/shop/cartpage.tpl

И заменить ДВЕ записи

{if $product.barcode}<p class="barcode">Артикул: {$product.barcode}</p>{/if}

на

{$offer_barcode=$product->getBarcode($cartitem.offer)}
{if $offer_barcode}{* Артикул комлпектации *}
     <p class="barcode">Артикул: {$product->getBarcode($cartitem.offer)}</p>
{elseif $product.barcode} {* Артикул товара *}
      <p class="barcode">Артикул: {$product.barcode}</p>
{/if}

Получилось?

2,116

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

Пока никак. Поэтому мы добавили такую возможность. И в ближайшем обновлении добавиться колонка с дополнительными полями. Поэтому ожидайте обновления.

Ну в шаблоне по умолчанию вроде у нас всё работает. Попробуйте, свой шаблон убрать и отобразить, тот что должен по умолчанию.
значения которые вы указали
Назначаются в этом коде

$(data.options.hiddenOffersName,context).each(function(i){

Попробуйте его подебажить, может у Вас что-то не то выбирается.
И на всякий случай Возьмите ещё код jquery.changeoffer.js из дефолтной темы.

Что касается Вашего кода. Ваших ссылках записать во первых в data id(идентификатор) выпадающего списка, который реализует отображение вариантов с выбором, тогда можно считать точный селектор того выпадающего списка. И в другой data записать значение, которое нужно выбрать из этого списка. Т.е. при нажатии на вашу ссылку, вы сразу знаете какой выпадающий список и его значение нужно применить. Применяете это значение к селекту и уже у него вызываете событие change. Тогда код по идее точно отработает. Возможно, что вы просто не тому селекту присваиваете значения.
Попробуйте покосолеложить выбранные селекты.

Вам нужен файл jquery.changeoffer.js

Денис пишет:

$(this).parent().prev()

этого кода вообще там не должно быть, он находится здесь http://22.groupvm.z8.ru/templates/autof … s/theme.js
он там и есть, только не работает

сейчас сделаю как вы советуете.

Странно, т.к. он приведён в Вашем коде выше с модальным окном в самом низу.

$('[name="offer"]').changeOffer({
                multiOffers: true
            });

Вам признак  multiOffers: true здесь не нужен. Скрипт всё должен и так подхватить. Можно просто оставить

$('[name="offer"]').changeOffer();

theme.js у Вас срабатывает. У Вас в шаблоне используются многомерные комплектации. Поэтому Вам надо посмотреть метод changeMultiOffer.
Попробуйте использовать console.log и вывести для себя, заходит ли в этот метод JS и посмотрите, что у Вас в переменных. Возможно у Вас просто не инициализируются по классам переменные. Попробуйте повыводить их значения с помощью console.log() в Firebug

Не используете $(this).parent().prev()
Логичнее использовать $(this).closest('Класс нужного объекта'), или siblings

Денис пишет:

Я все проверил и похоже на то, что не работает JS из плагина changeoffers в модале. Да и вообще никакой JS, кроме того, который написан в теле модала, не отрабатывает. Похоже, что надо или JS'ом, или через Smarty подгружать необходимые в модале скрипты. Но {addjs}, не работает в модале, что, кстати, не удивительно...

Я не понимаю, почему не отрабатывает JS событие заданное через $.on()? Этот метод, по-моему, специально для таких модалов и всяких появляющихся элементов был разработан ($.live() помните?).

Уверен, что вы мне подскажете самый быстрый вариант из возможных))

Не нужно всё и так будет работать. live - метод который является depricated, т.е. устаревшим и его уже нет в jquery

hidden_offers в вашем случае не используется, используется конструкция ниже. А именно:

{elseif $product->isOffersUse()}
                {* Простые комплектации *}
                <div class="packages">
                    <div class="package">
                        <span class="pname">{$product.offer_caption|default:'Комплектация'}</span>
                        <div class="values">
                            {if count($product.offers.items)>5}
                                <select name="offer">
                                    {foreach from=$product.offers.items key=key item=offer name=offers}
                                    <option value="{$key}" {if $smarty.foreach.offers.first}checked{/if} {if $check_quantity}data-num="{$offer.num}"{/if} data-change-cost='{ ".myCost": "{$product->getCost(null, $key)}", ".lastPrice": "{$product->getOldCost($key)}"}' data-images='{$offer->getPhotosJson()}' data-sticks='{$offer->getStickJson()}'>{$offer.title}</option>
                                    {/foreach}
                                </select>
                            {else}
                                {foreach from=$product.offers.items key=key item=offer name=offers}
                                    <div class="packageItem">
                                        <input value="{$key}" type="radio" name="offer" {if $smarty.foreach.offers.first}checked{/if} id="offer_{$key}" {if $check_quantity}data-num="{$offer.num}"{/if} data-change-cost='{ ".myCost": "{$product->getCost(null, $key)}", ".lastPrice": "{$product->getOldCost($key)}"}' data-images='{$offer->getPhotosJson()}' data-sticks='{$offer->getStickJson()}'/>
                                        <label for="offer_{$key}">{$offer.title}</label>
                                    </div>
                                {/foreach}
                            {/if}
                        </div>
                    </div>
                </div><br>
            {/if}

jquery.changeoffer.js у Вас должен подключаться в list_product.tpl - шаблон со списком товаров общий в модуле catalog.

вы не туда смотрите. Смотрите ниже data-change-cost