701

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

Вот как пример как это сделано в модуле каталог

<?xml version="1.0" encoding="utf-8"?>
<config>
    <defaultValues>    
        <name multilanguage="true">Каталог товаров</name>
        <description multilanguage="true">Администрирование каталога товаров по рубрикам</description>        
        <version>3.0.0</version>
        <author>ReadyScript lab.</author>
        <is_system>1</is_system>
        <dependfrom>photo</dependfrom>

        <list_page_size>12</list_page_size>
        <list_default_order>dateof</list_default_order>
        <list_default_order_direction>desc</list_default_order_direction>
        <hide_unobtainable_goods>N</hide_unobtainable_goods>
        <default_weight>0</default_weight>
        <disable_search_index>0</disable_search_index>
        <concat_dir_meta>1</concat_dir_meta>
        <auto_barcode>a{n|6}</auto_barcode>
        <buyinoneclick>1</buyinoneclick>
        <update_price_round>0</update_price_round>
        <update_price_round_value>0</update_price_round_value>
        <brand_products_specdir>0</brand_products_specdir>
        <brand_products_cnt>8</brand_products_cnt>
        <use_offer_unit>0</use_offer_unit>
        <import_photos_timeout>20</import_photos_timeout>
        <import_yml_timeout>20</import_yml_timeout>
        <show_all_products>0</show_all_products>
        <list_default_view_as>blocks</list_default_view_as>
        <warehouse_sticks>1,5,15,25,50</warehouse_sticks>
        <oneclick_name_required>1</oneclick_name_required>
        <dont_buy_when_null>0</dont_buy_when_null>
        <csv_offer_product_search_field>title</csv_offer_product_search_field>
        <csv_offer_search_field>sortn</csv_offer_search_field>
        <price_like_slider>0</price_like_slider>
        <not_public_product_404>1</not_public_product_404>
        <yuml_import_setting>0</yuml_import_setting>
        <csv_id_fields type="array">
            <value>title</value>
            <value>barcode</value>
        </csv_id_fields>
        <search_fields type="array">
            <value>properties</value>
            <value>barcode</value>
            <value>short_description</value>
            <value>meta_keywords</value>
        </search_fields>        
    </defaultValues>
</config>

Всё что после тега dependfrom это значения по умолчанию для полей. Например для поля с имененем list_page_size Это <list_page_size>12</list_page_size>

702

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

Значения по умолчанию нужно указывать в файле module.xml. У Вас там какие поля?

703

(8 ответов, оставленных в Вопросы по разработке модулей и API системы)

Если Вам нужно диалоговое окно, то Вам проще всего реализовать всё на основе рекомендованных товаров как это сделано при редактировании товара. А именно как у объекта \Catalog\Model\Orm\Product (файл /modules/catalog/model/orm/product.inc.php).

'recommended' => new Type\Varchar(array(
    'maxLength' => 4000,
    'description' => t('Рекомендуемые товары'),
    'visible' => false,
        )),
'recommended_arr' => new Type\ArrayList(array(
    'visible' => false
        )),
t('Рекомендуемые товары'),
    '_recomended_' => new Type\UserTemplate(
                        '%catalog%/form/product/recomended.tpl',
                        '%catalog%/form/product/merecomended.tpl',array(
        'meVisible' => true  //Видимость при мультиредактировании
    )),

   
Вот здесь 3 поля. Два скрытых. И одно, которое отвечает за отображение всей вкладки. Это происходит за счёт того, что используется тип поля UserTemplate. Если вы его используете, то оно распрастраняется полностью на ближайшую вкладку. В данном случае рекомендованные товары.
Первое поле служит для хранения массива товаров или каталогов выбранных в сериализованном виде, а вот второе содержит уже рассериализованный массив, чтобы было удобно с ним работать. Когда товар загружается из базы при его инициализации поле первое рассериализовывается и передаётся
значение во второе.

/**
* Вызывается после загрузки объекта
* @return void
*/
function afterObjectLoad()
{
    if (!empty($this['recommended'])) {
        $this['recommended_arr'] = @unserialize($this['recommended']);
    }
}

