Which LightSpeed Point of Sale Will Work Best For Your Next Endeavor into eCommerce: LightSpeed OnSite or LightSpeed Retail?

resized-photo-1431605695381-f4a9c3cdd150

The title is a bit of a trick question really.

Because by the time most folks go looking for advice or help with an eCommerce site, they’ve already got one. They’ve also usually already bought (or signed up for) a Point of Sale System. Problem with this way of going about it is, by the time they need help they’re locked into one system or another, having often invested a serious amount of cash.

Whether the $$$$ was allocated for an eCommerce site or the latest cutting edge Cloud Point of Sale system – they’re hardly ready to do a 360 degree turn and start from scratch with something else based on my ramblings (though some might call them findings based on solid empirical data!).

Hardly anyone I’ve worked for has ever made a choice of a Point of Sale based on how it’s going to work out for the eCommerce site they have always wanted.
Why would it matter to the eCommerce site which POS you buy? For the reason that most POS systems do not synchronize your brick and mortar sales with your eCommerce site sales.

Possible headache:

2 stores, 2 inventories that are unconnected. One store is the eCommerce site with manually updated inventory and the other is the brick and mortar inventory updated by walk-in sales. So a customer buys a product in the brick and mortar – the eCommerce store is essentially clueless until someone logs in and updates stock manually. Not such a huge nightmare for small shops with slow sales. But I’ve known a few people who would groan very loudly if they ever had to do anything manually. But what if you have an eCommerce site with lots of daily transactions as well as lots of in-store sales? Pretty soon you’d be burned out having to manually update the eCommerce stock counts (to match inventory to real life).

Which is why when (around 10 years ago) when LightSpeed for Mac came on the scene some people got real, real excited. Because, from the beginning, one of LightSpeed’s major claims to fame was if you had its eCommerce connector from its POS to its web store, brick and mortar inventory synced with web store sales and vice versa – the inventory pool was one and the same!

Because I know you’ve already read this short post on the difference between LightSpeed Retail and LightSpeed OnSite and you know what eCommerce means
(e = electronic. Commerce = providing goods and services in exchange for money – you add products to your website, people buy them, repeat).

Now let’s get one thing straight. If we can’t get anything but this one thing straight we are still ahead of the game: LightSpeed is first and foremost a Point of Sale system. It is not an eCommerce solution. An eCommerce solution is a package of software that makes up and runs an online store. An online store is only as good as the software that powers it. Yes, LightSpeed has built an eCommerce solution named LightSpeed Web Store which we will discuss in more detail in a later post. But please let’s just make it clear in our minds that LightSpeed’s main focus is providing Point of Sale solutions.

Low cost! Easy to setup! No programming required! It practically runs itself! – a sales rep, lying to you.

So, back to “Which LightSpeed Point of Sale Will Work Best For Your Next Endeavor into eCommerce: LightSpeed OnSite or LightSpeed Retail?”. Let’s first assume you know that you don’t need a Point of Sale system if you don’t have a brick and mortar store.

These are many of the points people have to consider when choosing between the 2 kinds of LightSpeed Point of Sale systems. It’s called real life.

  • Limited Budget
  • Limited Time
  • Steep Learning Curve
  • Employee Knowledge Skills

Do you have a small budget? Do you have only yourself to rely on to learn all the steps and processes for getting setup with LightSpeed? In other words, how much work are you willing to do and do you have to do it all by yourself?

Low upfront cost and not having that much time are the main reasons people choose LightSpeed Retail. And they are naturally attracted to the fact that when they sign up for it they can add the LightSpeed Web Store to the monthly charges for 51.00 USD.
Yeah, yeah, yeah: so what if low prices are based on whether or not you agree to pay 14 months upfront?

What people don’t know is the fact that with LightSpeed Retail + LightSpeed Web Store you have to love one of the approved themes that can be downloaded from the Theme Gallery in the LightSpeed Admin Panel – you might have to learn to love them because in an out of the box situation without any 3rd party solutions (whose services cost money), you’re stuck.

