Hi I know this is old, but I have been looking for the same thing. I found this:
The payment_terms filter must be used on the form object within a product form or cart form.
{{ form | payment_terms }}
Payment due date not appearing in order emails when using Net7/Net15/Net30 or custom terms; only “upon receipt” showed a date. The original Liquid pulled payment_terms.next_payment.due_at, which returned nothing for these cases.
One participant noted Shopify’s payment_terms filter is intended for use on a form object (product/cart forms). However, a working approach for notifications was shared using payment_terms object logic with fallbacks.
Solution: If payment_terms.type is ‘receipt’ and next_payment.due_at is nil, set due_date to ‘now’. Otherwise, set due_date to payment_terms.next_payment.due_at. If payment_terms.type is ‘fulfillment’ and next_payment.due_at is nil, output “due on fulfillment”; else output the formatted due date. A code snippet implementing this logic was provided (code is central to the thread).
Date formatting can be customized using the Liquid date filter (e.g., ‘%d/%m/%Y’), or via theme template formatting: {{ due_date | date: ‘template.formatDate’ }}. Links to Shopify’s date filter docs were included.
Outcome: A practical, working snippet resolves the email display for Net terms and custom dates. Thread appears resolved.
Hi I know this is old, but I have been looking for the same thing. I found this:
The payment_terms filter must be used on the form object within a product form or cart form.
{{ form | payment_terms }}