Getting Started With Magento
videos

Easy E-Commerce With Magento

Hundreds of ecommerce systems exist, but very few can match the power of Magento. In this screencast, I’ll demonstrate how to download and install Magento to a local host, configure some of the site options, and create simple and configurable products and categories for our test e-commerce site.

Screencast

Why Use Magento?

Well there are quite a few very good reasons to use Magento:

  • A Simple Intuitive Interface
  • Easy To Download, Install & Maintain
  • Built on current technologies unlike other systems.
  • Multiple Site Functionality
  • And best of all…It’s free and open source!

Preparation

As with all successful things in life, preparation is key! Before we can install Magento we must set up a database on our server. Using phpmyadmin we create a new database called “magento”. We will use this later when we come to install Magento.

Downloading/Installing Magento

Once our database has been set up on our server the next step is to download Magento itself. To do that we need to go to the download page on the Magento website. For this tutorial we will be downloading the Full Release in ZIP format. Once you have it downloaded unzip it to the folder of your choice.

Now that we have the files on our server it’s time to install Magento, to do this we go to http://localhost/magento (or whichever folder your using) in your web browser.

Accept the TOC’s and continue onto the next page.

Pick the settings that apply to you and click continue.

Going well so far…Now fill in the database connection settings. Make sure that you hit Use Web Server (Apache) Rewrites for added SEO friendliness and if you want to change the default access address for your backend from /admin edit the Admin Path field.

Fill in the login details you’d like to use for your account and enter an custom encryption key if you like, otherwise leave it blank and Magento will make one for you.

Great, now Magento has been installed on your server, if you have installed locally there is one last step you need to take before you can login…

In your Magento folder go to app/code/core/Mage/Core/Model/Session/Abstract/Varien.php

Find the session_set_cookie_params code block (Line 78) and replace it with this code:

		session_set_cookie_params(
            $this->getCookie()->getLifetime(),
            $this->getCookie()->getPath()
            //$this->getCookie()->getDomain(),
            //$this->getCookie()->isSecure(),
            //$this->getCookie()->getHttponly()
        );

On a proper webhost you do not need to do this! However as we are working on localhost we need to do this to address an cookie issue.

Tax Rules

To set up our different levels of tax we need to go to the Manage Tax Zones & Rates tab under Sales &raquo Tax. If the rule for your state doesn’t exist or has been changed recently then hit the “Add New Tax Rate”.

Save your new tax rule and you are good to go!

Categories

To create a new category we need to go to the Catalog tab on the navigation and select Manage Categories. From there we can manage and add new categories.

To create our new category we need to click Add Subcategory and fill in the details like the picture below, making sure to change Is Active to Yes.

Products

Products are key to a site but in Magento there was multiple product types as shown below…To create a new product we need to Catalog tab on the navigation and select Manage Products. And finally click Add Product

Simple Products

These are the products that have no options, such as DVD. To create our Simple product select Default for the attribute set and Simple Product for the Product Type and click Continue.

General Tab

  1. Name: The name of our new product
  2. Description: The main body description of the product; the place to really sell the product and all of its features!
  3. Short Description: The quick overview that appears just below the price on the product page; the place to grab the attention of buyers
  4. SKU: The stock code for the product
  5. Weight: The weight of the product. This can be kilos, tonnes or whatever you want as long as you keep uniformity across all your products
  6. Manufacturer: Blank by default but manufacturers can be added through the Manage Attributes Tab.
  7. Colour: Blank by default but again like the manufactures can be added through the Manage Attributes Tab
  8. Set Product As New From Date: Sets the product to new from the date you enter.
  9. Set Product as New to Date: Sets when the product ends being new.
  10. Status: If the product is Enabled and showing on the website or if it’s disabled.
  11. URL key: The custom option for how the URL for your product is written.
  12. Visibility: Where the product can be found by your visitors;
    • Nowhere: The product does not appear on the website.
    • Catalog: The product will appear on the website but not in search results.
    • Search: The product will not appear on the website but will appear in search results.
    • Catalog, Search: The product will appear on the website and in search results.
  13. Allow Gift Message:
    • Yes: Allows a gift message
    • No: Doesn’t allow a gift message
    • Config: Use the site’s configuration

