News:

AbanteCart v1.4.2 is released.

Main Menu

Default sort order?

Started by MLCS, July 18, 2012, 02:04:35 PM

Previous topic - Next topic

MLCS

Hello. I have just stated using AbanteCart and I have no problems what so ever!
However...I am just wondering if it is possible to change the default "sort order" from the "Model ID" so it is automatically "A-Z"

Thanks for any help :)

Mayank

you can do by  changing database field
of product id and sort order
in special product file order file product file
category file and manufacturer file

MLCS


MLCS

Im still needing help with this

abantecart

Assuming you refer to storefront, Keep in mind that by default sorting is based on the sort order set in the product field

Sorting set based on the SQL select and order clause set in it. Look into file with model public_html/storefront/model/catalog/product.php

Hope this help.
Please  rate your experience or leave your review
We need your help to build better free open source ecommerce platform for everyone. See how you can help

MLCS

Not really. Theres a lot of PHP in there and I cant see where I have to change.

abantecart

There are different functions that are called to get listing of products. This depends on the section that does listing.

Example:

public function getProductsByCategoryId($category_id, $sort = 'p.sort_order', $order = 'ASC', $start = 0, $limit = 20) {

There is a section that sets the sorting (order)

                $sort_data = array(
                        'pd.name',
                        'p.sort_order',
                        'p.price',
                        'special',
                        'rating'
                );

                if (in_array($sort, $sort_data)) {
                        if ($sort == 'pd.name') {
                                $sql .= " ORDER BY LCASE(" . $sort . ")";
                        } else {
                                $sql .= " ORDER BY " . $sort;
                        }
                } else {
                        $sql .= " ORDER BY p.sort_order";
                }

                if ($order == 'DESC') {
                        $sql .= " DESC";
                } else {
                        $sql .= " ASC";
                }


You need to let us know where exactly you need to change the sorting order. What page?
Please  rate your experience or leave your review
We need your help to build better free open source ecommerce platform for everyone. See how you can help

MLCS

When they go into categories. I want to change it so that its A-Z

abantecart

You can change the sorting pram to be defaulted to A-Z

Look in file:
storefront/controller/pages/product/category.php

Locate this code:
Quote$sorts[] = array(
               'text'  => $this->language->get('text_default'),
               'value' => 'p.sort_order-ASC',
               'href'  => $this->html->getSEOURL('product/category', $url . '&path=' . $this->request->get['path'] . '&sort=p.sort_order&order=ASC', '&encode')
            );

Switch it with next line.
Please  rate your experience or leave your review
We need your help to build better free open source ecommerce platform for everyone. See how you can help

MLCS

#9
Thats made it so it says the sorting is A-Z but it actually isnt. Its still default sorted by Model ID. Ive even removed "Default" from that drop-down and it still sorts it that way....

http://mylittlecrystalshop.com/ab/index.php?rt=product/category&path=4_25

see?

Edit: Seems its being ordered by when its uploaded  ???

MLCS


abantecart

In the same spot, can you please change
'href'  => $this->html->getSEOURL('product/category', $url . '&path=' . $this->request->get['path'] . '&sort=p.sort_order&order=ASC', '&encode')
TO:
'href'  => $this->html->getSEOURL('product/category', $url . '&path=' . $this->request->get['path'] . '&sort=pd.name&order=ASC', '&encode')

Correct link should be this to force sort by name like below:
http://mylittlecrystalshop.com/shop/index.php?rt=product/category&path=4_25&sort=pd.name-ASC

This should fix default sorting, if not, let us know.
Please  rate your experience or leave your review
We need your help to build better free open source ecommerce platform for everyone. See how you can help

MLCS

#12
Found out it wasnt that.
Had to change
if (isset($this->request->get['sort'])) {
list($sort,$order) = explode("-",$this->request->get['sort']);
} else {
$sort = 'p.sort_order';
}


to
if (isset($this->request->get['sort'])) {
list($sort,$order) = explode("-",$this->request->get['sort']);
} else {
$sort = 'pd.name';
}

in the same file.

Just so it helps you in the future :)

Forum Rules Code of conduct
AbanteCart.com 2010 -