"Not On Sale" text

Not sure what direction to go in with the custom “Not On Sale” description you can set on a product:

The thing is, this is just at the product level. If you have 2 products (Stalls and Balcony) in a folder, and one of them is sold out or not on sale, you’ll see this message. But if the performance folder only contains one product, and the performance folder is not on sale, then you’ll see the folder level “Not on sale” message for the performance, and that message isn’t configurable.

Should we:

  • Add Not On Sale / Sold Out descriptions to the Folder Performance Data in addition to the Product
  • Look at all the Products in a folder and use the override description of them if they exist
  • Use the Folder Display Defaults to set these strings at the folder level, and remove them from the product level.
  • All of the above: Add the property to the Folder Performance Data AND add a default to Folder Display Defaults AND leave the override on the Product.

0 voters

the status (not on sale, sold out) and the product description (“Tickets” in the example above) are separate things. They display “tickets (not on sale)”. We have a way of overriding the description when product is not on sale or sold out using the text fields in the screen shot e.g. “Tickets On The Door (not on sale)”.
What we don’t have is a way of overriding the “(not on sale)” bit of text.

This seems the wrong way round to me. The product description should always be the same, whether it is on onsale or not, and it is the “(not on sale)” bit which should be overridden e.g. “on the door only”.

Being able to set that text at any level of the tree structure to apply to all products and folders below it makes sense to me. this could be a “settings” object, a “folder display defaults” object or a new “text settings” object. A text settings object could end up holding all the text associated with a folder or product, like “buy now”, “more information”, “Select Date”, “choose performance”, “choose seats”, etc.

When you look at a folder or product in admin, we could show which text is going to display and identify which settings object it is coming from.

So, the easiest thing to do would be to use the existing settings object. Just have a “Folder: Not On Sale Status Text” setting property, and then we just the value (which automatically recurses up the tree).

My fear is that we might end up with a LOT of text overrides like that which might swamp the other settings, which makes having a text settings object make more sense.

And my fear with a text settings object is that it might create the expectation that any and all text could be overridden like that, and I don’t really want to have to do that, partly for performance reasons, partly because I don’t want to see a load of bug reports saying “The text override function doesn’t work because I can’t change the text on this button here”…

This will be in the next version just using the settings object:

which has this effect on the relevant folders (and subfolders):

At some point in the future we can think of a way to integrate

  1. Label overrides (currently in Performance, Show and Product objects)
  2. Per folder terminology overrides (now here in settings)
  3. Per Skin custom text (currently in Skin files)
  4. Foreign Language Translations (currently in ResX files)

into one all singing all dancing string mangling function - but right now the strings are used in different ways by different people, and there’s not reason not to add some useful functionality just because it turns 3 string sources into 4.

that looks good. two things:

  1. I wonder if we should make the ( ) part of the string. Some themes may want the text positioned and highlighted differently, and bracket may not always make sense.
  2. that example still has a “Buy Tickets” button next to it, which is a bit confusing.

That’s in:

public static string FolderCallToAction(FolderDT folder)
    {
        // TODO: Translate - or at least make themeable.
        string result;

        if (folder.FolderQuantities != null && folder.FolderQuantities.OnSale != null)
        {
            result = (string)HttpContext.GetGlobalResourceObject("DescriptionHelperResources", "BuyNow");
        }
        else
        {
            result = (string)HttpContext.GetGlobalResourceObject("DescriptionHelperResources", "MoreInfo");
        }

        if (folder.SpecialData != null)
        {
            // never display quantities for things that aren't shows or performances
            if (folder.SpecialData.Show != null || folder.SpecialData.Performance != null)
            {
                if (folder.FolderQuantities != null)
                {
                    if (folder.FolderQuantities.OnSale == null)
                    {
                        // folder contains no products, therefore neither onsale nor not onsale
                    }
                    else if (folder.FolderQuantities.OnSale == false)
                    {
                        result = (string)HttpContext.GetGlobalResourceObject("DescriptionHelperResources", "FolderNotOnSale");
                    }
                    else if (folder.FolderQuantities.QuantityTracking)
                    {
                        if (folder.FolderQuantities.AvailableQuantity == 0)
                        {
                            result = (string)HttpContext.GetGlobalResourceObject("DescriptionHelperResources", "FolderSoldOut");
                        }
                        else
                        {
                            result = (string)HttpContext.GetGlobalResourceObject("DescriptionHelperResources", "BuyTickets");
                        }
                    }
                }
            }
        }
        return result;
    }

which

  1. Isn’t currently used by the performance lists (just the Folder Content lists) but should be
  2. Needs the same treatment for overriding and customising strings.

Hmmm. Just made the Call to Action text use the status:

Not sure if that’s an improvement. If it is better to have the status on the button then we need to remove it from the folder name. And fix the button size so they’re all the same height and width.

I think it shouldn’t be on the button. my point was if tickets are sold out then there shouldn’t be a button to click. I guess putting the status in the same position as the button could work, but just as text.

I have tickets to a sold out performance. I go to the website to check the details of the performance. The fucking button is hidden or disabled because it’s sold out. I am cross. =)

Plus, staff need to be able to click through to sold-out performances, perhaps to sell out of a different allocation, or to see the (sold out) seating plan to check who’s sitting in which seat.

I’ve stopped using the folder status in the call to action, so now it’s just a choice between “Buy Tickets” (if it’s a performance), “Buy Now” (if it’s not a performance), and “More Info” (if there’s nothing on sale)

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.