Price Tab

  1. Price: The price of our product
  2. Special Price: Offers on products for limited times.
  3. Special Price From Date: The date in which the special price starts.
  4. Special Price To Date: The date in which the special price ends.
  5. Cost: The cost of the product.
  6. Tax Class: If your product requires Tax added then Taxable Goods must be selected.
  7. Tier Price: Allows for bulk discounts to be set up. Click Add Tier to add quantity discounts.
  8. Google Checkout: Can visitors buy this product using Google Checkout.

Meta Information Tab

  1. Meta Title: Information that appears in the <title> tag.
  2. Meta Keywords: keywords that apply to your product.
  3. Meta Description: A short description of your product that appears on Search Engine Result Pages.

Images Tab

Images are a key part of your product and the better quality you can get the more chance you have of making a sale, Magento allows for multiple images to be uploaded and specific images to be uploaded for the Base Image, the Small Image and the Thumbnail, as well as allowing for a label. If you want to remove an image simply click the Exclude to hide or the Remove to delete checkbox(s).

  • Base Image: The main image that appears on the product page.
  • Small Image: The image that appears in the categories/search view.
  • Thumbnail: The thumbnail of the product.

Design Tab

Unless you are using a template for your Magento store it’s best to give this one a miss, but for anyone who is curious the Design tab allows you to use themes that you have set up and allows you to choose active to and from dates as well as changing the page layout into different column blocks and so on.

Inventory Tab

  1. Manage Stock: If you’d like to track and manage stock levels then leave this set to Yes
  2. Qty: The amount of product you have.
  3. Stock Availability: If the product is in stock or not. Setting this to Out of Stock will not hide the product on the website!

The other options are best left to the site configuration however are all pretty self explanatory if you wish to set them to your needs.

Categories Tab

Your product can appear in multiple categories; simply click the checkbox of the category you want it to appear in!

Related Products / Up-sells / Cross-sells

With related products, up-sells and cross-sells the interface to add is same, to add a product simply select a field you wish to search by and click the search button, a list of products matching your criteria will appear. Click the checkbox next to the product and it will appear as a related product/up-sell or cross-sell as applicable.

Product Reviews / Product Tags / Customers Tagged Product

These are all added by users and can viewed from the tabs.

Custom Options

These are custom options that you can add to your product. To add a custom option click Add New Option and fill in the details.

Managing Attributes & Attribute Sets

Attributes are the options that make up your products, for example colour, weight and so on. Attribute sets are sets of attributes that make a whole product and allow us to make configurable products.

Attributes

To create a new attribute/view our current attributes we need to go to the Catalog tab on the navigation and select Attributes and then Manage Attributes. To view a attribute simply click on the row, to create a new attribute click the Add New Attribute Tab.

Properties Tab

It’s best to use an convention when you are naming your attributes, as your list grows it will make it easier to find what you are looking for. I like to use options_option_product which for this product would be options_colour_nettuts_shirt. We must set our scope to global and Catalog Input Type to Dropdown in order to create our configurable product(s). We are only applying our Attribute to Simple Products and Configurable Products. In order to use this attribute in our configurable products we must choose Yes on the Use To Create Configurable Product field. We must also select Yes on the Visible on Product View Page on Front-end field in order to make the attribute visible.

Manage Label / Options Tab

Next we need to set up the options for our user to select from when choosing there product. In our example we are using Colour as our product option.

The title is what the visitor will see above the dropdown, with Magento we can define what the admin sees and what the user sees making it easier to track options with additional information, in the example we have called our Title, Colour. If we leave the Default Store View blank it will copy what we have entered into Admin.

To add the options for our product click the Add Option button for the number of options you require, in our example 3. Like the title if we leave the Default Store View blank it will copy what we have entered into Admin but we can use the Admin field to add more information, making it easy to fulfill orders for example. We use position to order our options and the Is Default radio box to define which option is default. We can easily delete any option using the button to the right. Once we have all the options we want click Save to return to the attributes page.

Attribute Sets

Next we need to set up our Attribute Set in order to create our configurable product. We navigate to the Catalog tab on the navigation and select Attributes and then Manage Attribute Sets. Like the Attributes page we have a list of our Current Attribute Sets; Default should only be appearing. Click Add New Set.

Again like our Attribute we should use a convention to name our Attribute Set…so matching our Attribute; options_size_tshirts. Since we have no other Sets we are going to base the new one on Default.

