Bladen Full Sofa Sleeper And Recliner (2024)

Living Room Furniture keyboard_arrow_right Sofas keyboard_arrow_right Signature Design by Ashley Bladen Full Sofa Sleeper And Recliner

Bladen Collection by Signature Design by Ashley

SKU: 12020U4

Be the first to write a review

Available to Order 4 weeks

Sale $1,556.95

Special Offer

Please save your account number or you will not be able to checkout.

').appendTo(document.body); } }) $('.view-cart-summary-v4 #PaymentCalculatorModal').on('hide.bs.modal', function (e) { if ($('.view-cart-summary-v4')) { //If we're in a spot using a weird custom version of bootstrap that doesn't work with modals...This is to remove the see through gray backdrop. //$(".modal-backdrop").remove(); } })

').appendTo(document.body); //} }); //learnMore.addEventListener('click', function () { // var element = document.getElementsByClassName('SectionOuter'); // console.log(element[0].classList); // element[0].classList.add('mask'); //}); var learnMoreText = document.createTextNode('Learn More'); learnMore.appendChild(learnMoreText); div.appendChild(learnMore); document.getElementById('OfferList').appendChild(div); //Add it to the list of offers $('#OfferList').append(div); }); } }

Price with selected options:

Qty:

Items in Cart ( products)

Where Can I See This Product in Store?

more

This product is not on display in our showrooms.

Estimated Delivery Price

Enter your zip code to get a delivery estimate.

Ask a Question

less

Disclaimer

remove add

Description

more

If you love the cool look of leather but long for the warm feel of fabric, you'll find this full sofa sleeper and recliner fit the bill beautifully. Rest assured, the textural, multi-tonal upholstery is rich with character and interest—while plush, pillowy cushions merge comfort and support with a high-style design.

  • Attached Back
Rebates view
Bladen Full Sofa Sleeper And Recliner (40)

Full Sofa Sleeper And Recliner

Bladen Collection

Sale $1,556.95

Items in Cart ()

arrow_back_ios_new

Bladen Full Sofa Sleeper And Recliner (41)

learn more

policy

