WEBサービス」カテゴリーアーカイブ

Shopifyに独自の入力項目を追加する方法(フォーム項目、ファイルアップロード機能)

記事を読む前に…。
実はこの記事の文章書いたの、一年以上前でした。
ずっとEvernoteに眠っておりました…。
少し情報が古いかもしれないけど、まぁ使えるんじゃないかな。
アップデートすることもあるかも。

Shopifyの商品に、独自で入力欄を追加して欲しいという要望があったので忘備録だよー。
今回は通常のテキストボックスなんかのフォーム項目と、ファイルアップロード機能を追加しています。
ファイルアップロードが曲者だけど、意外となんとかなる。
さあいってみましょう。

まずは商品ページ用にオリジナルのテンプレートを追加。

  1. テーマのtemplates/product.liquidを複製
  2. 複製したファイル名をproduct.hoge.liquidに変更
  3. 作ったファイルを開いて、「{% section ‘product-template’ %}」を検索
  4. 「{% section ‘product-hoge-template’ %}」に変更して保存
  5. テーマのsections/product-template.liquidを複製
  6. 複製したファイル名をproduct-hoge-template.liquidに変更

追加するフォーム項目を作るよ。

  1. Line Item Property – Shopify UI Elements Generator にアクセス。Shopify公式のフォーム項目生成ツールだよ。ここで生成できるのは通常のフォーム項目のみ
  2. Set your form field のところで作成したい部品を生成。右のPreviewで実際の表示が確認できるよ
  3. 出来たら下部のGrab your codeにあるコードをコピー

作ったフォーム項目をテンプレートに入れるよ。

  1. さっき作ったsections/product-hoge-template.liquidを開きます
  2. 「type=”submit”」を検索。これがある箇所が「カートに追加」ボタンの場所
  3. ↑より前に、コピーしたコードを追加
  4. (これはオプション)ペーストされたコードはpタグで囲まれてるので、気になる人はdivタグなどに直しておこう

ファイルアップロード機能を追加したい人はさらに下記をどうぞ。

  1. さっき作ったsections/product-hoge-template.liquidを開きます
  2. 「form ‘product’, product, class: form_class 」を検索、テーマによってはHTMLのformタグになってるかも
  3. コード内に「, enctype: ‘multipart/form-data’」を追加。HTMLのformタグになってる場合は「 enctype=”multipart/form-data”」って入れてね。
  4. もしコード内に「novalidate」がある場合はとっておいたほうが良いみたい…。自分が触ったコードにはnovalidateなかったので未確認。
  5. 「type=”submit”」を検索。これがある箇所が「カートに追加」ボタンの場所
  6. ↑より前に、下記のコードを追加。
<div class="line-item-property__field">
    <label for="custom_photo">ほげ</label>
     <input required class="required" id="custom_photo" type="file" name="properties[ほげ]" class="product-form__input">
</div>

上記は必須入力項目になってるので、必須にしなくていい人はinputタグから「required class=”required”」を抜いてちょ。

ここまで出来たら、商品に独自のテンプレートを適用させてみよう。

  1. 修正したテーマをtheme kitなりなんなりでShopifyにアップロードしとく
  2. Shopify管理画面の商品管理から、独自の入力項目を表示させたい商品をクリック
  3. ページ右下の「テーマテンプレート」のドロップダウンから、「product.hoge」を選択
  4. 実際の商品ページに追加した項目が表示されていればOK!

※ファイルアップロードが出来ない場合は記事の最後の方にヒントを書いてみたよ。確認してみてね。

どうせならカートにもカスタマイズ項目の内容を表示したいよね。
さあやってみよう。既に表示されてる人は下記抜かしてOK!

  1. sections/cart-template.liquid を開くよ。ない場合はtemplates/cart.liquidかも。
  2. 「{{ item.product.title }}」で検索。
  3. 検索したコードの下に、下記をコピペしてね
{% assign property_size = item.properties | size %}
{% if property_size > 0 %}
  {% for p in item.properties %}
    {% assign first_character_in_key = p.first | truncate: 1, '' %}
    {% unless p.last == blank or first_character_in_key == '_' %}
      {{ p.first }}:
      {% if p.last contains '/uploads/' %}
        <a class="lightbox" href="{{ p.last }}">{{ p.last | split: '/' | last }}</a>
      {% else %}
        {{ p.last }}
      {% endif %}
      <br>
    {% endunless %}
  {% endfor %}
{% endif %}

修正したテーマをアップロードして表示確認してみよう。
これでカートにも入力した項目が表示されているはず。やったね!

さらにさらに、お客さんとスタッフに送られる購入通知メールにもカスタマイズした内容を表示させちゃうよ!

  1. 管理画面から「設定>通知」を開く。
  2. 注文管理の注文の確認(一番上)を開くよ。これがお客さんに送られるメール。
  3. メール本文 (HTML)内を「{{ line.title }}」で検索。表示されない場合はカギカッコをとってみたりしてみてね。 
  4. 検索したコードの下に、下記をコピペしてね。
