CityLightsSF.com

CityLightsSF.com home page
CityLightsSF.com home page
https://www.citylightssf.com

From Bricks to Clicks! – City Lights SF Shopify Project.

Last December (2020) a friend, past work associate, and fellow author, McNall got in touch with me and asked if I had any Shopify experience. Truthfully, I responded that I had an account, had done some minor store configuration with it, and that it was just another CMS (Content Management System) on the web. Little did I know that I would soon be the primary developer on a major, push the boundaries of Shopify project.

I soon met the team of J.R. (PM), Whitney (UX), McNall (Content), Mike (Configuration), and Carolyn (Client) via a Zoom meeting and learned the initial scope of the project.

Project Scope

City Lights SF Lighting is an upscale lighting store in the City Lights district of San Francisco. Like many other businesses in a pandemic-stricken world, they had to close their brick-and-mortar-based business operation. They had an excellent website, but it was only for attracting visitors to the physical store location. Our challenge was to create an online storefront for a catalog with tens of thousands of products and have it up and running by the end of April 2021. No pressure!

It had already been decided that Shopify would be the store’s platform. We were at the very beginning of a significant project. We only had a platform, a live date, and a team. Thankfully, the team was impressive. We defined our key goals:

  • Pick a theme for the UI/UX.
  • Determine how to import tens of thousands of products.
  • With the theme as a foundation, design the required pages.
  • Define the menu structure.

We all dove in feet first to our specific tasks. My initial responsibility was to help define the menu structure and determine how to get the products into the store database.

The Shopify Environment

Fortunately, I’m a speedy student willing to take on anything new. Even though Shopify is just another CMS, it does have its own structure, terminology, and development language. Shopify has a prebuilt database structure for supporting products. Products can have descriptions, pictures, options (variants), types, attributes (dimensions, weight, barcode, vendor, etc.), and tags can be defined and attached. Shopify also has Collections, which is a grouping of products. The grouping can be by vendor, types, tags, and just about any relationship that one can think of.

The themes have a slightly different structure—nothing like WordPress, Wix, or Square. Home pages have a bunch of different dynamic sections, while other pages are pretty static. Most themes are designed for a specific type of product or industry and with the intent that everything you need is already provided. A Pages section provides the ability to build custom pages with a Real-Time Editor or toggle to the source and use HTML.

The programming environment is based on the Liquid template language and allows users to customize the existing theme files or add new pages, sections, functions, and styling. HTML, CSS, Javascript, JSON, and AJAX are all supported.

The Theme and Apps (Plug-ins)

The Shopify sales representative, Philip, was very helpful in directing us to the themes and apps that would best meet our needs. After much discussion and some research, we landed on the following:

  • Empire theme by Pixel Union – the UI/UX layout
  • Tabs – Product Page Tabs – for putting tabs on the product description
  • Matrixify (Excelify) – For importing and exporting data
  • Product Reviews – To get and show product reviews.
  • Product Filter & Search – Provides expanded search and filtering
  • Instafeed – To show the client’s Instagram feed
  • GDPR/CCPA + Cookie Management
  • Shopify Email – For email notifications
  • Accessibility Assistant – To ease website use for those with disabilities
  • Variant Image Automator – For displaying images of variant options
  • Variant Options Swatch King – Additional swatch image options

Yes, those are a lot of plugins, but they are quite necessary for a full-blown shopping experience and presence.

Product Data

My first development task was actually in Microsoft Excel. We use the Matrixify app to import the products into the store. The product description can be formatted with HTML for an excellent presentation. We have a lot of information to present about the product and will divide that information into tabs. So, it was necessary to add columns to the importing spreadsheet with HTML code to gather the data from other columns, format it, and then have the product description column reference the columns with the code. It was a lot of work to get it right, but it worked pretty nicely. We provide the spreadsheet to a third party who adds the product data to the spreadsheet, and the code in the columns automatically handles the formatting.

Excel code
Some of the Excel code.
What the Excel code generates. The Product Description.

Theme Challenges

