[w3c/payment-request] Define handling of multiple applicable modifiers (#684)

1) From what I can tell, the spec doesn't currently define which `additionalDisplayItems` should be shown if a UA decides to show any.
2) More generally, handling of multiple applicable modifiers isn't clear. It looks like it's possible to have multiple `methodData` and `modifiers` with the same `supportedMethods` including the same `data`.

Consider the following example snippet:
```js
// Credit card incurs a $3.00 processing fee.
const creditCardFee = {
  label: "Credit card processing fee",
  amount: { currency: "USD", value: "3.00" },
};

// Visa card incurs a $1.00 processing fee.
const visaFee = {
  label: "Visa processing fee",
  amount: { currency: "USD", value: "1.00" },
};

// Modifiers apply when the user chooses to pay with
// a credit card.
const modifiers = [
  {
    additionalDisplayItems: [creditCardFee],
    supportedMethods: "basic-card",
    total: {
      label: "Total due",
      amount: { currency: "USD", value: "53.00" },
    },
    data: {
      supportedTypes: ["credit"],
    },
  },
  {
    additionalDisplayItems: [visaFee],
    supportedMethods: "basic-card",
    total: {
      label: "Total due",
      amount: { currency: "USD", value: "54.00" },
    },
    data: {
      supportedNetworks: ["visa"]
    },
  },
];
Object.assign(details, { modifiers });
```
* If multiple modifiers match the selected payment method should all applicable additional display items be shown? The first matching one? Last matching one? Most specific one (would need to be defined)
* Which modifier's `total` should be used?

This seems like something that should be tested as well.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/w3c/payment-request/issues/684

Received on Monday, 12 February 2018 23:16:50 UTC