To include our Attribute into our Set we simply need to click and drop it into the General group from the right hand list. Click save and our set is complete. Going well so far…

Creating A Configurable Product

Creating a configurable product is very similar to creating a Simple Product. To start we create a new product. But we need to change the Attribute Set to the one we just created and the product type to Configurable Product and click continue.

Next we need to pick the Attributes we would like to use in our product. Only attributes with a scope of Global, type of dropdown and the option to create a configurable product set to yes can be used.

The only tabs that change are the Inventory tab and an new tab has been added called Associated Products which is where we will add our options. Once we have filled in all our details we need to save and continue edit before we can begin to add our Associated Products. Unlike some other ecommerce systems Magento creates simple products that are hidden in order to create a configurable product.

To create the options we are going to use the “Quick simple product creation” tool to make our Simple Product options. For the name and SKU fields you can let Magento auto generate these but for added control I suggest that you fill these in yourself. In the example we are creating a green shirt option. We have filled in the Name, SKU, Weight and have set the product to Enabled. However we must set the visibility of our product to nowhere. From the drop-down we select the attribute option we are creating for and set the price. For the default option we don’t enter a value and it will use the price we set on our configurable product but for the other options we enter the difference between the configurable product and the option. So if the Green top is $15 and our configurable product is $20 then we have to enter -5.00 as our price. We then need to set the Qty for the option and the Stock Availability to In Stock and click Quick Create. We repeat this process until we have added all of our options and click save. Our configurable product is now complete. If we view our products page we can see that Magento has created the options as simple products for us that have been hidden. Making tracking stock much easier!

Congratulations

Well done, you have just downloaded and installed Magento to your localhost, you have created a simple product, a custom attribute and attribute set, a configurable product using your custom attribute and a category. I hope that you have learned some of the basics of Magento and I wish you all the best during your endeavors. If you have any questions please leave a comment below and i’ll try my best to help you out!

If you a real go getter and would like to get into some of the more advanced topics or would like to learn more than I suggest that you check out the Knowledge Base on the Magento website as well as Designers Guide if you’re interested in customizing Magento more.


