[Liquid]メニュー

{%- for link in linklists.sidemenu.links -%}
    {%- if link.links.size <= 0 -%}
        子項目が無いとき
    {%- else -%}
    	子項目があるとき
	    {%- for childlink in link.links -%}
	        
	    {%- endfor -%}
    {%- endif -%}
{%- endfor -%}

[Shopify]ストア通貨フォーマット

設定 > 一般設定



 

ストア通貨



 

Liquidコード

<p class="price">{{ product.price | money }}</p>
<p class="price">{{ product.price | money_without_currency }}</p>
<p class="price">{{ product.price | money_with_currency }}</p>

 

出力結果

¥7,800 円(税込)2
7,800
¥7,800 円(税込)1

[Liquid]capture

{%- capture 変数名 -%}dummy520x390.jpg{%- endcapture -%}
{%- capture html_params -%} data-product="{{ product.id }}" data-variant="{{ variant.id }}" style="{{ html_style }}"{%- endcapture -%}

[Shopify]shopify公式カスタムフィールド

設定 > メタフィールド



 

商品



 

定義を追加する



 

全ての項目へ入力する



 

入力後保存する



 

保存後



 

Liquidコード

<a href="{{ product.url | within: collection }}">
    <div class="image"><img src="{{ product.featured_image.src | img_url: 'large' }}" alt="{{ product.featured_image.alt | escape }}"></div>
    <h3>{{ product.title | escape }}</h3>
    {%- if product.metafields.my_fields.cf_text -%}
        <p>{{ product.metafields.my_fields.cf_text.value | escape }}</p>
    {%- else -%}
        <p>あいうえお</p>
    {%- endif -%}
</a>

 

商品管理画面でカスタムフィールドへ入力



 

出力結果

[Liquid]税込税抜切替

tax-text.liquid

{%- if shop.taxes_included -%}(税込){%- else -%}(税抜){%- endif -%}

管理画面「設定 > 税金」の「すべての価格を税込価格で表示する」チェックならばshop.taxes_includedはtrue

[Liquid]formタグで全バリエーションを一度にカートへ入れる

<form method="post" action="{{ routes.cart_add_url }}">
  {%- for variant in product.variants -%}
  <input type="hidden" name="items[{{forloop.index0}}]id" value="{{ variant.id }}">
  {{ variant.title | escape }}({{ variant.price | money_with_currency }})<input type="number" name="items[{{forloop.index0}}]quantity" value="1"><br>
  {%- endfor -%}
  <button type="submit">全バリエーションをカートへ入れる</button>
</form>

[Shopify]ポリシーページURL一覧

・返金ポリシー
https://ドメイン/policies/refund-policy
 
・プライバシーポリシー
https://ドメイン/policies/privacy-policy
 
・利用規約
https://ドメイン/policies/terms-of-service
 
・配送ポリシー
https://ドメイン/policies/shipping-policy
 
・連絡先情報
https://ドメイン/policies/contact-information
 
・特定商取引法に基づく表記
https://ドメイン/policies/legal-notice

[Laravel][備忘録]バリデーション

コントローラー

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Models\Post;

class PostController extends Controller
{
    public function create(){
        return view('post.create');
    }
    public function store(Request $request){
        $validated = $request->validate([
            'title' => 'required|max:20',
            'body'  => 'required|max:400',
        ]);
        $post = Post::create($validated);
        /*
        saveを使う場合
        $post = new Post();
        $post->title = $validated['title'];
        $post->body = $validated['body'];
        $post->save();
        */
        /*
        withを使わない場合
        $request->session()->flash('message','保存しました');
        return back();
        */
        return back()->with('message','保存しました');
    }
}

 

表示側

<div class="max-w-7xl">
    @if(session('message'))
        <div class="text-red-600">
            {{ session('message') }}
        </div>
    @endif
    <form method="post" action="{{ route('post.write') }}">
        @csrf
        <div>
            <x-input-error :messages="$errors->get('title')" class="mt-2" />
            <input type="text" name="title" class="w-auto py-2 border border-gray-300 rounded-md" id="title" value="{{old('title')}}">
        </div>

        <div>
            <x-input-error :messages="$errors->get('body')" class="mt-2" />
            <textarea name="body" class="w-auto py-22 border border-gray-300 rounded-md" id="body" cols="30" rows="5">{{old('body')}}</textarea>
        </div>

        <x-primary-button>{{ __('送信する') }}</x-primary-button>
    </form>
</div>

[Laravel][備忘録]POSTリクエストの内容をDBへ保存

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Models\Post;

class PostController extends Controller
{
    public function create(){
        return view('post.create');
    }
    public function store(Request $request){
        $post = Post::create([
            'title' => $request->title,
            'body'  => $request->body
        ]);
        return back();
    }
}