Вам нужно будет использовать хук orm.afterload.catalog-product.
При сохранении товара, поле recommended_arr сохраняет сериализованный массив в recommended.

 /**
 * Вызывается перед сохранением объекта
 * 
 * @param string $flag - строковое представление текущей операции (insert или update)
 * @return void
 */
function beforeWrite($flag)
{
    if ($this->isModified('recommended_arr')){ //Если изменялись рекомендуемые
        $this['recommended'] = serialize($this['recommended_arr']);
    }
}

На вкладке отрабатывает шаблон '%catalog%/form/product/recomended.tpl'. %catalog% - путь к папке шаблоном модуля catalog (/modules/catalog/view/). Там вызывается функция getProductDialog, которая принадлежит объекту товара. Она же и выводит нужную Вам кнопку.
Однако эта функция использует поля для рекомендуемых товаров, соответсвенно Вам нужно сделать будет свою функцию просто скопировав и заменив нужное и расширить объект товара, чтобы он видел уже Вашу другую функцию для отображания. Это можно сделать через

behavior

.
https://www.youtube.com/watch?v=7jsv06V … mp;index=4

704

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

Вам в поддержку.

705

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

В данной задаче очень много или и вариаций. Пока такого в стандарте не будет.

706

(30 ответов, оставленных в Сторонние модули, темы оформления для ReadyScript)

Это надо разработчикам писать сразу.

707

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

Конечно всё будет. Ждите. Битрикс на данный момент худший пример по реализации. На данный момент ведутся работы над АТОЛ онлайн.

708

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

Ну Вы хоть ссылку киньте посмотреть. И на каком устройстве тестили открытие списка?

Добрый день. Спасибо за ответ.
Когда ожидается RS 3.0?

Следите для новостями.

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

Напишите в поддержку мы Вам поможем.

710

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

Дело в стилях. ВАм надо разобраться в этом вопросе. Лучше всего Вам поможет в этом вопросе firebug в firefox и урок по назначению стилей. Всё можно найти на youtube.
Сами стили хранятся в style.css в Вашей теме.

711

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

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

712

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

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

713

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

Ну тут же написано.
$(...).selectProduct is not a function
Т.е. не хватает файла selectproduct.js.
Вам надо добавить его через addjs.

{addjs file="%catalog%/selectproduct.js"}

Сам файл лежит в /modules/catalog/view/js/selectproduct.js.

Вообще Вам надо сделать по аналогии с recommended полем у товара(/modules/catalog/model/orm/product.inc.php), там есть как раз диалоговое окно, можно проследить всю реализацию.

714

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

Вы можете попробовать продукт развернув его в облаке за 3 минуты https://readyscript.ru/cloud/.

715

(4 ответов, оставленных в Вопросы по созданию тем оформления)

Ну тогда Ваш шаблон находится в /templates/perfume/moduleview/catalog/blocks/category/category.tpl
В догонку
https://readyscript.ru/text-blog/Kak-so … adyScript/

716

(4 ответов, оставленных в Вопросы по созданию тем оформления)

Как это реализовать? Я вижу вариант, это добавить и указать к каждому товару дополнительную категорию с названием бренда, однако этот способ руками делать очень утомительно (так как надо каждый товар править), а если сделать редакцию категорий массово, то слетят основные категории, так как у ReadyScript не предусмотрена возможность добавить какое-то значение к уже существующему, то есть поменять категории можно, если стереть все уже установленные (кстати, это касается и характеристик - массово добавить новые нельзя, не затерев при этом уже существующие).

При массовом редактировании, есть галочка над категориями, сохранить ранее установленные связи.

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

Вы можете перегрузить шаблон блока списка категорий и просто добавить нужную ссылку (Все бренды). Я думаю это самый лучший вариант. Какая у Вас тема оформления.

717

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

На данный момент.

Денис пишет:

1) Допустим берем товар https://mega.readyscript.ru/product/plate-savage/ -
1.1) для чего в блоке Характеристики заполняется свойство Цвет - Желтый. Только для отображения на сайте в строке Цвет Желтый или для построения каких то комплектаций? Можно ли его не заполнять?

