Modify fulfillment.tracking_url variable? - shopify

As part of a Shopify app I'm building, I'd like to modify the fulfillment.tracking_url email variable.
Specifically, when a customer is emailed their tracking number, I want to change the tracking URL from the default carrier so that ALL tracking links are this format:
http://example-store.myshopify.com/tools/track?n=1Z18E08VYW76416035
Is that possible?

This currently isn't possible, but it's something Shopify is thinking of making available. We will let you know once it's out via an upcoming Shopify Developer newsletter and over #shopifyapi.

Related

How do I access Shopify data without advanced account?

All I'm wanting to do is track sales of certain products from a certain date. My company is wanting to add a banner to track sales goals for raising money for charities. So basically, we'd tag a few products as being part of that goal, set a goal, and then need to update the goal progress by a certain amount every time a sale is made on one of those products. As far as I can tell, without access to Shopify's analytics API, this is not possible. How can I do this?
What you want to build is perfectly possible. However, you need to generate Private App Credentials, so you can use Shopify API. It doesn't matter if you have an account by yourself, someone else can follow these steps and send you the credentials your way.
If you don't actually need to modify anything through the API, you could have them set a webhook (Settings -> Notifications -> Webhook) on Order Creation (or similar) that posts to your server and you can check what product got sold and see if it has got the tag.
The "easy" way to do this is to create an app that receives order webhooks and can check on tagged products and keep a sum of target items sold.
Then the app should have use a script tag to insert a simple script with the current value into the web page at a configured place by css selector
OR the app could update one or more snippet files that you could include until the promo is done.
I'd tend to go with the script tag option since that's a bit more flexible and you should be able to change your theme when the promo is over to report results without having to touch the app again.

Read Shopify shop shipping origin

Anyone know how to read a Shopify shop's shipping origin? The address you can read via the Shop API appears to be just for billing.
I've tried using the 'Location' API but that seems to reference the same data as the Shop API.
I hope it may be useful for someone.
There is a field called primary_location_id in Shop resource
I don't know if that's what you are looking for but shop.address.summary liquid variable might help.

How to get value from customer's notes field?

I am working on shopify and my requirement is to add some extra information of user and I did that following this link :-
http://docs.shopify.com/manual/configuration/store-customization/communicating-with-customers/accounts-and-newsletters/capture-additional-information-in-the-account-registration-form
But now I want to know how to get values from customer[note][label] field in my liquid code.
Like I am able to get customer's name using {{customer.name}} which is store in customer[name] field but unable to get values from customer[note][label] field.
customer.note is not exposed via the the customer Liquid object. It is currently only available via the Shopify API. This is because customer notes are not meant for displaying in your store, they are for shop owners to manage customers in the admin area. An alternative is to use metafields instead.
Relevant discussions on the Shopify forums:
Accessing Customer Note in Account.liquid template
how to access to the customer.note with Liquid

Method for letting customers add additional personal information (ex: default size) in Shopify?

I'm a first-time Shopify developer looking for a way to let customers enter additional data about themselves in Shopify. Specifically, I'd like to add a page or modify the account info page so the customer can enter measurements. I'd then like to take that measurement information, process it, and return a recommended size for products in the shop.
Is this possible in Shopify? I am trying to figure out how to add metafields for customers to record their measurements, but I'm a bit lost.
This should work, but would require a fair bit of customization on the merchant's part and is a bit of a hack:
When a customer is logged in their info is available through Liquid.
This allows you to reference that customer's data when rendering shop pages, e.g. a Product page.
You can assign Metafields to customers using the API. These are also available through Liquid.
Putting this all together, you can have a form on the shopfront asking the customer for info once they're logged in. The form submits to your server where you add the info to the Customer object as Metafields using the API. Then you have some clever Liquid on the Product page that either does the necessary calculations itself or embeds the relevant info into javascript to be processed client-side.

Switch the shipping rate dynamically in Shopify

I'm planning a new Shopify project, and the site requires a different shipping cost depending on the postal area of a postcode (e.g. SE1, N7). The plan was to manually add different shipping options inside of Shopify, then AJAX GET /cart/shipping_rates.json, and manually filter to the correct shipping rate by matching the name to postal area.
But my question is -- is there any way to carry over this shipping method to the Checkout as a selected option, and hide the Shipping Method drop-down from the checkout to prevent them choosing a different the shipping cost?
... Or, ideally, is there a way for me to directly override shipping costs through the API?
I don't know of any onboard functionality, which can facilitate this.
But there is a quite hacky workaround, that I use to filter the shipping rates in the checkout page.
Through the "Additional Google Analytics Javascript" field you can sneak a JS on every page of the shop, including the checkout. Here you can basically manipulate the shipping rates as you like.
In your case, the code must be aware of the shipping_address zip code. You can try to set a cookie on the first checkout page and then read the same cookie on the second.
Unfortunately, this isn’t possible with Shopify’s existing checkout.