Page MenuHomePhabricator

Invoicing emails probably need some work
Open, NormalPublic

Description

Very Bare-Bones: Invoicing emails have everything they need to, but they lack a certain je ne sais quoi.

Merchants CC'd: Currently, merchant accounts get CC'd on invoice emails. This makes some degree of sense, practically, and is consistent with other Phabricator applications, but feels a bit weird. Dropping them from non-approval emails or sending them a separate "merchant" version of the email might make more sense.

Subject: They generate with a subject like [Phortune] [New Invoice] Order X: Phabricator Instance which is, again, technically OK but not really great.

From: They should come "From" the merchant as an address display label. The currently come "From" the default address.

Event Timeline

epriestley raised the priority of this task from to Normal.
epriestley updated the task description. (Show Details)
epriestley added projects: Phacility, Phortune.
epriestley moved this task to Do After Launch on the Phacility board.
epriestley added a subscriber: epriestley.

I actually have some design studies on this in general, so it has begun on the explorative side of the house.

For reference, here's what they look like today:

Screen_Shot_2015-03-17_at_11.40.30_AM.png (827×887 px, 157 KB)

Can these be one offs (HTML) or do you see them going through the normal pipeline. Basically, how much freedom do I have. I'm not looking for fancy, just need to know if I can fork from normal HTML.

We can make these look different from other transactional email (but still general to Phortune) with a moderate amount of time, work, and ongoing maintenance cost.

We can make these look unique to Phacility at substantial cost.

Personally, I think this is worth less than an hour of time to sand some of the edges off. I'd probably address these things if they didn't end up being too hard:

  • Fix the "From" name to the merchant name, which will give us a cheap, general way for them to say "Phacility".
  • Drop "phortune" or use the merchant name.
  • Only CC the merchant on approval-required emails.
  • Do a quick pass on smoothing out the copy a little bit.