Note: Want to add some source code? Type <pre><code> before it and </code></pre> after it. Find out more
  • zigh

    magento, no thanks, been there not going back

    Prestashop, yes fantastic, but needs Australian credit card modules like for eway or an Australian bank, some cahching would be good on prestashop, but looks to be the best. Apparently well programmed in Object Oriented PHP

    Also the new series of oscommerce (current status 3.0 Alpha 5) looks like it should be pretty good, some say the code could be better, but I would rather have that then magento

  • http://dsgn.pw-software.com Nokadota

    Oh this is just perfect. I’m looking at integrating Magento with Expression Engine and this screencast definitely helps [not with the integration, but using Magento].

    Thanks for the tut!

  • http://donnamiller.net Donna Miller | Wordpress Freelance Developer

    Thanks to all the commenters who have posted about the problems with Magento’s speed, customization problems and the API changing all the time. I downloaded Magento months ago and still haven’t gotten around to installing it. Now after reading these comments I’m glad I didn’t find the time. Thank you all for saving me what I’m sure would have been lots of wasted time and frustration.

    I’ve found a pretty good plugin that works with WordPress. I think I’ll try that first, or possibly Download Guard, which is reasonably priced and has some of the best support I’ve ever seen.

  • Ian

    About time someone posted an article on getting started with Magento.

    One thing that get’s most amatures however are the email templates. Are you able to add this in to your tutorial?

    Other than that, well done!

  • http://www.1stwebdesigner.com Dainis Graveris

    This is really good tutorial! Know when I know how to start out, I think I’ll learn this CMS too a little bit :)

  • http://www.sobegraphics.com alex

    what do you guys/slas think about x-cart as compared to magneto and others?

  • Darek

    Yes, Instalation is easy. Instalation of plugins extension too.
    Sometimes auto instalation extesion plugin is broken and all environment of magento is going to down.
    Why it is given only extension key to install any plugin?
    It is a pear instalation and pear chanel will be helpfull.

  • http://www.oldskull.net OLDSKULL

    Great tutorial!

  • lovelyhrt

    Hi

    a very good article,I am trying to install Magento and before that have installed XAMPP,
    I can open localhost/magento
    however when i download which is the first i get following error message..

    magento-core/Lib_Varien requires PHP extension “curl”
    magento-core/Mage_Core_Modules requires package “magento-core/Lib_Varien” (version >= 1.3.2.2, version = 1.3.2.2, version = 1.3.2.2, version = 1.3.2.2, version = 1.3.2.2, version = 1.3.2, version <= 1.3.3, excluded versions: 1.3.3)
    magento-core/Lib_PEAR requires PHP extension “curl”
    Install Errors
    No valid packages found
    PEAR ERROR: install failed

    Can you please help me with this

  • http://www.kennedysgarage.com Kennedy

    Nice tut! I have read a lot of complaints, but very little solutions. I know I am about to ask a very open question…What e-commerce do you think is the best?

  • http://spreecommerce.com Sean Schofield

    I’ve never installed Magento but even the hosted demo is slow as hell so I can only imagine that it gets worse from there. My main objection to Magento (and any PHP based solution for that matter) is that these systems are very cookie cutter and extremely difficult to customize (which almost all real clients require.)
    I also find their DB schema incomprehensible but that is the type of thing over which reasonable people can disagree.

    Spree (http://spreecommerce.com) is a nice alternative if you’re comfortable using Ruby. In fact Ruby is what makes it special IMHO. (Full disclosure, I am the creator of Spree.) No enterprise licenses or any of that nonsense. We also have a very vibrant community.

    Sorry to get off topic but since Spree was mentioned up thread, I thought I would chime in. Magento deserves credit for raising the standard as far as style, documentation and even some features go. Unfortunately they chose to use PHP which I think poses a lot of issues with performance and maintenance.

  • http://www.cits.co.nz CITS

    Magento is good for complex and customized ecommerce sites. It has a lot of features right out of the box. This comes at a cost, you need proper servers, and someone who can maintain and customize the php code for you.

    If you need something basic and don’t want to spend any time [money] on it, go for virtuemart, zen or similar.

    My money is on Magento!

  • Waasys

    When I add a new item and try to search somthing I get an error mesage

    Not Found

    The requested URL /magento/catalogsearch/result/ was not found on this server.

    WHY? help me somebody! please!

    • t

      I’m having same problem…
      not working any links on frontend.
      please someone help us!!

      • t

        found out solution!!
        searched everywhere to get this right.
        not sure but it seems working right.
        what i did was just enable rewrite_module below

        WAMP server menu/Apache/Apache_modules/rewrite_module

        it was hard for me to find out this.
        hope this will help somebody who have same problem.

  • http://www.crearedesign.co.uk Martyn Web

    Good tut for getting the thing installed but I would really like to see something more on how to build your own custom template rather than having several tutorials about installation.

    Documentation is quite hard to follow and to have a screencast showing how to build your own design would be great, the design doesn’t even have to be complex, it could be really simple. I just need something to help get me started….

    I’m sure many other people are in my situation.

  • http://www.troypeterson.com Troy

    Magento is by far the best eCommerce system out there from a retailer perspective. Meaning the reports, ease of use, etc, are wonderful and the best in the biz.

    However, from a developer / Designer perspective, it’s a f*cking nightmare. The installation is a bear – if it will work with your host at all – the templating system is horrible, and it’s very slow.

    But, like I said, it’s still the best our there for the client and if you charge hourly it can be very profitable for you.

  • Lee

    I agree with some of the comments here. Setting up magento is a no-brainer so I’d love to see a getting started with skinning Magento because that seems to be the real difficult part.

  • http://geigercomputers.com Glenn

    I agree with Martyn Web. If you follow Magento’s installation guide (or download their user guide for $20) they’re very clean on the installation process.

    I would be so happy to see a screencast about taking a template concept built in Photoshop and then installing that template’s layout, images and CSS in Magento. This is area where the documentation is lacking.

  • http://thomaswornall.com tom

    what do you all feel about opencart?

  • http://www.momerco.com Sander

    @Troy I think it’s primarily the learning curve that can be a little steep at first. Once you get the hang of it, you start to appreciate the flexibility the module system offers… no two projects are the same so the possibility to extend mostly anything with your own logic while keeping the rest intact is very nice…

  • Kishore

    Thanks for the video tutorial option, it taught me as well as a teacher.

    Thank You Ed Baxter, a good work from your side. Actually i am new to Magento, but i believe i go through all the things now :)

  • http://www.kennedysgarage.com Kennedy

    If you are tiring to install Magento on your localhost with wamp and you are receiving these errors:
    PHP Extension “mcrypt” must be loaded
    PHP Extension “curl” must be loaded

    I have found a solution.
    http://kennedysgarage.com/php-extension-mcrypt-must-be-loadedphp-extension-curl-must-be-loaded/

  • Jay

    I’ve not had time to give Magento an install yet, but with regards to ‘spec heavy’, what is it that is the bottleneck? CPU? RAM? IO? Or a combination of all 3 ? I’m only on a VPS, but it’s decently spec’d and I have 1.5gb of RAM to myself. Obviously, only an install will answer ‘will it work for me’ fully, but am intrigued to know what setups people have when they’re saying it’s ‘slow’.

    • Jason Judge

      A combination of all three. The database is far to heavily normalised, with tables split out all over the place into multiple tables where they don’t need to be. RAM gets eaten over time, especially if you stay in the admin screen too long. The code is very repetitive in many places, doing the same thing many times over in different contexts.

  • Likhon

    Thanks fot the nice tutorial.

  • http://www.chasetony.com Tony

    Nice Job! I was thinking about using Magento and I think you just sold me!

  • http://apcs.vn Hieu Vo

    haha, I’ve been recommanded to use Magento by a friend, but after reading comments of this article, I’ll try pressta first :”>

  • Allan

    Nice tutorial! Hey can someone suggest a free host that suports Magento only to me try?

  • Reinaldo Novoa Jr.

    Keep up the good work!

    You should do a tut on customizing the magento template / interface. I think this is needed for ppl new to magento like myself.

  • Bern

    There’s a few comments that Magento is too heavy for a small business. I completely disagree.

    How simple can a business get? Chances are, a business will grow and change and you need a system that will be able to accommodate. I think with a few optimsation techniques (more nettuts on that please), should be able to improve Magento’s performance.

    I’m a integration developer and so far I think Magento is well built for sound reliable customisations.

  • http://kodegeek.wordpress.com kodegeek

    I like magento. Magento should have a lite version. Hope you will write articles for developer about magento.

    Appreciate you to share this!

  • http://narno.com Narno

    “However as we are working on localhost we need to do this to address an cookie issue.”

    No, you can also create a custom virtual host for your local environment, for example http://www.magento.local.

    It’s easy and convenient for further configuration of Magento, especially about the URL rewriting.

    2 steps:

    1. add Windows host:
    C:\WINDOWS\system32\drivers\etc\hosts
    127.0.0.1 http://www.magento.local

    2. add Apache vhost:
    Get inspired examples in the file conf/vhost.conf

  • http://www.noregt.com henk

    Thanks for this very insightful videocast. It does give a good view on magento and on the basic setup of a webshop in general. What I would like to have seen is how the shop is connected to a payment provider, so how do you setup the checkout? In the end this is essential when you really start selling.

    In Europe every country has it’s own payment system, like here in Holland they have ‘Ideal’ (next to Credit Cards and paypal of course). No clue how such a system is integrated.

  • Mike

    A lot of people are complaining about the loading time on magento but I haven’t noticed any problem with this on our shared hosting. It loads at a decent speed and it’s well worth giving it a shot. Great tut and cant wait to see more!

  • http://blog.stephenemlund.com Stephen Emlund

    Anyone here using magento on godaddy shared hosting? Mine runs super-slow and I’ve read in Magento forums that there’s no way around it and simplehelix.com hosting is much better. Anyone know a solution to godaddy running slow for magento?

  • http://www.DavidRBrown.com David

    I am definetly interested in Magento, however a little surprise that this is the first time I have heard of Magento.

  • andre

    nice tut, thanks!

  • http://axionstudio.com diegop

    excellent. i can´t wait for more

  • Per S

    Would just like to add my five cents to this, and a little word of warning:

    *DO NOT* use Magento unless you’re an above average PHP/Java programmer
    *DO NOT* expect running a store in Magento flawlessly – you WILL experience a huge amount of confusing solutions and there are some bugs that can be very frustrating
    *DO NOT* expect ANY decent documentation. Even the 25USD user guide is totally outdatet, and did not help me at all.
    *DO NOT* expect the forum to help you out always – while you can sometimes find your answer there, it’s pretty dead nowadays. The developers do not post here anymore, and do not answer support questions from non-paying customers.
    *DO NOT* use Magento if you have a big product catalog, with attributes (colors/sizes etc) It’s an absolute NIGHTMARE to work with.
    *DO NOT* expect plugins to solve all your configuration issues

    Please bear with me, I’m not writing this to bash Magento – it really is an extremely powerfull ecommerce solution, but ease of use is certainly NOT one of the selling points. It’s very hard to customize, and and new update may put your store down for months, because it’s no longer compatible with how you built the store in the first place.

    If you do not have a lot of time, and programming experience, expect to pay large amounts to get the store working the way you want.

    All this being said,it’s NOT a bad solution if you know how to use it, and I expect that down the road, with some more updates and bug fixes, and a much more active community, we’ll be wondering why we ever considered anything else.

    • Jason Judge

      IMO it needs to fork. Building a proper community without the shackles of Varien is going to be the only way to get the bugs in this thing fixed.

  • marcin

    That’s true it’s really slow, even on localhost it takes a lot of time to add simple product. Obviosly it’s pretty good piece of e-commerce app but there is one thing that magento team should work on: performance.

  • Sven

    Please stop glorifying magento!
    It’s not that superb, only their marketing is.

    Every release comes with numerous bugs.
    It’s sloooooow
    Getting the right prices for configurable products are a pain in the ***

    For future ecommerce projects, I’ll try PrestaShop, a real open source platform

  • http://www.duvarikapla.com izzet

    perfect work..thanks..

  • Lesya

    Magento is really popular shopping cart lately. The numbers speak for themselves. If you also want to join constantly growing number of magento users you should try online service cart2cart. This service automates data migration from your shopping cart to Magento. (www.shopping-cart-migration.com)

  • http://www.2liquid.net jan

    heho @ all

    i´ve developed two magentoshops so far and must admit that there are
    definately problems getting this monster up and runinng smoothly.

    the backend is just perfekt for clients, pretty good speed, nice navigation
    and full of options to customize your shop’s behaviour.

    the thing is… skinning… skinning… skinning.
    the mix of phtml/xml/css ist just a bummer.
    took me ages the first time, the second time it ran rather smoothly,
    so if anyone needs help skinning just drop me a few lines and i`ll
    try to help :)

    the same with the community on magentocommerce official forums,
    if you post there dont expect to get some official statements from the dev’s :)

  • http://www.designdisclosure.com Alistair Stead

    Great tutorial for installing and setting up the Magento platform. I have compiled a list of sources for further information and tutorials. The first on the list is an explanation of how Magento works for WordPress and Drupal users.

    This is by no means extensive but the sites listed include lots of helpful Magento content and tutorials.

    http://www.designdisclosure.com/2009/07/how-to-magento-ecommerce-tutorials/

    Alistair

  • http://bintoy.blogspot.com bentoi

    hi I’m quite upset of the local installation of magento there always issues occurred. I’ll just try another open source e commerce but I need something which is light and easy to install in local for me to work around with it. What would it be? I need only php based application. thnx

  • yassir

    A question for all people who says it is slow . Have you tried it on a proper hardware ?

  • pals8o

    How do u transfer magento from a localhost to a live site? i need to know how to change the database name.

  • cookie moster

    Great Tutorial

  • JD

    I’ve definitely expired the steep learning curve and I come from a serious J2EE background. HOWEVER I can absolutely recommend Magento as it does have amazing power and flexibility.

    On decent hardware (e.g. virtual server on dreamhost), the performance is more than acceptable.

    The ability to host multiple sites and skins on top of a single codebase and database is killer, you will definitely appreciate this if your client grows and adds other languages or other brands…

  • http://carguideprice.com Mike

    It’s certainly not for the novice. I can’t even get a product to display on the home page….

    Install = easy
    Adding Products =Easy
    Speed seems fine to me on a $20 a month Media Temple hosting account. If you can’t afford $20 a month why are you running a store?

    Still… might just go back to using zen cart.

  • http://www.sainijasdeep.com Jasdeep

    how can we do that?
    Setup 3 stores using one category. Stores will be 1) Canada, 2) USA, and 3) UK.
    - Goal is to use same inventory for all 3 stores from the backend and have ability to adjust prices depending on the store itself.