🌲Stephania Erecta Climbing Greenery🌿A Vine Adventure
🌲Stephania Erecta Climbing Greenery🌿A Vine Adventure
🌲Stephania Erecta Climbing Greenery🌿A Vine Adventure
🌲Stephania Erecta Climbing Greenery🌿A Vine Adventure
🌲Stephania Erecta Climbing Greenery🌿A Vine Adventure
🌲Stephania Erecta Climbing Greenery🌿A Vine Adventure
🌲Stephania Erecta Climbing Greenery🌿A Vine Adventure
🌲Stephania Erecta Climbing Greenery🌿A Vine Adventure
🌲Stephania Erecta Climbing Greenery🌿A Vine Adventure
🌲Stephania Erecta Climbing Greenery🌿A Vine Adventure

🌲Stephania Erecta Climbing Greenery🌿A Vine Adventure

Price

$29.98 $14.99
Save 50%
2 sold

quantity

Please select a quantity
const addToCartText = "Add to cart"; SPZCore.Dom.waitForChild( document.body, () => !!document.querySelector('[data-click="addToCart"], [role="addToCart"]'), () => { const addToCartEle = window.SPZCore.Dom.scopedQuerySelector( document.body, '[data-click="addToCart"], [role="addToCart"]' ); const getContentChild_ = function(el) { if(el) { const childs = el.childNodes; for (let i = childs.length - 1; i >= 0; i--) { const child = childs[i]; if (child.getAttribute && child.getAttribute('role') === 'content') { return child; } } } return; } const changeAddToCartText = function(text) { const contentEle = getContentChild_(addToCartEle); if(contentEle){ const addToCartChilds = addToCartEle.childNodes; for (let i = addToCartChilds.length - 1; i >= 0; i--) { const child = addToCartChilds[i]; if (typeof child.getAttribute !== 'function' || (child.getAttribute('role') !== 'content' && child.getAttribute('role') !== 'loading')) { addToCartEle.removeChild(child); } } }else{ addToCartEle.innerHTML = addToCartText; } } changeAddToCartText(addToCartText); } );
const SITE = (window.C_SETTINGS && window.C_SETTINGS.routes && window.C_SETTINGS.routes.root) || ''; const PRODUCT_PLAN_INFO_URL = `${SITE}/api/storefront/selling_plans/product_plan_info/:product_id`; const { i18nProductDetail, i18nProduct } = JSON.parse( document.querySelector('#i18n-json').textContent ); const currentI18nProduct = i18nProductDetail || i18nProduct; class SpzCustomSubscription extends SPZ.BaseElement { constructor(element) { super(element); this.productPlanInfo = null; this.cycle = null; this.optionid_ = null; this.form_ = null; this.variantId_ = null; this.variantChangeData = null; this.cycleList = [1,2]; this.productId = this.element.getAttribute('productId'); this.initialCycle = this.element.getAttribute('cycles'); this.noPlanShowTitle = JSON.parse(this.element.getAttribute('noPlanShowTitle')); } get initIsCycleSubscribe() { if(this.initialCycle == 2) { return true; } if(this.initialCycle == 1) { return false; } return null; } get productInfo() { let pJson = document.querySelector('#product-json'); if (pJson) { return JSON.parse(pJson.innerHTML); }else if(typeof $ === 'function' && typeof $(document).data === 'function') { return $(document).data('djproduct'); } return null; } get hasSKU() { if(this.productPlanInfo?.sku) { return true; } return false } get hasSPU() { if(this.productPlanInfo?.spu) { return true; } return false } get originalPrice() { if(!this.variantChangeData?.selected?.price){ return ''; }; return this.variantChangeData.selected.price; } get defaultPlanData() { if (!this.productPlanInfo) { return {}; } let planInfo = {}; if(this.hasSPU && this.productPlanInfo?.spu[this.productId]) { planInfo = this.productPlanInfo.spu[this.productId]; }else if(this.hasSKU && this.productPlanInfo?.sku[this.variantId_]) { planInfo = this.productPlanInfo.sku[this.variantId_]; } return planInfo; } get defaultCycle_() { if(!this.defaultPlanData) { return null; } return this.defaultPlanData.cycles; } get defaultOption_() { if(!this.defaultPlanData) { return null; } return this.defaultPlanData.selected_selling_plan_option_id; } get isCycleSubscribe() { if(this.cycle === 2) { return true; } if(this.cycle === 1) { return false; } return null; } get currentOption_() { if(!this.isCycleSubscribe){ return null; } if(!this.optionId_) { return this.defaultOption_; } return this.optionId_; } get currentPlanData() { if(!this.defaultPlanData) { return {}; } let result = Object.assign({},this.defaultPlanData); if(result.selected_selling_plan_option_id !== this.optionId_) { result.selected_selling_plan_option_id = this.optionId_; result.selling_plan_options = result.selling_plan_options.map(item => { return { ...item, selected_enabled: item.selling_plan_option_id === result.selected_selling_plan_option_id } }) } if (result.cycles !== this.cycle) { result.cycles = this.cycle; } return result; } fetchData_(product_id) { return SPZServices.xhrFor(this.win).fetchJson(PRODUCT_PLAN_INFO_URL.replace(/:product_id/gi, product_id)) .then((data) => { this.productPlanInfo = data; } ); } isLayoutSupported(layout) { return layout == SPZCore.Layout.CONTAINER; } mountCallback() { console.log('subsciption-mountCallback'); this.initVariantId(); if(!!this.variantId_) { this.track_('product_view', this.initIsCycleSubscribe); } this.getElement_(); Promise.all([this.productInfoReady_(), this.fetchData_(this.productId)]).then(() => { this.init_(); this.initActions_(); this.showPlan_(false); if(!!this.variantId_){ this.changeBuyNowText(); this.dispatchSubScribeIdChange_(); } }); } productInfoReady_() { if(this.productInfo) { return Promise.resolve(); } SPZUtils.Event.listen(document,'load',()=> { if(this.productInfo) { return Promise.resolve(); }else{ return Promise.reject(); } }) } getElement_() { this.titleEle = SPZCore.Dom.scopedQuerySelector(document.body, '[role="plugin-subscription-title"]'); this.noPlanTipsEle = SPZCore.Dom.scopedQuerySelector(this.element, '[role="plugin-subscription-plan-tips"]'); this.noPaymentTipsEle = SPZCore.Dom.scopedQuerySelector(this.element, '[role="plugin-subscription-payment-tips"]'); this.renderEle = SPZCore.Dom.scopedQuerySelector(this.element, '[role="plugin-subscription-content-render"]'); this.productEle = SPZCore.Dom.scopedQuerySelector(document.body, '[data-section-type="product"], [data-section-type="product_detail"], [data-section-type="product_club"]') this.buyNowEle = SPZCore.Dom.scopedQuerySelector(this.productEle, '[data-click="submit"], [role="buyNow"]'); this.addToCartEle = SPZCore.Dom.scopedQuerySelector(this.productEle, '[data-click="addToCart"], [role="addToCart"]'); } init_() { this.cycle = this.defaultCycle_; this.optionId_ = this.defaultOption_; this.variantChangeData = this.productInfo; } initVariantId() { const formData = this.getFormData(); if (formData) { if(formData['variant_id'] && formData['variant_id'] !== 'undefined') { this.variantId_ = formData['variant_id']; }else{ this.variantId_ = '' } }else if(this.productInfo?.selected?.id){ this.variantId_ = this.productInfo.selected.id }else{ this.variantId_ = '' } } getFormData() { this.form_ = this.element.closest('form'); if(!this.form_) { return null; } const result = { quantity: 1, }; const formData = new FormData(this.form_); const formDataKey = formData.keys(); for (const key of formDataKey) { result[key] = formData.get(key); } return result; } showPlan_(rerender = false) { if (!this.variantId_) { return this.hide_(); } if (rerender) { this.renderPlan_(); } } renderPlan_() { if (Object.keys(this.currentPlanData).length === 0) { this.showNoPlanTips_(true); this.showNoPaymentTips_(false); this.showRender_(false); if(this.noPlanShowTitle) { this.showTitle_(true); }else{ this.showTitle_(false); } return; } this.showRender_(true); this.showNoPaymentTips_(true); this.showTitle_(true); this.showNoPlanTips_(false); const selectedPlanItem = this.currentPlanData.selling_plan_options.filter((item) => item.selected_enabled === true)[0]; SPZ.whenApiDefined(this.renderEle).then((apis) => { apis.render({ ...this.currentPlanData, originalPrice: this.originalPrice, selectedPlanItem }, false); }); } showTitle_(visible = true) { if(this.titleEle) { this.titleEle.toggleAttribute('hide', !visible); } } showNoPlanTips_(visible = true) { if(this.noPlanTipsEle) { this.noPlanTipsEle.toggleAttribute('hide', !visible); } } showNoPaymentTips_(visible = true) { if(this.noPaymentTipsEle){ this.noPaymentTipsEle.toggleAttribute('hide', !visible); } } showRender_(visible = true) { if(this.renderEle){ this.renderEle.toggleAttribute('hide', !visible); } } hide_() { this.showTitle_(false); this.element.toggleAttribute('hide', true); } show_() { this.showTitle_(true); this.element.toggleAttribute('hide', false); } dispatchSubScribeIdChange_() { this.dispatchEvent_('payment_ec_refresh', { sources: 'subscription' }); } dispatchEvent_(name, data) { const event = SPZUtils.Event.create(this.win, name, data, { bubbles: true }); this.element.dispatchEvent(event); } initActions_() { this.onVariantChange_(); this.element.addEventListener('change', (e) => { if(e.target?.role === 'plugin-subscription-option-selector') { this.onOptionChange_(e.target.value); } if(e.target?.role === 'plugin-subscription-option-card') { this.changeCardOption_(e.target.value); } }); this.registerAction( 'changeCycle', (invocation) => this.onCycleChange_(invocation.args?.selectedOptions[0]) ); this.registerAction('subscribeChange', (invocation) => { this.dispatchSubScribeIdChange_(invocation.args); }); this.addToCartEle.addEventListener('click', () => { this.track_('add_to_cart'); }); this.buyNowEle.addEventListener('click', () => { this.track_('add_to_cart'); }); this.submitInterrapt(); } onVariantChange_() { SPZUtils.Event.listen(document, 'dj.variantChange', (e) => { if(this.variantId_ === e.detail?.selected?.id) { return; } if(!this.variantId_ && e.detail?.selected?.id) { this.show_(); } this.variantId_ = e.detail.selected?.id; this.optionId_ = this.defaultOption_; this.cycle = this.defaultCycle_; this.variantChangeData = Object.assign(this.variantChangeData, e.detail); this.changeBuyNowText(); this.changeAddToCartText(e.detail); this.showPlan_(true); this.track_('product_view'); }); } onOptionChange_(op, render = true) { this.optionId_ = op; this.changeBuyNowText(); if(render) { this.showPlan_(true); } } onCycleChange_(val, render = true) { const cy = Number(val); if (this.cycleList.includes(cy)) { this.cycle = cy; this.changeBuyNowText(); if(render) { this.showPlan_(true); } } } submitInterrapt() { if(!this.form_) { window.djInterceptors.request.use((config) => { if(config?.url === '/api/cart') { return this.addToCartRequestData_(config); } if(config?.url === '/api/checkout/order') { return this.checkoutOrderRequestData_(config); } }) } } addToCartRequestData_(config) { const cartConfig = { ...config }; const hasProductId = cartConfig?.body?.product_id; const hasVariantId = cartConfig?.body?.variant_id; if(cartConfig?.method == 'POST' && hasProductId && hasVariantId) { if (!cartConfig.body.properties) { cartConfig.body.properties = {}; } if(this.currentOption_) { cartConfig.body.properties = { ...cartConfig.body.properties, _selling_plan_option_id: this.currentOption_ } } } return cartConfig; } checkoutOrderRequestData_(config) { const orderConfig = { ...config }; const hasVariantId = orderConfig?.body?.line_items[0]?.variant_id; if(orderConfig?.method == 'POST' && hasVariantId) { if (!orderConfig.body.line_items[0].properties) { orderConfig.body.line_items[0].properties = {}; } if(this.currentOption_) { orderConfig.body.line_items[0].properties = { ...orderConfig.body.line_items[0].properties, _selling_plan_option_id: this.currentOption_ } } } return orderConfig; } changeCardOption_(val) { const oneTimeInputEle = document.querySelector('.one-time [role=plugin-subscription-option-card]'); if(val == 0) { this.onCycleChange_(1, true); oneTimeInputEle.toggleAttribute('disabled',true); return; } oneTimeInputEle.toggleAttribute('disabled',false); this.onCycleChange_(2, false); this.onOptionChange_(val, true); } getContentChild_(el) { if(el) { const childs = el.childNodes; for (let i = childs.length - 1; i >= 0; i--) { const child = childs[i]; if (child.getAttribute && child.getAttribute('role') === 'content') { return child; } } } return; } changeBuyNowText() { let buyNowText = currentI18nProduct.buy_now; let subscribeText = "Subscribe"; const contentEle = this.getContentChild_(this.buyNowEle); // 1. 有role="content"的元素,替换role="content"的元素 if(contentEle) { contentEle.innerHTML = this.isCycleSubscribe ? subscribeText : buyNowText; }else{ // 2. 不存在role="content"的元素,直接替换文本 this.buyNowEle.innerHTML = this.isCycleSubscribe ? this.buyNowEle.innerHTML.replace(buyNowText, subscribeText) : this.buyNowEle.innerHTML.replace(subscribeText, buyNowText); } } changeAddToCartText(data) { const contentEle = this.getContentChild_(this.addToCartEle); // 1. 有role="content"的元素,移除role不等于content和loading的元素 if(contentEle) { const addToCartChilds = this.addToCartEle.childNodes; for (let i = addToCartChilds.length - 1; i >= 0; i--) { const child = addToCartChilds[i]; // 移除元素(role不等于content和loading) if (typeof child.getAttribute !== 'function' || (child.getAttribute('role') !== 'content' && child.getAttribute('role') !== 'loading')) { this.addToCartEle.removeChild(child); } } }else{ // 2. 不存在role="content"的元素,直接替换文本 const addToCartText = this.getAddToCartText_(data); this.addToCartEle.innerHTML = addToCartText; } } getAddToCartText_(data) { const selected = data?.selected; const productAvailable = data?.product?.available; const variantAvailable = data?.selected?.available; const variantId = data?.selected?.id; let text = currentI18nProduct.add_to_cart; if (!productAvailable) { text = currentI18nProduct.sold_out; } if (selected && !variantId) { text = currentI18nProduct.unavailable; } if (productAvailable && selected && variantId && !variantAvailable) { text = currentI18nProduct.sold_out; } return text; } track_(eventName, optionSelected = this.isCycleSubscribe) { if(window && window.sa && typeof window.sa.registerExtraInfo === 'function') { window.sa.registerExtraInfo(eventName, { function_name: "product_subscription", module: "apps", option_selected: optionSelected }, optionSelected === null); } } } SPZ.defineElement('spz-custom-subscription', SpzCustomSubscription);
Purchase options:
One-Time Purchase
$14.99
Subscribe
$14.99
Delivery frequency
Skip ,modify or cancel any time

Quantity

🪴We are committed to providing our customers with quality, affordable seeds. 🌱

💵 Payments Via PayPal® and CreditCard 
😍 99.3% of customers buy 2 items(10% Off) or more to share with family or friends
✨Priority is given to delivery after payment
✈ Worldwide Express Shipping Available

🌱 Introducing the Unique Stephania Erecta! 🌱

Stephania erecta is quite the charmer, but don't underestimate its lightning-fast growth! Don't let your room turn into a jungle! Be cautious! On the bright side, besides being a looker, it helps improve air quality, eases stress and anxiety, and lifts your overall mood. Even in the hustle and bustle of city life, it brings a touch of nature. 

Gorgeous Vining Stephania Plants for Sale Online | Rotundifolia – Easy To  Grow Bulbs

Features:

🍃 Distinctive Caudex: Stephania Erecta is renowned for its swollen, bulbous base (caudex), which gives it a fascinating, sculptural look. This unique feature makes it a stunning centerpiece for any plant collection.

🌿 Delicate Vines: From the caudex, slender vines emerge, adorned with charming, heart-shaped leaves. These delicate vines create an elegant, cascading effect.

🌞 Easy to Grow: This resilient plant thrives in bright, indirect light and requires well-draining soil. It's relatively low-maintenance, perfect for both novice and experienced plant lovers.

🏡 Versatile Display: Ideal for pots, terrariums, and bonsai arrangements, Stephania Erecta can be displayed in various ways to suit your space and style.

Seasonal Growth: During its growing season, watch as new vines and leaves emerge, adding dynamic beauty to your plant collection. In the dormant season, the caudex itself remains an intriguing focal point.

🌸 Exotic Appeal: Native to Southeast Asia, Stephania Erecta brings an exotic touch to any indoor or outdoor garden, making it a true conversation starter.

Stephania erecta Bulbs,Strong Plants That Grow Well/Mix Golden Jade Carving  Feels Beautiful-3bulbs-E : Amazon.co.uk: Garden

Planting Stephania Erecta Climbing Greenery

When to Plant Stephania Erecta

In theory, it can maintain growth throughout all four seasons, but it's crucial to ensure proper lighting, temperature, and humidity conditions. In colder climates, considering it as an indoor plant and providing extra protection during the cold season may be advisable.

Where to Plant Stephania Erecta

Suitable for mild climate conditions, provide the plant with some sunlight and good ventilation. Well-draining soil is essential to prevent root rot. It also prefers soil that is slightly acidic to neutral.

Our Guarantee
  We truly believe we carry some of the most innovative products in the world, and we want to make sure we back that up with a risk-free 90-day guarantee.
  If you don't have a positive experience for ANY reason, we will do WHATEVER it takes to make sure you are 100% satisfied with your purchase.
  Buying items online can be a daunting task, so we want you to realize that there is absolutely ZERO risks in buying something and trying it out.  If you don't like it, no hard feelings we'll make it right.
  We have 24/7/365 Ticket and Email Support. Please contact us if you need assistance.