# Manually Restore Classic Password Login Form (Advanced)

> **Advanced / technical section**\
> Only follow this if you’re comfortable editing your theme code.\
> If not, we strongly recommend using the **free setup service** instead.

This page gives a **high-level guide** for developers or technical store owners who want to manually restore the classic **email + password** login form in their theme.

***

## **1. Before you start**

**Who should use this guide**

* You are comfortable with:
  * Editing theme code (Liquid / JSON templates)
  * Using the Shopify theme editor and code editor
* You understand that:
  * Changes can affect your live store
  * The final result might not perfectly match your theme’s built-in styling

**Important: Always back up first**

1. In Shopify admin, go to **Online Store → Themes**.
2. Click **…** next to your current theme → **Duplicate**.
3. Work on the **duplicate** when editing code, then publish when ready.

***

## **2. Overview of what you’ll do**

At a high level, manual setup involves:

1. Creating or editing a **login template** that uses Shopify’s classic `customer_login` form (email + password).
2. Ensuring the login page is reachable via a **stable URL**.
3. Updating B2B Lock’s **lock messages / button links** (and/or your navigation) to point customers to this password-based login page.
4. Testing to make sure:
   * Customers can log in using email + password
   * B2B Lock recognizes them as logged-in and applies rules correctly

***

## **3. Step 1 – Create a classic login template**

1. In Shopify admin, go to **Online Store → Themes**.
2. On your **duplicate theme**, click **Edit code**.
3. Look for an existing **customer login template**, such as:
   * `templates/customers/login.liquid` or
   * `templates/customers/login.json`

If one exists and already uses a password form, you may only need to **link to it** (see Step 3).

If it doesn’t exist or only shows OTP:

4. Create a new template:
   * In the **Templates** folder, click **Add a new template**.
   * Choose `customers` as type, `login` as the template name (or a variant such as `login-password`).
5. Insert or adapt **Shopify’s classic login form** structure:
   * A form using `form 'customer_login'`
   * Input fields for:
     * **Email**
     * **Password**
   * A **Submit** button
   * Links for “Forgot your password?” and optionally “Create account”

You can refer to Shopify’s official docs or your previous theme’s login template to copy a standard login form layout, then adjust classes to match your theme’s styling.

***

## **4. Step 2 – Verify the login page URL**

Once the template is created:

1. In the theme editor, open **Customize**.
2. Navigate to the **Customer login** page (if your theme exposes it in the pages dropdown).
3. Confirm:
   * The page uses your new password-based template.
   * The URL is something stable like `/account/login` or a new custom path depending on the theme setup.

If needed, you can:

* Create a new **page** in Shopify that uses your login template and note its URL.
* Or rely on the default customer account URL if your theme maps it correctly.

This URL is what you will plug into B2B Lock’s **Login buttons** and navigation links.

***

## **5. Step 3 – Connect B2B Lock to the password login page**

Now that you have a working password login page:

1. Open the **B2B Lock** app.
2. Edit one of your locks that uses **login-based access** (e.g. “Hide prices from guests”, “Lock wholesale page”).
3. In **Step 3 – Advanced settings**, find the section where you configure:
   * **Login button URL**
   * Or any **link** that sends users to log in
4. Replace the login URL with the URL of your **password login page** (from Step 2).

For example:

* Old: `/account/login` (showing OTP)
* New: `/account/login-password` (your classic password template)

Adjust the exact paths based on how you named your template and how the theme routes customer login pages.

You can also update:

* Header/footer **“Login”** menu links in your theme navigation to point to the same URL.

***

## **6. Step 4 – Test end-to-end**

Test with at least two accounts:

1. **Existing customer with a password**
   * Go to your **password login URL**.
   * Log in using email + password.
   * Confirm that:
     * Login succeeds.
     * You’re redirected to account page or wherever your theme sends logged-in users.
   * Visit a page locked by B2B Lock:
     * You should now pass the “customer is signed in” check and see protected content.
2. **Guest / unapproved user**
   * Visit a locked page or product as a guest.
   * Confirm you see the **lock message** with the new login button.
   * Click the login button:
     * It should correctly open the **password login form**.
   * If you log in with the wrong credentials:
     * You should see an error from the login form, not from B2B Lock itself.

If anything doesn’t behave as expected:

* Double-check that:
  * The login form uses the correct `form 'customer_login'`.
  * The theme is not overriding the login route with the OTP-based layout.
  * B2B Lock’s lock buttons link to the correct URL.

If you’re stuck, you can always switch back to your **original theme** and contact BSS Commerce support for help.

***

## **7. Limitations & maintenance**

A few important caveats:

* **Design:** The manual login form might not perfectly match your theme’s native design. You can adjust CSS and classes, but this requires front-end work.
* **Shopify roadmap:** Shopify is steadily moving toward Email + OTP and may change underlying behaviour in the future. Be prepared to revisit this setup when Shopify makes major account updates.
* **Theme changes:** If you:
  * Install a new theme, or
  * Update your current theme heavily\
    You may need to **reapply** or re-check this password login customization.

Because of these limitations, the manual approach is best suited for:

* Stores with internal dev capacity
* Merchants who need a **short-to-medium term** password solution while planning a gradual move to OTP in the future

If you’d rather not manage this manually, use the simpler and safer option:

> Contact BSS Commerce and ask for the **free password login setup** — they’ll handle it for you and make sure it works smoothly with B2B Lock.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs-shpf.bsscommerce.com/bss-b2b-lock-login-password-hide-price/customer-accounts-and-login-methods/manually-restore-classic-password-login-form-advanced.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
