AbanteCart Community
Shopping Cart Operations => Support => Topic started by: MLCS on July 18, 2012, 02:04:35 PM
-
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 :)
-
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
-
Which Database table?
-
Im still needing help with this
-
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.
-
Not really. Theres a lot of PHP in there and I cant see where I have to change.
-
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?
-
When they go into categories. I want to change it so that its A-Z
-
You can change the sorting pram to be defaulted to A-Z
Look in file:
storefront/controller/pages/product/category.php
Locate this code:
$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.
-
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 ???
-
someone please help!
-
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.
-
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 :)