Bạn đang tìm kiếm một cách mạnh mẽ để lọc và tìm kiếm dữ liệu trong Magento 2? Magento 2 Search Criteria API cung cấp một giải pháp linh hoạt cho phép bạn tùy chỉnh các truy vấn và trả về chính xác dữ liệu bạn cần. Bài viết này sẽ hướng dẫn bạn cách sử dụng API này một cách chi tiết, từ các khái niệm cơ bản đến các ví dụ thực tế, giúp bạn khai thác tối đa tiềm năng của nó.
Search Criteria API trong Magento 2 là một công cụ mạnh mẽ cho phép bạn xây dựng các truy vấn phức tạp để tìm kiếm và lọc dữ liệu. Thay vì phải viết các truy vấn SQL phức tạp, bạn có thể sử dụng API này để tạo ra các bộ lọc dựa trên nhiều tiêu chí khác nhau, như thuộc tính sản phẩm, thông tin khách hàng, hoặc đánh giá sản phẩm. Điều này giúp bạn đơn giản hóa quá trình phát triển và bảo trì, đồng thời tăng hiệu suất của ứng dụng.
Để sử dụng Search Criteria API một cách hiệu quả, bạn cần hiểu rõ các thành phần cơ bản của nó. API này dựa trên một cấu trúc bao gồm các filter groups (nhóm bộ lọc), filters (bộ lọc), và condition types (loại điều kiện). Mỗi thành phần này đóng một vai trò quan trọng trong việc xác định dữ liệu nào sẽ được trả về.
Filter groups là tập hợp các bộ lọc (filters) được kết hợp với nhau bằng toán tử "AND". Điều này có nghĩa là tất cả các bộ lọc trong một nhóm phải đúng để dữ liệu được trả về. Sử dụng filter groups cho phép bạn tạo ra các truy vấn phức tạp hơn bằng cách kết hợp nhiều điều kiện lọc khác nhau.
Filters là các điều kiện cụ thể mà bạn muốn áp dụng để lọc dữ liệu. Mỗi filter bao gồm một trường (field), một giá trị (value), và một loại điều kiện (condition type). Ví dụ, bạn có thể tạo một filter để tìm kiếm các sản phẩm có giá lớn hơn 100 đô la.
Condition types xác định cách so sánh giá trị của trường với giá trị bạn cung cấp trong filter. Magento 2 hỗ trợ nhiều loại điều kiện khác nhau, bao gồm:
eq
: Bằngneq
: Không bằnggt
: Lớn hơnlt
: Nhỏ hơngteq
: Lớn hơn hoặc bằnglteq
: Nhỏ hơn hoặc bằnglike
: Tương tự (sử dụng ký tự đại diện SQL)in
: Nằm trong danh sách các giá trịnin
: Không nằm trong danh sách các giá trịnull
: Nullnotnull
: Không nullĐể hiểu rõ hơn về cách sử dụng Search Criteria API, hãy xem xét một số ví dụ thực tế khi sử dụng REST API của Magento 2.
Giả sử bạn muốn lấy tất cả các đánh giá sản phẩm từ một ID cửa hàng cụ thể. Bạn có thể thực hiện điều này bằng cách sử dụng endpoint REST tùy chỉnh với các tham số tìm kiếm được truyền trong URL. Ví dụ:
http://hostname/magento/index.php/rest/V1/showreview/allreviews/1?productId=123&title=Awesome
Trong ví dụ này, productId
và title
là các tham số tìm kiếm mà bạn có thể sử dụng để lọc kết quả. Để truy cập các tham số này trong mã của bạn, bạn có thể sử dụng đối tượng request của Magento.
Sau khi bạn đã lấy được các tham số từ request, bạn có thể sử dụng chúng để áp dụng bộ lọc cho collection của mình. Ví dụ:
$allParameters = $this->request->getParams();
if (array_key_exists("productId", $allParameters)) {
$collection = $collection->addFieldToFilter('entity_pk_value', ['eq' => $allParameters['productId']]);
}
Đoạn mã này kiểm tra xem tham số productId
có tồn tại trong request hay không, và nếu có, nó sẽ áp dụng một bộ lọc để chỉ trả về các đánh giá sản phẩm có entity_pk_value
(ID sản phẩm) bằng với giá trị của tham số productId
.
Bạn có thể sử dụng Magento Customer Search Rest API V1/customers/search
để tìm kiếm khách hàng theo các trường cụ thể. Ví dụ:
GET /rest/V1/customers/search?searchCriteria[filterGroups][0][filters][0][field]=email&searchCriteria[filterGroups][0][filters][0][value]=rakesh@jesadiya.com&searchCriteria[filterGroups][0][filters][0][conditionType]=eq
Nhớ truyền admin token trong HEADER Authorization. Ví dụ: Authorization: Bearer <ADMIN_TOKEN>
Magento 2 Search Criteria API là một công cụ mạnh mẽ giúp bạn tùy chỉnh và tối ưu hóa các truy vấn tìm kiếm và lọc dữ liệu trong Magento 2. Bằng cách hiểu rõ các thành phần cơ bản và áp dụng các ví dụ thực tế, bạn có thể tận dụng tối đa tiềm năng của API này để xây dựng các ứng dụng Magento 2 hiệu quả và linh hoạt hơn. Đừng ngần ngại thử nghiệm và khám phá các khả năng khác của API để đáp ứng nhu cầu cụ thể của dự án của bạn.
Bài viết liên quan