複数通貨の設定したときにユーザーの注文確認画面で値段の表示がおかしくなる現象について。

原因
class ‘money’ に対して処理されるので、2重に変換される?

対応
Template Editor で 「customers/order.liquid」のclass で ‘money’ を設定されている部分をすべて削除する。

参考
http://ecommerce.shopify.com/c/shopify-discussion/t/tutorials-how-to-show-multiple-currencies-45779#comment-117919

  1. 管理画面右上「Preferences」の「Regions & Taxes」を選択
  2. 「Add new destination」で国を追加
  3. 管理画面右上「Preferences」の「Shipping」を選択
  4. 「Add weight-based rate」で送料を設定

送料の設定は国ごとに指定する必要がある。地域別(ヨーロッパ、北米など)では設定できない。
国数が多くなると、設定がかなり面倒になる可能性がある。
キーボードマクロソフトを使い、地域ごとに設定し出来るようにすると、手間は半減。
キーボードマクロ&マウスマクロ KMmacro http://www.vector.co.jp/soft/win95/util/se211440.html

送料無料の設定

  • Shipping ページの「Add price-based rate」で
    Nameを「Free Shipping」
    Purchase rangeを「送料無料にする値段」(10000円以上なら「10000」を入力)
    Shipping price「0」

参考
http://wiki.shopify.com/How_to_add_a_contact_form_to_your_shop

  1. 右上「Theme」 → 「Template Editor」を選択
  2. Templatesの項目に「page.contact.liquid」があるか探す
    (2013年1月15日現在の初期テンプレートでは「page.contact.liquid」はあります)
    無い場合は以下を実行。ある場合は無視

    1. 同画面「Template Editor」左のTemplatesの項目下の「add a new template」をクリック
    2. セレクトボックスで「page」を選択し、下のボックスに「contact」を入力し、「Create template」 ボタンを押す
    3. 右の編集エリアで以下のコードを探す
      {{ page.content }}
    4. そのコードの下に以下のコードを挿入
        {% form 'contact' %}
      
          {% if form.posted_successfully? %}
            <p>Thanks for contacting us! We'll get back to you as soon as possible.</p>
          {% endif %}
      
          {% if form.errors %}
          <p>
            <ul style="color:#E0360F">
            {% for field in form.errors %}
              {% if field == 'body' %}
              <li>Your message cannot be blank.</li>
              {% endif %}
              {% if field == 'email' %}
              <li>Please enter a valid email address.</li>
              {% endif %}        
            {% endfor %}
            </ul>
          </p>
          {% endif %}
      
          <ul id="contact-form">
            <li>
              <label for="name">Name</label>
              <input type="text" id="name" name="contact[name]" />
            </li> 
            <li>
              <label for="email">Email</label>
              <input type="email" id="email" name="contact[email]" />
            </li>   
            <li>
              <label for="message">Message</label>
              <textarea id="message" name="contact[body]"></textarea>
            </li>
            <li>
              <input type="submit" value="Send" />
            </li>
          </ul>
        {% endform %}
  3. 上部メニュー「Blogs & Pages」を選択
  4. 「Create a new page」で新しいページを作る
  5. Title を入力して(今回の場合は「Contact Us」)「Create page」ボタンを押す

以上
これで、http://ホームページURL/pages/contact-us にアクセスすると、コンタクトフォームが表示されます。

 

参考
http://wiki.shopify.com/Related_Products#Using_Product_Tags

商品の「Tags」を利用して関連商品を表示する

  1. 関連商品を表示したい商品同士に同じコレクションに登録する。
  2. 右上「Theme」 → 「Template Editor」を選択
  3. 左のSnippetsの項目下の「add a new snippet」をクリック
  4. フォームが出てくるので「related-products」を入力して「Create snippet」ボタンを押す
  5. https://gist.github.com/1002949  のソースをコピー
  6. 先ほどの作ったSnippet 「related-products」にペーストして保存
  7. 同画面「Template Editor」左1番上の「product.liquid」を選択
  8. 表示したい部分に以下を挿入
    {% include 'related-products' %}

以上

参考URL
http://wiki.shopify.com/How_to_Show_Multiple_Currencies

