admin пишет:

Насчет того, что в комплектациях используются изолированные характеристики. Изначально мы писали нашу модель товара под 1С 10.3 (тогда 11 версии не было), там были четко разделены понятия - свойства товара, характеристики номенклатуры(которые не связаны со свойствами), соответственно в ReadyScript для 100% интеграции было сделано также.

Вы немного не правы.

Механизм дополнительных свойств в 1С универсальный, и для номенклатуры и для характеристик.
http://c2n.me/3E6eqRn
И свойство хранится как "объект, свойство, значение"
http://c2n.me/3E6et3w
у объекта и свойства всегда есть ИД, у значения ИД есть если свойстве выбран вариант "Значения свойств объектов"
http://c2n.me/3E6evzc

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

но непонятно зачем в таблице торговых предложений product_offer все свойства без проверок писать в propsdata
при таком подходе (связывание по строке а не по id свойства + id значения) ошибка делается очень просто

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

хороший пример из 1С, тип "Дополнительное значение" = на сайте "Список"
Выбор в номенклатуре = "Товар":
http://c2n.me/3DQ5YXK
Выбор в характеристике = "Комплектация"
http://c2n.me/3DQ6eLV

В чем принципиальное различие типа "Список цветов" и "Список изображений"?

Вопрос в связи с тем что в форме типа "Список цветов" есть возможность загрузить изображение.
http://c2n.me/3DPYN0V

посмотрел в БД, значения хранятся в одной таблице с полями color и image

4

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

Закусило Александр пишет:

Пришлите нам итоговую выгрузку со всеми настройками, мы её посмотрим.

При настройках номенклатуры:

http://c2n.me/3Dlt0m6

и настройках упаковок

http://c2n.me/3Dlt2vY

файл выгрузки типовой обработки остается прежним (перевел в JSON - удобнее читать)

http://c2n.me/3Dlt8EX

5

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

Ярослав пишет:

Антон, у меня доступа к 1с клиента нет, только высылаемые ими фото. Можете снимок выложить с данной настройкой? Найти не можем

Настройки отборов для типовой УТ 11.2

http://clip2net.com/s/3DlrBro

Это решается корректировкой шаблона формы.
"В наличии" = "10000 шт.".

"работают под заказ или частично под заказ" - статус товара "Под заказ"

Уточню вопрос Владимира
"Одному товару соответствует диапазон размеров площади"
примерно похоже на
"В фильтре списка будет достаточно много ширин"

это означает что либо

"товару" соответствуют несколько "комплектаций" с разными числовыми параметрами в рамках одного свойства, и от этого числового параметра зависит цена - оптимально назначать значение свойства (число) в комплектации и в фильтр "подхватывать" его в результате работы фильтра выводить не только номенклатуру но и первую комплектацию
(пример: ширина порожков одной модели)


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

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

8

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

Для размышления:
API это средство доступа к объектам внутри системы, отражающее "доверие" разработчика системы к сторонним разработчикам.

Для себя сделал обертку для Битрикса, которая может обращаться к основным классам, понятно что могу "чего нибудь сломать" при работе с этим API но зато "мощности" хватает под мои задачи, шлю все POST пакетом команд.

Пример:

{
  "commandList":[
    {
      "number": 1,
      "module": "catalog",
      "class": "CCatalogStoreProduct",
      "method": "GetList",
      "parametres":  {
        "arOrder": null,
        "arFilter": null,
        "arGroupBy": null,
        "arNavStartParams": null,
        "arSelectFields": []
      }
  
    },
    {
      "number": 2,
      "module": "sale"
    },
    {
      "number": 3,
      "module": "shop"
    }
  ]
}

Я в качестве примера привел элемент "button", в текущем базовом шаблоне "radiobutton" то что правится шаблоном понятно.

По остаткам понятно, проверю как работает.

По основной теме с числовым списком ответа не увидел.

10

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

"В текущий момент, вам возможно будет проще разработать более простой консольный импорт/экспорт файлов вашего формата"

Цель в том чтобы вложить силы в формирование базы товаров со стороны 1С, после на основе API грузить с корректировками на сайт.

