概要

スクリーンショット 2023-07-16 14.55.11.png

設定方法

スクリーンショット 2023-07-16 14.44.49.png

スクリーンショット 2023-07-16 14.47.08.png

Value欄に挿入するコード例)

過去の使用実績に関わらず使用されたコードを追加していく場合

{% liquid
  assign existing_codes = ''
  for metafields_item in order.customer.metafields
    if metafields_item.key == 'used_coupon_code'
      assign existing_codes = metafields_item.value | replace: '[', ''  | replace: ']', '' | split: ','
    endif
  endfor
  assign additional_codes = ''
  for discountCodes_item in order.discountCodes
    assign additional_codes = additional_codes | append: ',' | append: '"' | append: discountCodes_item | append: '"'
  endfor
  assign additional_codes = additional_codes | remove_first: ','
%}
[{% unless existing_codes == '' %}{{ existing_codes | join: "," }},{% endunless %}{{ additional_codes }}]

過去に使用したことがあるディスカウントコードは追加しない場合

{% liquid
  assign existing_codes = ''
  for metafields_item in order.customer.metafields
    if metafields_item.key == 'used_coupon_code'
      assign existing_codes = metafields_item.value | replace: '[', ''  | replace: ']', '' | split: ','
    endif
  endfor
  assign additional_codes = ''
  for discountCodes_item in order.discountCodes
    assign able_to_add = true
    for existing_code in existing_codes
      assign existing_code_without_double_quote = existing_code | replace: '"', ''
      if existing_code_without_double_quote == discountCodes_item
        assign able_to_add = false
      endif
    endfor
    if able_to_add
      assign additional_codes = additional_codes | append: ',' | append: '"' | append: discountCodes_item | append: '"'
    endif
  endfor
  unless additional_codes == ''
    assign additional_codes = additional_codes | remove_first: ','
  endunless
%}
[
{%- unless existing_codes == '' -%}{{ existing_codes | join: "," }}{%- endunless -%}
{%- unless existing_codes == '' or additional_codes == '' -%},{%- endunless -%}
{%- unless additional_codes == '' -%}{{ additional_codes }}{%- endunless -%}
]