<span class="order-list__item-variant">
{% for p in line.properties %}
    {% unless p.last == blank %} / {{ p.first }} :
        {% if p.last contains '/uploads/' %}
            <a href="{{ p.last }}">{{ p.last | split: '/' | last }}</a>
        {% else %}
            {{ p.last }}
        {% endif %}          
    {% endunless %}
{% endfor %}
</span><br/>

保存して、もう一つスタッフに送られるメールも直すよ。

  1. 管理画面から「設定>通知」を開く。
  2. スタッフ注文通知の新しい注文を開くよ。
  3. 上記同様メール本文 (HTML)内を「{{ line.title }}」で検索。みつけたらすぐ下に同じコードをコピペしよう。

保存したら、実際にテスト注文をしてみよう。
メール内にカスタムで追加した内容が表示されてればおっけー!

ちなみに、Shopifyにファイルアップロード機能を追加しても、特に追加料金はかからないみたい。
有料アプリで対応するとなると結構な月額費用が取られちゃうので、できればコードで解決してあげれると良いよね。

ファイルアップロードが出来ない場合

ファイルアップロードの項目は表示されているのに、アップロードされていないっぽい場合。商品をカートに入れる動作がajaxで制御されていないかな?
ajaxだとファイルアップロードがうまく動かないみたいなので、ページ遷移の方法に変更しよう。
ページ遷移への変更方法はテーマによってまちまちだと思うけど、管理人の使っていたテーマは管理画面のテーマカスタマイズから変更できた。
theme.js内のajax制御をコメントアウトしたら出来たって報告も見つけたので、参考にしてみてー(この記事最後で紹介している参考サイト一覧の、最後のサイトだよ)。

参考にさせていただいたサイト

日本語で画像つきで詳しく解説してくれているサイト。ほんっとありがとうございます!
Shopifyの商品ページにカスタム内容の入力フォームを追加する | グラフィックデザイナー奮闘記
Shopifyの商品ページにデータアップロード用のボタンを用意する | グラフィックデザイナー奮闘記

Shopify公式が解説しているカスタマイズ方法、懇切丁寧
Product pages – Get customization information for products – Shopify Community

ファイルアップロードでひっかかったときに参考にしたShopify Communityのスレ
Customers to upload image – Shopify Community
Solved: Custom File Upload Not Showing In Cart – Shopify Community

【LastPassユーザー向け】Heartbleedの脅威から簡単に身を守る方法

Heartbleed、IT関連の方ならご存知でしょう。
過去最大級と言われるセキュリティ災害です。

詳しい内容と対策はこちらが詳しいです。
ウェブを襲った最悪のセキュリティ災害「Heartbleed」から自分の身を守る方法

おそらくインターネットを使用する大多数のユーザーに影響がある、この事件。
もしパスワード管理にLastPassを使っている場合、あなたはラッキーかも。
LastPassの機能で、Heartbleed対策ができてしまうのです。

その機能というのは、昔からある「LastPassセキュリティチェック(セキュリティチャレンジ)」。
パスワードの強度やセキュリティレベルを調べてくれる機能なのですが、これにHeartbleed対策も追加されました。
さすがLastPass、ユーザーの要望分かってるわあ。

やり方は以下のとおり。

  1. ブラウザのツールバーにある、LastPassのアイコンをクリック
  2. 出てくるメニューから「ツール>セキュリティチェック」を選択
  3. 新しいタブが開くので、ページ内下部に何故かめちゃくちゃひっそりとある「チャレンジを開始」リンクをクリック。目立たないのでご注意。

これでセキュリティチェックが開始されます。

チェックがひと通り終わると、ページ上部にこんな情報エリアが表示されます。

Heartbleed対応状況

これがLastPassが自動で調べてくれた、Heartbleed対応状況です。
図にあるように、一番右側に3種類のステータス(You are safe!、Wait、Go Update!)が表示されています。

  • You are safe!だった場合はそのサービスに対する対応は必要なし。
  • WaitはサービスのHeartbleed対応待ち状態。
  • Go Update!はサービス側がHeartbleed対応済みなので、リンクをクリックしてパスワードを変更しましょう。

図にもあるように、かなりの大手サイトがHeartbleedの脅威にさらされています(いました)。
なるべく早い対応を心がけたいもんですね。

無料で読めるWebマンガがアツい

マンガ大好きです。
豪に来てからというもの、なかなか連載中のマンガをリアルタイムで追うのは厳しくなってしまいました。

…が、嬉しい事に近年はWebマンガブーム。
去年出版大手各社がWebマンガサイトをリリースし、質の高いWebマンガが無料で読めるようになってしまいました。
最近だとスマホアプリで無料のマンガを配信してることもあり、かなり手軽に読めてしまいます。
いや素晴らしい。

紙面で連載中の漫画も、最新作一話だけはWebで読めてしまったりして。
毎月サイトにアクセスして、ちゃっかり読んでしまったりしています。

