@extends('layouts.app') @section('title', 'Открыть магазин на teeu — бесплатно для продавцов') @section('meta_description', 'Откройте магазин на маркетплейсе teeu бесплатно: автоимпорт товаров по YML и из кабинетов Ozon и Wildberries, трафик из поиска, прямые продажи и чат с покупателями. Без платы за старт и абонплаты.') @section('seo') @include('partials.seo.meta', [ 'canonical' => route('sell'), 'ogTitle' => 'Открыть магазин на teeu — бесплатно', 'ogDescription' => 'Новый канал продаж без вложений: автоимпорт товаров по YML, из Ozon и Wildberries, SEO-трафик, прямые заказы и чат с покупателями.', ]) {{-- Вопросы размечаем только потому, что они реально отрисованы ниже. --}} @if ($faq->isNotEmpty()) @include('partials.seo.json-ld', ['data' => \App\Support\Seo::faqJsonLd($faq)]) @endif @endsection @php($isSeller = auth()->check() && auth()->user()->seller()) @php($ctaUrl = auth()->check() ? (auth()->user()->seller() ? route('merchant.dashboard') : route('become-seller')) : route('register')) @php($ctaLabel = $isSeller ? 'Перейти в кабинет' : $texts['cta_label']) @section('content') {{-- ============ HERO ============ --}}
{{-- Copy --}}
@if ($texts['hero_badge']) {{ $texts['hero_badge'] }} @endif

{{ $texts['hero_title'] }}

{{ $texts['hero_subtitle'] }}

@if ($texts['hero_note'])

{{ $texts['hero_note'] }}

@endif
{{-- Decorative store-card mock --}}
{{-- ============ VALUE BAR (Контент → Блоки лендинга «Стать продавцом») ============ --}} @if ($values->isNotEmpty())
@foreach ($values as $value)
{{ $value->title }}
{{ $value->text }}
@endforeach
@endif {{-- ============ BENEFITS ============ --}} @if ($benefits->isNotEmpty())

{{ $texts['benefits_title'] }}

{{ $texts['benefits_subtitle'] }}

@foreach ($benefits as $benefit)

{{ $benefit->title }}

{{ $benefit->text }}

@endforeach
@endif {{-- ============ HOW IT WORKS ============ --}}

{{ $texts['steps_title'] }}

{{ $texts['steps_subtitle'] }}

@foreach ($steps as $i => $step)
{{-- Номер шага — от позиции в списке, а не из админки. --}} {{ str_pad((string) ($i + 1), 2, '0', STR_PAD_LEFT) }}

{{ $step->title }}

{{ $step->text }}

@endforeach
{{ $ctaLabel }}
{{-- ============ YML DEEP DIVE ============ --}}
Автоимпорт

{{ $texts['yml_title'] }}

{{ $texts['yml_text'] }}

@foreach ([ ['refresh-cw', 'Автообновление цен и остатков'], ['layers', 'Автоопределение категорий teeu'], ['image', 'Фото загружаются и оптимизируются'], ['eye', 'Управление видимостью товаров'], ] as [$icon, $text])
{{ $text }}
@endforeach
{{-- Feed illustration: три источника — ссылка на YML и кабинеты Ozon и Wildberries по ключу. --}}
https://ваш-сайт.ру/feed.yml OK
Кабинет Ozon · Seller API OK
Кабинет Wildberries · WB API OK
@foreach ([['412', 'товаров синхронизировано'], ['41', 'категории сопоставлены'], ['2×', 'обновление в день']] as [$n, $label])
{{ $n }} {{ $label }}
@endforeach
ИИ определяет категорию для каждого товара
{{-- ============ INTEGRATIONS MARQUEE (Контент → Интеграции) ============ Карусель на нативной прокрутке (Alpine: logoMarquee). Автопрокрутка идёт кадрами и встаёт при наведении, фокусе и касании; пальцем и трекпадом лента листается сама. Трек состоит из двух одинаковых половин: доехав до половины, JS возвращает ленту на её длину назад, поэтому она бесконечна в обе стороны. --}} @if ($integrations->isNotEmpty())

{{ $texts['integrations_title'] }}

{{-- Лента должна быть длиннее экрана, иначе в конце сдвига появится пустота. Повторяем список, пока в половине трека не наберётся хотя бы 12 карточек, и берём двойной комплект: половина трека равна шагу анимации, поэтому цикл замыкается без стыка. Длительность считаем от длины ленты (~64 px/с), чтобы скорость не зависела от числа логотипов. Значения считаем только inline-директивами. Блочная форма записи PHP в этом шаблоне ломает компиляцию: Blade принимает первую inline-директиву в начале файла за открытие блока и ищет закрывающую до самого конца. Упоминать закрывающий токен нельзя даже в комментарии — Blade его тоже видит. --}} @php($listCount = max(1, $integrations->count())) @php($repeats = (int) ceil(12 / $listCount)) {{-- Наведение, фокус и касание останавливают автопрокрутку. pointerup слушаем на window: палец нередко отпускают уже за краем ленты, и локальный обработчик туда бы не долетел — лента залипла бы. --}}
{{-- Скроллится сам вьюпорт: палец и трекпад работают нативно, с инерцией, а JS только подталкивает и зацикливает. --}}
@for ($copy = 0; $copy < $repeats * 2; $copy++) {{-- Оригинал — только первый список; остальные копии существуют ради непрерывности и для скринридера и клавиатуры невидимы. --}} @endfor
{{-- Растушёвка краёв, чтобы лента уезжала за границу, а не обрывалась. --}}

Все системы и инструкции — подойдёт любая, которая умеет отдавать YML.

{{-- Кто уже продаёт на маркетплейсе, выгрузку с сайта может не делать вовсе. --}}

Товары уже продаются на Ozon или Wildberries? Подключите кабинет Ozon или Wildberries — YML-файл не понадобится.

@if (filled($helpFormEmbed)) {{-- Форма живёт в конце страницы: ведём к ней прямо оттуда, где возникает вопрос «а если я не разберусь с выгрузкой». --}}

Не хотите разбираться сами — подключим выгрузку за вас.

@endif
@endif {{-- ============ WHAT YOU GET ============ --}} @if ($tools->isNotEmpty())

{{ $texts['tools_title'] }}

{{ $texts['tools_subtitle'] }}

@foreach ($tools as $tool)
{{ $tool->title }}
@endforeach
@endif {{-- ============ FAQ (Контент → Вопрос-ответ, галочка «Стать продавцом») ============ --}} @if ($faq->isNotEmpty())

{{ $texts['faq_title'] }}

@foreach ($faq as $item) @endforeach
@endif {{-- ============ «ПОДКЛЮЧИМ ЗА ВАС» (заявка в CRM) ============ --}} @if (filled($helpFormEmbed))

{{ $texts['help_title'] }}

@if ($texts['help_subtitle'])

{{ $texts['help_subtitle'] }}

@endif
{{-- Форма CRM. Доверенный HTML из настроек (Настройки → Лендинг «Стать продавцом»), вставляется как есть — как site.body_scripts. --}} {!! $helpFormEmbed !!}
@if ($texts['help_note'])

{{ $texts['help_note'] }}

@endif
@endif {{-- ============ FINAL CTA ============ --}}

{{ $texts['final_title'] }}

{{ $texts['final_subtitle'] }}

{{ $ctaLabel }}

{{ $texts['final_note'] }}

@endsection