Here’s something not that many people know:
With LightSpeed Retail + LightSpeed Web Store the Web Store theme is not accessible with an FTP program or Control Panel/File Manager. You can make changes, like font colors or how big the type is, using the CSS editor in the Admin Panel. CSS controls how content looks.

Just having access to the Web Store theme CSS is not nearly enough access to be able to extend the Web Store content, not to mention it makes theme development impossible.

Unfortunately, having a small budget and limited time can sometimes mean learning to love what you get with the deal you made.

If you have Mac computers and a somewhat larger budget and would really like to have a custom Web Store think about LightSpeed OnSite also known as Lightspeed for Mac.

Tiny Little Update

Here is a great review of LightSpeed Retail. I don’t think the reviewers are biased toward either type of POS. It’s just a very well put together article that really breaks things down well. The article was first written in 2013 but was updated on Sept. 2015. Read the comments as well. Nothing like feedback from actual users!

Bootstrap 3 post-migration: what if your search form depends on Bootstrap 2.3.2 Typeahead plugin?

You migrated and now bam: Uncaught TypeError: Object [object Object] has no method ‘typeahead’ : (

In Bootstrap 3 the typeahead plugin was left out, didn’t make it, is deprecated (harsh) in favor of not having it at all ( also harsh) – or using Twitter Typeahead and here I thought Bootstrap was Twitter. Shows you how much I know.

You spent a couple minutes migrating to Bootstrap 3 ( OK a couple hours) as soon as the first release candidate came out, like a good little early adapter and now your search form doesn’t typeahead because Bootstrap 3 is acting like it has no idea what that is and so now you just have to suffer. Right? Well, you can still grab the plugin from 2.3.2 bootstrap.js and include it as a regular old js file and the typeahead action in your search form will come back… so it’s not the end of the world after all.

If it were up to me I’d be all Bootstrap 3 all the way but I have to work with LightSpeed Webstore 3 (whose themes are all based on Bootstrap 2). So I can’t just scrap Bootstrap 2 and move on to 3, it’s not up to me. I can’t replace their core files ( LightSpeed Web Store includes CSS & Javascript from Bootstrap 2 in your theme, of course you can remove it with .remove(); if you’re really hardcore).

So if you’re like me and making custom WordPress & LightSpeed Web Store 3 themes you will find yourself having to still have to keep some Bootstrap 2 stuff.

Another weird bit is .collapse. How .collapse is handled in 3 and in 2.3.2. I’m not going to tell you how long it took me to find out why I couldn’t get a simple toggle to work.
Whenever something “javascripty” doesn’t work I blame the javascript. But there were no errors in the console so that was a stumper. You would not think it but CSS can be just as dangerous as javascript. I use dangerous jokingly, but it’s true. Think how powerful display: none is.

2.3.2 .collapse {
position: relative;
height: 0;
overflow: hidden;
-webkit-transition: height 0.35s ease;
-moz-transition: height 0.35s ease;
-o-transition: height 0.35s ease;
transition: height 0.35s ease;
}

3.0.0 .collapse {
display: none;
}

.collapse.in {
display: block;
}

.collapsing {
position: relative;
height: 0;
overflow: hidden;
-webkit-transition: height 0.35s ease;
transition: height 0.35s ease;
}

See what they did? They moved the CSS transition from .collapse to .collapsing – 2 doesn’t have .collapsing.
So because I am using both – making a WordPress theme on Bootstrap 3, a LightSpeed theme on 2.3.2 and 3 ( only the CSS though) I had to add some extra over ride to my Web store theme:

#mything .collapse {
display: block;
}
#mything .collapse.in {
display: block;
}

Both 2 & 3’s js adds inline style to the collapsed element – height: auto and height: 0px;
Because of the CSS conflicts between 2 and 3 versions of .collapse and the missing .collapsing class in 2,
this little over ride actually works but only in combination with the inline styles.

