{{include "header.html"}} {{include "nav.html"}} {{$cur := default (index .ThemesExt "currency_symbol") "$"}} {{/* 首页(index.html) 版式顺序按「商城转化 + 企业站信任」两条线交替推进: 轮播(品牌/活动)→ 促销横幅 → 产品推荐(商城主转化)→ 实力数据(企业站信任) → 最新动态(内容活跃度)→ 客户评价(口碑)→ 合作伙伴(背书)→ 咨询条(留资) ⚠️ 每个区块都用真实数据或 .ThemesExt 配置,**没有数据就不渲染**: 空数据还渲染出标题和空网格,是「看起来像坏了」最常见的来源。 */}} {{$ext := .ThemesExt}} {{/* ------------------------------------------------------------------ 轮播 */}} {{if index $ext "show_slides"}} {{$slides := HomeSlides}} {{if $slides}}
{{end}} {{end}} {{/* -------------------------------------------------------------- 服务保障条 */}} {{/* 对标头部电商首页:首屏下方必须有「价值主张 / 服务保障」条(次主视觉层级), 把免运 / 退换 / 质保 / 客服一次交代清楚,降低首访用户的决策顾虑。 🚨 文案**必须**读 .ThemesExt 的 service_promises,不能在模板里写死: 这是一套英文主题,写死中文会让每个装它的外贸站首页出现「满299包邮」; 而 vvdata.json 里那份英文 service_promises 却从未被任何模板读取 —— 运营在后台改了半天,首页纹丝不动。现在两处(首页 + 页脚)共用同一份数据。 图标按序位轮换(同一套 4 个形状),不额外要求运营配图标。 ⚠️ 没有配置时整条不渲染:空区块比没有区块更像「网站坏了」。 */}} {{$promises := index $ext "service_promises"}} {{if $promises}}
{{end}} {{/* -------------------------------------------------------------- 促销横幅 */}} {{/* ⚠️ 促销横幅刻意用**扁平的 4 个标量键**而不是一个 promo_banner 对象: 主题数据表单(vvdata_schema.json)只支持 text/url/switch/array 等标量类型, 嵌成对象后台就编辑不了 —— 运营改一句文案得去改模板。 */}} {{$promoTitle := index $ext "promo_title"}} {{if $promoTitle}}
{{/* ⚠️ 渐变第二站用 rgba 而不是 color-mix:旧浏览器不支持 color-mix 时 整条 background 声明会被丢弃 → 深色底上白字直接看不见。 */}}
{{$promoTitle}}
{{with index $ext "promo_desc"}}
{{.}}
{{end}}
{{with index $ext "promo_url"}} {{with index $ext "promo_btn_text"}}{{.}}{{else}}View details{{end}} {{end}}
{{end}} {{/* -------------------------------------------------------------- 产品推荐 */}} {{$products := ColumnContents "shop" 8}} {{if $products}}

{{with index $ext "products_title"}}{{.}}{{else}}Best sellers{{end}}

{{/* 副标题。⚠️ 默认文案里**不能写死「货到付款」**(2026-10-07 起它可被后台关闭): 运营关掉 COD 后首页还在宣传,用户到结算页才发现付不了。 所以兜底按 .ShopCODEnabled 分两种说法;运营在主题数据 products_sub 里填了就以它为准(上面 with 优先)。 */}}

{{with index $ext "products_sub"}}{{.}} {{else}}{{if .ShopCODEnabled}}Our most-loved pieces — order online, {{if eq .ShopCODTitle "货到付款"}}cash on delivery{{else}}{{.ShopCODTitle}}{{end}} available{{else}}Our most-loved pieces, ready to order{{end}}{{end}}

Shop all →
{{range $products}}
{{if .Img}} {{.Title}} {{else}}
No image
{{end}} {{if .Ext}} {{$badge := index .Ext "badge"}} {{if $badge}} {{$badge}} {{end}} {{end}}

{{.Title}}

{{if .Description}}

{{StrSub .Description 70}}

{{end}}
{{if .Price}}
{{$cur}}{{printf "%.2f" .Price}}
{{end}} {{if gt .Sales 0}}
{{.Sales}} sold
{{end}}
{{/* 加购按钮:只提交商品 ID,数量固定 1(列表页没有数量选择器)。 🚨 商城关闭时不渲染按钮 —— /cart 此时是 404,按钮在、点下去 404 比不显示更糟。 */}} {{if $.ShopEnabled}} {{if and (ne .StockLimit 2) (le .Stock 0)}} Sold out {{else}} {{end}} {{else}} View details {{end}}
{{end}}
{{end}} {{/* -------------------------------------------------------------- 工厂实力 */}} {{/* 外贸站的第一道信任门槛:买家在询价前要先确认「你是不是真的工厂」。 所以这块刻意放在产品推荐**之后**、数字条**之前** —— 先看到货,再看到厂, 最后才用数字佐证,顺序反了(先甩数字)会显得像贸易公司在自说自话。 ⚠️ 全部读 .ThemesExt,没有配置就整块不渲染: 用一张通用车间图配通用文案,比留白更容易被买家识破。 */}} {{$factoryTitle := index $ext "factory_title"}} {{$factoryDesc := index $ext "factory_desc"}} {{$factoryImg := index $ext "factory_image"}} {{if or $factoryTitle $factoryDesc}}
{{if $factoryImg}}
{{/* 🚨 车间图必须 object-cover + 固定比例:原图长宽比参差会把左侧撑成锯齿。 */}} {{if $factoryTitle}}{{$factoryTitle}}{{else}}Our factory floor{{end}}
{{end}}
{{with $factoryTitle}}