Пример: профили, которые включают плинтусы, порожки и.т.д.,
в группе более 10 "характеристик",
по части из которых фильтрация в списке,
по части формирование наименований "комплектаций" и отбор в карточке товара.
часть с множественным выбором (профиль может крепиться и на потолок и на стену)

+ задумка в том что "комплектация" она же SCU представлена в 1С как элемент справочника "Номенклатура" без характеристик, т.к. по части профилей есть и вариации по ширине в рамках одной модели.

Решаю за счет группировочного поля. (+ получаю бонус отсутствия перекоса себестоимости в бух учете)

+ нужно скомпоновать изображения (часть индивидуальные, часть общие для модели)

Делать файл выгрузки и после писать обработчик загрузки на сайт замучаюсь, проще API сделать.

11

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

Понятно, это замечательно.

Если будет возможность получить "ранний доступ", то могу написать обмен со стороны 1С УТ 11 (сделать выжимку лучшего из cml1c и битриксовского решения).

Сам смотрел
https://events.yandex.ru/lib/talks/2927/
Пример:
https://tech.yandex.ru/disk/poligon/#!/ … /resources
Из этого вынес удобство PUT и DELETE по части определения идемпотентности.

Пример VK: https://vk.com/dev/audio.save - заменит или создаст новую запись со ссылкой на файл?
По товарам https://vk.com/dev/market.add - 1 запрос на один товар, нет примера JSON тела, JSON схемы (думаю для разработчика клиента придется писать вручную)

В ReadyScript планируете добавлять/обновлять товар списком?

Недавно делали загрузку остатков и цен в Simpla, схема ценам (цена одна в симпле)
http://c2n.me/3CmdTPt
С точки зрения 1С-ника очень удобно.

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

Есть мысль написать REST API для ReadyScript
Причина, достаточно сложный каталог и переносить его через cml проблематично.
На первый взгляд на ReadyScript этот каталог можно реализовать.

До этого была проба организовать на ShopScript, но посмотрев на их "внутреннюю кухню" решил идти дальше.

Проектировал на RAML + JSON Schema, дополнительно описывал объект типами, но потому что отсутствовала вменяемая документация на систему, решается ссылкой на документацию в описании к объекту.
Пример https://yadi.sk/d/y4IzMo4OvLTCW, распаковать и запустить index.html , сама схема /raml/api.raml.

Реализовывал на silex
https://yadi.sk/d/FojkliI0vLTYH, это "приложение" для ShopScript,
маршрутизация в lib\actions\restapiFrontend.controller.php
реализация в lib\classes\

верификация производится по тем схемам, которые в документации
сериализация (нормализация) через массив, т.к. "нормальных" объектов в SS7 нет.
все ошибочные возвраты через "restapiException"

Вопросы по реализации в ReadyScript на наличие внутреннего инструментария (можно ссылки на документацию)
Каким образом можно прописать маршрутизацию?
Каким образом обработать Request и сформировать Response?
Каким образом сделать аунтификацию?
Каким образом верифицировать входящие данные?
Каким образом сериализовать объект с фильтрами?

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

Варианты в карточке товара выводить не радиобаттонами а кнопками, чуть удобнее в использовании.
функциональный пример есть в ShopScript 7 (но проблема с цветом кнопок и "скачущей версткой")

То что сделано именно так в этой системе - нормально, т.к. если "в лоб" сделать числовой список и вывести его в фильтр списка то получится как в ShopScript7, когда при изменении значения ползунка для одного товара меняется цена.

Логика свойств комплектаций: все свойства товара есть объединение свойств его комплектаций.
Варианты формирования комплектаций:
1. Сверху вниз, указали свойства в товаре, сгенерировали комплектации со свойствами, но не всегда есть полные "линейки" товаров
2. Снизу вверх, занесли комплектации и свойства по ним, после собрали их в карточке товара.

При фильтрации товара с учетом свойств его комплектаций (многовариантности в товаре) по идее нужно чтобы в списке отображалась какая именно комплектация подходит под фильтр.

Этот вопрос частично решен в HostCMS, у них все "комплектации" по сути тоже товар со скрытым родителем и они могут позволить вывести все дочерние элементы списком.

Рабочий кейс на несколько значений типа число.

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