\n\n","Qty":1,"AddonDisplayOrder":0,"ShowLearnMoreLink":false,"IsPrimaryAddon":false,"IsPreselected":false}],"GroupName":"Sofa Fabric Protection","GroupId":"1be8f5880a2e430bbd1de33051d1b7ee","DisplayOrder":0,"PresentationType":0,"PrimaryAddonButtonLabel1":null,"PrimaryAddonButtonLabel2":null,"CustomLeadInText":"Add"}], // Add-on groups associated with base product currentAddon: {}, // Stores current add-on showLearnMoreDesc: false, // Flag to toggle visibility of Learn More description selectedAddonItems: [], // Stores selected add-ons initialized: false, // Flag to trigger skeleton loaders adding: false, // Flag to indicate whether products are in process of being added to cart addonDataFromUrl: "", // Stores add-on data from URL query string // Computed property to check whether current add-on is selected get currentAddonIsSelected() { return this.selectedAddonItems.find((a) => a.Gpid == this.currentAddon.Gpid); }, // Computed property to get total count of add-ons to add to cart get addToCartItemCount() { return this.selectedAddonItems.length + 1; }, // Computed property to calculate total price including base product price get addToCartPrice() { const baseItemPrice = 1556.95; let totalPrice = 0; // Calculate total price of selected add-on items this.selectedAddonItems.forEach(item => { for (i = 0; i < item.Qty; i++) { var priceOfAddon = item.Price; totalPrice += priceOfAddon; } }); return this.formatPrice(parseFloat(totalPrice) + parseFloat(baseItemPrice)); }, // Formats price as currency formatPrice(price) { const formatter = new Intl.NumberFormat('en-US', { style: 'currency', currency: 'USD', }); return formatter.format(price); }, // Handles selection of add-on handleSelectOption(addon) { // Check whether selectedAddons has another add-on from this group let existingAddon = this.selectedAddonItems.find((selectedAddonItem) => selectedAddonItem.groupId == addon.groupId && selectedAddonItem.Gpid != addon.Gpid); if (existingAddon) { // Remove existing add-on let existingAddonInput = document.getElementById('check' + existingAddon.Gpid); existingAddonInput.click(); } this.$nextTick(() => { // Select new add-on let selectedAddonInput = document.getElementById('check' + addon.Gpid); selectedAddonInput.click(); }); }, // Handles click event for adding base product and add-ons to cart addToCartClick() { const self = this; self.adding = true; // Ensure quantity of base product is at least 1 if (this.parentQuantity <= 0) { this.parentQuantity = 1; } if (this.gpid) { var addToCartItems = []; self.selectedAddonItems.forEach((sAddon) => addToCartItems.push({ addonGpid: sAddon.Gpid, qty: sAddon.Qty })); var data = '{"addToCartModel": ' + '{"parentGpid": ' + this.gpid + ',' + '"addToCartItems":' + JSON.stringify(addToCartItems) + "," + '"quantity":' + this.parentQuantity + '}' + '}'; // Ajax request to add items to shopping cart $.ajax({ type: "POST", url: Utils.BaseURL + "AjaxItemService.asmx/AddMultipleItemsToShoppingCart", data: data, contentType: "application/json; charset=utf-8", dataType: "json", success: function (data) { // Hide spinner self.adding = false; self.itemIsInCart = true; // Update cart product count const addedCount = self.selectedAddonItems.length + 1; const cartItemCount = parseInt($('.js-cart-count').first().text() .replace(/\D/g, ""), 0) + addedCount; if ($('.cart-status-v4').length > 0) { $('.js-cart-count').text(cartItemCount); } else { $('.js-cart-count').text("(" + cartItemCount + ")"); } // Track event for Google Analytics 4 fdEvents.publish("add_to_cart", data.d.Event) // Track event for Facebook Pixel window.fbPixel.done(function () { fbq('track', 'AddToCart', { content_type: 'product', content_ids: [self.gpid.toString()] }, { eventID: data.d.MetaEventId }); }); // Show confirmation modal document.getElementById('added-to-cart-modal-body').innerHTML = data.d.Html; $('#added-to-cart-modal').modal('show'); }, // Error handling for Ajax request error: function (error) { self.adding = false; self.itemIsInCart = false; console.log( `Error when addding the following items to cart: ${JSON.stringify(self.selectedAddonItems)}. Error is: ${error.responseText}` ); document.getElementById('added-to-cart-modal-body').innerHTML = "Looks like we encountered a problem, try re-adding your products to the cart."; $('#added-to-cart-modal').modal('show'); } }); } }, // Calculates total price of add-on based on its quantity priceBasedOnQty(selectedAddonOption) { let totalPrice = 0; // Iterates over quantity and sums up price for (i = 0; i < selectedAddonOption.Qty; i++) { var priceOfAddon = selectedAddonOption.Price; totalPrice += priceOfAddon; } return totalPrice; }, // Updates URL with current add-on data updateUrl() { const url = new URL(window.location.href); url.searchParams.set("addonData", encodeURIComponent(JSON.stringify(this.generateAddonData()))); window.history.replaceState({ path: url.href }, "", url.href); }, // Generates data object representing selected add-ons generateAddonData() { var data = []; this.selectedAddonItems.forEach((selectedAddonItem) => data.push({ addonGpid: selectedAddonItem.Gpid, groupId: selectedAddonItem.groupId })); return data; }, // Retrieves value of query string parameter by key getQueryStringValue(key) { const query = window.location.search.substring(1); const vars = query.split("&"); for (let i = 0; i < vars.length; i++) { const pair = vars[i].split("="); if (pair[0] == key) { return pair[1]; } } } })); /* Add-On Group Component */ Alpine.data('addonGroupComponent', (_addonGroup) => ({ init() { // Check whether there is add-on data from URL if (this.addonDataFromUrl) { // Find add-on data that matches current group ID const addonData = this.addonDataFromUrl.find(group => group.groupId == this.groupId); if (addonData) { // Find add-on within group that matches Gpid from the URL data const addonFromUrl = _addonGroup.AddonOptions.find(addonOption => addonOption.Gpid == addonData.addonGpid); addonFromUrl.groupId = this.groupId; this.handleSelectAddon(addonFromUrl); } } // If selectedOption is not already set and group is of type PrimaryAddon, // check whether primary add-on is preselected if (this.presentationType == 2) { this.primaryAddon = _addonGroup.AddonOptions.find(addonOption => addonOption.IsPrimaryAddon); this.primaryAddon.groupId = this.groupId; // Pre-select primary add-on if (this.primaryAddon && this.primaryAddon.IsPreselected && this.selectedOption.gpid == 0) { this.handleSelectAddon(this.primaryAddon); } } else { var preselectedAddon = _addonGroup.AddonOptions.find(addonOption => addonOption.IsPreselected); if (preselectedAddon && this.selectedOption.gpid == 0) { preselectedAddon.groupId = this.groupId; this.handleSelectAddon(preselectedAddon); } } }, groupId: _addonGroup.GroupId, // Stores unique ID of add-on groupName: _addonGroup.GroupName, // Stores name of add-on group groupNameLeadInText: _addonGroup.CustomLeadInText, // Lead-in text for group name presentationType: _addonGroup.PresentationType, // Stores presentation type (int) of add-on group primaryAddon: {}, // Stores primary add-on, if applicable showSelectModal: false, // Flag to toggle visibility of add-on selection modal // Object to store details of currently selected add-on option selectedOption: { gpid: 0, // ID of selected add-on option sdesc: '', // Short description of selected add-on option imageUrl: '', // Image URL of selected add-on option url: '', // Link to detailed page of selected add-on option webpImageUrl: '', // WebP image URL of selected add-on option price: 0, // Price of selected add-on option priceBeforeDiscountOrSale: 0, // Original price before discount or sale pricingHtml: '', // HTML content for pricing information qty: 0 // Quantity of selected add-on option }, // Generates list of add-on options with unique IDs and group IDs addonOptions() { var result = []; // Iterate over each add-on option and assign unique ID and group ID _addonGroup.AddonOptions.forEach((option) => { const randomId = crypto.randomUUID(); // Generate random unique ID const withId = { ...option, id: randomId, groupId: _addonGroup.GroupId }; return result.push(withId); // Add modified option to result list }); if (this.presentationType == 2 || this.presentationType == 3) { result = result.sort((a, b) => { if (a.Gpid == this.selectedOption.gpid) { return -1; } if (b.Gpid == this.selectedOption.gpid) { return 1; } return 0; }); } return result; }, // Checks position of specific add-on group within filtered list of dropdown groups checkDropDownIndex(last) { // Filter addonGroups to include only those of Dropdown PresentationType // and find index of group with current groupId in filtered list const dropdownGroups = this.addonGroups.filter(addonGroup => addonGroup.PresentationType == 3); const index = dropdownGroups.findIndex(dropdownGroup => dropdownGroup.GroupId == this.groupId); // Check whether group is either first or last item in filtered list if (last) { return index == dropdownGroups.length - 1; } else { return index == 0; } }, // Opens add-ons modal openAddonsModal(addon) { // Set current addon this.currentAddon = addon; // Use Bootstrap's modal method to show modal $('#addonsModal').modal('show'); }, // Determines whether given checkbox should be disabled based on its // Gpid (only one option should be selectable) isDisabled(gpid) { if (this.selectedOption.gpid > 0) { return this.selectedOption.gpid != gpid ? true : false; } else { return false; } }, // Calls function to select or deselect add-on option based on whether checkbox is checked checkCheckboxValue(event, addon, addonGroup) { // Call function for when the checkbox is checked if (event.target.checked) { this.handleSelectAddon(addon); } else { // Call function for when the checkbox is unchecked this.handleNoneOptionSelected(addonGroup); } }, // Handles deselection of add-on option handleNoneOptionSelected(addonGroup) { this.showSelectModal = false; // Hide selection modal var index = this.selectedAddonItems.findIndex(item => item.groupId === addonGroup.GroupId); // Find index of add-on in selected items list // If add-on is currently selected, remove it from selected items if (index !== -1) { this.selectedAddonItems.splice(index, 1); // Remove add-on from selected items // Reset details of selectedOption to default values this.selectedOption.gpid = 0; this.selectedOption.sdesc = ''; this.selectedOption.imageUrl = ''; this.selectedOption.url = ''; this.selectedOption.webpImageUrl = ''; this.selectedOption.price = 0; this.selectedOption.priceBeforeDiscountOrSale = 0; this.selectedOption.pricingHtml = ''; this.selectedOption.qty = 0; // Update URL parameters this.$nextTick(() => { this.updateUrl(); }); } }, // Handles selection of add-on option handleSelectAddon(addon) { // Reset quantity selector and update parent quantity const value = (0 > 0 && !false) ? 0 : 1 $("#quantitySelect").val(value); this.parentQuantity = value; this.showSelectModal = false; // Hide selection modal // Remove existing add-on from same group before adding new one this.selectedAddonItems.forEach((currentAddon) => { if (currentAddon.groupId === addon.groupId) { // Find and remove existing add-on from selected items this.selectedAddonItems .splice(this.selectedAddonItems .findIndex((selectedAddon) => selectedAddon.id === currentAddon.id), 1); } }) // Add selected add-on to list of selected add-on items and set as new primary add-on this.selectedAddonItems.push(addon); this.primaryAddon = addon; // Update details of selectedOption with information of selected add-on this.selectedOption.gpid = addon.Gpid; this.selectedOption.sdesc = addon.AddonItemShortDescriptionOverride ?? addon.SDesc; this.selectedOption.imageUrl = addon.ImageUrl; this.selectedOption.url = addon.Url; this.selectedOption.webpImageUrl = addon.WebpImageUrl; this.selectedOption.price = this.priceBasedOnQty(addon); this.selectedOption.priceBeforeDiscountOrSale = addon.PriceBeforeDiscountOrSale; this.selectedOption.pricingHtml = addon.PricingHtml; this.selectedOption.qty = addon.Qty; // Update URL parameters this.$nextTick(() => { this.updateUrl(); }); }, // Handles click event for dropdown option handleDropdownClick() { // If add-on is currently selected, call handleNoneOptionSelected to remove add-on if (this.selectedOption.gpid != 0) { this.handleNoneOptionSelected(_addonGroup); } }, // Convert plural noun to its singular form by checking for common pluralization rules convertToSingular(groupName) { let word = groupName.trim(); // Primary Rule if (word.endsWith('s') && !word.endsWith('ss')) { // Rule 1: Remove "s" at end of plural word word = word.slice(0, -1); } // Additional Rules if (word.endsWith('ies')) { // Rule 2: Replace "ies" with "y" word = word.slice(0, -3) + 'y'; } else if (word.endsWith('es') && word.length > 3) { // Rule 3: Replace "es" with "is" word = word.slice(0, -2); } else if (word.endsWith('ves')) { // Rule 4: Replace "ves"" with "f" or "fe" word = word.slice(0, -3) + 'f'; } return word; } })); }); $(document).ready(function () { if (0 != 0 && !false && $('#quantitySelect').children().length == 0) { const quantityDropdown = document.getElementById("quantitySelect"); for (let i = 1; i < 6; i++) { let option = document.createElement("option"); let optionText = document.createTextNode(0 * i); option.setAttribute('value', 0 * i); option.appendChild(optionText); quantityDropdown.appendChild(option); } } });

