らくうるカートのテンプレート編集メモ

らくうるカートのテンプレート編集

らくうるカートの全面カスタマイズ依頼を初めてお受けしたので、テンプレート編集で引っかかったところを記録しておきます。

進行につれ気になる点が出てくれば追記しますが、あまり無いかも。

djangoテンプレートだが、ほぼ気にしなくて良い

前にちらっと書きましたが、らくうるカートのテンプレート編集(HTML編集)をひらくとdjango(ジャンゴ)で出来ていることが分かります。python製のテンプレートです。

しかしながら、テンプレートに勝手にタグやフィルターを追加しようとするとシンタックスエラーが出て更新できません。

基本のifとforしか使えないので、別にpythonもdjangoも知らなくて大丈夫です。

コメント( {# コメントをかく #} )は大丈夫でした。

if forの書き方

HTMLとCSS以外は明るくない方のために、基本のifとforの書き方だけ残しておきます。

if

{% if (条件)%}
   trueの場合のhtmlを記述

{% else %}
     条件に当てはまらないときのhtmlを記述 

{% endif %}

演算子(== , != , is , is not など)やand or は使えますが、elifタグは使えませんでした。else ifは大丈夫。

for

ほとんどが商品の一覧呼び出しなので、新着商品を例に。

{% for item in itemRecentList %}
  新着商品(itemRecentList)に登録されている商品情報が繰り返し処理されます 

{% endfor %) 

emptyタグは使用出来ませんでした。(エラーがでる)

forloop.first 、forloop.lastも使用できません。エラーは出ませんが無効です。

forloop.counterも使用できません(エラー)が、テンプレートを見ていると「●●●ItemCounter」というタグがあり、これが利用できそうです。

例えば、ナビゲーションでカテゴリー一覧をループで表示させるとき、

{% for item in categoryList %}
  {% if categoryItemCounter == 1%}
    <!-- 最初の要素 -->
  {% else %}
    <!-- 2番め以降の要素 -->
  {% endif %}

とすると、if forloop.first の代わりになります。

フィルターやif for以外のタグは使えない

全部試したわけではないですが、フィルターは使えないと思って差し支えないと思います。(追記:lengthは使えそうです。)

テンプレート用の変数がわりと細かく用意されているので、フィルターいらないかなとは思いました。pprintは使えてほしかったのですが。。

タグも多分if for 以外はことごとく拒否されます。

{% itemRecentList %}、{% not itemRecentList %}のように、タグを省略した書き方もNGです。

java scriptは共通HTMLのみ

他のショッピングカートサービスだと、たとえば商品詳細ページの途中にいきなりJS書いてもOKだったりするのですが、らくうるカートではエラーがでます。

共通HTMLの末尾ないしheadタグに記述しましょう。

直接、ページを振り分けるための変数はありませんが、各ページにしか存在しない変数を使って振り分けることは可能です。

追記:ページ振り分け用の「shopBlckTypeId」という変数がありました。見落としていました。

これから他にも出てくれば追記します。

webPファイルもアップロードできる

できるかな〜? でやったら出来てしまったのがwebP画像のアップロード。編集画面から直接アップロードする商品画像などにはアップロードできませんが、ファイル管理からのアップロードは可能なので、置き換え可能なところは全部webPにできました。

とても重要な注意点

らくうるカートのシステムは、30分画面の遷移がなければ勝手にタイムアウトします。

商品編集やテンプレート編集、送料ルールの設定などに時間をかけてしまうと、【保存】を押した瞬間に絶望することになります。30分以上、同じ画面にとどまらないように細心の注意を払いましょう。