2013-02-08 2 views
1

선 카트 SQL - 제품 선택 및 주문 가격은

이 내 대답은 아래를 참조 해결했다.

선 카트에 익숙

누구나가 알파 드롭 다운 분류기 일명 세계에서 가장 무의미한 제품 정렬 옵션을 완벽하게 제공 알게 될 것이다 배경.

기본적으로이 기능을 사용하면 처음에 문자/숫자로 제품을 선택할 수 있습니다. 글쎄, 상품의 시작 문자는 쇼핑 할 때 유용한 기준이 아니기 때문에 날짜, 가격 및 제품명을 정렬 할 더 유용한 제품 분류기를 만들려고 노력하고 있습니다. 그런 다음 속성 범주를 기준으로 필터링합니다.

문제

그래서 가격을 제외한 모든 작업되어 내 자신의 쿼리를 할 수있는 분류기를 강요하는 데 성공했다.

SELECT DISTINCT p.products_id, p.products_type, p.master_categories_id 
       ,p.manufacturers_id, p.products_price, p.products_tax_class_id 
       ,pd.products_description 
       ,IF(s.status = 1, s.specials_new_products_price, NULL) 
        AS specials_new_products_price 
       ,IF(s.status =1, s.specials_new_products_price, p.products_price) 
        AS final_price 
       ,p.products_sort_order 
       ,p.product_is_call 
       ,p.product_is_always_free_shipping 
       ,p.products_qty_box_status 

    FROM products p 
    LEFT JOIN specials s on p.products_id = s.products_id 
    LEFT JOIN products_description pd on p.products_id = pd.products_id 
    JOIN products_to_categories p2c on p.products_id = p2c.products_id 

    WHERE p.products_status = 1 
    and pd.language_id = '1' 
    and p2c.categories_id = '1' 

    GROUP BY p.products_id 
    ORDER BY final_price ASC 

당신은 내가 중 정상 가격 또는 별칭 인 최종 가격을 기준으로 정렬하는 데 노력하고 볼 수 있듯이 : 여기

는 드롭 다운 가격에 내 현재의 셋업에 의해 생성 된 SQL입니다 특별 가격 (설정되는 경우). 이것은 phpmyadmin을 통해 정상적으로 작동합니다. 불행하게도이 선하고 카트를 통해 작동하지 않습니다, 나는 PHP 오류 얻을 :

PHP Fatal error: 1054:Unknown column 'final_price' in 'order clause' :: SELECT p.products_id, p.products_price_sorter, p.master_categories_id, p.manufacturers_id FROM products p LEFT JOIN specials s on p.products_id = s.products_id LEFT JOIN products_description pd on p.products_id = pd.products_id JOIN products_to_categories p2c on p.products_id = p2c.products_id WHERE p.products_status = 1\r\n and pd.language_id = '1'\r\n and p2c.categories_id = '1' GROUP BY p.products_id ORDER BY final_price ASC in /var/www/includes/classes/db/mysql/query_factory.php on line 101

그래서 내가 라인 (101)에보고를하고 데이터베이스 추상화 클래스의 오류 처리 방법을 말한다. 아무도 아이디어가 잘못되어 있으며 어떻게 해결할 수 있을까요?

+0

젠 장바구니에 대해 잘 모릅니다. 별칭을 허용하지 않으면 'ORDER BY IF (s.status = 1, s.specials_new_products_price, p.products_price)'전체 열을 잘라내어 붙여 넣거나 숫자 열 참조 인 ORDER BY 9' ... – Glenn

+0

향후이 문제를보고있는 사람들은 http://www.zen-cart.com/downloads.php의 기여도를보고 싶을 것입니다.do = file & id = 1612에는 다양한 정렬 옵션이 있습니다. –

+0

@ScottWilson 나는 너를 싫어한다. 방금 플러그인을 작성하는 데 며칠을 보냈는데 (아마도 그 중 하나는 아닐 수도 있습니다) 여기 하드 스로우 후 솔루션을 사용하여 스와핑을 시작합니다. 나는 이것을 찾았고 찾을 수 없었다. 그러나 네가 이것을 읽는다면 네. 그것을 사용하십시오. – WebweaverD

답변

0

고맙습니다. 나는 이것을 해결할 수 있었다. 이유는 모르겠지만 별칭이 db 추상화 클래스를 통과하지 못했다는 오류 메시지가 나타났습니다. 그러나 어딘가에 p.products_price_sorter를 생산하고 있습니다. 그래서 내가 사용하여 가격을 제압 : 나는이 일을 멋지게 재생이 점점 며칠 동안 후

ORDER BY p.products_price_sorter 

희망이 누군가

UPDATE

하는 데 도움이 플러그인에 의해 제안되었다 Scott Wilson : http://www.zen-cart.com/downloads.php?do=file&id=1612 이렇게 읽는다면 체크 아웃 할 가치가 있습니다. 고급 검색 및 카테고리 페이지에서 제품을 맞춤 정렬 할 수 있습니다.

1

'final_price'는 실제로 데이터베이스의 필드가 아닙니다. 장바구니 개체의 각 광고 항목 항목의 일부입니다. 데이터베이스를 사용하여 기본 가격별로 정렬 할 수 있습니다 (속성별로 가격이 책정되지 않고 추가 가격 속성이없는 제품의 최종 가격이기도 함).

+0

그 특별한 가격은 고려하지 않을 것이다. (할인), 여기서 p.products_price_sorter는 그렇지 않다. 특별한 가격을 그 종류에 포함시키고 싶지 않다. 운 좋게 나는 단 하나의 가격 속성과 그것의 선택적 여분을 가진다. 내가 믹스에 던져진 속성을 가지고 있다면이 문제를 해결하고 싶지는 않을 것이다. – WebweaverD

+0

나는 판매, 스페셜 및 수량 할인 (Zen Cart 고유)과 같은 기본 제공 할인을 고려하고 있음을 확신합니다. –

+0

귀하의 사이트에서 귀하는 이러한 문제에 대해 상당한 경험이 있음을 알았습니다. 어쩌면 저의 이전 코멘트를 무시하십시오. 하지만 실제로는 다른 가격이 오류를 던지고 SQL 쿼리에서 선택한되는 참조하십시오 ... 나는 SQL 쿼리가 동적 필터 플러그인 (실제로는 분명히있을 수 있습니다) 혼란 문제에서 오는 것 같아요. 어느 쪽이든 지금은 정렬되었으므로 동적 필터를 사용하여 멋지게 연주해야합니다. – WebweaverD