Это просто характеристика в данном случае указанная у товара. Платье в данном случае только желтое, отличается только размер который и является комплектацией. В этих комплектациях заполнены параметры с размером и названия комплектаций совпадает с параметром размера. Это обычные комплектации, без многомерных.
Многомерные комплектации формируются исходя из характеристик добавленных товару, но это не тот товар.
Товар с многомерными комплектациями - http://full.readyscript.ru/product/Apple-iPhone-4/

1.3) Если бы товар был доступен в желтом и зеленом цвете и мы это указали в характеристиках, а потом со временем зеленый закончился, то на сайте в характеристиках так бы и горело желтый, зеленый????

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

2) Открываю вкладки Комплектации этого же платья Savage
2.1 Правильно ли я понимаю, что здесь используются простые комплектации?

Да

2.2 Т.к. простые комплектации не основаны на каких то справочниках, то они задаются все время для каждого товара вручную просто прописывая любое значение?

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

2.3 Т.к. они задаются в свободной форме то и фильтр (согласно документации) в каталоге по комплектациям не работает?

Фильтр работает сейчас только на основе указанных у товара характеристик, которые добавлены в категории в качестве фильтра. Поиск по остаткам происходит, сейчас только на основе общего остатка товара, а не комплектации.

2.4 Учитывая что в админке по всем комплектациям данного платья стоит остаток 0, почему каждая из комплектаций показывается на сайте?

Т.к. на сайте выключен контроль остатков и не отмечена галочка в настройках модуля каталог - скрывать товары, которых нет в наличии.

3,1 При многомерных комплектациях фильтр в каталоге товаров ищет конкретно по данным комплектациям или нет? Допустим в размере 46 цвет желтый платье закончилось, но есть в 46 белом. Фильтр поймет, что если я выберу и не найдет товар в сочетании 46 желтый?

Смотрите на ответ на пункт 2.3

3.2 Обязательно ли заполнение Основной комплектации? Просто допустим у нас на сайте в рамках карточки товара не выводится основная комплектация: грубо говоря зайдя в карточку товара с футболкой человек просто увидит, что есть различные цвета и размеры - сможет выбрать и положить. Зачем ему показывать, что он зашел в карточку товара и что футболка цвет Зеленый (хотя по факту там есть еще белый, красный и черный цвета).

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

Более того цена и артикул от основной комплектации вообще заполняются во вкладке Общие, то есть это надо помнить артикул от какого размера-цвета ты указал и какую цену в общих поставил, чтобы заполняя комплектации не ошибиться. Почему все нельзя заполнять в одном окне?

Основная комплектация - это и есть сам товар. Комплектации дополнительные строятся по цене на основе основной комплектации. Например размер 43 + 100 рублей от розничной цены. В разрезе комплектаций, основная комплектация, это просто стартовая выбранная комплектация. У вас футболки разногоцвета и размера. Основная будет та, которая любого цвета на Вам выбор с минимальным размером. Т.к. название товара Футоболка с принтом, а основная комплектация, это то что будет выбрано по умолчанию. Например цвета белый, размера 42. Вы же когда продаёте футболку, она же обладает каким-то цветом и размером.
Основая это та - с которой начнётся выбор. Выбор этот можно поменять.

3.4 Правильно ли я понял, что самому прописывать многомерные комплектации в духе той же Амиро мы не можем и возможно только генерация? Т.к. в том же Iphone4 там есть вкладка добавить комплектацию, но там нет никакого выбора свойств из справочника, типо выбрать цвет, объем памяти (допустим золотой, 16 Гб)

Можете. Можете генерировать многомерные комплектации и не создавать комплектации к ним вообще, можете создавать, можно не использовать их совсем. Можете у комплектации указывать дополнительные параметры соответствия. Которые будут видны, в админ панели когда заказ оформлен. В корзине человек тоже увидит и название комплектации, и параметры, если вы их зададите соответственно.
На практике, все генерируют себе многомерные комплектации. Либо если у них всё заведено в 1С, то при экспорте на сайт, если они указали в настройках импорта создавать многомерные, комплектации, то всё тоже будет создаваться автоматически.
Вообщем Вам надо всё попробовать. Функционала много. Вам надо попробовать. На словах всё не расcкажешь.

