Unknown column 'sales' in 'order clause'<br /><br /><pre>SELECT p.*, product_shop.*, stock.out_of_stock, IFNULL(stock.quantity, 0) AS quantity, IFNULL(product_attribute_shop.id_product_attribute, 0) AS id_product_attribute,
product_attribute_shop.minimal_quantity AS product_attribute_minimal_quantity, pl.`description`, pl.`description_short`, pl.`available_now`,
pl.`available_later`, pl.`link_rewrite`, pl.`meta_description`, pl.`meta_keywords`, pl.`meta_title`, pl.`name`, image_shop.`id_image` id_image,
il.`legend` as legend, m.`name` AS manufacturer_name, cl.`name` AS category_default,
DATEDIFF(product_shop.`date_add`, DATE_SUB("2024-03-29 00:00:00",
INTERVAL 0 DAY)) > 0 AS new, product_shop.price AS orderprice
FROM `ps_category_product` cp
LEFT JOIN `ps_product` p
ON p.`id_product` = cp.`id_product`
INNER JOIN ps_product_shop product_shop
ON (product_shop.id_product = p.id_product AND product_shop.id_shop = 1) LEFT JOIN `ps_product_attribute_shop` product_attribute_shop
ON (p.`id_product` = product_attribute_shop.`id_product` AND product_attribute_shop.`default_on` = 1 AND product_attribute_shop.id_shop=1)
LEFT JOIN ps_stock_available stock
ON (stock.id_product = `p`.id_product AND stock.id_product_attribute = 0 AND stock.id_shop = 1 AND stock.id_shop_group = 0 )
LEFT JOIN `ps_category_lang` cl
ON (product_shop.`id_category_default` = cl.`id_category`
AND cl.`id_lang` = 3 AND cl.id_shop = 1 )
LEFT JOIN `ps_product_lang` pl
ON (p.`id_product` = pl.`id_product`
AND pl.`id_lang` = 3 AND pl.id_shop = 1 )
LEFT JOIN `ps_image_shop` image_shop
ON (image_shop.`id_product` = p.`id_product` AND image_shop.cover=1 AND image_shop.id_shop=1)
LEFT JOIN `ps_image_lang` il
ON (image_shop.`id_image` = il.`id_image`
AND il.`id_lang` = 3)
LEFT JOIN `ps_manufacturer` m
ON m.`id_manufacturer` = p.`id_manufacturer`
WHERE product_shop.`id_shop` = 1
AND cp.`id_category` = 1007 AND product_shop.`active` = 1 AND product_shop.`visibility` IN ("both", "catalog") ORDER BY `sales` DESC
LIMIT 0,24</pre>
at line 765 in file classes/db/Db.php
760. if ($webservice_call && $errno) {
761. $dbg = debug_backtrace();
762. WebserviceRequest::getInstance()->setError(500, '[SQL Error] ' . $this->getMsgError() . '. From ' . (isset($dbg[3]['class']) ? $dbg[3]['class'] : '') . '->' . $dbg[3]['function'] . '() Query was : ' . $sql, 97);
763. } elseif (_PS_DEBUG_SQL_ && $errno && !defined('PS_INSTALLATION_IN_PROGRESS')) {
764. if ($sql) {
765. throw new PrestaShopDatabaseException($this->getMsgError() . '<br /><br /><pre>' . $sql . '</pre>');
766. }
767.
768. throw new PrestaShopDatabaseException($this->getMsgError());
769. }
770. }
380. $this->result = $this->_query($sql);
381. }
382. }
383.
384. if (_PS_DEBUG_SQL_) {
385. $this->displayError($sql);
386. }
387.
388. return $this->result;
389. }
390.
Argument [0] SELECT p.*, product_shop.*, stock.out_of_stock, IFNULL(stock.quantity, 0) AS quantity, IFNULL(product_attribute_shop.id_product_attribute, 0) AS id_product_attribute, product_attribute_shop.minimal_quantity AS product_attribute_minimal_quantity, pl.`description`, pl.`description_short`, pl.`available_now`, pl.`available_later`, pl.`link_rewrite`, pl.`meta_description`, pl.`meta_keywords`, pl.`meta_title`, pl.`name`, image_shop.`id_image` id_image, il.`legend` as legend, m.`name` AS manufacturer_name, cl.`name` AS category_default, DATEDIFF(product_shop.`date_add`, DATE_SUB("2024-03-29 00:00:00", INTERVAL 0 DAY)) > 0 AS new, product_shop.price AS orderprice FROM `ps_category_product` cp LEFT JOIN `ps_product` p ON p.`id_product` = cp.`id_product` INNER JOIN ps_product_shop product_shop ON (product_shop.id_product = p.id_product AND product_shop.id_shop = 1) LEFT JOIN `ps_product_attribute_shop` product_attribute_shop ON (p.`id_product` = product_attribute_shop.`id_product` AND product_attribute_shop.`default_on` = 1 AND product_attribute_shop.id_shop=1) LEFT JOIN ps_stock_available stock ON (stock.id_product = `p`.id_product AND stock.id_product_attribute = 0 AND stock.id_shop = 1 AND stock.id_shop_group = 0 ) LEFT JOIN `ps_category_lang` cl ON (product_shop.`id_category_default` = cl.`id_category` AND cl.`id_lang` = 3 AND cl.id_shop = 1 ) LEFT JOIN `ps_product_lang` pl ON (p.`id_product` = pl.`id_product` AND pl.`id_lang` = 3 AND pl.id_shop = 1 ) LEFT JOIN `ps_image_shop` image_shop ON (image_shop.`id_product` = p.`id_product` AND image_shop.cover=1 AND image_shop.id_shop=1) LEFT JOIN `ps_image_lang` il ON (image_shop.`id_image` = il.`id_image` AND il.`id_lang` = 3) LEFT JOIN `ps_manufacturer` m ON m.`id_manufacturer` = p.`id_manufacturer` WHERE product_shop.`id_shop` = 1 AND cp.`id_category` = 1007 AND product_shop.`active` = 1 AND product_shop.`visibility` IN ("both", "catalog") ORDER BY `sales` DESC LIMIT 0,24
604. // This method must be used only with queries which display results
605. if (!preg_match('#^\s*\(?\s*(select|show|explain|describe|desc)\s#i', $sql)) {
606. throw new PrestaShopDatabaseException('Db->executeS() must be used only with select, show, explain or describe queries');
607. }
608.
609. $this->result = $this->query($sql);
610.
611. if (!$this->result) {
612. $result = false;
613. } else {
614. if (!$array) {
Argument [0] SELECT p.*, product_shop.*, stock.out_of_stock, IFNULL(stock.quantity, 0) AS quantity, IFNULL(product_attribute_shop.id_product_attribute, 0) AS id_product_attribute, product_attribute_shop.minimal_quantity AS product_attribute_minimal_quantity, pl.`description`, pl.`description_short`, pl.`available_now`, pl.`available_later`, pl.`link_rewrite`, pl.`meta_description`, pl.`meta_keywords`, pl.`meta_title`, pl.`name`, image_shop.`id_image` id_image, il.`legend` as legend, m.`name` AS manufacturer_name, cl.`name` AS category_default, DATEDIFF(product_shop.`date_add`, DATE_SUB("2024-03-29 00:00:00", INTERVAL 0 DAY)) > 0 AS new, product_shop.price AS orderprice FROM `ps_category_product` cp LEFT JOIN `ps_product` p ON p.`id_product` = cp.`id_product` INNER JOIN ps_product_shop product_shop ON (product_shop.id_product = p.id_product AND product_shop.id_shop = 1) LEFT JOIN `ps_product_attribute_shop` product_attribute_shop ON (p.`id_product` = product_attribute_shop.`id_product` AND product_attribute_shop.`default_on` = 1 AND product_attribute_shop.id_shop=1) LEFT JOIN ps_stock_available stock ON (stock.id_product = `p`.id_product AND stock.id_product_attribute = 0 AND stock.id_shop = 1 AND stock.id_shop_group = 0 ) LEFT JOIN `ps_category_lang` cl ON (product_shop.`id_category_default` = cl.`id_category` AND cl.`id_lang` = 3 AND cl.id_shop = 1 ) LEFT JOIN `ps_product_lang` pl ON (p.`id_product` = pl.`id_product` AND pl.`id_lang` = 3 AND pl.id_shop = 1 ) LEFT JOIN `ps_image_shop` image_shop ON (image_shop.`id_product` = p.`id_product` AND image_shop.cover=1 AND image_shop.id_shop=1) LEFT JOIN `ps_image_lang` il ON (image_shop.`id_image` = il.`id_image` AND il.`id_lang` = 3) LEFT JOIN `ps_manufacturer` m ON m.`id_manufacturer` = p.`id_manufacturer` WHERE product_shop.`id_shop` = 1 AND cp.`id_category` = 1007 AND product_shop.`active` = 1 AND product_shop.`visibility` IN ("both", "catalog") ORDER BY `sales` DESC LIMIT 0,24
1052. } elseif ($orderBy !== 'orderprice') {
1053. $sql .= ' ORDER BY ' . (!empty($orderByPrefix) ? $orderByPrefix . '.' : '') . '`' . bqSQL($orderBy) . '` ' . pSQL($orderWay) . '
1054. LIMIT ' . (((int) $pageNumber - 1) * (int) $productPerPage) . ',' . (int) $productPerPage;
1055. }
1056.
1057. $result = Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS($sql, true, false);
1058.
1059. if (!$result) {
1060. return [];
1061. }
1062.
Argument [0] SELECT p.*, product_shop.*, stock.out_of_stock, IFNULL(stock.quantity, 0) AS quantity, IFNULL(product_attribute_shop.id_product_attribute, 0) AS id_product_attribute, product_attribute_shop.minimal_quantity AS product_attribute_minimal_quantity, pl.`description`, pl.`description_short`, pl.`available_now`, pl.`available_later`, pl.`link_rewrite`, pl.`meta_description`, pl.`meta_keywords`, pl.`meta_title`, pl.`name`, image_shop.`id_image` id_image, il.`legend` as legend, m.`name` AS manufacturer_name, cl.`name` AS category_default, DATEDIFF(product_shop.`date_add`, DATE_SUB("2024-03-29 00:00:00", INTERVAL 0 DAY)) > 0 AS new, product_shop.price AS orderprice FROM `ps_category_product` cp LEFT JOIN `ps_product` p ON p.`id_product` = cp.`id_product` INNER JOIN ps_product_shop product_shop ON (product_shop.id_product = p.id_product AND product_shop.id_shop = 1) LEFT JOIN `ps_product_attribute_shop` product_attribute_shop ON (p.`id_product` = product_attribute_shop.`id_product` AND product_attribute_shop.`default_on` = 1 AND product_attribute_shop.id_shop=1) LEFT JOIN ps_stock_available stock ON (stock.id_product = `p`.id_product AND stock.id_product_attribute = 0 AND stock.id_shop = 1 AND stock.id_shop_group = 0 ) LEFT JOIN `ps_category_lang` cl ON (product_shop.`id_category_default` = cl.`id_category` AND cl.`id_lang` = 3 AND cl.id_shop = 1 ) LEFT JOIN `ps_product_lang` pl ON (p.`id_product` = pl.`id_product` AND pl.`id_lang` = 3 AND pl.id_shop = 1 ) LEFT JOIN `ps_image_shop` image_shop ON (image_shop.`id_product` = p.`id_product` AND image_shop.cover=1 AND image_shop.id_shop=1) LEFT JOIN `ps_image_lang` il ON (image_shop.`id_image` = il.`id_image` AND il.`id_lang` = 3) LEFT JOIN `ps_manufacturer` m ON m.`id_manufacturer` = p.`id_manufacturer` WHERE product_shop.`id_shop` = 1 AND cp.`id_category` = 1007 AND product_shop.`active` = 1 AND product_shop.`visibility` IN ("both", "catalog") ORDER BY `sales` DESC LIMIT 0,24 Argument [1] 1 Argument [2]
83. $context->getIdLang(),
84. $query->getPage(),
85. $query->getResultsPerPage(),
86. $query->getSortOrder()->toLegacyOrderBy(),
87. $query->getSortOrder()->toLegacyOrderWay(),
88. $type !== 'products'
89. );
90. }
91. }
92.
93. /**
Argument [0] 3 Argument [1] 1 Argument [2] 24 Argument [3] sales Argument [4] DESC Argument [5]
100. */
101. public function runQuery(
102. ProductSearchContext $context,
103. ProductSearchQuery $query
104. ) {
105. $products = $this->getProductsOrCount($context, $query, 'products');
106. $count = $this->getProductsOrCount($context, $query, 'count');
107.
108. $result = new ProductSearchResult();
109.
110. if (!empty($products)) {
Argument [0] PrestaShop\PrestaShop\Core\Product\Search\ProductSearchContext Object ( [idShop:PrestaShop\PrestaShop\Core\Product\Search\ProductSearchContext:private] => 1 [idLang:PrestaShop\PrestaShop\Core\Product\Search\ProductSearchContext:private] => 3 [idCurrency:PrestaShop\PrestaShop\Core\Product\Search\ProductSearchContext:private] => 1 [idCustomer:PrestaShop\PrestaShop\Core\Product\Search\ProductSearchContext:private] => [idShopGroup:PrestaShop\PrestaShop\Core\Product\Search\ProductSearchContext:private] => [stockSharingBetweenShopGroupEnabled:PrestaShop\PrestaShop\Core\Product\Search\ProductSearchContext:private] => ) Argument [1] PrestaShop\PrestaShop\Core\Product\Search\ProductSearchQuery Object ( [queryType:PrestaShop\PrestaShop\Core\Product\Search\ProductSearchQuery:private] => [idCategory:PrestaShop\PrestaShop\Core\Product\Search\ProductSearchQuery:private] => 1007 [idManufacturer:PrestaShop\PrestaShop\Core\Product\Search\ProductSearchQuery:private] => [idSupplier:PrestaShop\PrestaShop\Core\Product\Search\ProductSearchQuery:private] => [searchString:PrestaShop\PrestaShop\Core\Product\Search\ProductSearchQuery:private] => [searchTag:PrestaShop\PrestaShop\Core\Product\Search\ProductSearchQuery:private] => [encodedFacets:PrestaShop\PrestaShop\Core\Product\Search\ProductSearchQuery:private] => [resultsPerPage:PrestaShop\PrestaShop\Core\Product\Search\ProductSearchQuery:private] => 24 [page:PrestaShop\PrestaShop\Core\Product\Search\ProductSearchQuery:private] => 1 [sortOrder:PrestaShop\PrestaShop\Core\Product\Search\ProductSearchQuery:private] => PrestaShop\PrestaShop\Core\Product\Search\SortOrder Object ( [entity:PrestaShop\PrestaShop\Core\Product\Search\SortOrder:private] => product [field:PrestaShop\PrestaShop\Core\Product\Search\SortOrder:private] => sales [direction:PrestaShop\PrestaShop\Core\Product\Search\SortOrder:private] => desc [label:PrestaShop\PrestaShop\Core\Product\Search\SortOrder:private] => ) ) Argument [2] products
306.
307. // We're ready to run the actual query!
308.
309. /** @var ProductSearchResult $result */
310. $result = $provider->runQuery(
311. $context,
312. $query
313. );
314.
315. Hook::exec('actionProductSearchProviderRunQueryAfter', [
316. 'query' => $query,
Argument [0] PrestaShop\PrestaShop\Core\Product\Search\ProductSearchContext Object ( [idShop:PrestaShop\PrestaShop\Core\Product\Search\ProductSearchContext:private] => 1 [idLang:PrestaShop\PrestaShop\Core\Product\Search\ProductSearchContext:private] => 3 [idCurrency:PrestaShop\PrestaShop\Core\Product\Search\ProductSearchContext:private] => 1 [idCustomer:PrestaShop\PrestaShop\Core\Product\Search\ProductSearchContext:private] => [idShopGroup:PrestaShop\PrestaShop\Core\Product\Search\ProductSearchContext:private] => [stockSharingBetweenShopGroupEnabled:PrestaShop\PrestaShop\Core\Product\Search\ProductSearchContext:private] => ) Argument [1] PrestaShop\PrestaShop\Core\Product\Search\ProductSearchQuery Object ( [queryType:PrestaShop\PrestaShop\Core\Product\Search\ProductSearchQuery:private] => [idCategory:PrestaShop\PrestaShop\Core\Product\Search\ProductSearchQuery:private] => 1007 [idManufacturer:PrestaShop\PrestaShop\Core\Product\Search\ProductSearchQuery:private] => [idSupplier:PrestaShop\PrestaShop\Core\Product\Search\ProductSearchQuery:private] => [searchString:PrestaShop\PrestaShop\Core\Product\Search\ProductSearchQuery:private] => [searchTag:PrestaShop\PrestaShop\Core\Product\Search\ProductSearchQuery:private] => [encodedFacets:PrestaShop\PrestaShop\Core\Product\Search\ProductSearchQuery:private] => [resultsPerPage:PrestaShop\PrestaShop\Core\Product\Search\ProductSearchQuery:private] => 24 [page:PrestaShop\PrestaShop\Core\Product\Search\ProductSearchQuery:private] => 1 [sortOrder:PrestaShop\PrestaShop\Core\Product\Search\ProductSearchQuery:private] => PrestaShop\PrestaShop\Core\Product\Search\SortOrder Object ( [entity:PrestaShop\PrestaShop\Core\Product\Search\SortOrder:private] => product [field:PrestaShop\PrestaShop\Core\Product\Search\SortOrder:private] => sales [direction:PrestaShop\PrestaShop\Core\Product\Search\SortOrder:private] => desc [label:PrestaShop\PrestaShop\Core\Product\Search\SortOrder:private] => ) )
584. header('Content-Type: application/json');
585. $this->ajaxRender(json_encode($this->getAjaxProductSearchVariables()));
586.
587. return;
588. } else {
589. $variables = $this->getProductSearchVariables();
590. $this->context->smarty->assign([
591. 'listing' => $variables,
592. ]);
593. $this->setTemplate($template, $params, $locale);
594. }
15. * version: 7.9.23
16. */
17. protected function doProductSearch($template, $params = array(), $locale = null)
18. {
19. if (!Tools::getIsset('page_cache_dynamics_mods')) {
20. return parent::doProductSearch($template, $params, $locale);
21. }
22. }
23. }
Argument [0] catalog/listing/category Argument [1] Array ( [entity] => category [id] => 1007 ) Argument [2]
143. ) {
144. $this->doProductSearch(
145. 'catalog/listing/category',
146. [
147. 'entity' => 'category',
148. 'id' => $this->category->id,
149. ]
150. );
151. }
152. }
153.
Argument [0] catalog/listing/category Argument [1] Array ( [entity] => category [id] => 1007 )
301. if (!$this->content_only && ($this->display_header || (isset($this->className) && $this->className))) {
302. $this->initHeader();
303. }
304.
305. if ($this->viewAccess()) {
306. $this->initContent();
307. } else {
308. $this->errors[] = $this->trans('Access denied.', [], 'Admin.Notifications.Error');
309. }
310.
311. if (!$this->content_only && ($this->display_footer || (isset($this->className) && $this->className))) {
520. if (isset($params_hook_action_dispatcher)) {
521. Hook::exec('actionDispatcher', $params_hook_action_dispatcher);
522. }
523.
524. // Running controller
525. $controller->run();
526.
527. // Execute hook dispatcher after
528. if (isset($params_hook_action_dispatcher)) {
529. Hook::exec('actionDispatcherAfter', $params_hook_action_dispatcher);
530. }
23. * @copyright Since 2007 PrestaShop SA and Contributors
24. * @license https://opensource.org/licenses/OSL-3.0 Open Software License (OSL 3.0)
25. */
26.
27. require dirname(__FILE__).'/config/config.inc.php';
28. Dispatcher::getInstance()->dispatch();