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() {
A picture of Irie Masayuki.
-
{t('company.irie.japanese')}
+
{t('company.irie.japanese')}
{t('company.irie.english')}
{t('company.irie.role')}
-
+
A picture of Masataka Nishikawa.
-
{t('company.nishikawa.japanese')}
+
+ {t('company.nishikawa.japanese')} +
{t('company.nishikawa.english')}
{t('company.nishikawa.role')}
-
+
A picture of Kou Sundberg.
-
{t('company.sundberg.japanese')}
+
+ {t('company.sundberg.japanese')} +
{t('company.sundberg.english')}
{t('company.sundberg.role')}
-
+
A picture of Masanori Komatsu. +
+
{t('company.masa.japanese')}
+
{t('company.masa.english')}
+
{t('company.masa.role')}
+
+ +
+
+ A picture of Takatoshi Yamano.
-
{t('company.yamano.japanese')}
+
{t('company.yamano.japanese')}
{t('company.yamano.english')}
{t('company.yamano.role')}
-
+
A picture of Alisa Yoshida.
-
{t('company.yoshida.japanese')}
+
{t('company.yoshida.japanese')}
{t('company.yoshida.english')}
{t('company.yoshida.role')}
-
+
A picture of Shinya Ikegaya.
-
{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.featuredImage?.altText}
    -

    {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) => (
    -
    +