๐ŸŒŽ๐ŸŒฑ Reusable Trolley Bags for Shopping Cart Save You From Having To Use Plastic Bags
๐ŸŒŽ๐ŸŒฑ Reusable Trolley Bags for Shopping Cart Save You From Having To Use Plastic Bags
๐ŸŒŽ๐ŸŒฑ Reusable Trolley Bags for Shopping Cart Save You From Having To Use Plastic Bags
๐ŸŒŽ๐ŸŒฑ Reusable Trolley Bags for Shopping Cart Save You From Having To Use Plastic Bags
๐ŸŒŽ๐ŸŒฑ Reusable Trolley Bags for Shopping Cart Save You From Having To Use Plastic Bags
๐ŸŒŽ๐ŸŒฑ Reusable Trolley Bags for Shopping Cart Save You From Having To Use Plastic Bags
๐ŸŒŽ๐ŸŒฑ Reusable Trolley Bags for Shopping Cart Save You From Having To Use Plastic Bags
๐ŸŒŽ๐ŸŒฑ Reusable Trolley Bags for Shopping Cart Save You From Having To Use Plastic Bags
๐ŸŒŽ๐ŸŒฑ Reusable Trolley Bags for Shopping Cart Save You From Having To Use Plastic Bags
๐ŸŒŽ๐ŸŒฑ Reusable Trolley Bags for Shopping Cart Save You From Having To Use Plastic Bags
๐ŸŒŽ๐ŸŒฑ Reusable Trolley Bags for Shopping Cart Save You From Having To Use Plastic Bags
๐ŸŒŽ๐ŸŒฑ Reusable Trolley Bags for Shopping Cart Save You From Having To Use Plastic Bags
๐ŸŒŽ๐ŸŒฑ Reusable Trolley Bags for Shopping Cart Save You From Having To Use Plastic Bags
๐ŸŒŽ๐ŸŒฑ Reusable Trolley Bags for Shopping Cart Save You From Having To Use Plastic Bags
๐ŸŒŽ๐ŸŒฑ Reusable Trolley Bags for Shopping Cart Save You From Having To Use Plastic Bags
๐ŸŒŽ๐ŸŒฑ Reusable Trolley Bags for Shopping Cart Save You From Having To Use Plastic Bags
๐ŸŒŽ๐ŸŒฑ Reusable Trolley Bags for Shopping Cart Save You From Having To Use Plastic Bags
๐ŸŒŽ๐ŸŒฑ Reusable Trolley Bags for Shopping Cart Save You From Having To Use Plastic Bags
๐ŸŒŽ๐ŸŒฑ Reusable Trolley Bags for Shopping Cart Save You From Having To Use Plastic Bags
๐ŸŒŽ๐ŸŒฑ Reusable Trolley Bags for Shopping Cart Save You From Having To Use Plastic Bags
๐ŸŒŽ๐ŸŒฑ Reusable Trolley Bags for Shopping Cart Save You From Having To Use Plastic Bags
๐ŸŒŽ๐ŸŒฑ Reusable Trolley Bags for Shopping Cart Save You From Having To Use Plastic Bags
๐ŸŒŽ๐ŸŒฑ Reusable Trolley Bags for Shopping Cart Save You From Having To Use Plastic Bags
๐ŸŒŽ๐ŸŒฑ Reusable Trolley Bags for Shopping Cart Save You From Having To Use Plastic Bags
๐ŸŒŽ๐ŸŒฑ Reusable Trolley Bags for Shopping Cart Save You From Having To Use Plastic Bags
๐ŸŒŽ๐ŸŒฑ Reusable Trolley Bags for Shopping Cart Save You From Having To Use Plastic Bags
๐ŸŒŽ๐ŸŒฑ Reusable Trolley Bags for Shopping Cart Save You From Having To Use Plastic Bags
๐ŸŒŽ๐ŸŒฑ Reusable Trolley Bags for Shopping Cart Save You From Having To Use Plastic Bags
๐ŸŒŽ๐ŸŒฑ Reusable Trolley Bags for Shopping Cart Save You From Having To Use Plastic Bags
๐ŸŒŽ๐ŸŒฑ Reusable Trolley Bags for Shopping Cart Save You From Having To Use Plastic Bags
๐ŸŒŽ๐ŸŒฑ Reusable Trolley Bags for Shopping Cart Save You From Having To Use Plastic Bags
๐ŸŒŽ๐ŸŒฑ Reusable Trolley Bags for Shopping Cart Save You From Having To Use Plastic Bags
๐ŸŒŽ๐ŸŒฑ Reusable Trolley Bags for Shopping Cart Save You From Having To Use Plastic Bags
๐ŸŒŽ๐ŸŒฑ Reusable Trolley Bags for Shopping Cart Save You From Having To Use Plastic Bags
๐ŸŒŽ๐ŸŒฑ Reusable Trolley Bags for Shopping Cart Save You From Having To Use Plastic Bags
๐ŸŒŽ๐ŸŒฑ Reusable Trolley Bags for Shopping Cart Save You From Having To Use Plastic Bags

