@JasonL
Looking back, I realized I forgot to mention a couple of things—sorry about that. I'll list them here:
Is there a way to determine how many purchases a user has made of products affected by a given promotion? This is especially relevant for automated promotions, which have a "max purchases" value but no "purchases left" value in their data structure.
For automated promotions again, is there a way to check how much time is left before a promotion is disabled? A Unix timestamp indicating when the promotion became active would be useful for this purpose.
Both values would be helpful for displaying accurate promotion data to the user across multiple sessions.