Vintage Soft Leather Shoulder Bags
Vintage Soft Leather Shoulder Bags
Vintage Soft Leather Shoulder Bags
Vintage Soft Leather Shoulder Bags
Vintage Soft Leather Shoulder Bags
Vintage Soft Leather Shoulder Bags
Vintage Soft Leather Shoulder Bags
Vintage Soft Leather Shoulder Bags
Vintage Soft Leather Shoulder Bags
Vintage Soft Leather Shoulder Bags
Vintage Soft Leather Shoulder Bags
Vintage Soft Leather Shoulder Bags
Vintage Soft Leather Shoulder Bags
Vintage Soft Leather Shoulder Bags
Vintage Soft Leather Shoulder Bags
Vintage Soft Leather Shoulder Bags
Vintage Soft Leather Shoulder Bags
Vintage Soft Leather Shoulder Bags

Vintage Soft Leather Shoulder Bags

Price

$39.99 $25.64
Save $14.35

color💖

Please select a color💖

Quantity

/** @private {string} */ class SpzCustomAnchorScroll extends SPZ.BaseElement { static deferredMount() { return false; } constructor(element) { super(element); /** @private {Element} */ this.scrollableContainer_ = null; } isLayoutSupported(layout) { return layout == SPZCore.Layout.LOGIC; } buildCallback() { this.viewport_ = this.getViewport(); this.initActions_(); } setTarget(containerId, targetId) { this.containerId = '#' + containerId; this.targetId = '#' + targetId; } scrollToTarget() { const container = document.querySelector(this.containerId); const target = container.querySelector(this.targetId); const {scrollTop} = container; const eleOffsetTop = this.getOffsetTop_(target, container); this.viewport_ .interpolateScrollIntoView_( container, scrollTop, scrollTop + eleOffsetTop ); } initActions_() { this.registerAction( 'scrollToTarget', (invocation) => this.scrollToTarget(invocation?.caller) ); this.registerAction( 'setTarget', (invocation) => this.setTarget(invocation?.args?.containerId, invocation?.args?.targetId) ); } /** * @param {Element} element * @param {Element} container * @return {number} * @private */ getOffsetTop_(element, container) { if (!element./*OK*/ getClientRects().length) { return 0; } const rect = element./*OK*/ getBoundingClientRect(); if (rect.width || rect.height) { return rect.top - container./*OK*/ getBoundingClientRect().top; } return rect.top; } } SPZ.defineElement('spz-custom-anchor-scroll', SpzCustomAnchorScroll); const STRENGTHEN_TRUST_URL = "/api/strengthen_trust/settings"; class SpzCustomStrengthenTrust extends SPZ.BaseElement { constructor(element) { super(element); this.renderElement_ = null; } isLayoutSupported(layout) { return layout == SPZCore.Layout.CONTAINER; } buildCallback() { this.xhr_ = SPZServices.xhrFor(this.win); const renderId = this.element.getAttribute('render-id'); SPZCore.Dom.waitForChild( document.body, () => !!document.getElementById(renderId), () => { this.renderElement_ = SPZCore.Dom.scopedQuerySelector( document.body, `#${renderId}` ); if (this.renderElement_) { this.render_(); } this.registerAction('track', (invocation) => { this.track_(invocation.args); }); } ); } render_() { this.fetchData_().then((data) => { if (!data) { return; } SPZ.whenApiDefined(this.renderElement_).then((apis) => { apis?.render(data); document.querySelector('#strengthen-trust-render-1539149753700').addEventListener('click',(event)=>{ if(event.target.nodeName == 'A'){ this.track_({type: 'trust_content_click'}); } }) }); }); } track_(data = {}) { const track = window.sa && window.sa.track; if (!track) { return; } track('trust_enhancement_event', data); } parseJSON_(string) { let result = {}; try { result = JSON.parse(string); } catch (e) {} return result; } fetchData_() { return this.xhr_ .fetchJson(STRENGTHEN_TRUST_URL) .then((responseData) => { if (!responseData || !responseData.data) { return null; } const data = responseData.data; const moduleSettings = (data.module_settings || []).reduce((result, moduleSetting) => { return result.concat(Object.assign(moduleSetting, { logos: (moduleSetting.logos || []).map((item) => { return moduleSetting.logos_type == 'custom' ? this.parseJSON_(item) : item; }) })); }, []); return Object.assign(data, { module_settings: moduleSettings, isEditor: window.self !== window.top, }); }); } } SPZ.defineElement('spz-custom-strengthen-trust', SpzCustomStrengthenTrust);
Sustainably made

【Appearance and Material】This women's shoulder bag is made of soft leather. Comfortable and tactile to the touch. The interior is thickened with smooth, sturdy nylon lining. Exquisite textured hardware accessories use high-end electroplating technology, full of luster, long-lasting color. Multi-layered compartments and rich pocket design make this bag large and powerful. The simple and stylish look can be paired with any outfit.

【Perfect Gift】This comfortable and practical messenger bag is the perfect gift for any occasion such as Christmas, Valentine's Day, Birthday and Anniversary.

 

 

Product Description: Vintage

Soft Leather Shoulder Bags for Women Large Capacity Female Handbag Double

Compartment Crossbody Bags Lady Tote

Material: PU Leather

Size:13*19*5cm;

Color: black, brown