As is usually the case with most CMS-based websites, the theme does not always meet the client’s needs. This was the case with this project. While the Empire theme is very robust, a lot of functionality was needed to make it into the required storefront. Here are some of the customizations and the associated challenges I ran into:

  • Category Pages: The site needed to add pages to show specific lighting categories, such as outdoor, track lighting, etc. The Category Pages needed to have Sub-categories. Unfortunately, Shopify does not allow the embedding of sub-collections under a collection. Initially, I built these in the Pages section in HTML and inline CSS. Upon discovering that these pages would need to be changed by the client regularly, I moved the code into Liquid and added JSON fields to expose the settings to the UI for easy customization. Then, the challenge was adding calculations to determine how many rows and sub-categories are on the page and then adjusting the page length to compensate.
  • Home Page HTML Section: Adding a section to the home page with HTML and inline CSS is a nice feature. We added an “About Us” section with an image, some text, and a button. It works, but the only way to change the content is to edit the source code in the box.
  • Dynamic vs. Designated Collection Pages: The Empire theme has a nice feature that allows a customer to click on a product’s vendor name and a Collection Page for that vendor will be dynamically generated. However, we wanted that link to go to the collection page we manually created, with a description and a banner image. This required diving into the Liquid code for the Collection page and changing the vendor link to point to our manually created collection pages.

End of Contract

Unfortunately, as is sometimes the case with website implementation projects, they don’t always go according to schedule. In this case, with a planned completion of April, I had put my feelers out for new projects via LinkedIn. I didn’t expect any immediate hits. However, Kforce contacted me about an opportunity with DIRECTV for a one-year contract. I landed the gig and spent the next two weeks helping City Lights hire another Shopify developer. The good news is that City Lights and the team completed the project, and the new website is doing great. You can read about my DIRECTV experience in the next posting.

citylightsSF.com website.

Why Know the Code?

If you follow the trends in the computer software industry, you might have noticed many articles discussing “No Code” approaches to software and website development. Some have even gone so far as to say that programmers would no longer be needed in the future.

Image by 200 Degrees from Pixabay

I do admit that many of the big website hosting platforms make it easy to dive in and put together a site with a minimum amount of effort. WIX, Squarespace, WordPress, Joomla, Website.com, and Shopify are great examples. You can pick a theme, upload your pictures, drag-and-drop text boxes, buttons, menus, and Boom!, yer done.

So, Why Know How to Code?

Right off the top of my head, I can give two good reasons why developers are still important.

1.) They know what is going on behind the curtain. When a non-developer sits down to build a website with a no-code tool, they sit down and just start building, without giving it much thought. Then the frustration hits when they discover their site is slow, does not look good on mobile devices, fonts and colors don’t blend well, buttons and menus are not staying in the desired positions, and they can’t figure out how to add an extra page. The site sits stagnant and the owner gives up.

A developer who understands the technology will ask the client what they want to achieve with the website. The dev will design a plan for the website, take performance and mobile devices into consideration, structure the pages and menus, select appropriate fonts and colors, and make sure the buttons and menus flow nicely. If the client already has a specific tool in mind, the developer will determine if the tool will match the expectations of the client. Otherwise, the developer can recommend a specific tool or platform based on the client’s requirements.

2.) A developer can customize beyond the limits of the no-code tool. Most of the no-code solutions provide the ability to peek behind the curtain and access the source code for the site. The no-code site tools usually provide a wealth of Themes, Apps, and Plugins for providing the client with decent solutions. However, what if the client does not like the font being used, wants the color changed, or needs an element to be repositioned – and the interface for the tool does not provide for those changes? The developer can go into the code and make the necessary changes.

Why Is This a Topic?

I hear many conversations that make me shake my head.

“I needed a website for my business, so I signed up with so-and-so, but I can’t get it linked to my PayPal account. Can you help?”

“I heard about a new site that uses A.I. to build a website for you. Is it going to put you out of work?”

If you’re a developer, don’t worry. You’re NOT going to be out of a job. If anything, web developers are going to become even more important as businesses, small and large, are discovering they have to be on the web – especially when people can’t visit their brick and mortar stores.

If you need a website, hire an expert! Trust me! You’ll save many hours of time and frustration. Even if the expert selects a no-code solution for you, at least it is a decision made with wisdom and experience. And if later you need to have your site customized, the developer will know what to do.

Site Logo Tims Initials

Wordpress Social Share Plugin powered by Ultimatelysocial