Shopify
-
Shipping is Easy Right?
The Shopify forums and chat channels are chock-a-block full of merchants that subscribe to the theory that shipping is easy. Some common complaints include: Why can't I have free shipping for a single product? Why can't I ship free to a small list of local zip codes? What if I have one thing in a weird tube and everything else in a box? Why can't I use dimensional weights? All legitimate...
-
Average Cost of Inventory
For accounting purposes there are a couple of ways of dealing with selling and purchasing of inventory and the changes in the cost of purchasing inventory over time. It is rare that a merchant will purchase items to sell in their Shopify store for the exact same price over time. It can be important to use an average cost price that takes into account these purchasing price changes over...
-
Shopify and Real-Time Currency Exchange
The Profiteer App is meant to expose profit or margins on a sale by subtracting the cost price of goods sold from the selling price of the goods sold. A common business issue faced by many merchants is the effect currency exchange rates may have on their sales. A shop located in Canada may sell products to Canadians in Canadian currency, but the products sold may have been purchased and imported...
-
A Word to the Wise
Had a real laugher/shocker at the same time. I develop so much App code where the data processing is a flow and not a stop:persist:process:continue action that sometimes you get burned by that. Everything was working fine as "hey download all that shop's orders, parse them, deal with the contents, and move on". Everything as working fine on MY itty, bitty, little dev shop. One of my...
-
Oh, Hey Whiners! It's All About Inventing What You Need
In the course of day to day delivery of new functionality and services in Shopify platform Apps, there is a lot to be said in how much we get to take for granted in terms of stuff invented elsewhere, by others and for general use. Ruby is a fine example in that it is a free open source scripting language that anyone can download, change, compile and use. Most people will just install it on their...
-
CORS and Shopify
In the past there have been more than a few developers totally lost when it comes to dealing with Shopify, Ajax, Apps and cross-domain coding issues. A little history can perhaps explain this. Javascript in the browser on desktop computers is useful as a scripting tool and can be leveraged for nefarious purposes. On a mobile phone it is less of a problem since every App on a phone has it's own...
-
How to do Fulfillments
So your shop is a raging success. You are receiving upwards of 100, 200 maybe even 454 orders per day for your popular product. You are in business and the success of getting to this point is keeping you flush with excitement. You are like many merchants operating in the e-commerce realm and you have your shop inventory stored with company MaxiFulfillments LLC. Shopify made it easy for your orders...
-
Sometimes You Just Never Know
There are many opportunities to produce Apps that provide new functionality to e-commerce platforms like Shopify. Some might argue the low fruit has all been picked but others continue to clamor for more. As a developer it is easy to produce an App but it turns out to be very hard to support that same App by polishing the rough edges, introducing new features and ensuring everyone is happy using...
-
External Inventory Suppliers and Feeds
The reality of working with suppliers for many merchants can be a daunting and time consuming task. Take any domain and chances are you'll stumble across an industry either deeply stuck in the past, or at the very least struggling to keep up with modern technological advances. A merchant may achieve some level of success attracting customers and converting carts with inventory at a certain level...
-
What is Perceived As Basic
It remains consistent over the course of the last seven years or so that people who subscribe to Shopify still voice that they believe the platform falls short of their basic expectations. A case in point is a merchant that just posted the following thoughts. I don't want to rely on a 3rd party for support or trust that they'll be around by year's end, or know that it won't disrupt or break a...
-
interesting line item properties issue
In the last year I have removed crufty cookie based customization code that exploited Shopify's cart.attributes to replace it with the more modern line item properties. It is a pleasurable process and sometimes I have deleted 2000+ lines of goofy customization code that never really worked well with 50 that do. The problem with the old solution is in how Shopify sets up cookies and sessions and...
-
Summer 2013 Bootstrap
July is the month I mark off birthdays on the calendar, so why not mark off this one with a return to blogging. Most likely has been a decade since I wrote my first blog post. Pretty scarce since then. My plan for this summer is to finish off polishing some needed upgrades to some popular Shopify Apps I have created, and to continue servicing my great clients with code they need to expand their...
-
How to combine DelayedJob with Shopify API Limits gem
As anyone who has done any serious web application development using the cloud (in my case Heroku) to host an App supporting Shopify shops, you need to be aware of the API call limits of both the shop itself and across all the shops the App is installed in. The 300 | 3000 rule - you can call one shop 300 times continuously or make 3000 calls to all shops continuously. We used to have to write...
-
The we are Sorry! App
We are all Happy, not! # Direct link to this section Scenario. You are running a very busy Shopify business, closing hundreds of orders per day. Your product is great, Shopify works great, and your customers are by an large happy. Occasionally, no matter how well things are going, a customer is going to phone up and complain about something. The product was not quite what they expected....
-
Lesson learned about ShopifyAPI Billing
I am in the midst of no longer giving away simple (or complex) Apps for free, but instead, hooking into the Shopify Billing system built into the API, so I can receive some lunch money from my hard work. So, I receive access to a store, as the store admin, deploy my code, and test out the Recurring Charge calls. It all works as expected in my experiments, so I call up the shop keeper and let her...
-
Using the Shopify API command line interface (CLI)
A good many developers probably have installed the shopify_api gem from rubygems.org in order to built an Application to provide new functionality to shops. In fact, without even wanting to develop a full application, this gem is great for quick and dirty manipulation of stores. I am constantly using the Ruby console IRB to check if certain inventory makes sense, or other tidbits. It is almost...
-
Fulfillment Messaging App
When running a Shopify store, sometimes you want to treat your orders a little different than the normal flow allows. It can really depend on your shipping alliances, your inventory and what your customers expect for communications. When an order is booked, the customer and shop keeper receive an email that serves as a first communication. There are quite a few other email templates that can be...
-
Shopify App Development for Vendors
I have now successfully deployed and tested over 15 kinds of Shopify App systems to support various clients. The pattern I have adopted has grown more stable and flexible as I continuously experiment with the basics. Sinatra is my favourite Ruby framework for many reasons. It is very easy to create Domain Specific Languages (DSL) processing, which is perfect for Shopify Apps. It handles models and...
-
Related Products Shopify Application
Related products recently caught my attention recently when evaluating how to best render a Product, along with what the store owner thinks are related products, hoping to increase chances of selling one or more products. The algorithms I found published on the forums were by and large based on the following algorithm: Loop through the collection.all for products inside this loop: Loop through...
-
Now offering Shopify Training
With about four full years of experience playing with Shopify's system, the Shopify API, the Javascript API, Ruby, Rails, and Liquid, I feel prepared to teach what I have learned to others. I will soon open my first and very own Shopify store, with custom courses as the product for sale. I will likely keep it simple, offering time in exchange for money. You can request a course to learn anything...
-
Shopify Vision, Compass and Sass Combo
I have not used Vision lately in any of my Shopify development, but that has recently changed due to some new work habits. Vision # Direct link to this section Currently hooked up to the latest version. Installed it in my /workspace. It runs using the command line, ruby vision.rb. I symlink a Shopify store into Vision's /themes directory allowing me to keep the actual code in my Shopify...
-
Identifying Code Smells in Shopify
The Shopify inventory system is based upon Products. Once you define a Product, you can decide what Variants of this product exist, and add them as needed. One sure fire code smell with inventory here is when you see a system full of identical products, added to the inventory without using Variants. This smells for the reason that it is avoiding an efficient internal algorithm for rendering...
-
Building a Shopify App on Sinatra
With The Shopify API it is pretty easy to hook up a custom application residing on Heroku servers to a Shopify store. The authorization is nicely handled and once a store accepts the application, many new possibilities for new functionality are present. Sinatra is ideal since it supports the concept of mapping URL's directly to methods. Tricked out to render Haml and Sass, templates are simple and...