※通貨は表示の変更のみ。支払いは設定の通貨で行われる。

  1. 右上の「Preferences」 → 「General Settings」を選択
  2. 下の方の「」右にある「(formatting)」をクリック
  3. ${{amount}} USD と ${{amount}}
    <span class='money'></span>

    で囲む

    Money_format

  4. https://gist.github.com/773590 のソースをコピー
  5. 右上「Theme」 → 「Template Editor」を選択
  6. 左下の方のConfigから「settings.html」を選択
  7. 最後の行に先ほどコピーしたソースをペースト
  8. 右上「Theme」 → 「Template Settings」を選択
  9. Money options の項目が増えているので、「Currencies you wish to support」に追加したい通貨を追加する
    通貨は3文字のコードを入力 参考 http://ja.wikipedia.org/wiki/ISO_4217
    Currencies_in_settings
  10. https://github.com/carolineschnapp/currencies から「jquery.currencies.min.js」をダウンロード
  11. 右上「Theme」 → 「Template Editor」を選択
  12. 左1番下「add a new asset」クリック
  13. アップロードボタンが出てくるので、先ほどダウンロードした「jquery.currencies.min.js」をアップロード
  14. 同画面「Template Editor」左のSnippetsの項目下の「add a new snippet」をクリック
  15. フォームが出てくるので「currencies」を入力して「Create snippet」ボタンを押す
  16. https://gist.github.com/773624 のソースをコピー ※下記に追記あり
  17. 先ほどのSnippet にペーストして保存
  18. 同画面「Template Editor」左1番上の「theme.liquid」を選択
  19. </body> の上に以下をコピペ
    {% include 'currencies' %}
  20. 同画面「Template Editor」左のSnippetsの項目下の「add a new snippet」をクリック
  21. フォームが出てくるので「currencies-switcher」を入力して「Create snippet」ボタンを押す
  22. https://gist.github.com/773649  のソースをコピー
  23. 先ほどのSnippet にペーストして保存
  24. 同画面「Template Editor」左1番上の「theme.liquid」を選択
  25. 表示したい位置に以下を挿入
    {% include 'currencies-switcher' %}

以上

2013/05/09 追記
別サイトで必要があったので試したが
「16」のソースでは動かなかった。
以前に使用していたものを使用して解決

{% if settings.show_multiple_currencies %}

{{ "/services/javascripts/currencies.js" | script_tag }}
{{ "jquery.currencies.min.js" | asset_url | script_tag }}

<script>

{% if settings.currency_format %}
Currency.format = '{{ settings.currency_format }}';
{% endif %}

var shopCurrency = '{{ shop.currency }}';
var cookieCurrency = Currency.cookie.read();

/* Fix for customer account pages */
jQuery('span.money span.money').each(function() {
  jQuery(this).parents('span.money').removeClass('money');
});

jQuery('span.money').each(function() {
  jQuery(this).attr('data-currency-{{ shop.currency }}', jQuery(this).html());
});

// If there's no cookie.
if (cookieCurrency == null) {
  Currency.currentCurrency = shopCurrency;
}
// If the cookie value does not correspond to any value in the currency dropdown.
else if (jQuery('[name=currencies]').size() && jQuery('[name=currencies] option[value=' + cookieCurrency + ']').size() === 0) {
  Currency.currentCurrency = shopCurrency;
  Currency.cookie.write(shopCurrency);
}
else if (cookieCurrency === shopCurrency) {
  Currency.currentCurrency = shopCurrency;
}
else {
  Currency.convertAll(shopCurrency, cookieCurrency);
}

jQuery('[name=currencies]').val(Currency.currentCurrency).change(function() {
  var newCurrency = jQuery(this).val();
  Currency.convertAll(Currency.currentCurrency, newCurrency);
  jQuery('.selected-currency').text(Currency.currentCurrency);
});

var original_selectCallback = window.selectCallback;
var selectCallback = function(variant, selector) {
  original_selectCallback(variant, selector);
  Currency.convertAll(shopCurrency, jQuery('[name=currencies]').val());
  jQuery('.selected-currency').text(Currency.currentCurrency);
};

jQuery('.selected-currency').text(Currency.currentCurrency);

</script>

{% endif %}