自分の守備範囲の問題なのか、Webマンガで展開しているのは少年向けばかりなような気が…?
そういえば少女/女性向けのWebマンガって知りません。
どなたかご存知でしたら教えて下さいませ~

クラウドストレージ間のファイル転送サービスまとめ

まとめってほどの数はないんですが…
ちょいと調べることがあったのでメモ。

一番期待していた「http://pi.pe/」は現在サービス停止中…なんてこったい。

Otixo

http://otixo.com/
フリートライアルあり。
色んなクラウドストレージに対応してるみたい。

cloudHQ

https://www.cloudhq.net/
フリートライアルあり。
メジャーどころ8個に対応。

Mover

http://mover.io
フリートライアルあり。
この中では一番対応しているクラウドストレージが多い。

ちなみに管理人がやりたかった、Picasa→Flickrのファイル転送はどこも対応していなかった…とほほ…

タイムトラッキングツールを使ってみているよ

いつか書こう書こうと思って忘れてたタイムトラッキングの件を思い出したので、きょうはタイムトラッキングツールのおはなし。

2ヶ月前から、タイムトラッキングツールを使ってみています。

そもそもタイムトラッキングとはなんぞや?という話なのですが、
簡単に言うと、作業時間を記録するってことです。

記録に便利なのが、先程申し上げたタイムトラッキングツール。
私が使っているのはこちら。
http://www.toggl.com/

タイムトラッキングツールとしては、とても有名ドコロだと思います。

今のところなんとなく使っているだけなので、ちゃんと分析したりしてはおりません。
でも、さすがに二ヶ月も自分の作業時間記録してると、レポート内容見ているだけでもなかなか面白い。

この作業めんどくせえええと思いながらやってた作業が、感じていた時間よりよっぽど早く終わっていたりとか。

ちゃんと分析すれば、さくさくタスクをこなす方法と組み合わせて自分の作業時間完全把握できそうです。

Toggl、作業の記録を忘れても、あとから手入力できるのがナイスです(よく忘れるんだこれが…。)
あとはブラウザベースのアプリなので、PCにインスコしなくていいのもナイスですね。
(インスコできるバージョンもあるそうですが)

そうそう、プロジェクト毎の合計時間なんかも見れますよ。
俺、このプロジェクトが終わったら、時給換算してみるんだ…。(完全に死亡フラグ)

インテリアの間取りが簡単に作れる、Floorplannerが楽しい件

管理人は家で仕事をしています。
幸運なことに、うちには仕事をするための仕事部屋があります。
その仕事部屋の配置換え(模様がえ?)をしようと思い立ちました。

で、頭のなかでシミュレーションを始めたわけですが…

PCデスクをこっちに向けて、ソファをあっち側に向けて…
いやでも、そうするとコンセントが隠れちゃうぞ…?
そもそもそっち向きにおいて長さ足りるのかー?

と、考えれば考えるほど頭がごちゃごちゃに(´・ω・)
そうだった、管理人は、空間認識能力が絶望的に無いんだった…。

そんな時はGoogle先生に泣きつきます。
確か、無料で間取り図が作れるツールがあったはず…!

ツール自体はサクっといくつか見つけられたのですが、その中で一番簡単に使えそうで、家具も揃っていたのがFloorplanner
普通に使う分には、無料で使用出来ます。
嬉しいのが、ブラウザ上で全てが完結するWEBアプリなこと。
インストールする必要もなく、作ったデータは全てクラウドに保存されます。
便利!

さらりと会員登録を済ませ、さっそく配置換えしたい部屋の間取りを作っていきます。
これがアプリの画面。

floorplanner

右側が部屋の間取りを書き込んでいく、方眼紙のような画面。
左側が家具たち。

自分の部屋の外枠を作成。
きちんと部屋の長さを測って、完璧な間取り図にすることもできます。
が、管理人はめんどくさかったので、適当にそれっぽく、部屋の形だけ作りました。
部屋の形は、右上の「工事」から「引き分け部屋」というツールで作れますよー。

ある程度部屋の形が出来たら、左側から窓やドアをドラッグ&ドロップで持ってきて、配置します。
大きさや角度が自由自在に変えられますよー。

ここまできたら、あとは家具の配置をするのみ。
左側からドラッグ&ドロップで家具を持ってきて、間取りに配置します。
家具によっては、色を変更できるものもあります。
家具を選択すると出てくる、iマークをクリックしてみてね。

で、できたのがこちらー!

first-design

間取り図っぽく出来ました!
なんとなくの大きさでも、実際の大きさがどれくらいかわかっているので、どうにかなりますw
ちなみに間取り図画像は、右上のエクスポートボタンから出来ます。

ちなみに、間取り図は3Dで見ることもできます!
さっそく出来た間取り図を3Dに…!!

20130419231528

見なかったことにしましょう。

とはいえ、頭のなかで考えるより、ずっと早く配置を考えつくことが出来たのはこのツールのおかげ。
頭で考えられ無くなったら、ぜひ試してください。
楽しいし、おすすめですよー!