๐ŸŒŽ๐ŸŒฑ Reusable Trolley Bags for Shopping Cart Save You From Having To Use Plastic Bags

Price

$79.90 $49.90
Save $30.00

type

Please select a type

Quantity

Global Provision of Services
Free Shipping Over $59.99
Sustainable Manufacturing
PayPal & Credit Card Payment

Trolley Bags save your shopping time๏ผ

Product Description

  • To use the bags simply hang them from the back of your cart and shop normally.ย 

  • Then, once all your groceries are on the conveyor belt when checking out, simply place the bags inside the cart and spread them open.

  • Each color bag can put different types of items. Maybe you would want to put your fresh fruit and vegetables in the green bag, meat in the red bag, frozen stuff in the blue bag, and whatever else in the orange bag.

  • Instead of placing all your items into plastic bags, you can now use these reusable bags to get your groceries home with ease .

Product advantages

  • Compared to ordinary shopping bag Trolley Bags, it is easier to carry

  • Trolley Bags can help you sort out and place

  • Trolley Bags are large reusable bags that you can use each time you go to the grocery store to save yourself from using plastic bagsย 

Product information

Product ย  ย  ย  ย  ย  ย  ย  ย  ย  ย  ย  13.2 x 10 x 3.5 inches
Dimensionsย ย 

Item Weightย  ย  ย  ย  ย  ย  ย  ย 1.94 pounds


๐ŸŽIt's a perfect gift for your friends & family!

Click onย "ADD TO CART" to get yours now!

We will resume the original price tomorrow


Certification

๐ŸŒˆ Good Motivation

After every order, we give you 10% of the profit to Save the Children.

Save the Children started working in this area in 1932 to support the most isolated and neglected rural children in Europe.


๐Ÿ’ฐ Payment Method

Payments Via PayPalยฎ,ย Creditย andย Debitย Card.

If you want to checkout with a Debit or Credit Card, just enter your *ย Card No.ย * Expiration Date, andย * CVV.

โœˆ Worldwide Shippingย 

Please do note that shipping is insured. However, you may receive your items earlier. Tracking Numbers will ALWAYS be sent so you can track it every step of the way! Cool things are worth waiting for! ๐Ÿ˜‰

ย 
OUR GUARANTEE

๐Ÿ“ฆ Insured Worldwide Shipping: Each order includes real-time tracking details and insurance coverage in the unlikely event that a package gets lost or stolen in transit.

๐Ÿ’ฐ Money-Back Guarantee: If your items arrive damaged or become defective within 15 days of normal usage, we will gladly issue out a replacement or refund.

โœ‰๏ธ 24/7 Customer Support: We have a team of live reps ready to help and answer any questions you have within a 24-hour time frame, 7 days a week.

๐Ÿ”’ Safe & Secure Checkouts: We use state-of-the-art SSL Secure encryption to keep your personal and financial information 100% protected.

ย 

