Landing pages defined by attribute for Magento - magento

i'm looking for solution how to have a landing page with products which are filter by some attribute (ie. Brand = Addidas). I was checking advanced search but it doesnt provide layered navigation, which is requested by client.
What I found is the free module http://fishpig.co.uk/attribute-splash-pages.html. It seems to be working, but for each combination of attribute X attribute value I need to configure something in database. It's not useful if you need to maintain thousands of combinations.
My another idea is to review catalog/layer model to remove filtering by category but it probably destroy something :)
Have you any idea or direction where would I go?
Thanks, Jaro.

have a look at http://yoast.com/landing-pages-module-magento/
i've used both and find fishpigs much better for manual creation of optimised pages, but for blasting out auto landing pages yoast is ideal.

Related

what type of products should be used to achieve the below mentioned functionality in magento?

I want to implement the functionality in magento, the link of this is below :
http://ledflashingwatch.com/clocker-watch-illuminati-series/
when you click on strips, it changes strips image but when click on dial, it changes separately. And also add to cart will differentiate the product on these two values.
Can anyone advise me on how to proceed towards approaching this idea. And which type of products to use for this.
You can ask me questions if it's still not clear to you. And do tell me if it is not possible.
This feature is not available in Magento out of the box.
There are several possible approaches, but the user interface component will have to be custom built by you.
If you want the selected products to appear separately in the cart (like in the example you linked) choose simple products.
You could also use a grouped product with a custom interface.
If you want them to be added to the cart as a single product, but internally they are separate, use a configurable product. This is the option I personally would prefer.
You could also use a bundled product - It all depends what exactly you need.
I suggest first getting a good idea of the differences between the product types. Then study how they are reflected in the quote as quote items, i.e. visibility, parent and child items etc.
Once you know that, the implementation will be rather straight forward.
Build the UI. Build the request parameters for the add to cart call. Done.

display a non configurable attribute of a configurable product on front end

