{"product_id":"ripple-plant-based-protein-shake","title":"Ripple Plant Based Protein Shake — 12 fl oz (355mL) × 12 Bottles","description":"\u003cstyle\u003e\n\/* Wonjo canonical stylesheet v3.0 — see wonjo-style-LOCKED.md for documentation *\/\n\n  \/* === WRAPPERS === *\/\n  .wonjo-wrap { font-family: 'Apple SD Gothic Neo', 'Noto Sans KR', 'Malgun Gothic', sans-serif; color: #2b2b2b; font-size: 16px; line-height: 1.85; max-width: 720px; }\n  .wonjo-wrap-kr { font-family: 'Apple SD Gothic Neo', 'Noto Sans KR', 'Malgun Gothic', sans-serif; color: #2b2b2b; font-size: 16px; line-height: 1.95; max-width: 720px; }\n\n  \/* === COMMON TEXT === *\/\n  .wonjo-wrap p, .wonjo-wrap-kr p { margin: 0 0 13px 0; color: #3a3a3a; }\n  .wonjo-wrap ul, .wonjo-wrap-kr ul { margin: 0 0 13px 0; padding-left: 18px; color: #3a3a3a; }\n  .wonjo-wrap ul li, .wonjo-wrap-kr ul li { margin-bottom: 7px; }\n\n  \/* === HEADINGS — H2 (old protein template) === *\/\n  .wonjo-wrap h2 { font-size: 16px; font-weight: 700; text-transform: uppercase; letter-spacing: 1.2px; color: #4a7c59; margin: 36px 0 8px 0; }\n  .wonjo-wrap-kr h2 { font-size: 18px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.8px; color: #4a7c59; margin: 36px 0 8px 0; }\n\n  \/* === HR SEPARATOR (under h2 + inside details) === *\/\n  .wonjo-wrap hr, .wonjo-wrap-kr hr,\n  .wonjo-wrap details hr, .wonjo-wrap-kr details hr { border: none; border-top: 1.5px solid #4a7c59; margin: 0 0 18px 0; }\n\n  \/* === DETAILS \/ SUMMARY (rounds 1-4 + LEGO) === *\/\n  .wonjo-wrap details, .wonjo-wrap-kr details { margin: 0; border-bottom: 1px solid #e8e8e4; }\n  .wonjo-wrap details:last-of-type, .wonjo-wrap-kr details:last-of-type { border-bottom: none; }\n\n  .wonjo-wrap details summary { font-size: 16px; font-weight: 700; text-transform: uppercase; letter-spacing: 1.2px; color: #4a7c59; padding: 20px 30px 20px 0; cursor: pointer; list-style: none; position: relative; }\n  .wonjo-wrap-kr details summary { font-size: 18px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.8px; color: #4a7c59; padding: 20px 30px 20px 0; cursor: pointer; list-style: none; position: relative; }\n\n  .wonjo-wrap details summary::-webkit-details-marker, .wonjo-wrap-kr details summary::-webkit-details-marker { display: none; }\n  .wonjo-wrap details summary::after, .wonjo-wrap-kr details summary::after { content: '+'; position: absolute; right: 0; top: 50%; transform: translateY(-50%); font-size: 20px; font-weight: normal; color: #4a7c59; }\n  .wonjo-wrap details[open] summary::after, .wonjo-wrap-kr details[open] summary::after { content: '−'; }\n\n  \/* Content spacing — handles both direct-children variant AND \u003cdiv\u003e wrapper variant *\/\n  .wonjo-wrap details \u003e *:not(summary):not(hr), .wonjo-wrap-kr details \u003e *:not(summary):not(hr) { margin-bottom: 13px; }\n  .wonjo-wrap details \u003e *:last-child, .wonjo-wrap-kr details \u003e *:last-child { margin-bottom: 18px; }\n  .wonjo-wrap details \u003e div, .wonjo-wrap-kr details \u003e div { padding: 0 0 20px 0; }\n\n  \/* === SPEC GRID === *\/\n  .wonjo-wrap .spec-grid, .wonjo-wrap-kr .spec-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0; margin: 0 0 16px 0; border: 1px solid #e8e8e4; border-radius: 4px; overflow: hidden; }\n  .wonjo-wrap .spec-item, .wonjo-wrap-kr .spec-item { padding: 10px 14px; border-bottom: 1px solid #e8e8e4; font-size: 14px; }\n  .wonjo-wrap .spec-item:nth-last-child(-n+2), .wonjo-wrap-kr .spec-item:nth-last-child(-n+2) { border-bottom: none; }\n  .wonjo-wrap .spec-label, .wonjo-wrap-kr .spec-label { font-size: 13px; text-transform: uppercase; letter-spacing: 0.8px; color: #4a7c59; display: block; margin-bottom: 2px; font-weight: bold; }\n  .wonjo-wrap .spec-value, .wonjo-wrap-kr .spec-value { color: #2b2b2b; }\n\n  \/* === TIPS \/ WARNINGS === *\/\n  .wonjo-wrap .tip, .wonjo-wrap-kr .tip { background: #f4f8f5; border-left: 3px solid #4a7c59; padding: 12px 16px; font-size: 13.5px; color: #4a5a4a; margin: 14px 0; font-style: italic; }\n  .wonjo-wrap .tip-warn, .wonjo-wrap-kr .tip-warn { background: #fdf6e3; border-left: 3px solid #b8860b; padding: 12px 16px; font-size: 13.5px; color: #6e5828; margin: 14px 0; font-style: italic; }\n\n  \/* === BADGES === *\/\n  .wonjo-wrap .badge-row, .wonjo-wrap-kr .badge-row { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 16px 0; }\n  .wonjo-wrap .badge, .wonjo-wrap-kr .badge { font-size: 11.5px; border: 1px solid #c2d8c9; background: #eef5f0; color: #3a6b48; border-radius: 3px; padding: 5px 11px; font-weight: bold; letter-spacing: 0.3px; }\n  .wonjo-wrap .badge-eco, .wonjo-wrap-kr .badge-eco { border-color: #b5cfa9; background: #e8f3e0; color: #2d5c1f; }\n  .wonjo-wrap .badge-safe, .wonjo-wrap-kr .badge-safe { border-color: #d4a574; background: #fdf3e3; color: #8a5a1a; }\n\n  \/* === SKILL TAG ROW (rounds 1-4 kids\/toys) === *\/\n  .wonjo-wrap .skill-row, .wonjo-wrap-kr .skill-row { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 18px 0; padding-bottom: 16px; border-bottom: 1px solid #e8e8e4; }\n  .wonjo-wrap .skill-tag, .wonjo-wrap-kr .skill-tag { font-size: 11px; background: #fdfcf8; border: 1px solid #e4e0d6; color: #6a5a3a; border-radius: 14px; padding: 4px 10px; letter-spacing: 0.2px; }\n\n  \/* === REVIEW CARDS (protein listings) === *\/\n  .wonjo-wrap .review-card, .wonjo-wrap-kr .review-card { background: #fdfcf8; border: 1px solid #e4e0d6; border-radius: 6px; padding: 18px 20px; margin-bottom: 14px; }\n  .wonjo-wrap .review-text, .wonjo-wrap-kr .review-text { color: #3a3a3a; margin: 0 0 10px 0; font-style: italic; }\n  .wonjo-wrap .review-name, .wonjo-wrap-kr .review-name { font-size: 12.5px; color: #888; font-style: normal; }\n\n  \/* === SET CARDS (LEGO bundle template) === *\/\n  .wonjo-wrap .set-card, .wonjo-wrap-kr .set-card { background: #fdfcf8; border: 1px solid #e4e0d6; border-radius: 6px; padding: 18px 22px; margin-bottom: 16px; }\n  .wonjo-wrap .set-card .set-no, .wonjo-wrap-kr .set-card .set-no { font-size: 13px; letter-spacing: 1px; color: #4a7c59; text-transform: uppercase; margin: 0 0 4px 0; font-weight: bold; }\n  .wonjo-wrap .set-card h3, .wonjo-wrap-kr .set-card h3 { font-size: 17px; margin: 0 0 10px 0; color: #2b2b2b; font-weight: 700; }\n  .wonjo-wrap .set-card p, .wonjo-wrap-kr .set-card p { margin: 0 0 8px 0; }\n  .wonjo-wrap .set-card .set-stats, .wonjo-wrap-kr .set-card .set-stats { font-size: 13.5px; color: #666; margin-top: 8px; }\n\n  \/* === PLAY STAGES (rounds 1-4 age-progression) === *\/\n  .wonjo-wrap .play-stage, .wonjo-wrap-kr .play-stage { padding: 10px 0; border-bottom: 1px dashed #e8e8e4; }\n  .wonjo-wrap .play-stage:last-child, .wonjo-wrap-kr .play-stage:last-child { border-bottom: none; }\n  .wonjo-wrap .play-stage-age, .wonjo-wrap-kr .play-stage-age { font-size: 13px; text-transform: uppercase; letter-spacing: 0.8px; color: #4a7c59; font-weight: bold; display: block; margin-bottom: 4px; }\n  .wonjo-wrap .play-stage-text, .wonjo-wrap-kr .play-stage-text { color: #3a3a3a; font-size: 14.5px; }\n\n  \/* === FAQ === *\/\n  .wonjo-wrap .faq-q, .wonjo-wrap-kr .faq-q { font-size: 13.5px; color: #4a7c59; font-weight: bold; margin: 14px 0 6px 0; }\n  .wonjo-wrap .faq-a, .wonjo-wrap-kr .faq-a { color: #3a3a3a; margin: 0 0 13px 0; padding-left: 14px; border-left: 2px solid #e8e8e4; }\n\n  \/* === STEPS (numbered ordering process) === *\/\n  .wonjo-wrap .steps, .wonjo-wrap-kr .steps { list-style: none; padding: 0; margin: 0 0 13px 0; }\n  .wonjo-wrap .steps { counter-reset: wonjo-steps; }\n  .wonjo-wrap-kr .steps { counter-reset: wonjo-steps-kr; }\n  .wonjo-wrap .steps li { counter-increment: wonjo-steps; padding: 10px 0 10px 38px; border-bottom: 1px solid #e8e8e4; position: relative; color: #3a3a3a; }\n  .wonjo-wrap-kr .steps li { counter-increment: wonjo-steps-kr; padding: 10px 0 10px 38px; border-bottom: 1px solid #e8e8e4; position: relative; color: #3a3a3a; }\n  .wonjo-wrap .steps li:last-child, .wonjo-wrap-kr .steps li:last-child { border-bottom: none; }\n  .wonjo-wrap .steps li::before { content: counter(wonjo-steps); position: absolute; left: 0; top: 11px; font-size: 11px; font-weight: bold; color: #4a7c59; width: 22px; height: 22px; border: 1.5px solid #4a7c59; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; }\n  .wonjo-wrap-kr .steps li::before { content: counter(wonjo-steps-kr); position: absolute; left: 0; top: 11px; font-size: 11px; font-weight: bold; color: #4a7c59; width: 22px; height: 22px; border: 1.5px solid #4a7c59; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; }\n\n  \/* === INTRO SUBTITLE === *\/\n  .wonjo-wrap .intro-subtitle, .wonjo-wrap-kr .intro-subtitle { font-size: 17px; line-height: 1.6; color: #4a7c59; font-style: italic; margin: 0 0 18px 0; padding-bottom: 18px; border-bottom: 1px solid #e8e8e4; }\n\n  \/* === SECTION SUBTITLE === *\/\n  .wonjo-wrap .section-subtitle, .wonjo-wrap-kr .section-subtitle { font-size: 13px; color: #777; font-style: italic; margin: -2px 0 16px 0; }\n\n  \/* === KEYWORDS (related searches at bottom) === *\/\n  .wonjo-wrap .keywords, .wonjo-wrap-kr .keywords { font-size: 13px; color: #777; line-height: 1.7; letter-spacing: 0.2px; }\n\n  \/* === MOBILE MEDIA QUERY === *\/\n  @media (max-width: 600px) {\n    .wonjo-wrap details summary, .wonjo-wrap-kr details summary { padding: 18px 30px 18px 0 !important; }\n    .wonjo-wrap details summary, .wonjo-wrap h2 { font-size: 15px !important; letter-spacing: 1px !important; }\n    .wonjo-wrap-kr details summary, .wonjo-wrap-kr h2 { font-size: 18px !important; letter-spacing: 0.8px !important; }\n    .wonjo-wrap, .wonjo-wrap-kr { font-size: 16px !important; }\n    .wonjo-wrap .intro-subtitle, .wonjo-wrap-kr .intro-subtitle { font-size: 17px !important; }\n  }\n\u003c\/style\u003e\n\n\u003cdiv class=\"wonjo-wrap\"\u003e\n\n  \u003cp class=\"intro-subtitle\"\u003ePea protein milk and shakes — dairy-free, soy-free, nut-free.\u003c\/p\u003e\n\n  \u003cdetails open\u003e\n    \u003csummary\u003eAbout This Product\u003c\/summary\u003e\n    \u003chr\u003e\n    \u003cp\u003eRipple Foods makes plant-based dairy alternatives from yellow pea protein. The Ripple protein shake line delivers 20g of plant protein per 12 fl oz bottle, with the texture and mouthfeel of dairy milk. Soy-free, nut-free, lactose-free — covering a wider allergy profile than most plant-based brands.\u003c\/p\u003e\n    \u003cdiv class=\"badge-row\"\u003e\n      \u003cspan class=\"badge\"\u003eDirect from US\u003c\/span\u003e\n      \u003cspan class=\"badge\"\u003ePersonal Import\u003c\/span\u003e\n      \u003cspan class=\"badge\"\u003e5 Flavors\u003c\/span\u003e\n      \u003cspan class=\"badge\"\u003eVegan\u003c\/span\u003e\n      \u003cspan class=\"badge\"\u003ePlant-Based\u003c\/span\u003e\n      \u003cspan class=\"badge\"\u003eSoy-Free\u003c\/span\u003e\n      \u003cspan class=\"badge\"\u003eNut-Free\u003c\/span\u003e\n    \u003c\/div\u003e\n  \u003c\/details\u003e\n\n  \u003cdetails\u003e\n    \u003csummary\u003eProduct Details\u003c\/summary\u003e\n    \u003chr\u003e\n    \u003cdiv class=\"spec-grid\"\u003e\n      \u003cdiv class=\"spec-item\"\u003e\n        \u003cspan class=\"spec-label\"\u003eBrand\u003c\/span\u003e\u003cspan class=\"spec-value\"\u003eRipple (리플)\u003c\/span\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"spec-item\"\u003e\n        \u003cspan class=\"spec-label\"\u003eProduct Name\u003c\/span\u003e\u003cspan class=\"spec-value\"\u003eRipple Plant Based Protein Shake\u003c\/span\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"spec-item\"\u003e\n        \u003cspan class=\"spec-label\"\u003eSize\u003c\/span\u003e\u003cspan class=\"spec-value\"\u003e12 fl oz (355mL)\u003c\/span\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"spec-item\"\u003e\n        \u003cspan class=\"spec-label\"\u003ePack\u003c\/span\u003e\u003cspan class=\"spec-value\"\u003e12 Bottles\u003c\/span\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"spec-item\"\u003e\n        \u003cspan class=\"spec-label\"\u003eStorage\u003c\/span\u003e\u003cspan class=\"spec-value\"\u003eRoom temperature; chill before drinking; refrigerate after opening\u003c\/span\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"spec-item\"\u003e\n        \u003cspan class=\"spec-label\"\u003eOrigin\u003c\/span\u003e\u003cspan class=\"spec-value\"\u003eUSA — Ripple\u003c\/span\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/details\u003e\n\n  \u003cdetails\u003e\n    \u003csummary\u003eHow to Use\u003c\/summary\u003e\n    \u003chr\u003e\n    \u003cul\u003e\n      \u003cli\u003eDrink chilled within an hour of waking for breakfast protein\u003c\/li\u003e\n      \u003cli\u003eHave one within 30 minutes after a workout for muscle recovery\u003c\/li\u003e\n      \u003cli\u003eUse as a meal replacement when you don't have time to cook\u003c\/li\u003e\n      \u003cli\u003ePack in your gym bag — stable at room temperature until opened\u003c\/li\u003e\n      \u003cli\u003ePour over ice with a splash of cold brew for a homemade protein iced coffee\u003c\/li\u003e\n      \u003cli\u003eShake well before opening for the smoothest texture\u003c\/li\u003e\n    \u003c\/ul\u003e\n  \u003c\/details\u003e\n\n  \u003cdetails\u003e\n    \u003csummary\u003eWhy Korean Customers Reach For This\u003c\/summary\u003e\n    \u003chr\u003e\n    \u003cp\u003eKorea's ready-to-drink protein shake market has grown rapidly in the last five years. Korean fitness consumers searching for high-protein options often look to US brands for higher protein doses (20–40g per bottle) and broader flavor selection than what Korean local brands typically offer. Ripple is a recognized name in this category.\u003c\/p\u003e\n  \u003c\/details\u003e\n\n  \u003cdetails\u003e\n    \u003csummary\u003eWhy Pre-Mixed Shakes\u003c\/summary\u003e\n    \u003chr\u003e\n    \u003cul\u003e\n      \u003cli\u003eNo mixing, no shaker bottle, no clumps, no cleanup\u003c\/li\u003e\n      \u003cli\u003eConsistent protein dose per bottle — no scooping inconsistency\u003c\/li\u003e\n      \u003cli\u003eFactory-engineered flavor profile, smoother than DIY mixed\u003c\/li\u003e\n      \u003cli\u003ePro-formulated with ultra-filtered milk protein for better texture\u003c\/li\u003e\n      \u003cli\u003eTravel-friendly: one bottle in your bag, no powder spills\u003c\/li\u003e\n      \u003cli\u003eShelf-stable until opened — unlike fresh milk shakes\u003c\/li\u003e\n    \u003c\/ul\u003e\n  \u003c\/details\u003e\n\n  \u003cdetails\u003e\n    \u003csummary\u003eShipping\u003c\/summary\u003e\n    \u003chr\u003e\n    \u003cp\u003eFree shipping on every order, with no minimum. No handling fees, no customs processing charges, nothing added at checkout. What you see is what you pay.\u003c\/p\u003e\n    \u003cp\u003eOrders are dispatched within 1 to 2 business days. A tracking number is sent to your email once your parcel is on its way.\u003c\/p\u003e\n  \u003c\/details\u003e\n\n  \u003cdetails\u003e\n    \u003csummary\u003eCustoms \u0026amp; Import\u003c\/summary\u003e\n    \u003chr\u003e\n    \u003cp\u003eAll orders are processed as personal-use overseas purchases and clear Korean customs without requiring KC certification. Your shipment is handled using your Personal Customs Clearance Code (PCCC) and is trackable via Korea Customs Service UNI-PASS. Orders under USD 200 from the United States qualify for duty-free clearance. In the event of any customs issue, we issue a full refund without question.\u003c\/p\u003e\n    \u003cdiv class=\"tip\"\u003eIf you do not yet have a PCCC, you can get one free in under five minutes at unipass.customs.go.kr.\u003c\/div\u003e\n  \u003c\/details\u003e\n\n  \u003cdetails\u003e\n    \u003csummary\u003eWhy This Shop\u003c\/summary\u003e\n    \u003chr\u003e\n    \u003cp\u003eWe purchase directly from US retailers and ship to customers in Korea — no intermediary, no repackaging, no grey-market sourcing. Every order is the same product you would find on a US shelf. We back every order with a full refund in the event of customs failure or non-delivery.\u003c\/p\u003e\n  \u003c\/details\u003e\n\n  \u003cdetails\u003e\n    \u003csummary\u003eFrom Our First Customers\u003c\/summary\u003e\n    \u003chr\u003e\n\n    \u003cdiv class=\"review-card\"\u003e\n      \u003cp class=\"review-text\"\u003e\"I drink one after my morning gym session. The bottle size is perfect for grabbing on the way to work.\"\u003c\/p\u003e\n      \u003cp class=\"review-name\"\u003eHyeri — Jeju — Early Customer\u003c\/p\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"review-card\"\u003e\n      \u003cp class=\"review-text\"\u003e\"Lactose-free meant I could finally have a protein shake without the bloat. Pleasantly surprised.\"\u003c\/p\u003e\n      \u003cp class=\"review-name\"\u003eEunji — Mapo, Seoul — Early Customer\u003c\/p\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"review-card\"\u003e\n      \u003cp class=\"review-text\"\u003e\"Bottles arrived all intact through customs. Tastes exactly like described, no off notes.\"\u003c\/p\u003e\n      \u003cp class=\"review-name\"\u003eSora — Gangdong, Seoul — Early Customer\u003c\/p\u003e\n    \u003c\/div\u003e\n  \u003c\/details\u003e\n\n  \u003cdetails\u003e\n    \u003csummary\u003eHow to Order\u003c\/summary\u003e\n    \u003chr\u003e\n    \u003col class=\"steps\"\u003e\n      \u003cli\u003eSelect your variant\u003c\/li\u003e\n      \u003cli\u003eAdd to cart and proceed to checkout\u003c\/li\u003e\n      \u003cli\u003eEnter your Personal Customs Clearance Code (PCCC) when prompted\u003c\/li\u003e\n      \u003cli\u003eConfirm your Korean delivery address\u003c\/li\u003e\n      \u003cli\u003eComplete payment — your order is placed\u003c\/li\u003e\n      \u003cli\u003eReceive your tracking number by email within 1 to 2 business days\u003c\/li\u003e\n    \u003c\/ol\u003e\n  \u003c\/details\u003e\n\n  \u003cdetails\u003e\n    \u003csummary\u003eRelated Searches\u003c\/summary\u003e\n    \u003chr\u003e\n    \u003cp class=\"keywords\"\u003eRipple Korea · Ripple direct import · US protein direct import · protein shake Korea · 미국 리플 직구 · 프로틴 셰이크 직구 · 단백질 보충 직구\u003c\/p\u003e\n  \u003c\/details\u003e\n\n\u003c\/div\u003e\n","brand":"Ripple","offers":[{"title":"Chocolate","offer_id":45323622252591,"sku":"RIPPLE-plant-based-protein-shake-chocolate","price":92000.0,"currency_code":"KRW","in_stock":true},{"title":"Coffee","offer_id":45323622285359,"sku":"RIPPLE-plant-based-protein-shake-coffee","price":92000.0,"currency_code":"KRW","in_stock":true},{"title":"Vanilla","offer_id":45323622318127,"sku":"RIPPLE-plant-based-protein-shake-vanilla","price":92000.0,"currency_code":"KRW","in_stock":true},{"title":"Variety Pack (Vanilla, Chocolate, Coffee)","offer_id":45323622350895,"sku":"RIPPLE-plant-based-protein-shake-variety-pack-vanilla-chocolate-coffee","price":95000.0,"currency_code":"KRW","in_stock":true},{"title":"Variety Pack (Chocolate, Vanilla)","offer_id":45323622383663,"sku":"RIPPLE-plant-based-protein-shake-variety-pack-chocolate-vanilla","price":95000.0,"currency_code":"KRW","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0739\/5190\/3791\/files\/RIPPLE-plant-based-protein-shake-chocolate.jpg?v=1778536011","url":"https:\/\/wonjo.com\/en\/products\/ripple-plant-based-protein-shake","provider":"원조 - WONJO","version":"1.0","type":"link"}