Bladen Full Sofa Sleeper And Recliner (2024)
Top Articles
The 20 Best Jenna Ortega Movies And TV Shows
Jenna Ortega | Rotten Tomatoes
'That's Hilarious': Ahsoka's Ezra Bridger Actor Reveals Surprising True-To-Life Detail Behind Sabine Reunion Scene
How To Check Your Rust Inventory Value? 🔫
D&C Newspaper Obituaries
Indiana girl set for final surgery 5 years after suffering burns in kitchen accident
Tamilyogi Download 2021
Sphynx Cats For Adoption In Ohio
Leo 2023 Showtimes Near Amc Merchants Crossing 16
Old Navy Student Discount Unidays
Anime Souls Trello
Her Triplet Alphas Chapter 32
Elisabeth Fuchs, Conductor : Magazine : salzburg.info
14314 County Road 15 Holiday City Oh
Nascar Espn Schedule
Best Amsterdam Neighborhoods for Expats: Top 9 Picks
Uca Cheerleading Nationals 2023
Alishbasof
Craigslist Motorcycles Salem Oregon
Truist Drive Through Hours
Antonios Worcester Menu
Www.statefarm
Highway 420 East Bremerton
Toonily.cim
Craigslist St. Paul
Lehman's Demise and Repo 105: No Accounting for Deception
R Edens Zero
Academy Sports Meridian Ms
Harleyxwest Of Leaks
Craiglist.nj
Power Outage Map National Grid
Www Spherionnetwork.com
Jbz Inlog
Mesmerized Nyt Crossword
Fallen Avatar Mythic Solo
Rs3 Bis Perks
Sayre Australian Shepherds
Craigslist Covington Georgia
Gary Keesee Kingdom Principles Pdf
Craigslist Nj Apartments South Jersey
How To Evolve Nincada Into Shedinja
Heatinghelp The Wall
Norville Breast Center At Alamance Regional
Maria Butina Bikini
Magnifeye Alcon
Power Outage Chehalis
Was genau ist eine pillow princess?
Love In Orbit Manga Buddy
Redbox Walmart Near Me
Tetris Google Sites
Luxiconic Nails
Latest Posts
Article information

Author: Frankie Dare

Last Updated:

Views: 6009

Rating: 4.2 / 5 (73 voted)

Reviews: 88% of readers found this page helpful

Author information

Name: Frankie Dare

Birthday: 2000-01-27

Address: Suite 313 45115 Caridad Freeway, Port Barabaraville, MS 66713

Phone: +3769542039359

Job: Sales Manager

Hobby: Baton twirling, Stand-up comedy, Leather crafting, Rugby, tabletop games, Jigsaw puzzles, Air sports

Introduction: My name is Frankie Dare, I am a funny, beautiful, proud, fair, pleasant, cheerful, enthusiastic person who loves writing and wants to share my knowledge and understanding with you.