Get Parcelify!

Documentation and FAQs

Table of Contents

    Rate elements

    Public Details

    This is the information shoppers will see when the rate is presented to them. 

    Best Practice:

    The NAME should be short and descriptive, typically describing the method of delivery and and some simple descriptor that let's the user understand why they would choose this rate and/or what to expect.

    Example NAME: In store pick-up 

    The DESCRIPTION is usually a description of the service level associated with the rate.

    Example DESCRIPTION: Please allow 1 business day to prepare your order. If urgent please call 1 555 555 5555.

    ...and what it looks like at checkout:

    Advanced Settings

    You can likely ignore these. Though the disabled check box is super handy when working on a rate or for rates you don't use all the time. By selecting this check box you can disable a rate without deleting it. 


    The price the shopper sees at checkout is a calculation: 

    Total Price = Base price + (Price per gram * (grams - starting grams) + (Price per cent * (cents - starting cents) + extras per item

    BASE PRICE is the starting point for your rate.

    The BASE PRICE can be left at $0. If the BASE PRICE is $0 and there are no addition prices, then you have a free shipping rate!

    You can use the PRICE PER GRAM and PRICE PER CENT calculations to increase the price of shipping as either the price or weight of the order increase. 

    Example PRICE: I want to charge $10 base rate for shipping my product but i want to increase the shipping by $0.25 per gram after the first 500 grams.

    IMPORTANT: All prices are in in cents, pennies, pence, etc. So if you want to charge a base price of $5, you enter 500. 


    Limits can be applied are there to limit your rate to certain conditions.

    IMPORTANT: When specifying limits, always use the lowest unit of your currency and weight system. Cents for US, pence for UK, etc.

      Limits allow you to restrict this rate to only show when the order:

      1. meets a minimum price and/or weight requirement
      2. falls within a defined price and/or weight range
      3. is less than a certain price and/or weight

      These limits can be combined.

      Example LIMIT: you can specify that the rate applies when the order is at least $50, but weights less than 10 Kgs.


      Probably the trickiest part. (Don't miss our PRO TIP a little lower on the page)

      Filters allow you to limit the availability of your rate based on specific conditions, such as product SKUs or address fields.

      They work by combining a FIELD, a VERB and a VALUE.

      • The field represents the product or address field on which you’d like to apply a condition
      • the verb represents the operation with which you’d like to compare the values against
      • the value represents what you’d like to test your condition against.
      Example FILTER:Let's imagine you want to create a filter to say that you only want your rate to apply when all the products in the order have a SKU that starts with either R1 and S1.
      FIELD: you would select 'Product SKU' from the drop down
      VERB: you would choose 'Start with' from the list of available verbs.
      You would enter 'R1| S1' in the value field
      Then because we want the rate to apply only when all of the items in the cart meet this condition we set the radial button to "All items must match the above".


      • Use the | is used to mean "or"
      • Upper and lowercase letters are considered the same
      • Country codes follow the ISO 3166-1 alpha-2, 2 letters format
      • State / Province codes follow the ISO 3166-2, 2 letters format
        If we wanted the rate to apply only when at least one item in the cart meets the condition we would simply choose the "One item must match the above" radial button. 

         Pro tips

        Pro Tip #1 "Creating a filter is like writing a sentence". When creating a Filter think of it as writing a sentence: "I want this rate to be used when the [FIELD] [VERB] [VALUE]." "I want this rate to be valid when the 'Product SKU' 'Start with' 'SR'"  And then you string these conditions together: "I want this rate to be used only when [FIELD] [VERB] [VALUE] and [FIELD] [VERB] [VALUE]."

        Pro Tip #2 "When filtering against products its one or all". When using product fields, you’ll get asked if you want this filter to be a match for all items, or only one item. “all items must match”, then for this filter to be valid, it needs to apply to all items in the cart. If a single item doesn’t comply to the defined rule, the entire filter isn’t valid. “single item must match”, then the filter is valid as soon as one of the item is the cart is valid, even if other items wouldn’t normally comply.



          The include filter checks whether or not the specified value is included anywhere in the field. It doesn’t matter if the value is at the start, the end or in the middle of the string. If it’s there, it’s good. Let’s say you’d like to offer a rate for the entire Elgin street, no matter the civic number or the appartment number, or if people add “street”, or “st.”, you could go as follow;

          • Field: Address line 1
          • Verb: Include
          • Value: Elgin

          Values such as “123 Elgin Street” would then be perfectly valid.


          Same thing as include but… the opposite. This is mostly useful if you’d like to exclude specific items from getting your rate. Say you’d like this rate to be valid for all carts except if it contains a product with a SKU of ABC1 or DEF2, you could do;

          • Field: SKU
          • Verb: Exclude
          • Value: ABC1|DEF2

          This evaluates if the field equals the value you need to match the exact value, with accents and everything.

          Start with

          This will check if the field starts with a specific value. Let’s say you’d like to offer a rate to the entire Beverly Hills region, you could check if the Zip code starts with either “902” or “903”.

          • Field: Zip code
          • Verb: Start with
          • Value: 90(2|3)
          End with

          Same thing as start with, but will evaluate the end of the string instead of the beginning. It supports multiple values as well.


          A regular expression is a pattern describing a certain amount of text. That makes them ideally suited for searching, text processing and data validation. Regular expressions rely on a very strict, yet powerful syntax. While it might seems hard to grasp at first, the basics are quite easy to learn.

          • ^ : Start of line
          • $ : End of line
          • [abc] : A single character of: a, b, or c
          • [a-z] : Any single character in the range a-z
          • \d : Any digit in the range of 0-9
          • \s : Any whitespace characters (space, tab, etc)
          • . : Any single character
          • (a|b) : a or b
          • a? : Zero or one of a
          • a* : Zero or more of a
          • a+ : One or more of a
          • a{3} : Exactly three of a

          Let’s say you’d like to match all Northern Ireland postcodes, you could go as follow;

          • Field: Zip code
          • Verb: Regular expression
          • Value: ^BT\d{1,2}\s

          Rate would then be valid for all addresses with a zip code that starts with BT, immediately followed by one or two digits, then again followed by a whitespace. You can find more information here and you can test your skills here.

          Additional cost per item

          Once you have a rate setup with your conditions, you can always decide to add additional charges for specific items.

          Say you sell both postcards and tables, your $2.99 standard shipping might not cut it for those big, heavy items. That’s where those “extras” come handy.

          They rely on the same field, verb, and value pattern as described for filters, with the addition of a “price to add”, which represents the value you’d like to add on the shipping rate if described condition is met.

          Let’s say you’d like to add $50.00 shipping for each of those tables (sku: ABC1) in a cart, starting after the first one. You could add an extra;

          • Field: Product SKU
          • Verb: Equal
          • Value: ABC1
          • Price to add: 5000
          • After N item: 1

          That way, in addition to our $2.99 standard shipping, an extra charge of $50.00 would be added for every table present in the cart, except for the very first one.

          or if you need to add the extra charge even for the first table set the After N item to 0. 

          • Field: Product SKU
          • Verb: Equal
          • Value: ABC1
          • Price to add: 5000
          • After N item: 0

          Product Sets

          Product Sets allow you to set prices for groups of products. Say for example you sell posters and ship them in tubes. You have a small tube that holds up to 4 posters and a larger tube that holds up to 8. So the price to ship 1 or 4 posters is the same and the price to ship 5-8 is the same. 

          With Product sets you can define these quantities and set the pricing rule for them.

          So in this example lets assume all the posters in the shop have SKUs that start with "poster" and that the price you want to set to ship 1-4 posters is $5.00 and 5-8 posters is $7.50.

          (Note: What happens when someone orders 9-12 posters? The rate they will be charged is $12.50, 13-16? $15 and so on...)

          Then you would configure the Product set as follow:

          Duplicate rate

          Often merchants need to create multiple rates that are very similar. To reduce the effort in creating these nearly identical rates you can now "duplicate" an existing rate then edit it. 

          You simply use the "Duplicate" button on the Shipping rate summary page:

          Doing this will create a disabled copy of the rate (which you can then rename, edit and enable):



          Free shipping on everything in US, except those few big, heavy items, then $10 worldwide shipping.

          Say you want to offer free shipping on everything but on product A, B and C for which you’d like to charge $5, $10 and $15 respectively. And this needs to be restricted to US as shipping oversea costs much more. This requires a specific setup, but it’s entirely doable. You’ll need;

          1. Create a first rate that we’ll call “Standard shipping” for now.
          2. We want this rate to be mainly free, so let’s set the base price to 0 cent.
          3. Let’s restrict the availability of the rate to US only. Add a filter so that country code must equals US.
          4. Now let’s add some “extras” for those heavy items. SKU must equal A|B|C.
          5. That’s it, we now have our US rate ready. Click save.
          6. Let’s create another rate for worldwide shipping. Let’s call it “International shipping” for now.
          7. Set the price 1000. Don’t forget, prices are all in cents.
          8. Now we want this rate to be available everywhere but US. Add a filter to that country code excludes US.
          9. Add again those extras if required.
          10. All good, click save. You’re done.

          I dropship and prices differ from Vendor A and Vendor B

          Dropshipping or not, sometimes, shipping prices differ depending on the vendor, or SKU. You can achieve this by using additional charges per item, as described in the previous example. So, for the sake of this example, say you want a shipping price of 5$ in addition to the following rules;

          • Vendor A charges 5$ more per item, after the first item
          • Vendor B charges 8$ more per item
          • Vendor C charges 8$ more per item
          1. Create a single rate. Not one rate per vendors. Just one, single rate.
          2. Set the base price to whatever you want.
          3. Add an “extra” for when vendor name equals A. Set the price at 500, with start after N item at 1.
          4. Add an "extra" for when vendor name equals B | C set the price at 800.
          5. Enjoy. Click save. You’re done.

          Free shipping in Canada up to 1kg, $10 afterwards. 15$ worldwide up to 1kg, $30 afterwards.

          When we add limits to our rates, we end up with a matrix of availability. We’ll need as many shipping rates as there are cells in our matrix. In our case, four rates.

          1. Create a first rate for Canada. Let’s call it “Free shipping”.
          2. Set the base price to 0 cent.
          3. Let’s add a filter for country code equals CA.
          4. We also want to restrict this rate to below 1kg, so add a maximum weight of 1000 grams.
          5. That’s it! Click save.
          6. Now create another rate, let’s call it “Standard shipping”.
          7. Set a base price of $10.
          8. Again, let’s restrict that rate to Canada by adding a filter for country code equals CA.
          9. We’ll need the opposite limit, so add a minimum weight limit of 1000 grams.
          10. All good, click save.
          11. Rinse and repeat for worldwide shipping, except that filters must exclude country code CA.

          Free shipping within a fixed distance of my location

          Parcelify does not support distances. The closest thing you can do to this setup is maintain a fixed list of zip codes to which you’d like to offer your special rate.  So let’s say I’m in Canada and I want to offer free shipping around my office, in Ottawa.

          1. Create a free rate. Let’s call it “Neighbour delivery”.
          2. Set the price to 0 cent. Remember; prices are always in cents.
          3. Add a filter for postal code. In my case, I want to support K1N, K1P, and J8Y. Using regexes, we can write (K1(N|P))|(J8Y).
          4. Add a filter for the country code equals CA. Otherwise the rate would be available in all countries sharing a similar postal code pattern, which I obviously don’t want.

          Frequently asked questions

          Can I use Parcelify in conjunction with another service provider?

          Yes. But bear in mind that one cannot restrict the other from showing up rates. All rates defined within Parcelify will work independently from rates defined elsewhere.

          When a client goes to checkout, Shopify will request rates from all shipping rate apps you have installed and order all valid rates from least to most expensive. 

          Can I use this app if I don’t have 3rd Party Shipping Carrier API?

          No. And it’s not because we don’t want you to, this is a restriction imposed by Shopify. 

          Shopify Plus merchants have access to this API by default.

          If you aren't a plus merchant you still have 2 other options!

          1. Switch your billing cycle to annual. with annual billing you get access to the Real Time Carrier Rates API.
          2. Contact and ask to have the Real Time Carrier Rates added to your plan.

          When a cart contains both item A and item B, two rates show up, but I want them to be combined!

          This is because you used filters, whereas what you really want is to use “Additional charge per item”. Filters are for availability, additional charges are for the price. So if you want a different price for item A and item B, you don’t need two different rates.

          Simply create one rate, then add an additional charge for item A, and another one for item B. This way, only one rate will show up, and all charges will be added up.

          Can Parcelify blocks certain rates coming in from USPS or Fedex?

          No. All rates defined within Parcelify will work independently from rates defined elsewhere, and the opposite is also true. Two shipping apps cannot interfere with one another.

          Can I use distances to limit rates, such as a radius of 10km around my office?

          No. Parcelify doesn’t support distances. you can however restrict the rates to a set of postal codes.

          Can I set a custom message when there’s no rate available?

          Shipping carriers do not control texts and messages within Shopify. They provide list of rates, that’s it. That being said, you have full control over the text displayed in Shopify, and you can use your Theme Translation tool to find the text you’d like to change and tweak it to fit your needs.


          To install, simply head to the Shopify App Store and follow regular procedures.

          Due to Shopify’s restrictions on external shipping carriers, you’ll need to have access to the Real Time Carrier Rates

            View Parcelify on the Shopify App Store