Điều kiện trong Shopify Flow
Trong Shopify Flow, điều kiện sẽ xác định xem có thực hiện thao tác hay không sau khi yếu tố kích hoạt bắt đầu quy trình làm việc. Khi đặt điều kiện, bạn cần chọn giá trị lấy từ dữ liệu cửa hàng, toán tử logic và đặt giá trị cần kiểm tra theo cách thủ công.
Kiểu dữ liệu được sử dụng trong Flow
Giá trị đầu tiên trong mọi điều kiện Flow là dữ liệu từ cửa hàng của bạn và API quản trị GraphQL.
Flow hỗ trợ các kiểu dữ liệu sau:
- Float: Giá trị float là số có phần thập phân. Ví dụ: 4,25.
- Integer: Giá trị interger là số nguyên không có phần thập phân. Ví dụ: 42.
- Date: Giá trị date là số biểu thị ngày. Ví dụ: 01012021.
- String: Giá trị string là văn bản. Phép so sánh sử dụng giá trị chuỗi không phân biệt chữ hoa chữ thường.
- Boolean: Giá trị boolean là true hoặc false.
- Enum: Giá trị enum là tập hợp dữ liệu cho phép biến là một tập hợp các hằng số định sẵn.
Toán tử logic sử dụng trong Flow
Toán tử logic xác định cách áp dụng điều kiện. Điều kiện có thể kiểm tra các thuộc tính đơn giản như tổng giá trị đơn hàng có lớn hơn một số tiền nhất định không hay khách hàng có chấp nhận thông tin tiếp thị không. Ngoài ra, toán tử logic còn có thể kiểm tra các thuộc tính phức tạp hơn.
Flow có thể sử dụng các toán tử sau:
- Bằng
- Khác
- Lớn hơn và Lớn hơn hoặc bằng
- Nhỏ hơn và Nhỏ hơn hoặc bằng
- Bất kỳ
- Không phải bất kỳ
- Bao gồm
- Không bao gồm
- Bắt đầu bằng
- Không bắt đầu bằng
- Kết thúc bằng
- Không kết thúc bằng
Bằng
Toán tử Bằng so sánh các giá trị xem có giống nhau hay không. Trong ví dụ sau đây, giá trị order.currentTotalDiscountsSet.shopMoney.amount
được truy xuất từ dữ liệu cửa hàng và so sánh với giá trị thứ hai là 50.
Nếu giá trị đầu tiên bằng 50 thì điều kiện là true. Đơn hàng sẽ bị hủy.
Khác
Toán tử Khác so sánh các giá trị xem có giống nhau hay không. Trong ví dụ sau đây, giá trị order.currentTotalDiscountsSet.shopMoney.amount
được truy xuất từ dữ liệu cửa hàng và so sánh với giá trị thứ hai là 50.
Nếu giá trị đầu tiên bằng 93 thì điều kiện là true. Đơn hàng sẽ bị hủy.
Lớn hơn và Lớn hơn hoặc bằng
Các toán tử Lớn hơn và Lớn hơn hoặc bằng so sánh các giá trị xem giá trị đầu tiên lớn hơn hay lớn hơn hoặc bằng giá trị thứ hai. Trong ví dụ sau đây, giá trị order.currentTotalDiscountsSet.shopMoney.amount
được truy xuất từ dữ liệu cửa hàng và so sánh với giá trị thứ hai là 50.
Nếu giá trị từ cửa hàng là 137 thì điều kiện là true, vì 137 lớn hơn 50. Đơn hàng sẽ bị hủy.
Nhỏ hơn và Nhỏ hơn hoặc bằng
Toán tử Nhỏ hơn và Nhỏ hơn hoặc bằng so sánh các giá trị xem giá trị đầu tiên nhỏ hơn hay nhỏ hơn hoặc bằng giá trị thứ hai. Trong ví dụ sau đây, giá trị order.currentTotalDiscountsSet.shopMoney.amount
được truy xuất từ dữ liệu cửa hàng và so sánh với giá trị thứ hai là 50.
Nếu giá trị từ cửa hàng là 47 thì điều kiện là true, vì 47 nhỏ hơn hoặc bằng 50. Đơn hàng sẽ bị hủy.
Bất kỳ
Toán tử Bất kỳ so sánh các giá trị xem có dữ liệu đầu vào nào của giá trị đầu tiên chứa bất kỳ dữ liệu đầu vào nào của giá trị thứ hai không. Các giá trị cần kiểm tra phải được nhập riêng và theo sau là phím enter. Sử dụng toán tử Bất kỳ trên mảng trống sẽ dẫn đến kết quả đánh giá không chính xác. Trong ví dụ sau đây, giá trị order.lineitem.product.title
được truy xuất từ dữ liệu cửa hàng và so sánh với tập hợp giá trị thứ hai: pineapple, guava, kiwi.
Nếu giá trị từ cửa hàng là guava thì điều kiện là true, vì guava nằm trong mảng pineapple, guava, kiwi. Đơn hàng sẽ bị hủy.
Không phải bất kỳ
Toán tử Không phải bất kỳ so sánh các giá trị trong một mảng dữ liệu xem dữ liệu đầu vào của giá trị đầu tiên có chứa bất kỳ dữ liệu nào trong dữ liệu đầu vào của giá trị thứ hai hay không. Các giá trị cần kiểm tra phải được nhập riêng lẻ và theo sau là phím enter. Trong ví dụ sau đây, giá trị order.lineitem.product.title
được truy xuất từ dữ liệu cửa hàng và so sánh với tập hợp giá trị thứ hai: pineapple, guava, kiwi.
Nếu giá trị từ cửa hàng là raspberry thì điều kiện là true, vì raspberry không nằm trong mảng pineapple, guava, kiwi. Đơn hàng sẽ bị hủy.
Bao gồm
Toán tử Bao gồm so sánh các giá trị xem có dữ liệu đầu vào nào của giá trị đầu tiên bao gồm dữ liệu đầu vào của giá trị thứ hai không. Trong ví dụ sau đây, giá trị order.lineitem.product.title
được truy xuất từ dữ liệu cửa hàng và so sánh với giá trị thứ hai là scrape.
Nếu giá trị từ dữ liệu cửa hàng là skyscraper thì điều kiện là true, vì chuỗi scrape hoàn toàn nằm trong chuỗi skyscraper. Đơn hàng sẽ bị hủy.
Không bao gồm
Toán tử Không bao gồm so sánh các giá trị xem có dữ liệu đầu vào nào của giá trị đầu tiên không bao gồm dữ liệu trong dữ liệu đầu vào giá trị thứ hai hay không. Trong ví dụ sau đây, giá trị order.lineitem.product.title
được truy xuất từ dữ liệu cửa hàng và so sánh với giá trị thứ hai là scrape.
Nếu giá trị lấy từ dữ liệu cửa hàng là scrap-metal thì điều kiện là true, vì chuỗi scrape hoàn toàn không nằm trong chuỗi scrap-metal. Đơn hàng sẽ bị hủy.
Bắt đầu bằng
Toán tử Bắt đầu bằng so sánh các giá trị xem giá trị đầu tiên có bắt đầu bằng dữ liệu trong giá trị thứ hai không. Trong ví dụ sau đây, giá trị order.shippingAddress.country
được truy xuất từ dữ liệu cửa hàng và so sánh với giá trị thứ hai là United.
Nếu giá trị từ cửa hàng là United Kingdom thì điều kiện là true, vì chuỗi United bắt đầu chuỗi United Kingdom. Đơn hàng sẽ bị hủy.
Không bắt đầu bằng
Toán tử Không bắt đầu bằng so sánh các giá trị xem có phải giá trị đầu tiên không bắt đầu bằng dữ liệu trong giá trị thứ hai không. Trong ví dụ sau đây, giá trị order.shippingAddress.country
được truy xuất từ dữ liệu cửa hàng và so sánh với giá trị thứ hai là United.
Nếu giá trị từ cửa hàng là Canada thì điều kiện là true, vì chuỗi Canada không bắt đầu chuỗi United Kingdom. Đơn hàng sẽ bị hủy.
Kết thúc bằng
Toán tử Kết thúc bằng so sánh các giá trị xem giá trị đầu tiên có kết thúc bằng dữ liệu trong giá trị thứ hai không. Trong ví dụ sau đây, giá trị order.lineitems.product.title
được truy xuất từ dữ liệu cửa hàng và so sánh với giá trị thứ hai là last-available.
Nếu giá trị từ cửa hàng là athletic socks last-available thì điều kiện là true, vì chuỗi athletic socks last-available kết thúc bằng chuỗi last-available. Đơn hàng sẽ bị hủy.
Không kết thúc bằng
Toán tử Không kết thúc bằng so sánh các giá trị xem có phải giá trị đầu tiên không kết thúc bằng dữ liệu trong giá trị thứ hai hay không. Trong ví dụ sau đây, giá trị order.lineitems.product.title
được truy xuất từ dữ liệu cửa hàng và so sánh với giá trị thứ hai là last-available.
Nếu giá trị từ cửa hàng là athletic socks new thì điều kiện là true, vì chuỗi athletic socks new không kết thúc bằng chuỗi last-available. Đơn hàng sẽ bị hủy.
Điều kiện đặt hàng
Bạn có thể tạo quy trình làm việc có nhiều điều kiện, trong đó mỗi điều kiện có thể dẫn đến các thao tác khác nhau. Thứ tự điều kiện có vai trò quan trọng. Hoạt động kiểm tra điều kiện bắt đầu vào đầu quy trình làm việc và tiến hành qua từng điều kiện theo cách có hệ thống. Hoạt động kiểm tra này sẽ dừng lại khi một điều kiện được đáp ứng.
Đáp ứng nhiều điều kiện
Khi đặt điều kiện, bạn có thể đặt nhiều tiêu chí và xác định xem Flow có coi điều kiện là true nếu đáp ứng tất cả điều kiện hay đáp ứng một điều kiện bất kỳ trong những điều kiện này không.
Nếu đáp ứng tất cả điều kiện
Thao tác chọn Nếu đáp ứng tất cả điều kiện chỉ trả về phản hồi true nếu mọi tiêu chí bạn đặt là true.
Ví dụ: Bạn tạo một quy trình làm việc để gắn thẻ khách hàng ở Canada và chi tiêu trên 500 USD cho một đơn hàng.
Quy trình làm việc này chỉ gắn thẻ khách hàng khi khách hàng ở Canada và chi tiêu trên 500 USD cho đơn hàng. Nếu một trong hai điều kiện này là false, khách hàng sẽ không được gắn thẻ.
Nếu đáp ứng điều kiện bất kỳ
Thao tác chọn Nếu đáp ứng bất kỳ điều kiện nào sẽ trả về phản hồi true nếu bất kỳ tiêu chí nào bạn đặt ra là true.
Ví dụ: Bạn tạo một quy trình làm việc để gắn thẻ các đơn hàng được cho là có mức độ rủi ro cao hoặc trung bình.
Quy trình làm việc này sẽ gắn thẻ đơn hàng nếu có mức độ rủi ro cao hoặc trung bình. Chỉ cần một trong hai điều kiện đó là true, đơn hàng sẽ được gắn thẻ.
Kết hợp điều kiện và thao tác
Bạn có thể kết hợp các điều kiện với nhau để tạo ra một điều kiện lớn. Khi kết hợp, tất cả các điều kiện phải được đáp ứng để đảm bảo điều kiện tổng thể là true. Nếu có bất kỳ điều kiện nào không được đáp ứng, điều kiện tổng thể sẽ là false. Trong ví dụ sau đây, khách hàng phải chấp nhận tài liệu tiếp thị và tổng giá trị của đơn hàng phải đáp ứng một ngưỡng nhất định.
Tương tự, bạn có thể kết hợp các thao tác với nhau để chạy nhiều thao tác. Ví dụ trên đây sử dụng nhiều điều kiện để kiểm tra xem khách hàng có đủ điều kiện tham gia chương trình khách hàng thân thiết không dựa trên tổng số tiền khách hàng đã chi tiêu trong cửa hàng. Trong hình trên, các điều kiện sau đây được kiểm tra theo thứ tự xuất hiện.
- Gắn cho khách hàng thẻ Vàng nếu tổng giá trị lớn hơn 1.000 USD và khách hàng đồng ý nhận thông tin tiếp thị.
- Gắn cho khách hàng thẻ Bạc nếu tổng giá trị nhỏ hơn 1.000 USD nhưng lớn hơn 500 USD và khách hàng đồng ý nhận thông tin tiếp thị.
- Gắn cho khách hàng thẻ Đồng nếu khách hàng đã chi tiêu hơn 200 USD và đồng ý nhận thông tin tiếp thị.
Dữ liệu tĩnh và động trong điều kiện
Thông thường, giá trị thứ hai trong điều kiện là giá trị tĩnh được nhập thủ công. Giá trị này sẽ giữ nguyên mỗi khi quy trình làm việc chạy.
Bạn cũng có thể sử dụng giá trị động nếu trường của giá trị thứ hai hiển thị biểu tượng </>
. Giá trị động được lấy từ dữ liệu cửa hàng mỗi khi quy trình làm việc chạy. Nếu muốn sử dụng giá trị động, hãy nhấp vào biểu tượng </>
và chọn giá trị bạn muốn kiểm tra. Không phải trường nào cũng có thể sử dụng giá trị động.
Ví dụ: Bạn tạo một quy trình làm việc gắn thẻ đơn hàng nếu quốc gia trong địa chỉ thanh toán của đơn hàng khớp với quốc gia trong địa chỉ giao hàng.
Trong ví dụ này, cả giá trị thứ nhất và thứ hai đều lấy từ dữ liệu cửa hàng thay vì chỉ định thủ công một chuỗi tĩnh để kiểm tra giá trị thứ hai. Nếu quốc gia trong địa chỉ thanh toán mà khách hàng cung cấp giống với quốc gia khách hàng cung cấp trong địa chỉ giao hàng thì điều kiện là true và đơn hàng sẽ được gắn thẻ.