ตัวแปรใน Shopify Flow
ตัวแปรคือตัวยึดตำแหน่งที่จะถูกแทนที่ด้วยค่าต่างๆ เมื่อขั้นตอนการทำงานดำเนินการ ตัวแปรเหล่านี้บรรยายคุณลักษณะของลูกค้า คำสั่งซื้อ และสินค้าที่เกี่ยวข้องกับขั้นตอนการทำงานของคุณ ยกตัวอย่างเช่น มีตัวแปรสำหรับเลขคำสั่งซื้อ มูลค่าคำสั่งซื้อ ชื่อลูกค้า เป็นต้น
Flow ใช้ Liquid ในเวอร์ชันที่แตกต่างจากธีม Shopify และสามารถเข้าถึงตัวแปรใดๆ ที่พร้อมให้ใช้งานผ่าน GraphQL Admin API ได้
ชื่อของตัวแปรส่วนใหญ่เป็นชื่อที่อธิบายลักษณะของตัวแปรนั้นๆ ยกตัวอย่างเช่น ตัวแปรที่แสดงชื่อของสินค้าคือ {{ product.title }}
เมื่อข้อความได้ถูกส่งไปแล้ว ตัวแปรนี้จะถูกแทนที่ด้วยชื่อของสินค้าที่ได้รับการสั่งซื้อ: Large Coffee Mug
การเพิ่มตัวแปรไปยังการดำเนินการ
คุณสามารถเพิ่มตัวแปรไปยังช่องข้อความที่มีลิงก์เพิ่มตัวแปรได้ คลิกลิงก์เพิ่มตัวแปรใต้ช่องที่เกี่ยวข้อง จากนั้นเลือกตัวแปรจากรายการ
ตัวแปรในรายการ เพิ่มตัวแปร นั้นจะได้รับการกรอง คุณจึงจะเห็นเพียงแค่ตัวแปรที่ใช้ได้กับทริกเกอร์ที่คุณเลือกเท่านั้น หลังจากคุณเลือกตัวแปรจากรายการแล้ว ตัวแปรจะได้รับการจัดรูปแบบให้เหมาะสมและเพิ่มไปยังกล่องข้อความสำหรับคุณ
Flow รองรับช่อง GraphQL Admin API เกือบทั้งหมด
ตัวแปร Liquid
หากคุณเป็นพัฒนาที่มีประสบการณ์ในการเขียนโค้ด Liquid คุณจะสามารถใช้ Liquid ในการเขียนตัวแปรหรือแก้ไขตัวแปรที่คุณแทรกโดยใช้ลิงก์เพิ่มตัวแปรได้ หากต้องการดูข้อมูลเพิ่มเติม ให้ดูที่การอ้างอิง GraphQL Admin API
แท็กเงื่อนไขและการทำซ้ำ
คุณสามารถเพิ่มแท็กตัวแปร Liquid ไปยังข้อความขั้นตอนการทำงานของคุณได้ด้วยตนเอง โดยใช้แท็กเหล่านี้เพื่อใส่ข้อมูลเพิ่มเติมในข้อความได้
ตัวอย่างเช่น คุณสามารถใช้วัตถุ for loop
เพื่อทำซ้ำผ่านรายการวัตถุต่างๆ เช่นสินค้าเฉพาะรายการสำหรับคำสั่งซื้อได้ คุณสามารถใช้แท็กเหล่านี้เพื่อสร้างข้อความที่มีรายละเอียดอย่างชื่อสินค้า, SKU, ราคา และจำนวนสำหรับสินค้าเฉพาะรายการแต่ละชิ้นในคำสั่งซื้อ และช่วยให้ผู้รับไม่ต้องค้นหาข้อมูลนี้ในส่วน Shopify admin ของคุณอีก
Flow รองรับแท็กเงื่อนไข Liquid (หรือแท็กควบคุมขั้นตอนการทำงาน) ต่อไปนี้:
- if
- unless
- elsif/else
- case/when
- และ/หรือ (หลายเงื่อนไข)
นอกจากนี้ Flow ยังรองรับแท็กการทำซ้ำของ Liquid ต่อไปนี้อีกด้วย:
ตัวกรอง
Flow รองรับตัวกรอง Liquid ต่อไปนี้:
ชื่อตัวกรอง | ประเภทตัวกรอง |
---|---|
abs | คณิตศาสตร์ |
append | สตริง |
at_least | คณิตศาสตร์ |
at_most | คณิตศาสตร์ |
capitalize | สตริง |
ceil | คณิตศาสตร์ |
concat | Array |
วันที่ | เพิ่มเติม |
ค่าเริ่มต้น | เพิ่มเติม |
divided_by | คณิตศาสตร์ |
downcase | สตริง |
escape | สตริง |
ก่อน | Array |
floor | คณิตศาสตร์ |
join | Array |
last | Array |
lstrip | สตริง |
map | Array |
minus | คณิตศาสตร์ |
modulo | คณิตศาสตร์ |
newline_to_br | สตริง |
บวก | คณิตศาสตร์ |
prepend | สตริง |
ลบ | สตริง |
remove_first | สตริง |
แทนที่ | สตริง |
replace_first | สตริง | reverse | Array |
round | คณิตศาสตร์ |
rstrip | สตริง |
ขนาด | Array |
slice | สตริง |
จัดเรียง | Array |
split | สตริง |
strip | สตริง |
strip_html | สตริง |
strip_newlines | สตริง |
ครั้ง | คณิตศาสตร์ |
truncate | สตริง |
truncatewords | สตริง |
uniq | Array |
upcase | สตริง |
url_encode | สตริง |
ที่ไหน | Array |
ตัวอย่างตัวแปร
ตัวอย่างเช่น คุณต้องการสร้างขั้นตอนการทำงานที่จะส่งอีเมลไปยังพนักงานเมื่อลูกค้าใช้จ่ายมากกว่า $500 ในคำสั่งซื้อเดียว คุณต้องสร้างขั้นตอนการทำงานที่ใช้ทริกเกอร์สร้างคำสั่งซื้อแล้วขึ้น ตั้งเงื่อนไขที่จะเป็นจริงหากยอดรวมของคำสั่งซื้อเกินกว่า $500 และใช้การดำเนินการส่งอีเมลภายใน ในส่วนข้อความของการดำเนินการส่งอีเมลภายในนั้น คุณต้องใช้ตัวแปรต่อไปนี้
อินพุต | เอาท์พุต |
---|---|
โปรดส่งบันทึกขอบคุณส่วนบุคคลไปยัง {{ order.customer.firstName }} {{ order.customer.lastName }}({{ order.customer.email }}) สำหรับการสั่งซื้อราคา $ {{ order.totalPriceSet.shopMoney.amount }} | โปรดส่งบันทึกขอบคุณส่วนตัวไปยัง Jeanne Dupont (jeanne@example.com) ในการสั่งซื้อสินค้าราคา $763.42 |
คุณตัดสินใจว่าคุณต้องแจ้งให้พนักงานทราบเมื่อสินค้าคงคลังเหลือน้อยและต้องมีการสั่งซื้อเข้าสต็อกเพิ่ม คุณต้องสร้างขั้นตอนการทำงานที่เริ่มต้นด้วยทริกเกอร์เปลี่ยนปริมาณสินค้าคงคลังแล้ว และตั้งเงื่อนไขที่จะเป็นจริงหากปริมาณสินค้าคงคลังก่อนหน้าน้อยกว่าหรือเท่ากับ 10 ในส่วนข้อความของการดำเนินการส่งอีเมลภายในนั้น คุณต้องใช้ตัวแปรต่อไปนี้
อินพุต | เอาท์พุต |
---|---|
โปรดสั่งซื้อ{{ product.title }}อีกครั้ง ส่งอีเมลไปยัง owner@store.com เพื่อตรวจสอบยืนยันว่าพวกเขาได้รับคำสั่งซื้อแล้ว | โปรดสั่งซื้อกางเกงเลกกิ้งเอวสูง - สีดำซ้ำอีกครั้ง ส่งอีเมลไปยัง owner@example.com เพื่อตรวจสอบยืนยันว่าพวกเขาได้รับคำสั่งซื้อแล้ว |
คุณต้องการยกเลิกคำสั่งซื้อที่มีระดับความเสี่ยงสูง แต่ต้องการให้พนักงานของคุณยกเลิกคำสั่งซื้อด้วยตนเอง คุณต้องสร้างขั้นตอนการทำงานที่เริ่มต้นด้วยทริกเกอร์สร้างคำสั่งซื้อแล้ว และตั้งเงื่อนไขที่จะเป็นจริงหากคำสั่งซื้อมีระดับความเสี่ยงเท่ากับสูง ในส่วนข้อความของการดำเนินการส่งอีเมลภายในนั้น คุณต้องใช้ตัวแปรต่อไปนี้
อินพุต | เอาท์พุต |
---|---|
ร้านค้า Shopify ของเราได้รับคำสั่งซื้อที่มีความเสี่ยงที่จะเป็นการทุจริตสูง เราต้องการยกเลิกสินค้าตามคำสั่งซื้อนี้ทันที ก่อนที่จะมีการส่งไปยังส่วนการผลิต: {{ order.name }} {{ order.billingAddress.lastName }}, {{ order.billingAddress.firstName }} {{ order.email }} โปรดยืนยันสถานะคำสั่งซื้อใหม่ ขอขอบคุณ |
ร้านค้า Shopify ของเราได้รับคำสั่งซื้อที่มีความเสี่ยงที่จะเป็นการทุจริตสูง เราต้องการยกเลิกสินค้าตามคำสั่งซื้อนี้ทันที ก่อนที่จะมีการส่งไปยังส่วนการผลิต: #1001 Dupont, Jeanne jeanne@example.com โปรดยืนยันสถานะคำสั่งซื้อใหม่ ขอขอบคุณ |
ตัวอย่าง For Loop
เมื่อได้รับคำสั่งซื้อมาแล้ว การส่งข้อความระบุสินค้าที่ลูกค้าสั่งซื้อก็อาจเป็นประโยชน์ได้ คุณสามารถทำเช่นนี้ได้โดยใช้ for loop
ซึ่งจะเป็นการสั่งให้ระบบดำเนินการตามบล็อกโค้ดซ้ำๆ นอกจากนี้ ช่องข้อความที่รองรับตัวแปรจะยังรองรับ for loop และอ็อบเจกต์ forloop ด้วย
ตัวอย่างเช่น คุณต้องการสร้างขั้นตอนการทำงานที่จะส่งคืนรายการของ SKU และปริมาณทั้งหมดในคำสั่งซื้อหนึ่ง ในส่วนข้อความของการดำเนินการส่งอีเมลภายในนั้น คุณต้องใช้ตัวแปรต่อไปนี้
อินพุต | เอาท์พุต |
---|---|
ข้อมูลสรุปการสั่งซื้อ: {% for a in order.lineItems %} SKU: {{a.sku}} ( {{a.quantity}} ), {% endfor %} |
ข้อมูลสรุปคำสั่งซื้อ: 8987097979 (50) 8877778887 (3) 888998898B (1) |
คุณตัดสินใจเพิ่มข้อมูลเพิ่มเติมไปยังอีเมล ได้แก่ ชื่อสินค้า, SKU, ราคาต่อรายการ และข้อมูลการจัดส่งของลูกค้า ในส่วนข้อความของการดำเนินการส่งอีเมลภายในนั้น คุณต้องใช้ตัวแปรต่อไปนี้
อินพุต | เอาท์พุต |
---|---|
ข้อมูลสรุปการสั่งซื้อ: {% for a in order.lineItems %} สินค้า: {{a.title}} SKU: {{a.sku}} ราคา (ต่อหน่วย): $ {{a.originalUnitPriceSet.shopMoney.amount}} ปริมาณ: {{a.quantity}} {% endfor %} |
ข้อมูลสรุปการสั่งซื้อ: สินค้า: กางเกงเลกกิ้ง - สีดำ SKU: 8987097979 ราคา (ต่อหน่วย): $8.49 ปริมาณ: 5 สินค้า: ถุงเท้ากีฬา - สีฟ้า SKU: 888998898B ราคา (ต่อหน่วย): $5.61 ปริมาณ: 2 |
คุณต้องติดตามรายการสินค้าที่ขายได้ซึ่งผู้ขายรายใดรายหนึ่งจัดเตรียมให้ ในส่วนข้อความของการดำเนินการส่งอีเมลภายใน คุณต้องใช้ตัวแปรดังต่อไปนี้และใส่ข้อความ if
ใน for loop
ของคุณ
อินพุต | เอาท์พุต |
---|---|
สินค้าที่ขายได้ของ Acme: {% for x in order.lineItems %} {% if x.vendor == 'acme-vendor' %} ชื่อสินค้า: {{x.title}} SKU: {{x.sku}} {% endif %} {% endfor %} |
สินค้าที่ขายได้ของ Acme: ชื่อสินค้า: กางเกงเลกกิ้ง - สีดำ SKU: 8987097979 |
อ็อบเจกต์ข้อมูลที่ซับซ้อนใน Shopify Flow
Shopify Flow ไม่รองรับการส่งออกข้อมูลอาร์เรย์และอ็อบเจกต์ด้วยเหตุผลดังต่อไปนี้:
- เลิกใช้งานการแสดงข้อมูลที่ไม่จำเป็นบน GraphQL API เพราะการแสดงข้อมูลนี้อาจสร้างคำสั่งการค้นหาขนาดใหญ่ที่ทําให้ขั้นตอนการทำงานของคุณล้มเหลว
- เมื่อมีฟีเจอร์ใหม่เข้ามา ช่อง API ใหม่จะถูกเพิ่มเข้ามาด้วย ซึ่งอาจทำให้ขั้นตอนการทำงานของคุณมีปัญหา
หากระบบส่งข้อมูลโดยอัตโนมัติมากเกินไป ขั้นตอนการทำงานจะล้มเหลว แทนที่จะเรียกใช้งานอาร์เรย์และอ็อบเจกต์โดยตรง ให้ลูปเลี่ยงอาร์เรย์และใส่เฉพาะช่องที่คุณต้องการ
ตัวอย่างเช่น แทนที่จะโทร{{ order.lineItems }}
โดยตรง ให้ใช้รูปแบบต่อไปนี้เพื่อเรียกช่องข้อมูลเฉพาะ ตัวอย่างเหล่านี้รวมช่องทั้งหมดที่จะรวมอยู่ด้วยจากการเรียกอาร์เรย์หรืออ็อบเจกต์โดยตรง คัดลอกและวางช่องที่คุณต้องการ
{% for li in order.lineItems %}
{% comment %}li.contract - omitted{% endcomment %}
{% for ca in li.customAttributes %}
{{ ca.key }}
{{ ca.value }}
{% endfor %}
{% for da in li.discountAllocations %}
{{ da.allocatedAmountSet.presentmentMoney.amount }}
{{ da.allocatedAmountSet.presentmentMoney.currencyCode }}
{{ da.allocatedAmountSet.shopMoney.amount }}
{{ da.allocatedAmountSet.shopMoney.currencyCode }}
{% endfor %}
{{ li.discountedTotalSet.presentmentMoney.amount }}
{{ li.discountedTotalSet.presentmentMoney.currencyCode }}
{{ li.discountedTotalSet.shopMoney.amount }}
{{ li.discountedTotalSet.shopMoney.currencyCode }}
{{ li.discountedUnitPriceSet.presentmentMoney.amount }}
{{ li.discountedUnitPriceSet.presentmentMoney.currencyCode }}
{{ li.discountedUnitPriceSet.shopMoney.amount }}
{{ li.discountedUnitPriceSet.shopMoney.currencyCode }}
{% comment %}li.duties - omitted {% endcomment %}
{{ li.fulfillableQuantity }}
{{ li.fulfillmentService.callbackUrl }}
{{ li.fulfillmentService.fulfillmentOrdersOptIn }}
{{ li.fulfillmentService.handle }}
{{ li.fulfillmentService.id }}
{{ li.fulfillmentService.inventoryManagement }}
{% comment %}rest of location omitted{% endcomment %}
{{ li.fulfillmentService.location.name }}
{{ li.fulfillmentService.productBased }}
{{ li.fulfillmentService.serviceName }}
{% for sm in li.fulfillmentService.shippingMethods %}
{{ sm.code }}
{{ sm.label }}
{% endfor %}
{{ li.fulfillmentService.type }}
{{ li.fulfillmentStatus }}
{{ li.id }}
{{ li.image.altText }}
{{ li.image.height }}
{{ li.image.id }}
{% comment %}li.image.metafield omitted{% endcomment %}
{% comment %}li.image.privateMetafield omitted{% endcomment %}
{{ li.image.width }}
{{ li.merchantEditable }}
{{ li.name }}
{{ li.nonFulfillableQuantity }}
{{ li.originalTotalSet.presentmentMoney.amount }}
{{ li.originalTotalSet.presentmentMoney.currencyCode }}
{{ li.originalTotalSet.shopMoney.amount }}
{{ li.originalTotalSet.shopMoney.currencyCode }}
{{ li.originalUnitPriceSet.presentmentMoney.amount }}
{{ li.originalUnitPriceSet.presentmentMoney.currencyCode }}
{{ li.originalUnitPriceSet.shopMoney.amount }}
{{ li.originalUnitPriceSet.shopMoney.currencyCode }}
{% comment %}rest of product omitted{% endcomment %}
{{ li.product.title }}
{{ li.quantity }}
{{ li.refundableQuantity }}
{{ li.requiresShipping }}
{{ li.restockable }}
{{ li.sellingPlan.name }}
{{ li.sku }}
{% for tl in li.taxLines %}
{{ tl.priceSet.presentmentMoney.amount | json }}
{{ tl.priceSet.presentmentMoney.currencyCode | json }}
{{ tl.priceSet.shopMoney.amount | json }}
{{ tl.priceSet.shopMoney.currencyCode | json }}
{{ tl.rate | json }}
{{ tl.ratePercentage | json }}
{{ tl.title | json }}
{% endfor %}
{{ li.taxable }}
{{ li.title }}
{{ li.totalDiscountSet.presentmentMoney.amount }}
{{ li.totalDiscountSet.presentmentMoney.currencyCode }}
{{ li.totalDiscountSet.shopMoney.amount }}
{{ li.totalDiscountSet.shopMoney.currencyCode }}
{{ li.unfulfilledDiscountedTotalSet.presentmentMoney.amount }}
{{ li.unfulfilledDiscountedTotalSet.presentmentMoney.currencyCode }}
{{ li.unfulfilledDiscountedTotalSet.shopMoney.amount }}
{{ li.unfulfilledDiscountedTotalSet.shopMoney.currencyCode }}
{{ li.unfulfilledOriginalTotalSet.presentmentMoney.amount }}
{{ li.unfulfilledOriginalTotalSet.presentmentMoney.currencyCode }}
{{ li.unfulfilledOriginalTotalSet.shopMoney.amount }}
{{ li.unfulfilledOriginalTotalSet.shopMoney.currencyCode }}
{{ li.unfulfilledQuantity }}
{% comment %}rest of variant omitted{% endcomment %}
{{ li.variant.title }}
{{ li.variantTitle }}
{{ li.vendor }}
{% endfor %}
{
"lineItems": [
{% for li in order.lineItems %}
{% if forloop.first != true %},{% endif %}
{
"contract": {
{% comment %}rest of contract omitted{% endcomment %}
"id": {{ li.contract.id | json }}
},
"customAttributes": [
{% for ca in li.customAttributes %}
{% if forloop.first != true %},{% endif %}
{
"key":{{ ca.key | json }},
"value":{{ ca.value | json }}
}
{% endfor %}
],
"discountAllocations": [
{% for da in li.discountAllocations %}
{% if forloop.first != true %},{% endif %}
"allocatedAmountSet": {
"presentmentMoney" : {
"amount": {{ da.allocatedAmountSet.presentmentMoney.amount | json }},
"currencyCode": {{ da.allocatedAmountSet.presentmentMoney.currencyCode | json }}
},
"shopMoney": {
"amount": {{ da.allocatedAmountSet.shopMoney.amount | json }},
"currencyCode": {{ da.allocatedAmountSet.shopMoney.currencyCode | json }}
}
}
{% endfor %}
],
"discountedTotalSet": {
"presentmentMoney" : {
"amount": {{ li.discountedTotalSet.presentmentMoney.amount | json }},
"currencyCode": {{ li.discountedTotalSet.presentmentMoney.currencyCode | json }}
},
"shopMoney": {
"amount": {{ li.discountedTotalSet.shopMoney.amount | json }},
"currencyCode": {{ li.discountedTotalSet.shopMoney.currencyCode | json }}
}
},
"discountedUnitPriceSet": {
"presentmentMoney" : {
"amount": {{ li.discountedUnitPriceSet.presentmentMoney.amount | json }},
"currencyCode": {{ li.discountedUnitPriceSet.presentmentMoney.currencyCode | json }}
},
"shopMoney": {
"amount": {{ li.discountedUnitPriceSet.shopMoney.amount | json }},
"currencyCode": {{ li.discountedUnitPriceSet.shopMoney.currencyCode | json }}
}
},
"duties": [
{% for duty li.duties %}
{% if forloop.first != true %},{% endif %}
{
{% comment %}rest of duties omitted{% endcomment %}
"id": {{ duty.id | json }}
}
{% endfor %}
],
"fulfillableQuantity": {{ li.fulfillableQuantity | json }},
"fulfillmentService": {
"callbackUrl":{{ li.fulfillmentService.callbackUrl | json }},
"fulfillmentOrdersOptIn": {{ li.fulfillmentService.fulfillmentOrdersOptIn | json }},
"handle": {{ li.fulfillmentService.handle | json }},
"id": {{ li.fulfillmentService.id | json }},
"inventoryManagement": {{ li.fulfillmentService.inventoryManagement | json }},
{% comment %}fulfillmentService.inventoryManagement - omitted {% endcomment %}
"productBased": {{ li.fulfillmentService.productBased | json }},
"serviceName": {{ li.fulfillmentService.serviceName | json }},
"shippingMethods": [
{% for sm in li.fulfillmentService.shippingMethods %}
{% if forloop.first != true %},{% endif %}
{
"code": {{ sm.code | json }},
"label": {{ sm.label | json }}
}
{% endfor %}
],
"type": {{ li.fulfillmentService.type | json }}
},
"fulfillmentStatus": {{ li.fulfillmentStatus | json }},
"id": {{ li.id | json }},
"image": {
"altText": {{ li.image.altText | json }},
"height": {{ li.image.height | json }},
"id": {{ li.image.id | json }},
{% comment %}li.image.metafield omitted{% endcomment %}
{% comment %}li.image.privateMetafield omitted{% endcomment %}
"width":{{ li.image.width | json }}
},
"merchantEditable": {{ li.merchantEditable | json }},
"name": {{ li.name | json }},
"nonFulfillableQuantity": {{ li.nonFulfillableQuantity | json }},
"originalTotalSet": {
"presentmentMoney" : {
"amount": {{ li.originalTotalSet.presentmentMoney.amount | json }},
"currencyCode": {{ li.originalTotalSet.presentmentMoney.currencyCode | json }}
},
"shopMoney": {
"amount": {{ li.originalTotalSet.shopMoney.amount | json }},
"currencyCode": {{ li.originalTotalSet.shopMoney.currencyCode | json }}
}
},
"originalUnitPriceSet": {
"presentmentMoney" : {
"amount": {{ li.originalUnitPriceSet.presentmentMoney.amount | json }},
"currencyCode": {{ li.originalUnitPriceSet.presentmentMoney.currencyCode | json }}
},
"shopMoney": {
"amount": {{ li.originalUnitPriceSet.shopMoney.amount | json }},
"currencyCode": {{ li.originalUnitPriceSet.shopMoney.currencyCode | json }}
}
},
"product": {
{% comment %}rest of Product omitted{% endcomment %}
"title": {{ li.product.title | json }}
},
"quantity": {{ li.quantity | json }},
"refundableQuantity": {{ li.refundableQuantity | json }},
"requiresShipping": {{ li.requiresShipping | json }},
"restockable": {{ li.restockable | json }},
"sellingPlan": {
"name": {{ li.sellingPlan.name | json }}
},
"sku": {{ li.sku | json }},
"taxLines": [
{% for tl in li.taxLines %}
{% if forloop.first != true %},{% endif %}
{
"priceSet": {
"presentmentMoney" : {
"amount": {{ tl.priceSet.presentmentMoney.amount | json }},
"currencyCode": {{ tl.priceSet.presentmentMoney.currencyCode | json }}
},
"shopMoney": {
"amount": {{ tl.priceSet.shopMoney.amount | json }},
"currencyCode": {{ tl.priceSet.shopMoney.currencyCode | json }}
}
},
"rate": {{ tl.rate | json }},
"ratePercentage": {{ tl.ratePercentage | json }},
"title": {{ tl.title | json }}
}
{% endfor %}
],
"taxable":{{ li.taxable | json }},
"title":{{ li.title | json }},
"totalDiscountSet": {
"presentmentMoney" : {
"amount": {{ li.totalDiscountSet.presentmentMoney.amount | json }},
"currencyCode": {{ li.totalDiscountSet.presentmentMoney.currencyCode | json }}
},
"shopMoney": {
"amount": {{ li.totalDiscountSet.shopMoney.amount | json }},
"currencyCode": {{ li.totalDiscountSet.shopMoney.currencyCode | json }}
}
},
"unfulfilledDiscountedTotalSet": {
"presentmentMoney" : {
"amount": {{ li.unfulfilledDiscountedTotalSet.presentmentMoney.amount | json }},
"currencyCode": {{ li.unfulfilledDiscountedTotalSet.presentmentMoney.currencyCode | json }}
},
"shopMoney": {
"amount": {{ li.unfulfilledDiscountedTotalSet.shopMoney.amount | json }},
"currencyCode": {{ li.unfulfilledDiscountedTotalSet.shopMoney.currencyCode | json }}
}
},
"unfulfilledOriginalTotalSet": {
"presentmentMoney" : {
"amount": {{ li.unfulfilledOriginalTotalSet.presentmentMoney.amount | json }},
"currencyCode": {{ li.unfulfilledOriginalTotalSet.presentmentMoney.currencyCode | json }}
},
"shopMoney": {
"amount": {{ li.unfulfilledOriginalTotalSet.shopMoney.amount | json }},
"currencyCode": {{ li.unfulfilledOriginalTotalSet.shopMoney.currencyCode | json }}
}
},
"unfulfilledQuantity": {{ li.unfulfilledQuantity | json }},
"variant": {
{% comment %}rest of variant omitted {% endcomment %}
"title": {{ li.variant.title | json }}
},
"variantTitle": {{ li.variantTitle | json }},
"vendor": {{ li.vendor | json }}
}
{% endfor %}
]
}