Docs
Per-Contact Modifications

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.

Where modifications happen

Open any release and switch to the Modifications tab.

dashboard.oncloudwine.com

Spring 2026 Reds — Modifications

Per-contact product overrides. Changes affect this release only.

ContactModificationPrice Δ
Alex ChenSwap Cab → Pinot Noir+$8.00
Casey LeeRemove Chardonnay (allergy)−$24.00
Jordan Patel20% discount (trade)−$36.00

Three modification types

TypeWhat it does
SwapReplace one product with another. Price difference flows through to the contact's payment automatically.
RemoveDrop a product entirely. The contact is refunded the line-item value (or paid less, if pre-payment).
DiscountApply a percentage or flat-amount discount to the entire release for one contact. Useful for trade and comp accounts.

Adding a modification

  1. Click Add Modification

    A modal appears. Pick the contact first.

  2. Choose the modification type

    Swap, Remove, or Discount. The form changes based on your choice.

  3. 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.

  4. 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 stageModifications allowed?
DRAFTYes. Modifications are pre-staged and applied when you promote to PENDING.
PENDINGYes — but only before that contact's payment is processed.
COMPLETEDNo. Future modifications must be handled as refunds outside the release.
CANCELLEDNo.

Modifications and payments

When you add a modification after the release is PENDING but before processing payments, the change ripples through cleanly:

  1. Payment record updated

    The PENDING payment amount is recalculated to match the new total.

  2. Fulfillment record updated

    The product list on the contact's fulfillment is updated.

  3. Charge runs at the new amount

    When you process payments, the contact is charged the modified total.

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.

What's next?