How to force STEP 2 in chekout


I need to ensure that every time someone clicks on a ‘Checkout’ link, they are forced to go to Step 2 of checkout in edit mode. I need this because I have added a Delivery date field to step 2 which I need the customer to enter for every order they place.

I have had something like that done by Joe. Shouldn't be too hard for any developer.

And can you give me a prompt, how to start making the change.

Thank you!

I’m not a developer, i’m Dentist ;) But WEB, and site constructing is my hobby my friends!:)

Hello, KeyGenRus!

If we get you right, please do the following, go to Customers → Profile fields. You should tick checkboxes “Checkout show/required” for your Delivery date field. In this case the customer won't be able to go to step 3 until the Delivery date field is completed.

Best regards, Alt-team

Thank you my dear. But after first order, the cusomer every time goes to step 3 (Payment and Shipping).

i want to do like this.

Every time, when customer wants to order any product, he/she must go to step 2 :) (if customer is logged in).

Thank you again!

KeyGenRus, you are right, profile fields are attached to the profile only, not to a certain order, that's why once a customer enters profile details, they are not required to be entered again. So, CS-Cart settings don't allow to make the Delivery field necessary every time a customer makes an order . See what can be done here.

The easiest way is to make customers enter the Delivery date thru comments to the order that you can find on Step 4. You can make comments field mandatory.

Please go to the directory with the installed CS-Cart and follow this direction (for 2.2.3 version): cscart/pro/223/skins/basic/customer/views/checkout/components/customer_notes.tpl

Replace your code with the following


{hook name=“checkout:notes”}



This way a customer won't be able to place an order until he completes comments field on Step 4, this field will be mandatory.
Now you have to specify that a customer should necessary enter Delivery date in the comments field, you can do it here: Administration → Languages → translation. Search for pattern text_customer_notes . In the field “Value” please enter the necessary text which will be shown to customers, something like “Please, enter the delivery date” or whatever. Don't forget to save changes. This field will be mandatory and required every time a customer places an order.

If you want it to be implemented another way, please ask for custom development service, we will be glad to help you, just contact us directly.

Best regards, Alt-team

Hello Alt-team.

I'm very glad that we have the humans like you, who help us every time when we need a help.

Thank you again for your solution. After testing your solution, i come back and will post in this topic about results.

Best Regards.

This is a MAJOR problem for me as well, and definitely should be looked into. We run a site where our clients often purchase for themselves, and then purchase a second order to ship to a friend as a gift. When it comes time to type in another destination address when a customer has already created a profile, they get very confused. When they get confused, they call us complaining. Just this week we have received about 6 complaints that people did not know how to change the destination address.

Forcing step 2 NEEDS to be made an option in future releases of CS-Cart. This shouldn't have to be an add-on. Every other cart does this out of the box. Please keep me updated if there is a temporary fix for this.

Had to figure this out again today… thought I'd post it here. Hope this helps… did this on 2.14 btw with the normal checkout, not one page checkout (don't know if that matters.)

In checkout.php, change
$profile_fields = fn_get_profile_fields('O');

$step = 'step_two';
if (empty($profile_fields['B']) && empty($profile_fields['S'])) {
$step = 'step_three';

$suffix = '?edit_step=' . $step;


$suffix = '?edit_step=step_two';


$step = 'step_two';
if (empty($profile_fields['B']) && empty($profile_fields['S'])) {
$step = 'step_three';

$_suffix = '.checkout?edit_step=' . $step;


$_suffix = '.checkout?edit_step=step_two';

Thanks. I will try

But not working for me. It's come to step tree:(