{"title":"Package v20.14 - 5 February 2026","slug":"package-v20-14","url":"https://support.storeconnect.com/articles/package-v20-14","url_markdown":"https://support.storeconnect.com/articles/package-v20-14.md","subtitle":null,"summary":"This release introduces foundational Salesforce objects for Product Bundles 2.0, Voucher sales management, Account-level tax exemptions, Cart customer notes, and a fix for data truncation in payment gateway and tax provider fields.","type":"Release_Notes","video_url":"","keywords":"release notes, update","last_modified":"2026-08-21T07:12:35+0000","body_markdown":"This is a significant release introducing foundational Salesforce objects and fields for Product Bundles 2.0, Voucher sales management, and Account-level tax exemptions. Cart customer notes are now supported. Two field length increases resolve data truncation issues for payment gateway configuration and tax provider logging. Theme developers also gain access to a new templates/controllers directory for asset management.\n\n## Enhancements\n\n**Product Bundles 2.0: New Salesforce Objects**\nThree new Salesforce objects have been introduced to support the next generation of product bundles:\n\n-   **Component Groups** — groups of components associated with a bundle product\n-   **Product Components** — individual component items linked to a component group\n-   **Component Pricing** — pricing configurations for bundle components\n\nEach object has its own record page, layout, and list view. A new Bundle Price Strategy picklist has been added to Pricebook Entries to support flexible bundle pricing. Administrators and relevant permission sets have been updated with the necessary access. These objects form the Salesforce data layer for the Product Bundles 2.0 feature.\n\n**Voucher Sales Mechanism**\nNew fields and logic have been added to Salesforce to support automated voucher creation and management when voucher products are sold:\n\nNew fields on `Product2`:\n\n-   `Voucher_Requires__c` — a picklist defining what the voucher requires at point of creation\n-   `Voucher_Uses_Assets__c` — a checkbox indicating whether the voucher is backed by an Asset record\n\nNew fields on `Voucher__c`:\n\n-   `Activated_at__c` — the timestamp when the voucher was activated\n-   `Activated_code__c` — the activation code applied\n-   `Asset_Id__c` — the linked Asset record\n-   `Pin__c` — an optional PIN associated with the voucher\n-   `Status__c` — the current voucher status (active, inactive, etc.)\n\nNew fields on `Asset`:\n\n-   `Activated_code__c`\n-   `Pin__c`\n\nA before-insert trigger automatically sets up voucher records based on the product's configuration at the time of creation. A Voucher Log object (`Voucher_Log__c`) records key lifecycle events for each voucher, with a new `Email_Fields__c` picklist controlling which voucher fields are included in email communications.\n\n**Tax Exemption for Accounts**\nOrders billed to accounts with a Tax Entity Code set on their Salesforce account record are now automatically treated as tax exempt. Tax amounts are zeroed out for these orders and unit prices are adjusted accordingly. This ensures that charitable organisations, government entities, educational institutions, and other tax-exempt customers are not charged tax without any manual intervention. The `Tax_Entity_Code__c` field on the Account record controls this behaviour.\n\n**Cart: Customer Notes Field**\nA new long text area field, `Customer_Notes_Long__c`, has been added to the Cart object (up to 10,000 characters). This field stores customer notes entered during checkout and is visible on the Cart record page in Salesforce under a dedicated Notes section. Administrators and Order Managers have read and edit access.\n\n**Theme: Controllers Directory Now Supported**\nThe `/templates/controllers/` directory is now recognised as a valid theme directory. Theme controllers are no longer treated as asset files, allowing them to be properly handled during theme imports and deployments.\n\n## Deprecated Fields\n\n**Voucher Log: `Event_Result__c` field deprecated**\nThe `Event_Result__c` field on `Voucher_Log__c` has been replaced by `Success__c` (a boolean). Any references to `Event_Result__c` should be updated to use `Success__c`.\n\n**Voucher Log: `Reason_Code__c` renamed to `Reason__c`**\nThe `Reason_Code__c` field has been replaced by `Reason__c` (a picklist). Update any automation or references that use the old field name.\n\n## Fixed Bugs\n\n**Payment Gateway Configuration: Field Truncation at 10,000 Characters**\nThe `Api_Options__c` field on the Payment Provider object had a maximum length of 10,000 characters. More complex payment gateway configurations (particularly those requiring extensive API options) were being silently truncated. The field length has been increased to 25,000 characters.\n\n**Tax Provider Logs: Request and Response Fields Truncated**\nThe `Request__c` and `Response__c` fields on `Tax_Provider_Log__c` had a maximum length of 10,000 characters. Verbose tax provider payloads were being cut off, making it difficult to diagnose tax integration issues. Both fields have been increased to 25,000 characters."}