Vizen Shop

Site chrome: header, menu, footer and the page skeleton

/docs/chromecurrentМашинный перевод с английского· проверено 2026-08-21

Статус: current · проверенный: 2026-08-21, live Звонки на стенде + браузер; §3.6 — 2026-09-12, против code (домен, решитель, обработчики; хвост §3.6 (/_site/, article layout, сервер-side chrome и level-2 меню) — 2026-09-13, против code обоих репозиториев владелец: гладиатр API документация · Служить: GET /docs/chrome Связанный путеводитель: /docs/webcoding §16.2 (own header, один page) мастерство: vizen-chrome

Магазины на старом model. The chromeKit Костюм и пара slots chrome/layout keep работающая — их читает та же конечная точка, и shop это Если они настроены, то ничего не потеряют. code пишет groups; старый description В § 3.5 содержится ссылка на то, что вы можете встретить в существующих data.

1.Что вы можете сделать здесь

Создайте части, которые повторяются на каждом page — header, menu, footer — и решать который pages получить который. Единица представляет собой group: Обычный content block составление упорядоченного списка ссылок на другие blocks. А. group становится видимым через быть привязанным к resource: Вся эта shop, а category, Все внутри себя category, один product. Обязательный section Оставляя остальную часть shop Как это было, Именно это и делает второй design Возможный внутри live shop.

2. Решать first (вилки)

Если ты хочешь…Возьми это pathСтоимость
чистый, заклейменный header В минутыплатформа widgets siteHeader/siteMenu/siteFooter (widgets.md) в chrome groupprops настроить standard look (~30 на siteHeader); layout CSS поддерживает дальнейший рестайлинг (§ 4)); sticky работа, siteMenu.level2 Дает реальные выпадающие выпады — они открываются нажать, не на ветру
а header Это, несомненно, вашеown разметка (own-markup.md) как block Внутри того же groupВаша марка и CSS; проверять sticky/overflow/containment и выпадающей обрезкой на выбранной поверхности (§4.2))
тот new chrome в целом shopсвязываться shop, id 0каждый page Меняется сразу
тот new chrome на одном section толькосвязываться category / category_childrenОстальная часть shop Сохраняет старую — проверить,, Не предполагай, что
а page с нет header вообщесвязывание slot header то 0 на этом resource (§3.3)По этой лестнице останавливается slot только; footer оставаться

А. group Любое block, включая `kind:"html"`. Вот как это полностью custom header - Это был первый зонд. result на live shop — Нет путеводителя Он предсказал это — и он выжил. new model Неизменный: список является ссылками, И ссылка не заботится о том, что block рисовать.

3. Объекты и где они находятся live

3.1 Виджет, group, Обязательный — весь model

WIDGET   — what to draw            (one block = one widget)
GROUP    — a named list of widgets (block + label + ordered references)
BINDING  — which group, where      (shop / category / product, per slot)

The group это content block с одним section, kind: "group", чей Композиция живет в props.widgets — Заказной список block ids — плюс label в group_type. The label принадлежит к *set*, не в его содержании, а переупорядочивая widgets внутри never Меняет то, что group это:

POST /content-blocks
{ "item": { "name": "Neon header", "group_type": "chrome", "sections": [
    { "type": "text", "payload": { "v": 2, "kind": "group",
      "props": { "widgets": [3146, 3147] } } } ] } }

Строитель groups Имеет два согласованных списка.. Кроме того, помимо payload.props.widgets, Они могут носить payload.props.zoneFlow.entries и payload.page.zoneProps. Сохраняйте page layout/zone свойств и unknown fields. Если zoneFlow существует, каждая запись's ref должен соответствовать widgets в то же самое index; Счета должны совпадать. Сохранить неизменные события' entryId; давать new Новые уникальные события entryId values, Сохранение или умышленное выбор side и zoneId. Не пишите только один список.