3.5 Допустим есть футболка в белом цвете в 5 размерах и в черном цвете в 2 размерах. По сути своей это 7 комплектаций - Правильно я понимаю, что в Readyscript возможно только, что будет сгенерировано 10 комплектаций (т.к. мы вынуждены будем выбрать 2 цвета и 5 размеров (если размеры между собой пересекаются у двух цветов)), хотя по факту мне нужно было 7??? И далее потом нужно сидеть и удалять лишние сгенерированные комплектации???

Если автоматом из характеристик один раз и навсегда создать и он создаст 10 комплектаций, а 3 лишние удалите, если не автоматом вручную, то можно любое число. Можно для упрощения использовать CSV импорт и экспорт.

3,6 В продолжение пункта 3,4 - допустим через 2 недели приходит еще один размер футболки в черном цвете и мне нужно его добавить в карточку, чтобы он отображался и фильтр по нему соответственно искал - как это сделать?

Ничего, просто занесите цвет в карточку в характеристики и комплектации, если это необходимо.

3.7 Например, у нас есть размерный тип товаров, когда артикул общий в рамках 1 модели и 1 цвета. Например у нас сейчас у у какой конкретной футболки в белом цвете идет артикул 12345. Данная футболка идет в 7 размерах, но артикул у комплектации фактически один. Реально ли научить cms при обработке Excel файла корректировать такой товар по остаткам? То есть в Excel файле у нас там выводится Артикул - Название - Размер - Цена - Остаток
Соответственно программа должна подхватывать не просто артикул, а также и размер и уже определять комплектацию и корректировать остаток по ней.

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

4) Реально ли как то в демо версии самому поиграться с комплектациями, т.к. ничего создавать не получается из-за ограничений прав.

Да можно поставить либо себе на хостинг какую либо папку RS с демо-данными или развернуть у себя на локальном компьютере при помощи к примеру OpenServer.

718

(5 ответов, оставленных в Предложения по улучшению системы)

DaData в ответ на запрос возвращает JSON с данными которые выбрал человек, и из него можно вычленить, то что Вам нужно. Вы можете посмотреть файл dadata.js в модуле dadata в папке js. Но весь подвох в том, что DaData не всегда все сведения предоставляет разбитые по нужным полям в JSON, это просто из личного опыта. По идее Вы делаете не нужные поля скрытыми и на success в js поставляете данные. Если в JSON поле нужное будет пустое, то можно возвращать в поле какое-нибудь значение по умолчанию на Ваше усмотрение.

719

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

В демо-версии нет никаких ограничений. Просто установите на локальной машине или на хостинге у себя.
https://readyscript.ru/manual/catalog_p … tab_offers
https://www.youtube.com/watch?v=UPmgUmV … mp;index=2
https://www.youtube.com/watch?v=tf_geLw … p;index=10

720

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

Указание SVG будет только в логотипе и категориях товаров. Но это будет не в первой версии RS 3.0 скорее всего.

721

(2 ответов, оставленных в Вопросы по созданию тем оформления)

В папке view модуля catalog есть файл allbrands_byliter.tpl с нужным функционалом.

Константин пишет:

Этот вариант не подойдет, т.к. 0 в данном случае — это тоже имеющее смысл значение. У некоторых товаров эти характеристики могут принимать значение 0.

Получается судя по всему у Вас только у некоторых товаров надо скрывать характеристику? Какой у них общий признак?

Константин пишет:

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

Оно в базе хранится как число. Число пустой строкой не бывает. А вот можно сделать, но мы пока это не обсуждали.

724

(5 ответов, оставленных в Предложения по улучшению системы)

Покупайте модуль DaData и всё у Вас будет хорошо и у меня тоже. smile

Я Вас понял. В таком случае, да у Вас будет показана характеристика, т.к. является числовой и значение 0 это тоже значение. А эти характеристики наследуются  В Вашем случае, лучше наверное будет разнести товары в дополнительные подкатегории, чтобы задать фильтры правильно. Либо надо поправить будет шаблон карточки товара, где проверять на 0 и не показывать такие характеристики. Но это скорее частный случай чем общий.