{{.}}

{{end}} {{with $factoryDesc}}

{{.}}

{{end}} {{with index $ext "catalog_url"}} Download the catalogue {{end}}
{{end}} {{/* ------------------------------------------------------------ 企业实力数据 */}} {{$cards := index $ext "stats_cards"}} {{if $cards}}

By the numbers

What the floor actually runs at, month in and month out

{{range $cards}} {{$bg := index . "bg"}}
{{index . "value"}}
{{index . "label"}}
{{end}}
{{end}} {{/* ---------------------------------------------------------------- 认证资质 */}} {{/* 🚨 只展示**后台真实填了**的认证:这是外贸站最容易出事的一块 —— 挂一个自己没有的 OEKO-TEX / GOTS 标,买家验厂或客户抽查时就是直接出局。 所以默认数据里每条都写了「范围」而不是只放一张图,且不配图时渲染文字徽标, 不用通用图标库里随便一张「证书」图充数。 */}} {{$certs := index $ext "certifications"}} {{if $certs}}

Certifications

Documents available on request — we will send them with the quote

{{range $certs}}
{{$certImg := index . "img"}} {{if $certImg}} {{index . {{else}} {{/* 没有证书图时渲染文字徽标,不放占位图 —— 买家会当成真的证书看。 */}} {{end}}
{{index . "name"}}
{{with index . "desc"}}
{{.}}
{{end}}
{{end}}
{{end}} {{/* ---------------------------------------------------------------- 出口市场 */}} {{$markets := index $ext "export_markets"}} {{if $markets}}

Where we ship

Regions we run regular programmes to, and the paperwork that comes with them

{{range $markets}}

{{index . "name"}}

{{with index . "desc"}}

{{.}}

{{end}}
{{end}}
{{end}} {{/* ---------------------------------------------------------------- 最新动态 */}} {{$news := ColumnContents "journal" 3}} {{if $news}}

From the export guide

MOQ, lead times, Incoterms and fabric specs

More guides →
{{range $news}}
{{if .Img}} {{.Title}} {{else}}
No image
{{end}}

{{.Title}}

{{if .Description}}

{{StrSub .Description 80}}

{{end}}
{{ParseTime .CreatedAt "2006-01-02"}} Read more →
{{end}}
{{end}} {{/* ---------------------------------------------------------------- 客户评价 */}} {{$testimonials := index $ext "testimonials"}} {{if $testimonials}}

What buyers say

Feedback from the people who place the repeat orders

{{range $testimonials}}

{{index . "content"}}

{{StrSub (index . "name") 1}}
{{index . "name"}}
{{with index . "company"}}
{{.}}
{{end}}
{{end}}
{{end}} {{/* ---------------------------------------------------------------- 合作伙伴 */}} {{$partners := index $ext "partners"}} {{if $partners}}

Who we supply

Retail chains, private labels and online brands

{{/* 合作伙伴 / 合作品牌。 */}}
{{range $partners}} {{/* 🚨 没有 logo 时渲染**文字字标**而不是塞一张占位图: 主题默认数据给不出真实 logo,用无关图片冒充客户品牌比空着更糟 (客户看到自己 logo 位置是张风景照会直接质疑)。 运营在后台上传 logo 后自动切回图片,两种形态都能看。 */}}
{{$logo := index . "logo"}} {{if $logo}} {{/* 🚨 合作伙伴 logo 必须 object-contain:object-cover 会把非正方形 logo 裁掉一半。 */}} {{index . {{else}} {{index . "name"}} {{end}}
{{end}}
{{end}} {{/* ------------------------------------------------------------ 底部询盘 CTA */}} {{/* 外贸站的主转化是「发询盘」而不是「下单」,文案读 rfq_* —— 运营在后台「Enquiry (RFQ)」分组里改,首页与商品页、联系页三处一起生效。 ⚠️ 仍回落 cta_*:旧站点已经填过 cta 文案,升级主题不该把它们清空变回默认句。 */}} {{if index $ext "show_cta"}} {{$rfqT := default (default (index $ext "rfq_title") (index $ext "cta_title")) "Need a quote, a sample, or a factory audit?"}} {{$rfqD := default (default (index $ext "rfq_desc") (index $ext "cta_desc")) "Send us your tech pack, target quantity and delivery window. We reply within one business day."}} {{$rfqB := default (default (index $ext "rfq_btn") (index $ext "cta_btn")) "Request a quote"}}

{{$rfqT}}

{{$rfqD}}

{{end}} {{include "footer.html"}} {{include "js.html"}} {{if index $ext "show_slides"}} {{$slides := HomeSlides}} {{if $slides}} {{end}} {{end}}