so for each simple product under a configurable product there is an attribute (for clarity here i'm going to call it "special attribute"), which is basically a description for that combination of configuration options. I'm not working with cars but as an example of my problem imagine you choose a cadillac in magento then choose what stereo, what color, what wheel type you want. This combination has a "special attribute" (as do all combinations) of "horizon edition" or "travellers edition" or whatever else that type is. some combinations have many lines describing for "special attribute". This won't work as a configurable attribute, if I put the information into a normal attribute I can see it in the backend but it won't be visible from the front end. Has anyone got any tips on whether this is straight forward, can use a plugin. I'm thinking I'm probably going to have to do it with json and jquery but pretty tight on time right now.
thanks for reading
Welcome to SO!
An exact answer depends on your application. You may have noticed that the config option dropdown is built from JSON data which is rendered in catalog/product/view/type/options/configurable.phtml. The corresponding block class used to render this template is Mage_Catalog_Block_Product_View_Type_Configurable. You could bang your attribute into the JSON data by adding to the config attributes collection, but depending on your experience with Magento modeling and rewrites.
A possibly easier approach might be to grab the child products of the configurable and get the attribute info therefrom.
Organic Internet - Simple Configurable Products extension does it for you. There is an extension to install for free on Connect and all the code is up on GitHub.

Opencart, remove category string from the canonical URL of a product

In Magento there's a tick box - if you want or not to have the category in the product's link.
In Opencart there's no such think. What there is in Opencart - is a file which manages the SEO interpretation of links.
If you'll add "/" in front of the link within that file (the professionals who worked with it know about it) that will make the link absolute instead of relative and the product will appear at the beginning of the web site root.
My concern is that at some point this will break and I'm looking for a solution which can be applied on a commercial platform 20k+ products where failing can bring real damage.
The files I was talking about are these:
1.4.x: /catalog/model/tool/seo_url.php
1.5.x: /catalog/controller/common/seo_url.php
The change I already know you need to do is:
$url .= '/' . $query->row['keyword'];
replace with:
$url = '/' . $query->row['keyword'];
It breaks things such as breadcrumbs, again - my concern is that I don't know what other things it breaks therefore I'm looking for another solution.
SEO is mandatory, any SEO advice / plugin applied on Opencart will be more than welcomed. I'm constantly researching the market for related software, I'm willing to change the CMS (which will involve investing hours of development) if I can get better solutions.
Currently I'm dealing with Magento which is NOT flexible, each change drives us crezy - we're looking for something nu that buggy and difficult to work on.
What version of OpenCart are you working with? The latest?
The standard MVC structure of OpenCart combined with native PHP coding makes it a tremendously flexible CMS solution.. (I actually use the core for numerous types of sites).
OpenCart currently depends on the two files you mentioned combined with the SEO table in the database to handle rewrites.
It does not really 'break' the breadcrumbs. Breadcrums are more a history/navigation aid. With SEO urls if you enter a specific product URL you are navigating immediatly navigating to a specific item. So in the heirarchy it would only be one level below the home page..
e.g. yoursite.com/seoproduct
'home' -> 'seo product'
If you use the navigation heirarchy it still renders correctly (without the mod you mentioned)
'home' -> 'category -> 'sub-category' -> 'seo product'
That said, in theory it is easy to acomplish whatever you want with SEO urls. A simple modification to the two files is enough.
In practice, it just depends on how you want to handle them...
How are you going to handle specifying the SEO url for the product? Based on product name? Product model? Or are you going to use the native SEO field in the product info?
If it is the latter, the cart will automatically handle the rewrite. Unfortunately, letting the cart handle it natively also carries the greatest risk of links breaking over time as changes are made.
If it is one of the former options, you will need to make some modifications to how the SEO rewrite is handled.
Once you determine how you are going to be handling the rewrite you can put it in action...
The easiest modification would be to use the native SEO but then add in a redundant search fallback. If no results are found on the in the common/seo controller, have it search for results. If one is found display the product - if more than one is found display the results..
On the other hand, you could completly modify both files and go with a custom SEO handling. (again using a search to find the product)...
I have done it both ways... The first tends to have a bit better performance as it does database/text search only if the direct query returns no results...
There is a canonical tag in the head (at least in version 1.5.0) and in my testing this stayed the same regardless of whether or not the page was access through http://example.com/category1/product-123 or http://example.com/product-123.
<link href="http://example.com/product-123" rel="canonical" />
I would recommend looking at How can I create custom SEO-friendly URLs in OpenCart? for your other pages (information, cart, checkout, etc).
I've took the decision to:
Not set a string on the SEO field of each category
This will not add the category name before the product
This means that instead of /category/product I'll have /product
As CarpeNoctumDC said, I could change the PHP files so that the category could've been removed automatically but the disadvantages I can see are:
You need to update the core PHP files on each update
Can't certify of there are places where that turns against you, since it's not part of the theme but it's part of the core of opencart
The good news is that there's no need for the brand / manufacturer string before the product name (as many of us probably need) because we can use the manufacturer feature for that.
In this way the category / subcategory can be non relevant SEO text (which in my case is), the product link is legitimately set by opencart to /{link} which is totally SEO friendly and if I need a representation of the link with the manufacturer I only have to set a SEO link to the manufacturer itself. This will generate /{manufacturer}/{link_of_the_product} which on top it has within the header a canonical link pointing towards /{link_of_the_product} - in this way Google will not be disappointed.
As this very moment I'm doing the exports / imports form the old Magento 1.6 which turned to be a pain to the opencart customized as mentioned above.
We've passed Google Panda - there's no bad history on the domain, no duplicate content so far (~10k products) - we'll see how things turn after this major update.
If Google doesn't agrees with this config, I will post warnings on this topic.
Bogdan

how to add default variants to product in magento

I'm very new to Magento.I am having product with some variants like "size" with values "large XX,small XX,medium XX".I want the feature to make any one of this values as default in admin.
my screenshot explanation here
How can i do this
please help me!
When you say you want them to be defaults, you are being a little vague. Are you talking about using configurable products for this? Custom product options? When you say "default in admin", what do you mean? Which page are you referring to? More detail will help us answer the question.
Thanks,
Joe
As far as I know, what you are asking for is not a default functionality of Magento, but it shouldn't be difficult to add some javascript to allow you to force selections at page load time. Ultimately, it's just code, so it's definitely possible to do.
my suggestion would be to add a attribute to all you products called for instance "defaultselect" then you can enter your value easily from the backend to your configurable product.
so now you have a configurable product say a hat which comes in 3 sizes, and has 3 assigned simple products. set the defaultselect value to one of the size values
now some layout xml and javascript is required to get you product attribute to work with the magento selects.
first you want to actually include you js. this is done through the layout xml. you can include update using add js method for PRODUCT_TYPE_configurable handle
now the js. store the js in the skin js folder.
to make this work you would need to know the configurable product defaultselect attribute value we're testing against. this could be retrieved with your own ajax function to a method which checks if the current product has a defaultselect attribute and returns it's value or false.
if you have a value from your ajax function you can work with that ie you have both the returned attributes from the configurable product and magento will return the rest.
however after that it seems to get complicated your going to have to do something with the js magento aready uses to render product options

How to Retrieve Magento Core Variables in CMS Blocks or Pages?

Changing templates isn't an option in my situation and even so if I make a full HTML page with just two integrated "product blocks: (product name, product image, product price, buy me)", it seems easier to just call the two products you need and insert them directly.
So I'm curious to know if I can retrieve Magento {{variables}} such as product names, images, prices,... . I'm perfectly happy to use Magento Custom Variables to create functions to retrieve these, but I have no idea as to where to start. Any ideas would be appreciated.
As far as I know, it's not possible, nor is it sensible, to do this all from the CMS page.
You're best bet would be to create a widget. Widgets are reusable template tags that are very similar to the blocks used in the Magento layout system.
Once your widget is made, you can then call the widget in the CMS page with a product option, {{widget type="mywidgets/productname" product_id="1"}}, and modify the widget's output based on the product id entered.
The tutorial I've linked to is very good, and should be a great starting point.

Resources