class SpzSmartBlockComponent extends SPZ.BaseElement { constructor(element) { super(element); this.templates_ = null; this.container_ = null; this.i18n_ = {}; this.config_ = {}; this.show_type_ = 3; this.product_resource_id_ = ''; this.collection_resource_id_ = ''; this.cart_items_ = []; this.customer_id_ = ''; this.order_id_ = ''; } static deferredMount() { return false; } isLayoutSupported(layout) { return layout == SPZCore.Layout.CONTAINER; } buildCallback() { const template_type = window.SHOPLAZZA.meta.page.template_type; if (template_type === 1) { this.show_type_ = 3; this.product_resource_id_ = window.SHOPLAZZA.meta.page.resource_id; } else if (template_type === 2) { this.show_type_ = 4; this.collection_resource_id_ = window.SHOPLAZZA.meta.page.resource_id; } else if (template_type === 15){ this.show_type_ = 5; } else if (template_type === 13){ this.show_type_ = 6; } else if (template_type === 20){ this.show_type_ = 7; this.customer_id_ = window.SHOPLAZZA.customer.customer_id; } else if (template_type === 35){ this.show_type_ = 8; this.order_id_ = window.location.pathname.split('/').pop(); } this.templates_ = SPZServices.templatesForDoc(this.element); this.setAction_(); } mountCallback() { console.log('appzebu smart mounted'); const that = this; const themeName = window.SHOPLAZZA.theme.merchant_theme_name; const isGeek = /Geek/.test(themeName); this.fetchRules().then((res) => { if (res && res.rules && res.rules.length) { const blockEl = document.getElementById('smart_recommend_block'); SPZ.whenApiDefined(blockEl).then((api) => { api.render({data: res}, true).then(() => { if (isGeek && that.show_type_ === 6) { blockEl.querySelector('.plugin_container_wrpper').style.padding = '30px 0'; } const recommendStyle = document.createElement('style'); recommendStyle.innerHTML = ` .plugin__recommend_container,.app-recommend-card { display: none !important; } `; document.head.appendChild(recommendStyle); const fetchList = []; res.rules.forEach((rule) => { fetchList.push(this.fetchRuleProductList(rule.id)); }); const fetchAll = Promise.all(fetchList); fetchAll.then((p_res) => { res.rules.forEach((rule, index) => { rule.products = p_res[index] && p_res[index].products; const ruleEl = document.getElementById('smart_recommend_rule_' + rule.id); SPZ.whenApiDefined(ruleEl).then((api) => { api.render({data: rule}, true).then(() => { that.impressListen(`#smart_recommend_rule_ul_${rule.id}`, function(){ that.trackRuleImpress(rule); }); const btnElList = document.querySelectorAll(`#smart_recommend_rule_ul_${rule.id} button`); btnElList.forEach((btnEl) => { if (btnEl && rule.config && rule.config.quick_shop_button_bg_color && rule.config.quick_shop_button_text_color) { btnEl.style.backgroundColor = rule.config.quick_shop_button_bg_color; btnEl.style.color = rule.config.quick_shop_button_text_color; } }) }); }); }); }); }) }) } else { if (window.top !== window.self) { const template_type = window.SHOPLAZZA.meta.page.template_type; const holderEl = document.getElementById('smart_recommend_preview_no_data_placeholder'); SPZ.whenApiDefined(holderEl).then((api) => { api.render({data: { isCart: template_type === 13, isCollection: template_type === 2, isProduct: template_type === 1, isIndex: template_type === 15 }}, true); }); } } }); } setAction_() { this.registerAction('quickShop', (data) => { const that = this; const product_id = data.args.product_id; const productIndex = data.args.productIndex; const rule_id = data.args.rule_id; const ssp = data.args.ssp; const scm = data.args.scm; const cfb = data.args.cfb; const ifb = data.args.ifb; const modalRender = document.getElementById('smart_recommend_product_modal_render'); if (product_id) { this.fetchProductData(product_id).then((res) => { const product = res.products && res.products.length && res.products[0] || {}; product.cfb = cfb; product.ifb = ifb; SPZ.whenApiDefined(modalRender).then((api) => { api.render({product: product, productIndex: productIndex, rule_id: rule_id, ssp: ssp, scm: scm, show_type: that.show_type_}, true).then(() => { const modalEl = document.getElementById('smart_recommend_product_modal'); SPZ.whenApiDefined(modalEl).then((modal) => { that.impressListen('#smart_recommend_product_modal', function(){ that.trackQuickShop({ rule_id: rule_id, product_id: product_id }); }); modal.open(); }); const formEl = document.getElementById('smart_recommend_product_form'); SPZ.whenApiDefined(formEl).then((form) => { form.setProduct(product); }); const variantEl = document.getElementById('smart_recommend_product_variants'); SPZ.whenApiDefined(variantEl).then((variant) => { variant.handleRender(product); }); }); }) }); } }); this.registerAction('handleScroll', (data) => { this.directTo(data.args.rule_id, data.args.direction); }); this.registerAction('handleProductChange', (data) => { const variant = data.args.data.variant; const product = data.args.data.product; const imageRenderEl = document.getElementById('smart_recommend_product_image'); SPZ.whenApiDefined(imageRenderEl).then((api) => { api.render({ variant: variant, product: product }); }); }); this.registerAction('handleAtcSuccess', (detail) => { const data = detail.args; data.data.product = data.data.product || {}; data.data.variant = data.data.variant || {}; const product_id = data.data.product.id; const product_title = data.data.product.title; const variant_id = data.data.variant.id; const price = data.data.variant.price; const rule_id = data.rule_id; const aid = `smart_recommend.${this.show_type_}.${rule_id}`; const ifb = data.data.product.ifb; const cfb = data.data.product.cfb; const ssp = data.ssp; const scm = data.scm; const spm = `smart_recommend_${this.show_type_}.${data.spmIndex}`; const params = { id: product_id, product_id: product_id, number: 1, name: product_title, variant_id: variant_id, childrenId: variant_id, item_price: price, source: 'add_to_cart', _extra: { aid: aid, ifb: ifb, cfb: cfb, scm: scm, spm: `..${window.SHOPLAZZA.meta.page.template_name}.${spm}`, ssp: ssp, } }; this.tranckAddToCart(params); }); this.registerAction('addATCHook', (data) => { const params = data.args; const spm = `smart_recommend_${this.show_type_}.${params.spmIndex}`; this.myInterceptor_ = window.djInterceptors && window.djInterceptors.track.use({ event: 'dj.addToCart', params: { aid: `smart_recommend.${this.show_type_}.` + params.rule_id, ssp: params.ssp, scm: params.scm, cfb: params.cfb, spm: `..${window.SHOPLAZZA.meta.page.template_name}.${spm}`, }, once: true }); }); } tranckAddToCart(detail) { if (window.$) { window.$(document.body).trigger('dj.addToCart', detail); } } fetchRules() { const payload = { show_type: this.show_type_, }; let that = this; if (this.show_type_ === 6) { let line_items = []; return this.fetchCart().then((res) => { if (res && res.cart && res.cart.line_items) { line_items = res.cart.line_items.map((item) => { return { product_id: item.product_id, variant_id: item.variant_id, quantity: item.quantity, price: item.price } }); } payload.line_items = line_items; that.cart_items_ = line_items; return that.fetchRulesRequest(payload); }); } else { if (this.show_type_ === 3) { payload.line_items = [{ product_id: this.product_resource_id_ }]; } else if (this.show_type_ === 4) { payload.collection_id = this.collection_resource_id_; } else if (this.show_type_ === 7) { payload.customer_id = this.customer_id_; } else if (this.show_type_ === 8) { payload.order_id = this.order_id_; } return this.fetchRulesRequest(payload); } } fetchRulesRequest(payload) { return fetch(window.SHOPLAZZA.routes.root + "/api/possum/recommend_query", { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify(payload) }).then(function(res){ if(res.ok){ return res.json(); } }); } fetchCart() { return fetch(`/api/cart/cart-select?r=${Math.random().toString(36).slice(-4)}`) .then((res) => { if (res.ok) { return res.json(); } }); } fetchRuleProductList(rule_id) { const payload = { page: 1, limit: 100, fields: ["title", "url", "image", "min_price_variant.price", "min_price_variant.compare_at_price"], rule_id: rule_id, }; if (this.show_type_ === 3) { payload.line_items = [{ product_id: this.product_resource_id_ }]; } else if (this.show_type_ === 4) { payload.collection_id = this.collection_resource_id_; } else if (this.show_type_ === 6) { payload.line_items = this.cart_items_; } else if (this.show_type_ === 7) { payload.customer_id = this.customer_id_; } else if (this.show_type_ === 8) { payload.order_id = this.order_id_; } return fetch(window.SHOPLAZZA.routes.root + "/api/possum/recommend_products", { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify(payload) }).then(function(res){ if(res.ok){ return res.json(); } }).catch(function(err){ console.log(err); }); } fetchProductData(product_id) { return fetch(window.SHOPLAZZA.routes.root + "/api/possum/products", { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify({ product_ids: [product_id], fields: [ "images", "options", "min_price_variant", "variants"] }) }).then(function(res){ if(res.ok){ return res.json(); } }).catch(function(err){ console.log(err); const loadingEl = document.getElementById('smart_recommend_loading'); if (loadingEl) { loadingEl.style.display = 'none'; } }); } getStyle(ele, style) { if (!ele) return; if (window.getComputedStyle) { return window.getComputedStyle(ele)[style]; } return ele.currentStyle[style]; } directTo(id, direction) { const scrollElement = document.getElementById(`smart_recommend_rule_ul_${id}`); const blockWidth = parseInt(this.getStyle(scrollElement, 'width')); const scrollLength = (blockWidth * 0.19 - 12) * 5; const scrollPoint = scrollElement.scrollWidth - scrollElement.clientWidth; if (!scrollElement) return; if (direction === 'left') { if (document.dir === 'rtl') { scrollElement.scrollTo({ left: Math.abs(scrollElement.scrollLeft) >= scrollPoint - 100 ? 0 : scrollElement.scrollLeft - scrollLength, behavior: 'smooth' }); return; } scrollElement.scrollTo({ left: Math.max(scrollElement.scrollLeft - scrollLength, 0), behavior: 'smooth' }); } else { if (document.dir === 'rtl') { scrollElement.scrollTo({ left: Math.abs(scrollElement.scrollLeft) >= scrollPoint + 100 ? 0 : scrollElement.scrollLeft + scrollLength, behavior: 'smooth' }); return; } scrollElement.scrollTo({ left: scrollElement.scrollLeft >= scrollPoint - 100 ? 0 : scrollElement.scrollLeft + scrollLength, behavior: 'smooth' }); } } trackRuleImpress(rule) { if (window.sa && window.sa.track) { window.sa.track("plugin_common", { plugin_name: "upsell", event_type: "impressions", rule_id: rule.id, ssp: rule.ssp, scm: rule.scm, show_type: this.show_type_, support_app_block: window.SHOPLAZZA.theme.support_app_block }); window.sa.track("module_impressions", { aid: `smart_recommend.${this.show_type_}.${rule.id}`, support_app_block: window.SHOPLAZZA.theme.support_app_block }); } } trackQuickShop(data) { window.sa && sa.track && sa.track("plugin_common", { plugin_name: "upsell", event_type: "quick_shop", rule_id: data.rule_id, product_id: data.product_id, show_type: this.show_type_, }); } impressListen(selector, cb) { const el = document.querySelector(selector); const onImpress = (e) => { if (e) { e.stopPropagation(); } cb(); }; if (el && !el.getAttribute('imprsd')) { el.addEventListener('impress', onImpress) } else if (el) { onImpress(); } } } SPZ.defineElement('spz-custom-smart-block', SpzSmartBlockComponent);