Make customer address and phone non compulsory info at checkout?


@danielle @serenity @oeoeaio any feedback on that? @nickwhite if you think that is managable for you to work on it this issue has been raised for the second time now in France. Users say it make the act of buying more complicated than the tools they use today.


@MyriamBoure is there a possibility of having an ‘express checkout’ option available? Shops can then choose whether they want to offer the option or not.


Hi all , @MyriamBoure : I think it would be easy to change compulsory fields on french instance but more complicated if we want to add a checkout option with the community. I propose to desactivate for us and we will be able to continue the discution on this.


Great @nickwhite :slight_smile:I’m just wondering one thing: if the hub has a shipping methode “delivery”, then the address field and phone should be compulsory… is it possible to do something on that? Add a rule that "if a shipping option with a nature “delivery” is seleted by the customer at checkout, the address and phone field become compulsory?


I agree @MyriamBoure, in making address only compulsory when the shipping option selected is delivery. I wonder though, is there value for the enterprise in including a phone number even if the customer is picking up the order, just in case they are late or don’t turn up?


Actually @danielle I really think this should be decided by the hub! For exemple, one of our users in France uses OFN alongside with a self-service shop in a coworking space. People help themselves in what is stored and fill in what they have taken in the OFN shopfront. In that case you don’t need any phone number as well :wink:
I think for our subsidiarity principle, what is compulsory info or not should be leaved to the hub manager to decide when they set up their hub…


That makes complete sense, to allow the hub to decide if they want to collect that data for each shipping payment type :smile:


We gonna make this move forward in France, if you want to participate to the final discussion on how it’s done check the Github issue


@Kirsten @oeoeaio @sstead any thoughts on the scope?


think it’s pretty important that it be an option controlled by enterprise/shop not an instance-wide setting


and default should remain as is to minimise confusion


@Kirsten here is the spec file so yes this is going to be controlled by enterprise/shop. About default, I have proposed to allow the shop manager to make shipping option and/or payment option checked by default IF there is only one (we had the request from a few hubs already)

So basically here are the 5 things that I propose to make customizable by the hub :
O Make phone number non compulsory info at checkout
O Make invoicing address non compulsory info at checkout
O Hide the “comment” box
O If only one shipping option, check by default
O If only one payment method, check by default

Is it fine with you ? Can we go for that ?


I’ve been talking with @MyriamBoure @sauloperez and @pierredelacroix about this issue and we have a proposal :tada:


It seems that the most urgent action needed is to make billing address not compulsory in the checkout form. We’ll talk about the phone field in the details section in another iteration since it seems that there is only 1 person complaining. @MyriamBoure will check with them what’s the real issue and the underlying need.


Now that we’ll focus on the billing address we suggest to couple this “setting” to the payment method instead of the enterprise as we think it will allow more flexibility in the future. The idea is to add a new “setting” to the payment method model that will express if the payment method requires a billing address or not.


In order to implement this proposal we’ll need to modify both backend and frontend:


  • add a new billing_address_required boolean field to the spree_payment_methods table (default true)
  • add a checkbox to the views to show / edit the setting
  • check Spree::Order#billing_address validations
  • cover everything with tests


In the frontend we’ll need to change the order of the checkout sections to be able to select the payment method before we are asked to introduce the billing address. In this way we can change the JS form validations based on the choosen payment method.

Right now the checkout sections are showed in the following order:

  • Details
  • Billing information
  • Shipping information
  • Payment method

We propose to change it in the following order:

  • Details
  • Payment method
  • Billing information
  • Shipping information

If we all agree on this point we’ll need to develop the following tasks for the frontend:

  • change checkout sections order in JS
  • make billing information validation dynamic based on payment method
  • check the submit request
  • implement the same behavior in /admin
  • cover everything with tests


We need to discuss this once everybody agree with the proposed implementation both at product (UX) and technical level.

Who can work on it?

Keeping in mind that the Spree upgrade is a priority, from Coopdevs/Katuma we’ll be happy to help with this and help OFN France.

cc/ @Kirsten @oeoeaio @CynthiaReynolds @lin_d_hop @danielle and so on… :smile:


Thanks @enricostn for summarizing all that. I find it very logical to ask first the payment option and then ask the billing address if needed. But of course we are happy with that proposal in France. We will iterate from that on the other aspects (make possible for a hub to check by default if only one payment and shipping options, etc.)
Precision about associating the billing address with payment method : if a buying group with pick up shipping method offers two payment method : pay on invoice or pay by cash on collection, if the user chooses the invoice one the hub needs the billing address to make the invoice :slight_smile:

About the phone, I didn’t manage yet to talk with our user, will share feedback when it’s done.

Hope we can move forward quickly on that, thanks everyone for your feedbacks !


Ok sounds fine to our user to start with billing address and iterate from that if needed, they are in Corea at the moment so hard to talk to them for now :wink:


hmmm. This seems a bit ‘wrong-way around’ to me. I think it’s pretty standard to do shipping method first because it’s weird to ask about payment before shipping decisions that might affect cost have been made. And then it’s payment method, process order, done. Putting them the other way around feels wrong.

Is there any reason it can’t be in order of Details, Shipping information, Payment method (and billing info if needed) ?

Is it worth running this past Yuko? @danielle @sstead?

Other than that it seems fine to me

Checkout customization : adapt fields required to the hub model and customer type

Hum… I understand your point @Kirsten that it feels logical to add first about the shipping option, if added fees it’s added to total, then payment option, if added fees added to total, then when click on “checkout” the payment box opens if online payment.
@enrico can’t we imagine that the entreprise can say that by default address is not asked, and make it possible in the payment method to make address compulsory, so after shipping option stage, if address not filled in, if choose after a payment method like “invoice” that requires shipping method, the user is sent back to shipping section and has to fill in the address?
OR, like if you have a “delivery type” shipping option, you have a box on the delivery address and as if it’s same as shipping address, if you choose a payment method where address is compulsory, and the address has not been filled in above, it can open again the billing address fields in the payment section so that it can be filled in there, with a message like “a billing address is required for that payment method” ?

What do you think about that @enricostn ?


I like the latter suggestion. Being jumped up the page (first option) would be jarring


In my proposal we can still have Shipment info right after Details, the important part is that we choose a Payment method before we ask (or not) for a billing address.


Yes, that sounds logical. So if I sum up we have:
1- General info (name)
2- Shipping method choice
2.1- depending on shipping method choice, ask delivery address
3- Payment method choice
3.1- depending on payment method choice, ask billing address
4- confirm checkout and proceed to payment (if online payment)

So when a hub set up a payment method he will have to determine if he asks the billing address or not.

Do we agree on that @Kirsten @enricostn ?

Then we can see after we have sorted that out if we want to allow a hub not to ask a user to check the shipping and/or payment method if only one proposed, but let’s take this step by step.