1

顧客が最小値と最大値を挿入するときに製品価格をフィルタリングしようとします。

製品.php

public function getProducts($data = array()) {
....

if (!empty($data['min'])) {
    $sql .= " AND p.price BETWEEN '" .$data['min']. "' AND 9999 ";
}

このコードを使用すると、カテゴリ ページに価格 x から 9999 までのすべての製品が一覧表示されます。

問題は、一部の製品が持っていtaxて、値が別のテーブルに格納されていることです( oc_tax_rate)。では、クエリで製品の最終価格を取得する方法は? (p.p.price + tax)、次のようなもの:

if (!empty($data['min'])) {
    $sql .= " AND final_price BETWEEN '" .$data['min']. "' AND 9999 ";
}

ページコントローラー/category.phpをチェックすると

$this->tax->calculate($result['price'], $result['tax_class_id'], $this->config->get('config_tax'))

上記のコードは最終価格を返します。

OC: v1.5.6

4

1 に答える 1