Для POST/PUT /content-blocks Перейти на современную страницу layout, зона ids или page.zoneProps, наносить `"page_design_version": 1` По запросу корень, следующий то item. В противном случае писатель возвращается 400 PAGE_DESIGN_WRITER_UNSUPPORTED. Отправляйте его на каждый /content-blocks Писать о category Замена и ее замена откат (/docs/components §4.8). PUT /categories/{id}/content-blocks, тот Список обязательный, не брать его: есть 400 INVALID_REQUEST.

group_typeПорядок slotДержит
chromeлюбой slot но feedwidgets в раме
product · category · news · articleлюбой slot но feedтот template который притягивает resource
designлюбой slot но feedВсе что угодно — промо-стрип, а cover
layoutfeed толькодругой groups плюс body маркер (§3.4))
themesite layout container (§3.6)empty widget список; slots есть design связывание

layout (а feed group) и theme (тот site layout) Отличительные типы реестров. Для site layout и его CSS папка, используйте §3.6-3.7.

The label Названия set; Не войдет туда, где set Может стоять. Исключением является feed, И это то, что structural, не редакционный: его список groups и body маркер, так что widget Список, который будет неправильно прочитан. А. cover group как кто-то's header является законным.

The label set Открытый: a new kind Один из них row в основном реестре (domain.DesignGroupTypes), Нет миграции и нет изменений внутри sections.

3.2. page скелет — четыре slots

header · feed · body · footer

The order это structural: Это не в том data и ты cannot move тот slots. Каждый slot наследовать на его own лестница, Так что, перевешивая feed одного page делать Не тянет за собой body вдоль:

this resource → the category chain up the parents → the LAYOUT → the shop → the earliest group of that type

Последняя ступень заменяет старую. "default template" как особая сущность. тот ранний group из type, Не последняя: создание new variant должен Не перекрашивайте каждый page из shop это never Сделал явный выбор.

The LAYOUT Рычаг new (2026-09-12) и optional: а shop без макетов, или с а layout который ничего не связывает, решается точно так же, как before — См. §3.6..

PUT /design/bindings/{resource_type}/{id}
{ "slots": { "header": 1712, "footer": 1713, "body": 1716 } }

