I am working on a florist website, the products are tied to multiple cities based on availibility of product in that city.

  1. I want to provide an option for users to select the city when they select any product.
  2. Once they have selected city i want to display available products in that city.
  3. User can modify delivery city at any point of time.
  4. I dont want user to select the city in payment page as user will be annoyed if the delivery city is not available of his choice.

Is this possible?

  • 3
    Why not make the products configurable where, city is one of the configurable fields, or add a custom option named city with the available values?
    – Marius
    Dec 3, 2013 at 13:17
  • You need to create a website per city for standard Magento, but need fantastic hosting as Magento slows when websites/stores increase. Otherwise you will need to 'hack' the core around to filter out the products at all levels including catalog, rss, bots. We have done this, it was not very stable so recommend you don't do it. The website version is business based, no code changes required, the second is technical based so stability will be the problem. There is also balancing the two but not many know how to do this as 95%+ of the time resource is either technical -or- functional (business).
    – user2935
    Dec 3, 2013 at 13:32
  • I like the idea of Marius, just add simple products per city, so you can map quantity. The alternative if you want to do it "correctly" is to change magentos Mage_CatalogInventory logic and add more stocks, so you can check in the correct stock whether the product is available. But I recommend Marius idea. Dec 3, 2013 at 17:55
  • It is completely non-visitor friendly having to trawl through the products to find ones to deliver to their city, it will affect revenue. The technical solutions to this are not pleasant and very difficult to make let alone keep stable. It is interesting as a company we license some solutions from just released a Food Supermarket & Florst industry specific solution that works with Magento, unfortunately that will not help you. In the end you need to segregate the products by websites or filter them before display, however most of these solutions are not stable, look at car parts for example.
    – user2935
    Dec 4, 2013 at 11:52

2 Answers 2


I imagine you'll have to use the Store Views for this, each store view for a city. The user can change store view / city with a drop down in the header (or wherever) Then manage the inventory at a store view level.

This means customers can see immediately which products are available in their city. It will also allow you to customise your theme for that city, e.g. the logo has the city name across it.


You need a specialised form of layered navigation.

First: I have no experience with the the enterprise edition and how it uses solr.

But maybe the concept helps:

  1. as you want to manage stock by city, you need to make it a product per city.

  2. you save the current city of the user (you sure have a place where you can let them chose early?) and use this as default active filter for layered navigation. Means, they will by default only see the products from their city.

  3. when they change, the default active filter for the layered navigation changes, so this is not a big problem. But to make sure they dont have products of different cities in cart, I suggest you warn them and remove all cart Items if they change city.

This should solve your problem. But this needs to get implemented and is probably a lot of work. But this way the user should nearly have no notice of the complex system you use in background.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.