Programming

Z.ips.ME 2.0 – Why I Updated Our Dormant Open Source URL Shortener

A Brief History Lesson Back in 2009 I created an open source URL shortener called Z.ips.ME as an alternative to using bit.ly and other services on Twitter. At the time, Twitter counted the characters in a link against your 140 characters, so link shortening was a big deal. I updated it a few times, the last being in April of 2010, and then…nothing. In 2011 Twitter rolled out their t.co URL shortener, minimizing the usefulness of a project like Z.ips.ME. Every link now counts as… Continue reading

6/6/17

Opportunity Cost

One of the concepts that we apply to our decision making almost daily is the idea of opportunity cost. Opportunity cost is defined as: the loss of potential gain from other alternatives when one alternative is chosen. Often times a decision to tackle a new project doesn’t cost us anything monetarily, or the cost is negligible. Examples would be programming a new feature, trying out a new type of promotion, or even picking up a single new product for a product line we already carry…. Continue reading

4/11/17

Our New Customer “Self Service” System Is a Game Changer

The massive project that I referred to a few weeks ago is what we’re referring to internally as “customer self service” because it allows customers to instantly resolve a variety of issues without needing to contact our customer support team. It’s been live now for a few weeks and we can already see the huge impact that it’s going to have on our business. What It Does There aren’t very many online retailers with functionality like this, and I’m sure one of the reasons why… Continue reading

12/8/16

Programmer vs. Business Owner

This week I’m wrapping up one of our more ambitious programming projects (which I’ll be posting about when it’s launched). I often find my roles as both a programmer and business owner at odds with each other. It’s easy to get caught up in writing perfect code, programming for every single possible scenario, adding additional features because they’d be cool, or writing code that will scale to handle 100x the volume that we’re currently at. It’s easy to turn a two week project into a… Continue reading

11/7/16

Our Credit Card Form Redesign & Saved Card Feature

We first launched our own shopping cart for Detailed Image in 2007. In the time since the credit card form has gone largely untouched. Each time we did a design refresh we’d make sure it still worked and looked good, and we’ve upgraded the back-end portion of our credit card processing, but the front-end checkout form that customers use to submit payment information has always been the same. In part, this was because it got the job done. But it’s also easy to ignore: we… Continue reading

6/9/16

Insert & Update WordPress Blog Posts With This PHP Script

In my last post I mentioned our new promotion system that can “duplicate” a previous promotion by updating the dates, creating a new coupon code or scheduling items to go on sale, and then creating a new newsletter, blog post, landing page, etc. One of the big challenges for me was coming up with the correct way to insert and update new blog posts in WordPress so that we never actually have to log in to WordPress to manage our promotions. We’re able to do… Continue reading

5/9/16

Automation Instead Of Manpower

Last week I launched an interesting internal programming project that I had been working on for a few months. Whenever we run a sale or promotion there are an increasing number of things that need to be created and scheduled: a newsletter, a blog post, a home page banner, sitewide banners, social media posts, etc. All of this was previously organized by Mike in a Google Spreadsheet. If we wanted to run a similar promo to a past sale, at best we could reuse the… Continue reading

4/28/16

Overhauled DI Packages, Just In Time For Spring

Grouping items together into a package and selling them at a special bundle price has a couple of huge benefits to any retailer: Customers know that they’re getting products that are compatible with each other, a challenge for new customers in many industries, including detailing Customers often save more than they could by buying the products individually Retailers can provide more value to the customer while still working within MAP pricing guidelines (minimum advertised price). This is why you always see Best Buy or Amazon… Continue reading

2/22/16

Update Season

The past few weeks I’ve been working on updating and upgrading almost all of the software and services that power our website: the PayPal API, FedEx and USPS 2016 rate changes, and new versions of PHP, MySQL, and Apache. It’s a combination of coding, system administration (not my strong suit), and obsessively monitoring after launch to ensure nothing goes wrong. I tend to save up work like this for January because it’s our slow season, but I’ve never had this much pile up at once…. Continue reading

1/19/16

Why It Took Us 8 Years To Add Wishlists

Over on the Detailed Image Blog I wrote a post describing some new features that we added last week, including the addition of a wishlist, easier ways to reorder products, and more personalized product recommendations. The latter two are the most intriguing features with some creative potential for expansion, but the decision to finally add a wishlist after all of these years is probably more noteworthy. Back in 2010 we added a feature called Saved Carts. After adding items to your shopping cart, you could… Continue reading

11/16/15