⚠️ The id в slot это GROUP (§3.1 - a block чей section это kind:"group" — never а widget block. А. widget block Отказано в DESIGN_SLOT_NEEDS_GROUP. Ответ может также нести warnings[] ({slot, code, message}): связывающий это хранимых, но их effect не является Но сегодня это видно — единственный DESIGN_BODY_ON_PAGE_NOT_RENDERED.

resource_typeПрименяется для
shop (id должен быть 0)shop-широкий default
categoryэто category page. ⚠️ А. type:"page" category принимает a body обязательный и Пока не рисует — Поддержка магазина для этого type не построен; сделать посадку type:"product" category вместо (catalogue.md §5)
category_childrenproducts внутри — Наследуемый по всему поддереву
productодин product
theme (id = тот layout group)тот layout's own slots — Что такое pages Когда ничто не связано ближе (§3.6))
system (id из реестра в §3.6)платформа page: cart, checkout, account… — theme, header, footer только

`slots` является заменой-set. {"slots":{"header":X}} на resource Это также имело а body падает body; {"slots":{}} Все это разъединяет и все resource идти Вернуться к наследованию.

3.3 Три ответа на slot, Не два

Ты пишешьХранится какThe page получать
slot отсутствующий slotsнет rowунаследованный свыше
"header": 0row с ан empty ссылканичего — Лестница здесь остановилась
"header": 1712row со ссылкой наэто group

0 Это поддерживаемый способ сказать "это page не имеет header". Нет никакого hideSiteHeader-style флаг, чтобы соединить его с, и добавление одного обратно будет вторым Механизм для вещи, которая уже имеет.

3.4. feed и body маркер

А. layout group Это page feed: В списке есть и другие groups и один Специальный вход, -1, маркировка где resource body Ид - это положительно, так что маркер cannot быть перепутанным с одним.

"props": { "widgets": [2100, -1, 2101] }   // cover · body · banner

Бросьте маркер и body От этого ушла page — тот author Держите чистоту холст их own groups. Нет. feed Связанный во всех смыслах означает page Это просто его body. А. feed внутри feed Отказано: один rule Вместо обнаружения цикла и глубины limit.

The feed Это - привязка, поэтому она следует по лестнице: привяжите ее к category или layout Дать многим pages Та же самая последовательность вокруг их body. А. feed привязанный к одному page Заменять собой feed это page Наследовать. blocks на один page before или after его body, использовать page's own зоны (__page:top / __page:bottom, __page:main в сетке pages — /docs/components §4.7.1: они добавляются к page и inherit ничего не удалять.

3.5 То, что вы все еще можете встретить: набор наследия

Магазины set поднимать before тот group model нести kind:"chromeKit" block с props.kit.{top,bottom} пройденный через slot chrome, и а body template переплетаясь layout. Оба они читаются и выдаются. GET /v1/storefronts/ resolve?slug=<shop> Ответы с помощью материализованный КОБРА — каждая часть's sections вписанный и помеченный payload.zone: "top"|"bottom" — Что такое форма чтения, а не Что-то, что можно написать обратно.

Чтение current Государство - три вопроса. Что? shop использование — GET /v1/storefronts/resolve?slug=<shop>. Что? *это* resource использования и от где — GET /design/bindings/{type}/{id} → own[] плюс resolved{slot:{block_id, source}}, source быть own / category:<id> / shop / default; а resolved block_id: 0 с не-default source Это Недостаток §3.3. Что такое «недостаток» page — curl <page> | grep -o 'data-vz-kit="[^"]*"'.

3.6 Планировки (theme) и system pages

А. layout ("Лейа-Ат в admin, theme в API) это group-container выше header и footer: group_type:"theme", ан empty widgets список и его slots Обычные связывания с resource_type:"theme" и group's id как resource_id. Ничего. new учиться: PUT /design/bindings/theme/{id} с header, feed, body, footer — плюс body за page kind, body_product · body_category · body_news · body_article, Который бьет layout's plain body для этого kind. The layout Сам по себе не inherit: его На панели показано только то, что она связывает.

Который layout а page использования является его own Короткая лестница на slot theme:

this resource → the category chain → the shop → the earliest layout of the shop

Так PUT /design/bindings/category/648 {"slots":{"theme": 1837}} Переключает целое section к другому design; связывание theme на shop (id 0) чтобы выбрать shop-широкий один. GET /design/bindings/... Ответы с помощью resolved.theme и знаки slots это Пришел из того, layout с source:"theme". Совместимость по конструкции: а shop без layout, или layout Что ничего не связывает, решается через то же самое. зовет его always делать (theme_id: 0, theme_source: "default" в design.page). Удаление самых ранних layout Руки свои role В следующий раз за id — тот site может изменяться, назначать другое layout first.

Система pages — тот pages Вестибюль сам себя рисует — это design ресурсы слишком: resource_type:"system", resource_id из реестра cart=1 · checkout=2 · account=3 · orders=4 · wishlist=5 · search=6 · deals=7 · dashboard=8 · coupons=9 · notfound=10 · thankyou=11 · compare=12, slots theme, header, footer Только (нет) body, нет feed — Владелец магазина тот body). Несвязанные, они inherit тот shop's layout и chrome. Витрина магазина Прочитав их через public звонить:

GET /design/system/{code}?company_id=N     → { "design": { "page": { header, footer, theme_id, … } } | null }

null означает shop предшествует group model — После этого витрина вытягивает свой наследие chrome. Над checkout, cart, account и других охраняемых зонах author-принадлежащий (level 3) header рендеринг Без своих сценариев.

А. layout Также владеет папкой — тот site's делиться CSS, шрифты, скрипты и favicon, То, что не должно быть похоронено внутри header's html widget (где только header Это механизм освобождения от страстей. own-markup.md §7.1, адресованный layout Вместо того чтобы document id, и index.html Есть ли там скелет каждого page: <head> nodes, тот <body> class наклон page Корень, body content before </body>; CSS Сфера действия для .vz-theme-{doc}, тот class из page Корень, так что пиши body {} и :root {} Как ты style тот site. Десять method/path операции, scopes, limits, favicon поколения, охраняемых зон и vz:navigate Один раз в списке own-markup.md §7.2; шаг за шагом прохождение /docs/webcoding §2b.

Стабильные адреса для site's files. /_html/{doc}/{rid}/… несёт освобождение number нарочно: освобождение неизменяемо, так что address может быть кэширована То же самое делает его непригодным для использования везде, где link Переживёт освобождение — ан email Покупателю, почтовой подписи, организации card, кто-то else's site. А. layout's Поэтому у папки есть вторая, неупорядоченный address:

GET /_site/<path inside the layout folder>      # /_site/logo.svg, /_site/favicon.ico

Он решает, как site's header ДА — это shop's theme slot → тот ранний layout → Его папка - это active Альбом: So It always указывает на то, что Находится на site *теперь*. Три отличия от /_html/, Все три следуют из Недостающее освобождение number: Кэш является public, max-age=300 плюс ETag вместо неизменяемого; Хозяин квартиры является обязательным (Адрес начинается с хозяин, и без одного " active layout" это undefined — Голый призыв к API Это 404); HTML pages не допускается к выпуску, как в /_html/. The CSS scope То же самое (.vz-theme-{doc}) — Это один из file одного document, и а Второе поведение на второй address Это будет ловушка. /_html/ для ссылок внутри site и /_site/ Ссылки, которые оставляют.

Ан article получает layout его own. article это design resource как product или category, один такой article можно поставить на другой design без касаясь его рубрик:

PUT /design/bindings/article/<id>    { "slots": { "theme": 1837 } }

Лестница является the article → its rubric and the rubric's ancestors → the layout → the shop → the default. Рубрика Ветка является category, не category_children: ан article лежит внутри рубрики, как подстатья лежит внутри section, Обязательный, сделанный на рубрике *само собой* достигает своего Статьи.Читать result Вместе с тем, вместе с article — GET /articles/by-slug/{slug} Ответы с помощью design; тот admin GET /articles/{id} не разрешает design и never - До тех пор, пока не article имеет свои привязки own Ответ - это то, что always Было, так что ничего Переезды по существующим площадкам.

body_article это не а slot из article. Органы на page kind оставаться slots из layout (§3.6 выше, поскольку body а kind Решается выше тот article Вместо того, чтобы — PUT /design/bindings/article/{id} с body_article ответы DESIGN_SLOT_NOT_FOR_RESOURCE.

Уровень 2-2 menu Панели приходят в HTML. Платформа chrome На ней изображены Сервер и выпадающие панели siteMenu печатаются в печатном виде page уже — закрытой, как data-open="0" — Вместо того, чтобы строить JavaScript after гидратация. Они напечатаны в пределах бюджета узла (Витрина магазина тратит 60 nodes на Корни, которые придут вместе с ними page, и корень, который не подходит для нагрузок Его панель на first щелкнуть GET /categories?view=menu — Один запрос на вкладка, совместно с поисковой системой подскажите, что это значит для вас: menu находится в curl output и, следовательно, индексируемый; панель, которая открывает after Короткая просьба на огромном каталоге это нормально, а не ошибка; и твой own header нетронутый — Бюджет и переключатель принадлежат платформе siteMenu widget, а custom header построенный из вашего own Надпись печатается целиком, как before.

3.7 Повторное использование active theme's content сетка

Прежде чем изобрести водосточные желоба для custom category block, читать GET /design/bindings/category/<id> → тот resolved theme → GET /themes/<theme-id>/site и его active освобождение CSS. Используйте это theme's делиться content-container class на корне разметки, в паре с неограниченным платформа wrapper: props.blockWidth: "full" и props.paddingSides: {"top":0,"right":0,"bottom":0,"left":0}. Держите contentWidth незавершенный для этого парирования. blockWidth Расширяя .vz-box группа (и уходит .vz-inner незавершенный); contentWidth: "content" будет закрывать внутренний container Опять же, пока "full" явно удаляет свой колпачок. paddingSides контролирует группу padding. Позволь. theme class снабжать content width Один раз в городе, без другого местного width/padding rule. Стили оформления доходят level-1 Тень (/docs/own-markup §7.2) Местные селекторы по-прежнему cannot Достигнуть внешнего wrapper.

Например, a theme таблица стилей может define .tl-section с его content width и отзывчивые водостоки. class в каталоге корень выравнивает его с тот banner. Читайте фактическое theme CSS; пример class Это не платформа default.

4. Рецепты

  1. Запишите разметку и загрузите ее (file загружать → POST /html-documents, level 1) — смотреть own-markup.md;
  2. Обернуть каждый document в block, kind: "html";
  3. создавать два groups (§3.1), group_type: "chrome" — с одним из них header block, с одним из них footer block;
  4. PUT /design/bindings/category/<id> с {"slots":{"header":<header group>,"footer":<footer group>}}.

Заголовок и footer Они разделены по назначению: только связываться header и shop's footer Работает под ним.

Проверить на двух pages, Ни один. GET /design/bindings/category/<id> должен показать resolved.header.source: "own"; затем curl твой page и Домой page и compare — Ваша наценка на оригинале везде else.

4.2. Липкий или fixed — Выберите предполагаемое поведение

Для header который остается в page поток, использование vz-sticky на корне разметки или props.position: "sticky" на его обмотанном block. Исторический провал ниже был fixed 2026-08-19; sticky Поддержка находится в /docs/own-markup §5.7; CSS Поверхности находятся в §7.2. Для платформы siteHeader, использовать его own props.sticky: true.

Для fixed/absolute накладки, использование /docs/own-markup §7.2: chrome имеет свой own query-container wrapper, и container-type Только он не устанавливает fixed содержащий block в каждом браузере. Проверить фактические стили предков и поведение прокрутки before - Обещаю, что мы будем закреплять его. height; Проверить перекрытие и выпадение клипа на desktop/mobile ширина.

4.3. Нарисовать product page с твоим own card

Построить product group чей список принадлежит вам widgets (card, breadcrumbs, что бы то ни было Вы хотите в чем угодно order) и привязать его к slot body:

PUT /design/bindings/category_children/<id>   { "slots": { "body": <group id> } }

category_children И каждый из них product в поддеревье, не касаясь ни одного product Запись — вот в чем смысл slot. Один product Только: Обязательный product/<id> вместо.

Эти двое-cards Проблема исчезла. Перед тем как group model тот page слияние template с помощью product's own zone blocks, и first own card *замененный* тот template Один — так ручной выбор на product page не может быть собран Теперь, когда body Один из них group и page Собранный сервер-side: а card с явно выраженным card.productId Это рисует product в любом месте, в том числе и другой product's page, когда card Без одного взять page's product.

Ничто не нуждается в переписывании product любой more, Старый рецепт – расчистка refs: [] В каждом product's __page:top, 107 products против 240 writes/min Потолок — убран: он стирает page's own blocks. __page:top / __page:bottom Это они. blocks тот owner Окружающий наследуемый body (/docs/components §4.7.1. оставить их в покое.

5.Безмолвно ignored

Что?Что на самом деле происходит
vz-sticky на блоке внутри комплектаСтарая ошибка внутренней обёртки fixed (2026-08-19). Проверить текущее состояние wrapper/overflow Поверхностная матрица в /docs/own-markup §5.7; § 4.2 дает текущий рецепт
hideSystemBlock С вашей картой, связанной через наследие slots.layoutВесь технический слой идет, ваш связанный блок включен - page В группе ничего не осталось. model Это не то, как вы скрываете body: выбросить маркер из feed (§3.4 или связываться body то 0 (§3.3)
siteMenu.level2 с source: "categories"Никаких капельниц: плоская полоска корня items, И в каждом из них есть свой список. category Без родителей дойдет до клиента. tree появляется только с source: "custom" и ручной сборки customItems[].children
href внутри siteHeader.links / siteFooter.columnsтот label , как и в случае с <span> — мертвый link. Элемент должен быть {label, url} или {label, target:{type,id}}
siteFooter с нет `columns` вообщеНе игнорируется, но и не пустует: footer Возвращаясь к одной колонне shop's Первый 4 или 5 корень categories (раздел order; Счет зависит от footer layout). Для магазинов, которые никогда не конфигурировали footer. Новый корень category Показаны только в том случае, если они являются первыми. — move поднимать (POST /categories/move) или set columns явно
siteHeader с нет `links`тот header возвращается к Первые 6 корень categories, раздел order. Седьмая часть не входит в header; тот menu (siteMenu с source: "categories") Все опубликованные разделы, которые имеют is_show_menu на, пока source: "custom" Список только его own customItems — Новый раздел никогда не появляется сам по себе.
а category с is_show_menu:falseНе проигнорировать больше: menu, тот header's Fallback links и это footer Все клипы Skip It и всей его ветви. Дефолт есть true, Вот как вы добавляете посадку page Без прикосновения к навигации — /docs/catalogue
siteHeader.nameStyle.weight: "800", siteMenu.labelStyle.size: 13Зажатый: 600 и 15 рендер
связывающий slots.layout В дом page categoryпринятый, хранимый, 200 — и рендер не меняется: дом body Выводится за пределы блока system (измеряется category 106)
GET /content-blocks/{id}/usage В группе, которая не связывается явноtotal: 0 Для группы, которая привлекает всех page его kind. usage считать прямые связи и manifest ссылки, Никогда страницы не достигаются по наследству, и последняя ступень лестницы (§ 3.2) не является одной. total: 0 Возможно, именно он рисует ваш shop — проверить resolved На реальном ресурсе before Удаление чего-либо. Последняя ступень отвечает "source":"shop" В этом случае, как и в явном shop связывающий: GET /design/bindings/shop/0 С пустым own Рассказывайте им об отдельном

6. Пределы

Вещьценность
slots записать12 пар max, семантика замещения
resource_typeshop (Ид должен быть 0) · category · category_children · product · article · theme (id = layout группа) · system (id из реестра, §3.6)
имена слотовheader · feed · body · footer · theme — на shop, category, category_children, product и article одинаково; на theme ресурс также body_product · body_category · body_news · body_article; на system только theme · header · footer (DESIGN_SLOT_NOT_FOR_RESOURCE иное; наследие chrome · layout
что такое слотКаждому из них нужен блок с kind:"group" Раздел — блок виджетов DESIGN_SLOT_NEEDS_GROUP. За пределами этого: feed — группа, обозначенная layout И ничего больше, потому что в его списке есть группы и группы. body Маркер вместо widgets; header, body, footer — Все группы, кроме feed или layout; theme — а layout Группа и ничего больше.: chrome нуждается в kind:"chromeKit" блокировать, layout Блок, название которого не начинается с __
пустой слот0 На четырех новых slots, theme и body_*; Наследственная пара отказывается (DESIGN_SLOT_EMPTY_UNSUPPORTED) Потому что у старого решившего нет третьего государства.
отказ от токеновDESIGN_RESOURCE_TYPE_UNKNOWN · DESIGN_SHOP_ID_NOT_ZERO · DESIGN_SLOT_UNKNOWN · DESIGN_SLOT_NOT_FOR_RESOURCE · DESIGN_THEME_UNKNOWN · DESIGN_SYSTEM_PAGE_UNKNOWN · DESIGN_SLOT_NEEDS_GROUP · DESIGN_SLOT_WRONG_GROUP_TYPE · DESIGN_SLOT_EMPTY_UNSUPPORTED · DESIGN_GROUP_TYPE_UNKNOWN · DESIGN_CHROME_NOT_KIT · DESIGN_LAYOUT_SERVICE_BLOCK · BLOCK_NOT_FOUND (Иностранные ресурсы маскируются, не сообщается)
групповое гнездованиеОдин уровень: feed → группы → widgets. А. feed внутри feed отказано
Удаление группыОтказ, пока обязательные пункты на нем (DESIGN_GROUP_IN_USE, также для группового блока без ярлыка) или для chrome, theme, product, category, news и article, И это последняя из его этикеток. (DESIGN_GROUP_LAST_OF_TYPE): страницы без привязки возвращаются к самой ранней группе этого ярлыка. layout или design Группа не имеет обязательной силы и список не может быть удален, даже если он единственный. Сначала назначьте другую группу, а затем удалите
меняться group_typeта же охрана: группа в переплете или в списке другой группы сохраняет свой класс этикетки - обмен между обычными этикетками (chrome · product · category · news · article · design) свободно, но очищая этикетку или перемещаясь в или из layout/theme это DESIGN_GROUP_IN_USE; Переименование последней группы откидного ярлыка DESIGN_GROUP_LAST_OF_TYPE
скорость записи240/min — Потолок при переписывании product зоны в массовом порядке
После успешного PUTа design.changed Web-хук пожары из prod Contour; dev редактирует огонь ничего, пока не опубликовано

7.Как это было проверено

  • 2026-09-13 (3.6 Хвост, по source в обоих репозиториях плюс стенд Запущено записано в макеты техплана: /_site/ ответы 200 с public, max-age=300 и ан ETag для file из active layout и 404 Для иностранного хозяина, пропавшего без вести file, голый API Звонок без хозяина квартиры и а path который вылезает из папки; article без каких-либо привязок к его own Решения для The shop's layout, а на его рубрике передвигается его привязка, и a Обязательный для article сам по себе бьет рубрику; chrome's Наценка заморожена с помощью snapshot test, так move Сервер изменился bytes Только внутри острова' data- attributes.
  • 2026-08-21 (group model), live Призывы к стенду плюс page читать в a Браузер: a shop рожденный на groups рендеринг header, breadcrumbs, heading, listing и footer; связывающий header и footer то 0 на одном product удаляет оба из это page и оставляет всех остальных page Восстановление их возвращает. shop все еще chromeKit Перечитывался в том же самом русле и его chrome нетронутым был. Эти двое-cards , измеряется на a product неся оба своих own card и а card прикреплен к другому product — оба render, в order.
  • 2026-08-19 (Все ниже), live призывы к api.vizen.shop (shop kiberpank, Компания 11, PAT на prod contour, writes_to_live: true) Плюс измерения в реальном Chrome включён kiberpank.vizen.shop.
  • The kind:"html" В действительности, в действительности, это зонд result: ан html block был написан вводить kit.top из одного live комплект и page Re-read — это рендеринг, с data-vz-kit На нем нет никаких указаний..
  • липкий: getBoundingClientRect на header after сквозняк; сквозняк; fixed Обходной перемер с семи ширин, пробел против header height. Два cards, тот empty page after hideSystemBlock и 107-й,-product взрыв radius изгонять Тот же самый бег, который сохранил откат snapshot каждого zone касаться.
  • Токены ошибок, разрешение order и заменять-set семантика slots были прочитаны от обработчика source (internal/api/catalog/set_design_bindings.go, internal/core/services/design/resolve.go), не из live Звонки, домой.-page находить (category 106 и далее usage находить (block 2089 г. - прибывает из Соседние бегут на одном и том же shop На той же неделе.

Исходник: https://api.vizen.shop/docs/chrome?full=1

Работает в демо-режиме