Skip to main content

API late July 2026 improvements (1.6.8)

Sam Critchley
Co-Founder

Additional API features, improvements and fixes that shipped to production in late July 2026, on top of the earlier mid July 2026 release.

  • Added support for campaigns contributing progress into a stamp card. Any campaign that supports purchase progress (for example a matching_item campaign) can add stamps to an item_purchase_count campaign by setting its recipient_campaign_id to the stamp card's campaign_id and its recipient_reward_method to points. The card's reward is issued when its target_count is reached, whether the completing stamps come from the card's own qualifying items, from contributions, or from a combination of both within the same basket. Existing stamp card behaviour is unchanged.
  • Added an owner_code field to composable campaign reward methods, settable through alter-reward-method and returned by get-reward-method and get-reward-methods. It is a short label of your own choosing (maximum 64 characters) used to identify a reward method when several are listed together, and has no effect on how rewards are calculated or issued.
  • Changed the max_basket_items_considered field on the reward-method basket_item restriction so that it counts individual items rather than basket lines. A single basket line with a quantity of 3 now counts as three items, exactly as three separate quantity-1 lines would, and the same limit is applied when the reward value is distributed across the matched items.
  • Fixed the promotional state of stored basket items so that it is no longer re-derived from current product data when a basket is processed again, for example by claim-basket or a return. An item that was not on promotion when it was bought continues to earn from campaigns configured with earn_on_promotional_items set to false, even if the product has since been flagged as promotional.
  • Fixed the handling of non-boolean item_is_promotional values in add-basket. Values such as "false", "0" and 0 are now interpreted as not promotional, values such as "true" and 1 as promotional, and any unrecognised value defaults to not promotional.