Trumpet Flower Disposable Meal Box Screw Cover Sealed Jar Dessert Sugar Water Burned Fairy Grass Packing Cup Porridge Barrel Preservation Box

$169.00
people are viewing this right now
Free worldwide shipping
Free returns
Sustainably made
Secure payments
Description
1
Select product
Selected 0 item(s)
300ML spiral bowl bright bottom white cover 300 sets
300ML spiral bowl bright bottom is red cover 300 sets
300ML spiral bowl bright bottom warm red cover 300 sets
300ML spiral bowl bright bottom purple cover 300 sets
400ML spiral bowl bright white cover 300 sets
400ML spiral bowl bright bottom is red cover 300 sets
400ML spiral bowl bright bottom warm red cover 300 sets
400ML spiral bowl bright bottom purple cover 300 sets
500ML spiral bowl bright bottom white cover 300 sets
500ML spiral bowl bright bottom is red cover 300 sets
500ML spiral bowl bright bottom warm red cover 300 sets
500ML spiral bowl bright bottom purple cover 300 sets
700ML spiral bowl bright white cover 300 sets
700ML spiral bowl bright bottom is red cover 300 sets
700ML spiral bowl bright bottom warm red cover 300 sets
700ML spiral bowl bright bottom purple cover 300 sets
class SpzCheckoutNotificationHandler extends SPZ.BaseElement { constructor(element) { super(element); this.timer_ = null; } isLayoutSupported(layout) { return layout == SPZCore.Layout.LOGIC; } sendVariantListUpdateEvent_(data) { const messageData = { type: "theme_variant_list_update", data: { orderToken: data.order_token || data.order_id } }; clearInterval(this.timer_); if(!window.CheckoutAPI) { this.timer_ = setInterval(() => { if(window.CheckoutAPI) { clearInterval(this.timer_); postMessage && postMessage(messageData); } }, 500); } else { postMessage && postMessage(messageData); } } buildCallback() { this.action_ = SPZServices.actionServiceForDoc(this.element); this.registerAction('sendVariantListUpdateEvent', (param) => { this.sendVariantListUpdateEvent_(param.args.data); }); } } SPZ.defineElement('spz-custom-checkout-notification-handler', SpzCheckoutNotificationHandler); function handleGetOrderInfo(data) { if (data.order_id) { let api = `/api/checkout/order/info?order_id=${data.order_id}`; return Promise.resolve(api); } return Promise.reject({}); } function addEventListenerKickItems(data) { if (data.type === 'checkout_kick_items') { return Promise.resolve(data); } return Promise.reject({}); } exportFunction('handleGetOrderInfo', handleGetOrderInfo) exportFunction('addEventListenerKickItems', addEventListenerKickItems)