Per-Contact Modifications
Override products, quantities, and prices for specific members within a release.
Most members get the same release contents. Some don't — VIPs swap a Cab for a Pinot, allergy contacts skip a wine entirely, and trade contacts get a discount. Per-contact modifications handle all of these without forking the release.
Without modifications, the only way to customize a release for one member was to build a separate release just for them. Modifications let you keep one release and one set of pack lists, with overrides per contact baked into payments and fulfillments.
Where modifications happen
Open any release and switch to the Modifications tab.
Spring 2026 Reds — Modifications
Per-contact product overrides. Changes affect this release only.
| Contact | Modification | Price Δ |
|---|---|---|
| Alex Chen | Swap Cab → Pinot Noir | +$8.00 |
| Casey Lee | Remove Chardonnay (allergy) | −$24.00 |
| Jordan Patel | 20% discount (trade) | −$36.00 |
Three modification types
| Type | What it does |
|---|---|
| Swap | Replace one product with another. Price difference flows through to the contact's payment automatically. |
| Remove | Drop a product entirely. The contact is refunded the line-item value (or paid less, if pre-payment). |
| Discount | Apply a percentage or flat-amount discount to the entire release for one contact. Useful for trade and comp accounts. |
Adding a modification
Click Add Modification
A modal appears. Pick the contact first.
Choose the modification type
Swap, Remove, or Discount. The form changes based on your choice.
Configure
For Swap: pick the original product and the replacement. For Remove: pick which product to drop. For Discount: choose percentage or fixed amount and enter the value.
Save
The contact's payment record updates immediately to reflect the new total. Their fulfillment record updates with the new product list.
When can I add modifications?
| Release stage | Modifications allowed? |
|---|---|
| DRAFT | Yes. Modifications are pre-staged and applied when you promote to PENDING. |
| PENDING | Yes — but only before that contact's payment is processed. |
| COMPLETED | No. Future modifications must be handled as refunds outside the release. |
| CANCELLED | No. |
Modifications and payments
When you add a modification after the release is PENDING but before processing payments, the change ripples through cleanly:
Payment record updated
The PENDING payment amount is recalculated to match the new total.
Fulfillment record updated
The product list on the contact's fulfillment is updated.
Charge runs at the new amount
When you process payments, the contact is charged the modified total.
Once a contact is charged, the system can't simply "subtract" the modification. Use a refund (full or partial) to reconcile, then update the fulfillment manually. The modification record is kept for audit purposes but won't change the captured amount.
Bulk modifications
For one-off swaps the modal is fine. For ten or more, the bulk import
accepts a CSV with three columns: contactId, type, and the type-specific
fields. Click Import modifications on the modifications tab to upload.
Modifications and the portal
Members see their modified release in their portal — they'll see the swapped Pinot, not the original Cab. This is intentional: the portal should always reflect what they're actually getting and being charged for.