diff --git a/.yarn/cache/@next-env-npm-13.4.13-68f13e6cc6-94935ff173.zip b/.yarn/cache/@next-env-npm-13.4.19-b5a63a2ff8-ace4f82890.zip
similarity index 77%
rename from .yarn/cache/@next-env-npm-13.4.13-68f13e6cc6-94935ff173.zip
rename to .yarn/cache/@next-env-npm-13.4.19-b5a63a2ff8-ace4f82890.zip
index 12be0da9c..fa91f6198 100644
Binary files a/.yarn/cache/@next-env-npm-13.4.13-68f13e6cc6-94935ff173.zip and b/.yarn/cache/@next-env-npm-13.4.19-b5a63a2ff8-ace4f82890.zip differ
diff --git a/.yarn/cache/@next-swc-darwin-arm64-npm-13.4.13-1d48f14907-8.zip b/.yarn/cache/@next-swc-darwin-arm64-npm-13.4.19-fca715fb2a-8.zip
similarity index 73%
rename from .yarn/cache/@next-swc-darwin-arm64-npm-13.4.13-1d48f14907-8.zip
rename to .yarn/cache/@next-swc-darwin-arm64-npm-13.4.19-fca715fb2a-8.zip
index 8de840c8e..deb4f1bcb 100644
Binary files a/.yarn/cache/@next-swc-darwin-arm64-npm-13.4.13-1d48f14907-8.zip and b/.yarn/cache/@next-swc-darwin-arm64-npm-13.4.19-fca715fb2a-8.zip differ
diff --git a/.yarn/cache/b4a-npm-1.6.4-080bcba845-81b086f9af.zip b/.yarn/cache/b4a-npm-1.6.4-080bcba845-81b086f9af.zip
new file mode 100644
index 000000000..887169b90
Binary files /dev/null and b/.yarn/cache/b4a-npm-1.6.4-080bcba845-81b086f9af.zip differ
diff --git a/.yarn/cache/base64-js-npm-1.5.1-b2f7275641-669632eb37.zip b/.yarn/cache/base64-js-npm-1.5.1-b2f7275641-669632eb37.zip
new file mode 100644
index 000000000..a49ec87ac
Binary files /dev/null and b/.yarn/cache/base64-js-npm-1.5.1-b2f7275641-669632eb37.zip differ
diff --git a/.yarn/cache/bl-npm-4.1.0-7f94cdcf3f-9e8521fa7e.zip b/.yarn/cache/bl-npm-4.1.0-7f94cdcf3f-9e8521fa7e.zip
new file mode 100644
index 000000000..0b0454bb8
Binary files /dev/null and b/.yarn/cache/bl-npm-4.1.0-7f94cdcf3f-9e8521fa7e.zip differ
diff --git a/.yarn/cache/buffer-npm-5.7.1-513ef8259e-e2cf8429e1.zip b/.yarn/cache/buffer-npm-5.7.1-513ef8259e-e2cf8429e1.zip
new file mode 100644
index 000000000..15c7810bc
Binary files /dev/null and b/.yarn/cache/buffer-npm-5.7.1-513ef8259e-e2cf8429e1.zip differ
diff --git a/.yarn/cache/chownr-npm-1.1.4-5bd400ab08-115648f8eb.zip b/.yarn/cache/chownr-npm-1.1.4-5bd400ab08-115648f8eb.zip
new file mode 100644
index 000000000..b4f504340
Binary files /dev/null and b/.yarn/cache/chownr-npm-1.1.4-5bd400ab08-115648f8eb.zip differ
diff --git a/.yarn/cache/color-npm-4.2.3-4a23227581-0579629c02.zip b/.yarn/cache/color-npm-4.2.3-4a23227581-0579629c02.zip
new file mode 100644
index 000000000..cca7ea310
Binary files /dev/null and b/.yarn/cache/color-npm-4.2.3-4a23227581-0579629c02.zip differ
diff --git a/.yarn/cache/color-string-npm-1.9.1-dc020e56be-c13fe7cff7.zip b/.yarn/cache/color-string-npm-1.9.1-dc020e56be-c13fe7cff7.zip
new file mode 100644
index 000000000..7f3fc7289
Binary files /dev/null and b/.yarn/cache/color-string-npm-1.9.1-dc020e56be-c13fe7cff7.zip differ
diff --git a/.yarn/cache/decompress-response-npm-6.0.0-359de2878c-d377cf47e0.zip b/.yarn/cache/decompress-response-npm-6.0.0-359de2878c-d377cf47e0.zip
new file mode 100644
index 000000000..bbc1db518
Binary files /dev/null and b/.yarn/cache/decompress-response-npm-6.0.0-359de2878c-d377cf47e0.zip differ
diff --git a/.yarn/cache/deep-extend-npm-0.6.0-e182924219-7be7e5a8d4.zip b/.yarn/cache/deep-extend-npm-0.6.0-e182924219-7be7e5a8d4.zip
new file mode 100644
index 000000000..87f0270ec
Binary files /dev/null and b/.yarn/cache/deep-extend-npm-0.6.0-e182924219-7be7e5a8d4.zip differ
diff --git a/.yarn/cache/detect-libc-npm-2.0.2-03afa59137-2b2cd3649b.zip b/.yarn/cache/detect-libc-npm-2.0.2-03afa59137-2b2cd3649b.zip
new file mode 100644
index 000000000..1db92146b
Binary files /dev/null and b/.yarn/cache/detect-libc-npm-2.0.2-03afa59137-2b2cd3649b.zip differ
diff --git a/.yarn/cache/end-of-stream-npm-1.4.4-497fc6dee1-530a5a5a1e.zip b/.yarn/cache/end-of-stream-npm-1.4.4-497fc6dee1-530a5a5a1e.zip
new file mode 100644
index 000000000..fecd2286f
Binary files /dev/null and b/.yarn/cache/end-of-stream-npm-1.4.4-497fc6dee1-530a5a5a1e.zip differ
diff --git a/.yarn/cache/expand-template-npm-2.0.3-80de959306-588c198472.zip b/.yarn/cache/expand-template-npm-2.0.3-80de959306-588c198472.zip
new file mode 100644
index 000000000..ec0c34f00
Binary files /dev/null and b/.yarn/cache/expand-template-npm-2.0.3-80de959306-588c198472.zip differ
diff --git a/.yarn/cache/fast-fifo-npm-1.3.2-391cc25df4-6bfcba3e4d.zip b/.yarn/cache/fast-fifo-npm-1.3.2-391cc25df4-6bfcba3e4d.zip
new file mode 100644
index 000000000..c99b59833
Binary files /dev/null and b/.yarn/cache/fast-fifo-npm-1.3.2-391cc25df4-6bfcba3e4d.zip differ
diff --git a/.yarn/cache/fs-constants-npm-1.0.0-59576b2177-18f5b71837.zip b/.yarn/cache/fs-constants-npm-1.0.0-59576b2177-18f5b71837.zip
new file mode 100644
index 000000000..91f5b6f1f
Binary files /dev/null and b/.yarn/cache/fs-constants-npm-1.0.0-59576b2177-18f5b71837.zip differ
diff --git a/.yarn/cache/github-from-package-npm-0.0.0-519f80c9a1-14e448192a.zip b/.yarn/cache/github-from-package-npm-0.0.0-519f80c9a1-14e448192a.zip
new file mode 100644
index 000000000..0b7c782c1
Binary files /dev/null and b/.yarn/cache/github-from-package-npm-0.0.0-519f80c9a1-14e448192a.zip differ
diff --git a/.yarn/cache/ieee754-npm-1.2.1-fb63b3caeb-5144c0c981.zip b/.yarn/cache/ieee754-npm-1.2.1-fb63b3caeb-5144c0c981.zip
new file mode 100644
index 000000000..74128ad8f
Binary files /dev/null and b/.yarn/cache/ieee754-npm-1.2.1-fb63b3caeb-5144c0c981.zip differ
diff --git a/.yarn/cache/ini-npm-1.3.8-fb5040b4c0-dfd98b0ca3.zip b/.yarn/cache/ini-npm-1.3.8-fb5040b4c0-dfd98b0ca3.zip
new file mode 100644
index 000000000..ee9245b9c
Binary files /dev/null and b/.yarn/cache/ini-npm-1.3.8-fb5040b4c0-dfd98b0ca3.zip differ
diff --git a/.yarn/cache/is-arrayish-npm-0.3.2-f856180f79-977e64f54d.zip b/.yarn/cache/is-arrayish-npm-0.3.2-f856180f79-977e64f54d.zip
new file mode 100644
index 000000000..593895a16
Binary files /dev/null and b/.yarn/cache/is-arrayish-npm-0.3.2-f856180f79-977e64f54d.zip differ
diff --git a/.yarn/cache/mimic-response-npm-3.1.0-a4a24b4e96-25739fee32.zip b/.yarn/cache/mimic-response-npm-3.1.0-a4a24b4e96-25739fee32.zip
new file mode 100644
index 000000000..a47a9a623
Binary files /dev/null and b/.yarn/cache/mimic-response-npm-3.1.0-a4a24b4e96-25739fee32.zip differ
diff --git a/.yarn/cache/mkdirp-classic-npm-0.5.3-3b5c991910-3f4e088208.zip b/.yarn/cache/mkdirp-classic-npm-0.5.3-3b5c991910-3f4e088208.zip
new file mode 100644
index 000000000..8663492ed
Binary files /dev/null and b/.yarn/cache/mkdirp-classic-npm-0.5.3-3b5c991910-3f4e088208.zip differ
diff --git a/.yarn/cache/napi-build-utils-npm-1.0.2-892e4bba56-06c14271ee.zip b/.yarn/cache/napi-build-utils-npm-1.0.2-892e4bba56-06c14271ee.zip
new file mode 100644
index 000000000..3088994c2
Binary files /dev/null and b/.yarn/cache/napi-build-utils-npm-1.0.2-892e4bba56-06c14271ee.zip differ
diff --git a/.yarn/cache/next-npm-13.4.13-faba52c50a-49c161ffaf.zip b/.yarn/cache/next-npm-13.4.19-bc82e788ec-f4873dab88.zip
similarity index 81%
rename from .yarn/cache/next-npm-13.4.13-faba52c50a-49c161ffaf.zip
rename to .yarn/cache/next-npm-13.4.19-bc82e788ec-f4873dab88.zip
index f986282e1..f6bf358d6 100644
Binary files a/.yarn/cache/next-npm-13.4.13-faba52c50a-49c161ffaf.zip and b/.yarn/cache/next-npm-13.4.19-bc82e788ec-f4873dab88.zip differ
diff --git a/.yarn/cache/node-abi-npm-3.47.0-9d2a86a633-ff8498dcd4.zip b/.yarn/cache/node-abi-npm-3.47.0-9d2a86a633-ff8498dcd4.zip
new file mode 100644
index 000000000..7eafa544d
Binary files /dev/null and b/.yarn/cache/node-abi-npm-3.47.0-9d2a86a633-ff8498dcd4.zip differ
diff --git a/.yarn/cache/node-addon-api-npm-6.1.0-634c545b39-3a539510e6.zip b/.yarn/cache/node-addon-api-npm-6.1.0-634c545b39-3a539510e6.zip
new file mode 100644
index 000000000..012df449c
Binary files /dev/null and b/.yarn/cache/node-addon-api-npm-6.1.0-634c545b39-3a539510e6.zip differ
diff --git a/.yarn/cache/prebuild-install-npm-7.1.1-cb9fc9d341-dbf96d0146.zip b/.yarn/cache/prebuild-install-npm-7.1.1-cb9fc9d341-dbf96d0146.zip
new file mode 100644
index 000000000..577542173
Binary files /dev/null and b/.yarn/cache/prebuild-install-npm-7.1.1-cb9fc9d341-dbf96d0146.zip differ
diff --git a/.yarn/cache/pump-npm-3.0.0-0080bf6a7a-e42e9229fb.zip b/.yarn/cache/pump-npm-3.0.0-0080bf6a7a-e42e9229fb.zip
new file mode 100644
index 000000000..058568362
Binary files /dev/null and b/.yarn/cache/pump-npm-3.0.0-0080bf6a7a-e42e9229fb.zip differ
diff --git a/.yarn/cache/queue-tick-npm-1.0.1-10bd6eaf3d-57c3292814.zip b/.yarn/cache/queue-tick-npm-1.0.1-10bd6eaf3d-57c3292814.zip
new file mode 100644
index 000000000..9f5e83abe
Binary files /dev/null and b/.yarn/cache/queue-tick-npm-1.0.1-10bd6eaf3d-57c3292814.zip differ
diff --git a/.yarn/cache/rc-npm-1.2.8-d6768ac936-2e26e052f8.zip b/.yarn/cache/rc-npm-1.2.8-d6768ac936-2e26e052f8.zip
new file mode 100644
index 000000000..f7372f98e
Binary files /dev/null and b/.yarn/cache/rc-npm-1.2.8-d6768ac936-2e26e052f8.zip differ
diff --git a/.yarn/cache/sharp-npm-0.32.5-f82a9875e0-3cd6dc037c.zip b/.yarn/cache/sharp-npm-0.32.5-f82a9875e0-3cd6dc037c.zip
new file mode 100644
index 000000000..d884e7737
Binary files /dev/null and b/.yarn/cache/sharp-npm-0.32.5-f82a9875e0-3cd6dc037c.zip differ
diff --git a/.yarn/cache/simple-concat-npm-1.0.1-48df70de29-4d211042cc.zip b/.yarn/cache/simple-concat-npm-1.0.1-48df70de29-4d211042cc.zip
new file mode 100644
index 000000000..6b694bed9
Binary files /dev/null and b/.yarn/cache/simple-concat-npm-1.0.1-48df70de29-4d211042cc.zip differ
diff --git a/.yarn/cache/simple-get-npm-4.0.1-fa2a97645d-e4132fd27c.zip b/.yarn/cache/simple-get-npm-4.0.1-fa2a97645d-e4132fd27c.zip
new file mode 100644
index 000000000..95cce5fb2
Binary files /dev/null and b/.yarn/cache/simple-get-npm-4.0.1-fa2a97645d-e4132fd27c.zip differ
diff --git a/.yarn/cache/simple-swizzle-npm-0.2.2-8dee37fad1-a7f3f2ab5c.zip b/.yarn/cache/simple-swizzle-npm-0.2.2-8dee37fad1-a7f3f2ab5c.zip
new file mode 100644
index 000000000..8420b563a
Binary files /dev/null and b/.yarn/cache/simple-swizzle-npm-0.2.2-8dee37fad1-a7f3f2ab5c.zip differ
diff --git a/.yarn/cache/streamx-npm-2.15.1-d5dbdeeb03-6f2b4fed68.zip b/.yarn/cache/streamx-npm-2.15.1-d5dbdeeb03-6f2b4fed68.zip
new file mode 100644
index 000000000..6f148acd5
Binary files /dev/null and b/.yarn/cache/streamx-npm-2.15.1-d5dbdeeb03-6f2b4fed68.zip differ
diff --git a/.yarn/cache/strip-json-comments-npm-2.0.1-e7883b2d04-1074ccb632.zip b/.yarn/cache/strip-json-comments-npm-2.0.1-e7883b2d04-1074ccb632.zip
new file mode 100644
index 000000000..9c537fe05
Binary files /dev/null and b/.yarn/cache/strip-json-comments-npm-2.0.1-e7883b2d04-1074ccb632.zip differ
diff --git a/.yarn/cache/tar-fs-npm-2.1.1-e374d3b7a2-f5b9a70059.zip b/.yarn/cache/tar-fs-npm-2.1.1-e374d3b7a2-f5b9a70059.zip
new file mode 100644
index 000000000..f256de33b
Binary files /dev/null and b/.yarn/cache/tar-fs-npm-2.1.1-e374d3b7a2-f5b9a70059.zip differ
diff --git a/.yarn/cache/tar-fs-npm-3.0.4-fa3da2e321-dcf4054f9e.zip b/.yarn/cache/tar-fs-npm-3.0.4-fa3da2e321-dcf4054f9e.zip
new file mode 100644
index 000000000..bfc23b92a
Binary files /dev/null and b/.yarn/cache/tar-fs-npm-3.0.4-fa3da2e321-dcf4054f9e.zip differ
diff --git a/.yarn/cache/tar-stream-npm-2.2.0-884c79b510-699831a8b9.zip b/.yarn/cache/tar-stream-npm-2.2.0-884c79b510-699831a8b9.zip
new file mode 100644
index 000000000..6d7267b31
Binary files /dev/null and b/.yarn/cache/tar-stream-npm-2.2.0-884c79b510-699831a8b9.zip differ
diff --git a/.yarn/cache/tar-stream-npm-3.1.6-ce3ac17e49-f3627f9185.zip b/.yarn/cache/tar-stream-npm-3.1.6-ce3ac17e49-f3627f9185.zip
new file mode 100644
index 000000000..43731cca1
Binary files /dev/null and b/.yarn/cache/tar-stream-npm-3.1.6-ce3ac17e49-f3627f9185.zip differ
diff --git a/.yarn/cache/tunnel-agent-npm-0.6.0-64345ab7eb-05f6510358.zip b/.yarn/cache/tunnel-agent-npm-0.6.0-64345ab7eb-05f6510358.zip
new file mode 100644
index 000000000..5256e2008
Binary files /dev/null and b/.yarn/cache/tunnel-agent-npm-0.6.0-64345ab7eb-05f6510358.zip differ
diff --git a/app/[locale]/about/about-narai-detail.tsx b/app/[locale]/about/about-narai-detail.tsx
index 4efd5936a..098d19bc6 100644
--- a/app/[locale]/about/about-narai-detail.tsx
+++ b/app/[locale]/about/about-narai-detail.tsx
@@ -112,6 +112,9 @@ export default function AboutNaraiDetail({ awards }: { awards: string }) {
{t('about.materials.water.title')}
+
+ {t('about.materials.water.subtitle')}
+
{t('about.materials.water.body')}
@@ -132,6 +135,9 @@ export default function AboutNaraiDetail({ awards }: { awards: string }) {
{t('about.materials.rice.title')}
+
+ {t('about.materials.rice.subtitle')}
+
{t('about.materials.rice.body')}
@@ -152,6 +158,9 @@ export default function AboutNaraiDetail({ awards }: { awards: string }) {
{t('about.materials.koji.title')}
+
+ {t('about.materials.koji.subtitle')}
+
{t('about.materials.koji.body')}
@@ -165,7 +174,7 @@ export default function AboutNaraiDetail({ awards }: { awards: string }) {
-
{t('about.irie.title')}
+
{t('about.irie.title')}
{t('about.irie.body')}
diff --git a/app/[locale]/about/page.tsx b/app/[locale]/about/page.tsx
index a1354a4a0..936d6628d 100644
--- a/app/[locale]/about/page.tsx
+++ b/app/[locale]/about/page.tsx
@@ -2,7 +2,8 @@ import Footer from 'components/layout/footer';
import { SupportedLocale } from 'components/layout/navbar/language-control';
import Navbar from 'components/layout/navbar';
-import { getCart, getPage } from 'lib/shopify';
+import { getCart, getPage, getProduct } from 'lib/shopify';
+import { Product } from 'lib/shopify/types';
import { cookies } from 'next/headers';
import { Suspense } from 'react';
import AboutNaraiDetail from './about-narai-detail';
@@ -26,11 +27,16 @@ export default async function Page({ params }: { params: { locale?: SupportedLoc
cart = await getCart(cartId);
}
+ const promotedItem: Product | undefined = await getProduct({
+ handle: 'gift-bag-and-postcard-set',
+ language: params?.locale?.toUpperCase()
+ });
+
const awardsPage = await getPage({ handle: 'awards', language: params?.locale?.toUpperCase() });
return (
-
+
diff --git a/app/[locale]/bar/page.tsx b/app/[locale]/bar/page.tsx
index 98fe0ea39..c5f496db0 100644
--- a/app/[locale]/bar/page.tsx
+++ b/app/[locale]/bar/page.tsx
@@ -2,7 +2,8 @@ import Footer from 'components/layout/footer';
import { SupportedLocale } from 'components/layout/navbar/language-control';
import Navbar from 'components/layout/navbar';
-import { getCart } from 'lib/shopify';
+import { getCart, getProduct } from 'lib/shopify';
+import { Product } from 'lib/shopify/types';
import { cookies } from 'next/headers';
import { Suspense } from 'react';
import SagyobarDetail from './sagyobar-detail';
@@ -28,9 +29,14 @@ export default async function Page({ params }: { params: { locale?: SupportedLoc
cart = await getCart(cartId);
}
+ const promotedItem: Product | undefined = await getProduct({
+ handle: 'gift-bag-and-postcard-set',
+ language: params?.locale?.toUpperCase()
+ });
+
return (
-
+
diff --git a/app/[locale]/bar/sagyobar-detail.tsx b/app/[locale]/bar/sagyobar-detail.tsx
index 52f1a275c..784d8f1a7 100644
--- a/app/[locale]/bar/sagyobar-detail.tsx
+++ b/app/[locale]/bar/sagyobar-detail.tsx
@@ -62,7 +62,9 @@ export default function SagyobarDetail() {
-
{t('bar.002')}
+
+ {t('bar.002')}
+
@@ -97,11 +99,11 @@ export default function SagyobarDetail() {
{t('bar.access.title')}
{t('bar.access.para001')}
-
{t('bar.access.para002')}
+
{t('bar.access.para002')}
{t('bar.access.para003')}
{t('bar.access.para004')}
{t('bar.access.para005')}
-
{t('bar.access.para006')}
+
{t('bar.access.para006')}
{t('bar.access.para007')}
@@ -127,7 +129,9 @@ export default function SagyobarDetail() {
{t('bar.menu.para001')}
@@ -140,8 +144,9 @@ export default function SagyobarDetail() {
-
{t('bar.clerk.title')}
-
{t('bar.clerk.body')}
+
{t('bar.clerk.title')}
+
{t('bar.clerk.001')}
+
{t('bar.clerk.002')}
- {t('company.title')}
+
+ {t('company.title')}
+
{t('company.subtitle001')}
@@ -70,83 +77,101 @@ export default function CompanyDetail() {
-
{t('company.irie.japanese')}
+
{t('company.irie.japanese')}
{t('company.irie.english')}
{t('company.irie.role')}
-
+
-
{t('company.nishikawa.japanese')}
+
+ {t('company.nishikawa.japanese')}
+
{t('company.nishikawa.english')}
{t('company.nishikawa.role')}
-
+
-
{t('company.sundberg.japanese')}
+
+ {t('company.sundberg.japanese')}
+
{t('company.sundberg.english')}
{t('company.sundberg.role')}
-
+
+
+
{t('company.masa.japanese')}
+
{t('company.masa.english')}
+
{t('company.masa.role')}
+
+
+
+
+
-
{t('company.yamano.japanese')}
+
{t('company.yamano.japanese')}
{t('company.yamano.english')}
{t('company.yamano.role')}
-
+
-
{t('company.yoshida.japanese')}
+
{t('company.yoshida.japanese')}
{t('company.yoshida.english')}
{t('company.yoshida.role')}
-
+
-
{t('company.ikegaya.japanese')}
+
{t('company.ikegaya.japanese')}
{t('company.ikegaya.english')}
{t('company.ikegaya.role')}
diff --git a/app/[locale]/company/page.tsx b/app/[locale]/company/page.tsx
index ae9820f10..fe6ca923c 100644
--- a/app/[locale]/company/page.tsx
+++ b/app/[locale]/company/page.tsx
@@ -2,7 +2,8 @@ import Footer from 'components/layout/footer';
import { SupportedLocale } from 'components/layout/navbar/language-control';
import Navbar from 'components/layout/navbar';
-import { getCart } from 'lib/shopify';
+import { getCart, getProduct } from 'lib/shopify';
+import { Product } from 'lib/shopify/types';
import { cookies } from 'next/headers';
import { Suspense } from 'react';
import CompanyDetail from './company-detail';
@@ -28,9 +29,14 @@ export default async function Page({ params }: { params: { locale?: SupportedLoc
cart = await getCart(cartId);
}
+ const promotedItem: Product | undefined = await getProduct({
+ handle: 'gift-bag-and-postcard-set',
+ language: params?.locale?.toUpperCase()
+ });
+
return (
-
+
diff --git a/app/[locale]/concept/concept-detail.tsx b/app/[locale]/concept/concept-detail.tsx
index 803b24458..47fb9d2a3 100644
--- a/app/[locale]/concept/concept-detail.tsx
+++ b/app/[locale]/concept/concept-detail.tsx
@@ -28,20 +28,23 @@ export default function ConceptDetail() {
)}
>
-
{t('concept.title')}
-
- {t('concept.para001')} {t('concept.para002')} {t('concept.para003')}
-
-
-
{t('concept.subtitle001')}
-
{t('concept.para004')}
-
{t('concept.subtitle002')}
-
{t('concept.para005')}
-
- {t('concept.para006')} {t('concept.para007')} {t('concept.para008')}
+
+
{t('concept.title')}
+
+ {t('concept.para001')} {t('concept.para002')}{' '}
+ {t('concept.para003')}
-
{t('concept.para009')}
-
{t('concept.para010')}
+
+
{t('concept.subtitle001')}
+
{t('concept.para004')}
+
{t('concept.para005')}
+
{t('concept.para006')}
+
+ {t('concept.para007')} {t('concept.para008')}
+
+
{t('concept.para009')}
+
{t('concept.para010')}
+
diff --git a/app/[locale]/concept/page.tsx b/app/[locale]/concept/page.tsx
index e23066ec4..ea6fc481e 100644
--- a/app/[locale]/concept/page.tsx
+++ b/app/[locale]/concept/page.tsx
@@ -2,7 +2,8 @@ import Footer from 'components/layout/footer';
import { SupportedLocale } from 'components/layout/navbar/language-control';
import Navbar from 'components/layout/navbar';
-import { getCart } from 'lib/shopify';
+import { getCart, getProduct } from 'lib/shopify';
+import { Product } from 'lib/shopify/types';
import { cookies } from 'next/headers';
import { Suspense } from 'react';
import ConceptDetail from './concept-detail';
@@ -28,9 +29,14 @@ export default async function Page({ params }: { params: { locale?: SupportedLoc
cart = await getCart(cartId);
}
+ const promotedItem: Product | undefined = await getProduct({
+ handle: 'gift-bag-and-postcard-set',
+ language: params?.locale?.toUpperCase()
+ });
+
return (
-
+
diff --git a/app/[locale]/disclosures/disclosures.tsx b/app/[locale]/disclosures/disclosures.tsx
index 872d87ed2..43232b653 100644
--- a/app/[locale]/disclosures/disclosures.tsx
+++ b/app/[locale]/disclosures/disclosures.tsx
@@ -9,101 +9,131 @@ export default function Disclosures() {
<>
- {t('disclosurePage.title')}
+ {t('disclosure-page.title')}
-
{t('disclosurePage.distributor.label')}
+
{t('disclosure-page.distributor.label')}
-
{t('disclosurePage.distributor.value')}
+
{t('disclosure-page.distributor.value')}
-
{t('disclosurePage.representative.label')}
+
{t('disclosure-page.representative.label')}
-
{t('disclosurePage.representative.value')}
+
{t('disclosure-page.representative.value')}
-
{t('disclosurePage.address.label')}
+
{t('disclosure-page.address.label')}
-
{t('disclosurePage.address.one')}
-
{t('disclosurePage.address.two')}
+
{t('disclosure-page.address.one')}
+
{t('disclosure-page.address.two')}
-
{t('disclosurePage.phone.label')}
+
{t('disclosure-page.phone.label')}
-
{t('disclosurePage.phone.value')}
+
{t('disclosure-page.phone.value')}
-
{t('disclosurePage.email.label')}
+
{t('disclosure-page.email.label')}
-
{t('disclosurePage.email.value')}
+
{t('disclosure-page.email.value')}
-
{t('disclosurePage.homepage.label')}
+
{t('disclosure-page.homepage.label')}
- {t('disclosurePage.homepage.value')}
+ {t('disclosure-page.homepage.value')}
-
{t('disclosurePage.price.label')}
+
{t('disclosure-page.price.label')}
-
{t('disclosurePage.price.value')}
+
{t('disclosure-page.price.value')}
-
{t('disclosurePage.otherCharges.label')}
+
{t('disclosure-page.paymentMethod.label')}
-
{t('disclosurePage.otherCharges.value')}
+
{t('disclosure-page.paymentMethod.value')}
-
{t('disclosurePage.paymentMethod.label')}
+
{t('disclosure-page.paymentPeriod.label')}
-
{t('disclosurePage.paymentMethod.value')}
+
{t('disclosure-page.paymentPeriod.value')}
-
{t('disclosurePage.paymentPeriod.label')}
+
{t('disclosure-page.delivery.label')}
-
{t('disclosurePage.paymentPeriod.value')}
+
{t('disclosure-page.delivery.value')}
-
{t('disclosurePage.delivery.label')}
+
{t('disclosure-page.returnsAndExchanges.label')}
-
{t('disclosurePage.delivery.value')}
+
{t('disclosure-page.returnsAndExchanges.one')}
+
{t('disclosure-page.returnsAndExchanges.two')}
+
+
+
+
+ {t('disclosure-page.legal.title')}
+
+
+
+
{t('disclosure-page.legal.001.label')}
+
+
{t('disclosure-page.legal.001.value')}
-
{t('disclosurePage.returnsAndExchanges.label')}
+
{t('disclosure-page.legal.002.label')}
-
{t('disclosurePage.returnsAndExchanges.one')}
-
{t('disclosurePage.returnsAndExchanges.two')}
+
{t('disclosure-page.legal.002.value')}
+
+
{t('disclosure-page.legal.003.label')}
+
+
{t('disclosure-page.legal.003.value')}
+
+
+
+
{t('disclosure-page.legal.004.label')}
+
+
{t('disclosure-page.legal.004.value')}
+
+
+
+
{t('disclosure-page.legal.005.label')}
+
+
{t('disclosure-page.legal.005.value')}
+
+
+
- ⇠ {t('disclosurePage.return')}
+ ⇠ {t('disclosure-page.return')}
diff --git a/app/[locale]/disclosures/page.tsx b/app/[locale]/disclosures/page.tsx
index 5e4d03468..8654d2192 100644
--- a/app/[locale]/disclosures/page.tsx
+++ b/app/[locale]/disclosures/page.tsx
@@ -2,7 +2,8 @@ import Footer from 'components/layout/footer';
import { SupportedLocale } from 'components/layout/navbar/language-control';
import Navbar from 'components/layout/navbar';
-import { getCart } from 'lib/shopify';
+import { getCart, getProduct } from 'lib/shopify';
+import { Product } from 'lib/shopify/types';
import { cookies } from 'next/headers';
import { Suspense } from 'react';
import Disclosures from './disclosures';
@@ -32,9 +33,14 @@ export default async function DisclosuresPage({
cart = await getCart(cartId);
}
+ const promotedItem: Product | undefined = await getProduct({
+ handle: 'gift-bag-and-postcard-set',
+ language: locale?.toUpperCase()
+ });
+
return (
-
+
diff --git a/app/[locale]/page.tsx b/app/[locale]/page.tsx
index 318b6768d..bca541295 100644
--- a/app/[locale]/page.tsx
+++ b/app/[locale]/page.tsx
@@ -20,7 +20,8 @@ import SagyobarPreview from 'components/layout/sagyobar-preview';
import Shoplist from 'components/layout/shoplist';
import StoriesPreview from 'components/layout/stories-preview';
import { BLOG_HANDLE } from 'lib/constants';
-import { getCart } from 'lib/shopify';
+import { getCart, getProduct } from 'lib/shopify';
+import { Product } from 'lib/shopify/types';
import { cookies } from 'next/headers';
import Image from 'next/image';
import { Suspense } from 'react';
@@ -48,9 +49,14 @@ export default async function HomePage({
cart = await getCart(cartId);
}
+ const promotedItem: Product | undefined = await getProduct({
+ handle: 'gift-bag-and-postcard-set',
+ language: locale?.toUpperCase()
+ });
+
return (
-
+
@@ -145,7 +151,7 @@ export default async function HomePage({
-
+
);
diff --git a/app/[locale]/privacy/page.tsx b/app/[locale]/privacy/page.tsx
index a45c66492..c63355d2e 100644
--- a/app/[locale]/privacy/page.tsx
+++ b/app/[locale]/privacy/page.tsx
@@ -2,7 +2,8 @@ import Footer from 'components/layout/footer';
import { SupportedLocale } from 'components/layout/navbar/language-control';
import Navbar from 'components/layout/navbar';
-import { getCart } from 'lib/shopify';
+import { getCart, getProduct } from 'lib/shopify';
+import { Product } from 'lib/shopify/types';
import { cookies } from 'next/headers';
import { Suspense } from 'react';
import PrivacyPolicy from './privacy-policy';
@@ -32,9 +33,14 @@ export default async function PrivacyPage({
cart = await getCart(cartId);
}
+ const promotedItem: Product | undefined = await getProduct({
+ handle: 'gift-bag-and-postcard-set',
+ language: locale?.toUpperCase()
+ });
+
return (
-
+
diff --git a/app/[locale]/privacy/privacy-policy.tsx b/app/[locale]/privacy/privacy-policy.tsx
index 26d3caa2e..0a3ed47c9 100644
--- a/app/[locale]/privacy/privacy-policy.tsx
+++ b/app/[locale]/privacy/privacy-policy.tsx
@@ -6,8 +6,8 @@ export default function PrivacyPolicy() {
const t = useTranslations('Index');
return (
<>
-
-
+
+
{t('privacy.title')}
@@ -16,7 +16,7 @@ export default function PrivacyPolicy() {
{t('privacy.pleaseRead')}
{t('privacy.usedFor')}
-
+
{t('privacy.definitions.title')}
@@ -37,13 +37,13 @@ export default function PrivacyPolicy() {
{t('privacy.definitions.usageData')}
{t('privacy.definitions.you')}
-
+
{t('privacy.collectingAndUsing.title')}
{t('privacy.collectingAndUsing.inScope')}
-
+
{t('privacy.usageData.title')}
@@ -52,7 +52,7 @@ export default function PrivacyPolicy() {
{t('privacy.usageData.deviceInfo')}
-
+
{t('privacy.cookies.title')}
@@ -60,7 +60,7 @@ export default function PrivacyPolicy() {
{t('privacy.cookies.doNotAccept')}
-
+
{t('privacy.personal.title')}
@@ -80,20 +80,20 @@ export default function PrivacyPolicy() {
{t('privacy.personal.sharing.socialMedia')}
-
+
{t('privacy.personal.retention.title')}
{t('privacy.personal.retention.asNecessary')}
{t('privacy.personal.retention.internalAnalysis')}
-
+
{t('privacy.personal.transfer.title')}
{t('privacy.personal.transfer.transborder')}
-
+
{t('privacy.personal.disclosure.title')}
@@ -102,7 +102,7 @@ export default function PrivacyPolicy() {
{t('privacy.personal.disclosure.goodFaith')}
{t('privacy.personal.disclosure.noGuarantee')}
-
+
{t('privacy.personal.processing.title')}
@@ -119,34 +119,34 @@ export default function PrivacyPolicy() {
{t('privacy.personal.processing.creditCards')}
{t('privacy.personal.processing.cookies')}
-
+
{t('privacy.personal.mobile.title')}
{t('privacy.personal.mobile.optOut')}
-
+
{t('privacy.personal.doNotTrack.title')}
{t('privacy.personal.doNotTrack.noResponse')}
{t('privacy.personal.doNotTrack.browser')}
-
+
{t('privacy.personal.links.title')}
{t('privacy.personal.links.external')}
{t('privacy.personal.links.disclaimer')}
-
+
{t('privacy.changes.title')}
{t('privacy.changes.updates')}
{t('privacy.changes.review')}
-
+
{t('privacy.contactUs.title')}
diff --git a/app/[locale]/product/[handle]/page.tsx b/app/[locale]/product/[handle]/page.tsx
index 0d19171fa..b34f4ccea 100644
--- a/app/[locale]/product/[handle]/page.tsx
+++ b/app/[locale]/product/[handle]/page.tsx
@@ -3,12 +3,13 @@ import { notFound } from 'next/navigation';
import { Suspense } from 'react';
import clsx from 'clsx';
-import { AddToCart } from 'components/cart/add-to-cart';
+import { AddManyToCart } from 'components/cart/add-many-to-cart';
import { GridTileImage } from 'components/grid/tile';
import Label from 'components/label';
import { SupportedLocale } from 'components/layout/navbar/language-control';
import Price from 'components/price';
import { ProductDescription } from 'components/product/product-description';
+import { ProductTastingNotes } from 'components/product/tasting-notes';
import { VariantSelector } from 'components/product/variant-selector';
import { HIDDEN_PRODUCT_TAG } from 'lib/constants';
import { getProduct, getProductRecommendations } from 'lib/shopify';
@@ -70,6 +71,7 @@ export default async function ProductPage({
handle: params.handle,
language: params?.locale?.toUpperCase()
});
+
let otherImages: MediaImage[] = [];
if (!!product) {
otherImages = product.images
@@ -109,7 +111,7 @@ export default async function ProductPage({
-
{product.title}
+ {product.title}
-
+
-
@@ -148,6 +151,16 @@ export default async function ProductPage({
+
+
+ {!!product?.galleryIntro?.value && (
+
+
{product.galleryIntro.value}
+
+ )}
+
{!!otherImages &&
otherImages?.length > 0 &&
@@ -174,6 +187,13 @@ export default async function ProductPage({
);
})}
+
+ {!!product?.lower?.value && (
+
+
{product.lower.value}
+
+ )}
+
@@ -190,8 +210,8 @@ async function RelatedProducts({ id }: { id: string }) {
return (
-
other products
-
+ other products
+
{relatedProducts.map((product) => (
-
+