I think this is pretty near the bottom of the list of importance, but the mails are so rough around the edges right now that they could be kind of confusing (specifically, it may not be clear enough that they're coming from Phacility).

I promise to keep the design to under an hour's work. Mostly, I don't want them looking like "Phabricator" emails, and just a plain logo, address, and table.

This was my Dropbox receipt for reference:

Screen_Shot_2015-02-19_at_7.27.35_PM.png (978×2 px, 154 KB)
.

I'm wondering if I could even just build a simple UI for Instances that'd be a "printable" version as well as what we email, so it'd serve both purposes.

It can't hurt to have a mock available, but it's unlikely that I can implement logos for merchants in less than an hour (because of T6670, this may actually be a day or more of work).

Here's what you get if you print the web invoice, which seems pretty reasonable to me, although we could improve the printable CSS on many of the elements:

Screen_Shot_2015-03-17_at_12.10.29_PM.png (1×997 px, 147 KB)

 /$$$$$$$  /$$                           /$$ /$$ /$$   /$$              
| $$__  $$| $$                          |__/| $$|__/  | $$              
| $$  \ $$| $$$$$$$   /$$$$$$   /$$$$$$$ /$$| $$ /$$ /$$$$$$   /$$   /$$
| $$$$$$$/| $$__  $$ |____  $$ /$$_____/| $$| $$| $$|_  $$_/  | $$  | $$
| $$____/ | $$  \ $$  /$$$$$$$| $$      | $$| $$| $$  | $$    | $$  | $$
| $$      | $$  | $$ /$$__  $$| $$      | $$| $$| $$  | $$ /$$| $$  | $$
| $$      | $$  | $$|  $$$$$$$|  $$$$$$$| $$| $$| $$  |  $$$$/|  $$$$$$$
|__/      |__/  |__/ \_______/ \_______/|__/|__/|__/   \___/   \____  $$
                                                               /$$  | $$
                                                              |  $$$$$$/
                                                               \______/

Is there a way to add me to the Phacility payment team on admin?

Do you want to be part of the merchant account, or do you want to be able to pay for our instances?

I think just the merchant account, I want to see the invoice and rough out print.css etc.

Oh, that's the payment account (not the merchant account). The merchant account lets you refund charges, etc. I'll add you to the payment account.

Yeah, Phortune is generally a bit under-designed and dense-feeling.

HTML email (as simple as I could get it).

email_html_v1.jpg (1×1 px, 160 KB)

I'll post a text version, which will just collapse the table into some definition list looking thing.

From the Twitterverse, we should look at making payments as super easy as possible, especially if ur deadbeat.

(disclaimer, I don't know what we include here offhand) - pls ignore if I'm wrong here

If no saved payment method, provide direct link to add card
If no auto payment method, provide hint/link to make auto payment enabled.

An instance needs their own address (and some other information) on the invoice for tax purposes:

Company Name
Some Road
Whatever Whatever
Secret British ID Code: XYZ

Presumably we can add this as account-level configuration and then just print whatever they write on invoices. This feels vaguely flimsy (in the vein of "impressum") but I could imagine other use cases for it (e.g., just put some note to your Accounts Payable department there), particularly in conjunction with T8389.

I don't mind doing this, if you know what it is you want.

I think we could reasonably do this:

  • Add some kind of text field to PhortuneAccount, probably billingAddress I guess. We could try to call this freeformNoteToSelfWhichShowsUpOnInvoices or something to hint that you could put a note to your AP department here or a tax number or whatever, but users will probably figure that out 90% of the time and we can say "oh, just add it to the bottom of your billing address" the other 10% easily enough.
  • In Phortune account detail > Edit Account, add a field for it under "Name" and "Members" (this isn't EditEngine yet, unfortunately).
  • Figure out some way to put it on the cart page I guess.
  • Getting it into the email is desirable but probably nontrivial.

You could also do the same for PhortuneMerchant to let us put our address opposite their address. Also no EditEngine yet but I don't think it's a big deal to do these old-school-style since the total amount of wasted effort is fairly small (~20 lines in each Controller).

I guess the Merchant version would be businessAddress or something since Merchants aren't normally billed.

I think I had a similar diff floating around.

If you do Merchants, you could add sendFromEmailAddress or whatever and maybe shortNameForEmailSubjectLines (perhaps with less-awful names) and I can hook them up at some point so this:

From: Phabricator <noreply@admin.phacility.com>
Subject: [Phortune] [New Invoice] Order 123: Phabricator Instance

...can become this:

From: Phacility <noreply@admin.phacility.com>
Subject: [Phacility] [New Invoice] Order 123: Phabricator Instance

Actually applying that stuff to the mail is probably a bit of a pain but adding fields for it should be straightforward.

(Or you could convert everything to EditEngine.)

I'm building out a PhortuneReceiptView for the web, which I think we can also send as the HTML version in mail? Not sure if we can call custom HTML rendering in mail.

We can, but all styles need to be inline. DifferentialInlineCommentMailView is an example of an arbitrary-HTML-generating rendering class used in mail.

Actually probably moot if we can just provide a link to the new print view.

Do we need a new field for subjects or is Merchant Name enough? Not sure both are needed.

If you do Merchants, you could add sendFromEmailAddress or whatever and maybe shortNameForEmailSubjectLines (perhaps with less-awful names) and I can hook them up at some point so this:

From: Phabricator <noreply@admin.phacility.com>
Subject: [Phortune] [New Invoice] Order 123: Phabricator Instance

...can become this:

From: Phacility <noreply@admin.phacility.com>
Subject: [Phacility] [New Invoice] Order 123: Phabricator Instance

Actually applying that stuff to the mail is probably a bit of a pain but adding fields for it should be straightforward.

(Or you could convert everything to EditEngine.)

We can probably just use the merchant name for now. I could maybe imagine some "International Business Machines, Inc" vs "IBM" stuff down the line, but no immediate issue for "Phacility".

Followup from the same instance as above (T7607#198199) with the same request (put their contact details on the invoice). All of the prior changes put our contact details on the invoice but printable invoices are currently hard-coded to always be billed "To" the real name of the paying user.

I think T7607#198202 is still the way forward on this.