There is a really, really, good reason why you shouldn’t try to use 2 versions of the same thing on the same site running on top of each other. But I wanted to see how Bootstrap3 worked.
It’s really much better, surprise!!!

OK, I’m done. Happy Sunday. What, I should be out in the fresh air because it’s a gorgeous day?

LightSpeed Webstore Pagination: don’t want pagination to show when there’s only 1 page

I don’t want to see pagination when there’s only 1 page (of products). There’s nothing more annoying than seeing that stupid < 1 > – even more so when there are only 3 products in a particular category.

Here is a solution that uses the Products Per Page in Tools > eCommerce > admin panel > appearance > Products > Products Per Page & the Pagination code in crumbtrail.tpl.php OR product_list.tpl.php. In Brooklyn Template the pagination code is in product_list.tpl.php. I think the other Templates have it placed in crumbtrail.tpl.php.

I used the pagination code I found in Brooklyn product_list.tpl.php and just tweaked it a teeny bit. Brooklyn adds a new code (webstore 2.5 and up) to get rid of the default arrow images which I like because those arrow images filenames are hardcoded in a core file which is a huge pain in the butt. So if your pagination code is in crumbtrail.tpl.php, your Template is probably not based on Brooklyn and you will have to incorporate the new code into crumbtrail.tpl.php in order to get rid of the pagination arrow images:

[php]
if($this->dtrProducts->Paginator) {
$this->dtrProducts->Paginator->LabelForPrevious = _sp(‘previous’);
$this->dtrProducts->Paginator->LabelForNext = _sp(‘next’);
}
$strPaginator = $this->dtrProducts->Paginator->Render(false);

?>
[/php]

If you get stuck just open Brooklyn, find product_list.tpl.php and you will see what I mean.

By telling TotalItemCount only to show pagination if there are more products in a category than the amount you chose in Products Per Page, you can make it go away when there’s only 1 page. Here the TotalItemCount is told to check if there are more than 8 products on a page:

[php]
<?php if ($this->dtrProducts->TotalItemCount > 8) : ?>
<?php if($this->dtrProducts->Paginator) { echo $strPaginator; } ?>
<?php endif; ?>
[/php]

When there are more than 8 products, pagination shows up. This pagination thing has bugged me for a while. I was glad to find a solution and I hope it helps someone else. Please do be aware that if the Products Per Page number is changed you have to change the number in the pagination code, too.

In many places in the templates I see conditional statements checking to see if a particular setting has been set in the configuration settings. So I’m sure if I gave it a bit more time I could use a conditional statement to check what the Products Per Page amount is and that way if the setting is ever changed one wouldn’t have to edit the template file as well. But I am pressed for time. I don’t even have time to write this post. Bye!

LightSpeed Webstore: Don’t want button count in twitter button? Edit sharing.tpl.php

After spending a stupid amount of time trying to fit all the sharing buttons side by side in the exact same vertical alignment in a really small space (256 pixels with some padding on the left) I was about to shoot myself.

Instead, I decided to just go to Twitter and create the button all over again and stick the new code in sharing.tpl.php. The new button I made did not have button count turned on.

https://twitter.com/about/resources/buttons#tweet

Why did I not want the button count? Because with the button count turned on the Twitter button was created by JavaScript to be 120 pixels in width and had to be placed last or there was a big old gap between it and the next button. The actual size of the button is really only about 56 pixels. It’s the button count that adds all the extra width.

I opened mytemplate/sharing.tpl.php and found the twitter button stuff highlighted it and pasted this code in its place:

[php]
<a href="https://twitter.com/share" class="twitter-share-button" data-count="none">Tweet</a>
<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
[/php]

You’ll notice the default twitter button code already has the data-count=”none” so what gives?

I have to admit I have expended as many braincells as I care to with this issue so I am not using any more trying to figure out why the default button code with data-count=”none” showed the button count but the one I got over at Twitter’s button maker didn’t.