В интернете наткнулся на следующий модуль
http://beagler.ru/joomshopping/plagin-n … pping.html
Возможно кому-то понравится эта идея, и он разработает модуль, с последующим размещением в маркетплесе readyscript
201 28.03.2016 13:18:17
Тема: Идея для модуля "Намекнуть мужу" (2 ответов, оставленных в Сторонние модули, темы оформления для ReadyScript)
202 28.03.2016 12:16:44
Re: Шаблон страницы сравнения (4 ответов, оставленных в Вопросы по работе с системой)
У вас какая тема оформления?
На основе молодёжной
{$app->setBodyClass('comparePageBody')}
{addjs file="{$mod_js}jquery.compareshow.js" basepath="root"}
{addjs file="jquery.changeoffer.js"}
{$shop_config=ConfigLoader::byModule('shop')}
{$check_quantity=$shop_config->check_quantity}
{$app->setBodyClass('compareBody')}
{if count($comp_data.items)}
<div class="comparePage" id="compareShow" data-compare-url='{ "remove":"{$router->getUrl('catalog-front-compare', ["Act" => "remove"])}" }'>
{* Логотип *}
{moduleinsert name="\Main\Controller\Block\Logo" width="200" height="75"}
<table class="compareHead">
<tr>
<td class="compareKey">
<a class="button print">Распечатать</a>
</td>
{foreach $comp_data.items as $product}
{$imglist=$product->getImages(false)}
<td class="compareItem{if !$product->isAvailable()} notAvaliable{/if}" data-id="{$product.id}">
<div class="image{if count($imglist)>1} activelist{/if}">
{foreach $imglist as $image}
<img src="{$image->getUrl(188, 258)}" {if !$image@first}class="hidden"{/if} alt=""/>
{/foreach}
{if !count($imglist)}
<img src="{$product->getImageStub()->getUrl(226,236)}" alt="">
{/if}
</div>
<div class="actions">
<span class="title">{$product.title}</span>
{if $product.multioffers.use}
{* Многомерные комплектации *}
<div class="multiOffers">
{foreach $product.multioffers.levels as $level}
{if !empty($level.values)}
<div class="multiofferTitle">{if $level.title}{$level.title}{else}{$level.prop_title}{/if}</div>
<select name="multioffers[{$level.prop_id}]" data-prop-title="{if $level.title}{$level.title}{else}{$level.prop_title}{/if}">
{foreach $level.values as $value}
<option value="{$value.val_str}">{$value.val_str}</option>
{/foreach}
</select>
{/if}
{/foreach}
</div>
{if $product->isOffersUse()}
{foreach from=$product.offers.items key=key item=offer name=offers}
<input value="{$key}" type="hidden" name="hidden_offers" class="hidden_offers" {if $smarty.foreach.offers.first}checked{/if} id="offer_{$key}" data-info='{$offer->getPropertiesJson()}' {if $check_quantity}data-num="{$offer.num}"{/if} data-change-cost='{ ".offerBarcode": "{$offer.barcode|default:$product.barcode}", ".myCost": "{$product->getCost(null, $key)}", ".lastPrice": "{$product->getOldCost($key)}"}'/>
{/foreach}
<input type="hidden" name="offer" value="0"/>
{/if}
{elseif $product->isOffersUse()}
{* Простые комплектации *}
<div class="offer">
<select name="offer">
{foreach from=$product.offers.items key=key item=offer name=offers}
<option value="{$key}" {if $check_quantity}data-num="{$offer.num}"{/if} data-change-cost='{ ".myCost": "{$product->getCost(null, $key)}", ".lastPrice": "{$product->getOldCost($key)}"}'>{$offer.title}</option>
{/foreach}
</select>
</div>
{/if}
<div class="price"><span class="myCost">{$product->getCost()}</span> {$product->getCurrency()}</div>
<div class="unobtainable">Нет в наличии</div>
{if $shop_config}
<a data-href="{$router->getUrl('shop-front-cartpage', ["add" => $product.id])}" data-add-text="Добавлено" class="button addToCart noShowCart">В корзину</a><br>
{/if}
<a title="Исключить из сравнения" class="remove removeItem"><span>удалить</span></a>
</div>
</td>
{/foreach}
</tr>
</table>
<div class="compareLines">
{foreach $comp_data.values as $group_id=>$values}
<p class="group">{$comp_data.groups[$group_id].title|default:t('Общие')}</p>
<table class="lines">
{foreach $values as $prop_id=>$product_values}
{if !$comp_data.props[$prop_id].hidden}
<tr>
<td class="compareKey"><div class="w">{$comp_data.props[$prop_id].title}{if $comp_data.props[$prop_id].unit}, {$comp_data.props[$prop_id].unit}{/if}</div></td>
{foreach $product_values as $product_id=>$prop}
<td class="compareItem" data-id="{$product_id}">
<div class="w">{if $prop}{$prop->textView()}{else}-{/if}</div>
</td>
{/foreach}
</tr>
{/if}
{/foreach}
</table>
{/foreach}
</div>
</div>
{else}
<div class="noEntity">
Добавьте товары для сравнения
</div>
{/if}
203 26.03.2016 14:32:27
Тема: Шаблон страницы сравнения (4 ответов, оставленных в Вопросы по работе с системой)
Подскажите как сделать, чтобы страница сравнения использовала основной макет?
Сейчас используется макет из файла /moduleview/catalog/compare.tpl
55opt.org/compare/
Хочется чтобы всё было обёрнуто в общий макет, как каталог или страница товара
204 26.03.2016 09:54:57
Тема: Оптимизация скорости сайта (0 ответов, оставленных в Вопросы по работе с системой)
Есть ли возможность в облаке заняться оптимизацией сайта.
Смотрим сюда
https://developers.google.com/speed/doc … ching#----
205 22.03.2016 13:40:44
Re: Количество товара для добавления в корзину (5 ответов, оставленных в Вопросы по созданию тем оформления)
Ответ:
Всё гораздо проще чем Вы думаете:) ....
Почти идеально.
Осталась проблема с /moduleview/shop/cartpage.tpl
Функция увеличения
incProduct = function() {
if (!$cartBlock.hasClass(data.options.inLoadingClass)){
var amountField = $(this).closest(data.options.amountWraper).find(data.options.amountField);
var amountTextField = $(this).closest(data.options.amountWraper).find(data.options.amountTextField);
amountField.val( (+amountField.val())+1 ).keyup();
amountTextField.text( amountField.val() );
и соответственно уменьшения
decProduct = function() {
if (!$cartBlock.hasClass(data.options.inLoadingClass)){
var amountField = $(this).closest(data.options.amountWraper).find(data.options.amountField);
var amountTextField = $(this).closest(data.options.amountWraper).find(data.options.amountTextField);
if ((+amountField.val())>1) {
amountField.val( (+amountField.val())-1 ).keyup();
amountTextField.text( amountField.val() );
}
}
return false;
},
Будем думать
206 22.03.2016 12:32:54
Re: Количество товара для добавления в корзину (5 ответов, оставленных в Вопросы по созданию тем оформления)
Ответ:
Всё гораздо проще чем Вы думаете:) Нужно просто у контейнера который оборачивает сведения о товаре указать атрибут data-id="id товара". И тогда все дейтсвия будут действовать в рамках этого контейнер. Ну например:<div data-id="5"> .... Ваш инпут с количеством ... </div>
Здорово!!! То, что нужно
{foreach $product->fillProperty() as $data}
{foreach $data.properties as $property}
{if !$property.hidden && $property.id==347 && $current_user->inGroup('optoviki')}
<div data-id="{$product.id}">
<input class="amount-hide" type="text" name="amount" value="{$property->textView()}">
</div>
{/if}
{/foreach}
{/foreach}
207 22.03.2016 10:29:22
Тема: Количество товара для добавления в корзину (5 ответов, оставленных в Вопросы по созданию тем оформления)
Здравствуйте!
В продолжении решения проблемы: торговля упаковками, т.е. несколько штук.
Было придумано следующее решение в 1с создан доп.реквизит "Количество штук в упаковке "
В ReadyScript - соответственно выгружается как характеристика.
В на странице товара удалось заставить сайт добавлять в корзину нужное количество товаров с помощью следующего кода
{foreach $product->fillProperty() as $data}
{foreach $data.properties as $property}
{if !$property.hidden && $property.id==347 && $current_user->inGroup('optoviki')}
<input class="amount-hide" type="text" name="amount" value="{$property->textView()}">
{/if}
{/foreach}
{/foreach}
Где $property.id - ИД характеристики на сайте (см. Товары->характеристики)
Формируется поле ввода, в нашем случае мы скрыли его display:none;
ВОПРОС:
Что нужно изменить в common.js
Чтобы можно было уникализировать name для input, так как на странице, где несколько товаров данное решение работает не корректно.
Т.е. мы видим что всё будет работать если будет
<input class="amount-hide" type="text" name="amount{$product.id}" value="{$property->textView()}">
Тогда соответственно код из common.js
var amount = $('[name="'+data.options.amountFormName+'"]', context).val();
не будет работать.
Как нам прилепить {$product.id} в выше приведенный кусок кода.
Спасибо!
208 17.03.2016 13:45:23
Re: Два сайта (7 ответов, оставленных в Вопросы по работе с системой)
Мы на сайте показываем ровно, то что отдаёт 1С. Вам надо обратиться к 1Снику, чтобы выгружала упаковками. Либо сделать разными товарами. И выгружать их отдельно.
Я понял, что это в 1С надо настроить, думал может быть кто-то сталкивался. Подскажут
209 16.03.2016 18:15:02
Re: Дата изменения товара (6 ответов, оставленных в Вопросы по работе с системой)
Попробуйте со стороны 1с сделать доработку.
Мы думали сделать через характеристики, но это как говорится "костыль"
210 16.03.2016 15:26:10
Re: Два сайта (7 ответов, оставленных в Вопросы по работе с системой)
Подскажите есть у Вас информация как выгрузить на сайт товар с несколькими ед.изм?
---
Что за товар?
Игрушка №1 цена 120 руб. за 1 штуку
В 1С создана упаковка для этого товара "Коробка" - содержит в себе 10 шт. - цена за коробку 1200 руб.
Мы хотим сделать второй сайт, на котором продаваться товар будет упаковками, т.е. нужно чтобы выгрузилась ед.измерения не штука, а коробка
211 16.03.2016 14:11:42
Re: Фильтр по характеристикам (6 ответов, оставленных в Вопросы по работе с системой)
Как это добавить характеристики в группе товаров? И такой галочки у меня НЕТ
Подскажите пожалуйста поподробнее.
В админке переходим в каталог товаров.
Слева жмем редактировать карандаш категорию "Все"
Там жмём добавить характеристику
212 16.03.2016 13:19:59
Re: Два сайта (7 ответов, оставленных в Вопросы по работе с системой)
Лицензия на продукт позволяет открыть 2 сайта в рамках мультисайтовости. Это означает, что оба сайта будут работать на одной физической копии платформы ReadyScript. Весь контент на мультисайтах будет разным - товары, новости, пункты меню, однако общими будут только пользователи.
Т.е. отвечаю на ваш вопрос - с помощью мультисайтовости можно сделать фактически 2 разных магазина по разному на них настроить единицы измерения, товары вам придется продублировать на оба сайта, так как контент никак не связан у мультисайтов.
В облаке - не существует мультисайтовости. Там 1 сайт = 1 облачный аккаунт. Соответственно если вы хотите открыть 2 сайта в облаке - вы это можете сделать. Они будут полностью независимы и отдельно тарифицированы.
Подскажите есть у Вас информация как выгрузить на сайт товар с несколькими ед.изм?
213 16.03.2016 12:26:31
Re: Фильтр по характеристикам (6 ответов, оставленных в Вопросы по работе с системой)
Подскажите, можно ли добавить дополнительные фильтры по характеристикам, кроме бренда и цены?
Можно
Для этого нужно заполнить характеристики у товаров.
После этого нужно добавить характеристики в группе товаров и поставить галочку "отображать в поиске на сайте"
Почистить КЭШ
214 15.03.2016 15:59:46
Тема: Два сайта (7 ответов, оставленных в Вопросы по работе с системой)
Подскажите правильно ли я понял, что купив лицензию можно использовать два разных сайта?
Конкретно интересует следущее:
Хотели бы разделить сайт на два:
Один Розничный и Мелкий опт, другой Крупный опт
Разница только в том, на первом сайте продажа поштучно на втором тот же товар, но ед.изм. в упаковках, коробках и т.д.
Возможно ли это реализовать с одной лицензией?
Возможно ли это сделать в облаке?
215 11.03.2016 18:33:57
Re: Скопировать шаблон для модуля? (4 ответов, оставленных в Вопросы по работе с системой)
создайте файл в Вашей теме оформления с таким же содержимым по пути:
/templates/ВАША ТЕМА/moduleview/pricelist/pricebranch.tplЕго можно редактировать и он меняться не будет.
Работу с шаблонами можно изучить здесь:
http://readyscript.ru/text-blog/Kak-soz … adyScript/
Понял, спасибо! То, что нужно
216 11.03.2016 18:26:24
Re: Скопировать шаблон для модуля? (4 ответов, оставленных в Вопросы по работе с системой)
Укажите путь к шаблону, который нужно скопировать.
Модуль прайс-лист из маркета файл pricebanch.tpl
217 11.03.2016 13:26:23
Тема: Скопировать шаблон для модуля? (4 ответов, оставленных в Вопросы по работе с системой)
Подскажите, можно ли как-то скопировать шаблон для модуля.
Т.е. установил модуль "Прайс-лист"
Подправил шаблон как мне нужно было, а потом в какой-то момент смотрю, а моих исправлений нет. Видимо обновили модуль и всё потерялось что делалось, для шаблона сайта проблему решить удается через "Клонировать тему", а как для модуля?
Сайт в облаке
218 10.03.2016 15:15:31
Re: Дата изменения товара (6 ответов, оставленных в Вопросы по работе с системой)
Решается просто. В моделе надо навесить обработку события на сохранение товара и на окончание импорта 1с (чтобы раскидать по спецкатегориям, например).
function init() { $this ->bind('exchange.gate.afterimport.all')//событие после импорта 1c ->bind('orm.beforewrite.catalog-product');//перехватываем сохранение товара }
Пример для простановки даты создания товара. Аналогично тут можно сравнить старую и новую цену и сделать еще что-либо
public static function ormBeforewriteCatalogProduct(array $params, \RS\Event\Event $event) { if ($params['flag'] == \RS\Orm\AbstractObject::INSERT_FLAG) { //Если это добавление товара /** * Получаем из параметра ORM объект * @var \Catalog\Model\Orm\Product */ $product = $params['orm']; if (!isset($product->dateof)) $product->dateof=date('Y-m-d H:i:s') ; } }
Вот пример того, как раскидать товары по спецкатегориям:
public static function exchangeGateAfterimportAll() { $router = \RS\Router\Manager::obj(); if (\Setup::$INSTALLED) { $config = \RS\Config\Loader::byModule('users'); $new_days = 20;//$config['new_days']; пусть будет 20 дней $dir_new=2;//id спецкатегории "новинки" ///добавляем товары в спецкатегории //удалим связи с новинками \RS\Orm\Request::make() ->delete() ->from(new \Catalog\Model\Orm\Xdir()) ->where("dir_id in (".$dir_new.")") ->exec(); $xdir_table = \RS\Orm\Tools::getTable( new \Catalog\Model\Orm\Xdir() ); $product_table = \RS\Orm\Tools::getTable( new \Catalog\Model\Orm\Product() ); \RS\Db\Adapter::sqlExec( "INSERT IGNORE INTO {$xdir_table} (product_id, dir_id) SELECT wp.id,{$dir_new} FROM {$product_table} wp WHERE TO_DAYS(NOW()) - TO_DAYS(wp.dateof) <= ".$new_days); } }
У нас сайт в облаке. Получается нельзя?
219 10.03.2016 12:51:34
Тема: Дата изменения товара (6 ответов, оставленных в Вопросы по работе с системой)
Здравствуйте!
Подскажите как можно отфильтровать (отсортировать) по дате изменения
Т.е.
Необходимо следующее:
После обмена с 1С, товары вновь созданные, которых ещё не было и товары у которых произошли изменения (цена) необходима возможность на сайте выводить эти товары в отдельный блок. Например "Новые поступления", как это сделать?
220 09.03.2016 12:34:40
Re: SEO оптимизация (15 ответов, оставленных в Вопросы по работе с системой)
Подскажите как можно изменить формат цены, которая добавляется в title?
Объясняю:
По умолчанию в RS цена форматируется так 10 000 - когда 10 т.р.
В шаблоне удалось поколдовать и вывести так как нужно, если 2350 руб. - то 2350 , а если 4,5 руб. - то 4,50
А TITLE добавляется 2 350 соответственно при цене 2350 руб.
221 29.02.2016 14:42:27
Тема: Watermark как настроить? (1 ответов, оставленных в Вопросы по работе с системой)
Здравствуйте!
Очень мучает одна проблема. Настроили автоматическое прилипание водного знака к фото, но хотелось бы чтобы была возможность на некоторые фото, а именно, те которые в контенте, а не фото товаров.
Если изображение является фотографией к товару - лепим водный знак,
если изображение просто картинка в тексте (или фото баннера) - не лепим водный знак
Можете ли Вы то сделать?
ОЧЕНЬ не удобно каждый раз удалять watermark из настроек системы, а потом снова загружать
222 25.02.2016 08:49:45
Re: Какой тип характеристики? (3 ответов, оставленных в Вопросы по работе с системой)
Это не характеристики. Это отдельным модулем было сделано на заказ. Там есть и специальный раздел с вводом значений и специальными страницами. Там добавляется специальное поле с выбором из раздела.
Ясно. Интересное решение. Поэтому и спросил, думал может в системе реализовано
223 24.02.2016 14:36:24
Тема: Какой тип характеристики? (3 ответов, оставленных в Вопросы по работе с системой)
Подскажите как в CMS настроить характеристики как "Значение по фэн-шуй" на сайте ониточки http://onitochki.ru/product/arabskie-skakuny-33575/
Или это не характеристики?
224 24.02.2016 13:39:47
Re: Генерация URL разная (3 ответов, оставленных в Вопросы по работе с системой)
Это происходит, т.к. при импорте из 1С у заголовка ещё применяется htmlspecialchars, и поэтому quot добавляется. Внесли исправление. Будет в ближайшем обновлении.
а
nastol-nyy
вместо
nastolnyy
По этой же причине?
225 23.02.2016 11:56:35
Тема: Генерация URL разная (3 ответов, оставленных в Вопросы по работе с системой)
Здравствуйте!
Почему 'автоматическая генерация URL' при обмене с 1С
Например товар называется Сувенир настольный "Ангелочки" 15см
делает URL
такой suvenir-nastol-nyy-quot-angelochki-quot-15sm-52207
а если зайти в карточку товара и нажать на кнопку "Транслитерировать заново"
получается suvenir-nastolnyy-angelochki-15sm
Меня волнует вопрос не по ID в конце, а по генерации слова настольный и КАВЫЧКИ->quot
Как настроить систему, что бы URL генерировался
такой suvenir-nastolnyy-angelochki-15sm-52207