Shopify スクリプトAPIのリファレンス

スクリプトはRuby APIで書かれているため、制御と柔軟性が大幅に向上しています。

スクリプトには、さまざまなタイプがあります。Script Editorアプリでスクリプトを作成する場合、どのスクリプトテンプレートで始めるかに基づいて、スクリプトにタイプが割り当てられます。

項目スクリプト

項目スクリプトはカート内の項目に作用し、価格の変更やディスカウントの付与を行えます。このスクリプトは、カートに変更があった時点で実行されます。

サブスクリプションをディスカウントする項目スクリプトは、サブスクリプションの最初の決済にのみ適用されます。続く決済は、スクリプトによりディスカウントされません。

一部のメソッドは、項目スクリプトでのみ使用できます

配送スクリプト

配送スクリプトは配送と相互作用し、配送方法を変更することができ、配送料のディスカウントを提供できます。これらのスクリプトは、チェックアウトが配送オプションのページに到達した時点で実行されます。

サブスクリプションの配送料をディスカウントする配送スクリプトは、サブスクリプションの初回決済にのみ適用されます。続く決済では、スクリプトによりディスカウントされません。

<p>一部のメソッドは、<a href="#shipping-methods">配送スクリプトでのみ使用できます</a>。</p>

決済スクリプト

決済スクリプトは決済と相互作用し、決済ゲートウェイサービスの名前の変更、非表示、並び替えを行えます。決済スクリプトは、チェックアウト画面の前に表示されるApple Payなどの決済ゲートウェイサービスとは相互作用しません。このスクリプトは、チェックアウトが支払いページに到達する時点で実行されます。

一部のメソッドは、決済スクリプトでのみ使用できます

一般的なメソッド

以下のメソッドは、さまざまなスクリプトで使用できます。

入力

スクリプト入力メソッド
方法戻り値の種類説明
.cartカート変更可能なカートのオブジェクトを返します。
.locale文字列顧客のロケールを返します。enfrまたはpt-BRなどです。
### カート

カートのオブジェクトは、オンラインストアでのみ使用可能です。一部のチェックアウト離脱からは、カートのオブジェクトにアクセスできます。しかし、お客様が一旦チェックアウトを閉じた後で、改めてチェックアウト離脱にアクセスした場合は、チェックアウト前の状態に戻り、カートのオブジェクトはなくなります。それは、決済未完了の通知メールによってストアフロントの迂回が起こったためです。

Cartオブジェクトを使用したスクリプトメソッド
方法戻り値の種類説明
.customerお客様カートのオーナーを返します (存在する場合)。
.shipping_address配送先住所カートオーナーの配送先住所を返します (存在する場合)。
.discount_code可変 以下の値を返します。

discount_codeは、ディスカウントがカートに適用されている場合に表示されます。カートの価格が必ず変わるというわけではありません。たとえば、合計が50ドルを超えるカートにディスカウントが適用され、スクリプトによってカート価格が50ドル未満になると、discount_codeが表示されたままでもカートの価格は変更されません。

<p><a href="/manual/checkout-settings/script-editor/examples/vat-script"><code>discount_code</code></a>の例を参照してください。</p>
  </td>
</tr>
<tr>
  <td scope="row">.line_items</td>
  <td>

List<LineItem>

カート内の項目を含むリストを返します。
.presentment_currency List<String>顧客の現地 (表示) 通貨を表示します (ISO 4217形式)。たとえば、米ドル。
.subtotal_price資金項目のディスカウント適用後、およびクーポンコードが適用される前のカートの小計金額を返します。
.total_weightグラムカート内にある項目すべての合計重量を返します。
#### CartDiscount::FixedAmount
CartDiscount:: FixedAmountオブジェクトを使用したスクリプトメソッド
方法戻り値の種類説明
.codeStringディスカウントを適用するために使用されるクーポンコードを返します。
.amount資金ディスカウントの金額を返します。
.reject({ message: String })nilカートに適用されたクーポンコードを拒否します。messageが必要です。
.rejected?Booleanクーポンコードが拒否されたかどうかを返します。
#### CartDiscount::Percentage
CartDiscount::Percentageオブジェクトを使用したスクリプトメソッド
方法戻り値の種類説明
.codeStringディスカウントを適用するために使用されるクーポンコードを返します。
.percentageディスカウントの割合額を返します。
.reject({ message: String })nilカートに適用されたクーポンコードを拒否します。messageが必要です。
.rejected?Booleanクーポンコードが拒否されたかどうかを返します。
#### CartDiscount::Shipping
CartDiscount::Shippingオブジェクトを使用したスクリプトメソッド
方法戻り値の種類説明
.codeStringディスカウントを適用するために使用されるクーポンコードを返します。
.reject({ message: String })nilカートに適用されたクーポンコードを拒否します。messageが必要です。
.rejected?Booleanクーポンコードが拒否されたかどうかを返します。
### お客様
Customerオブジェクトを使用したスクリプトメソッド
方法戻り値の種類説明
.idIntegerお客様のID番号を返します。
.emailStringお客様のメールアドレスを返します。
.tags List<Tag>お客様に設定されたタグを表す文字列のリストを返します。
.orders_countIntegerお客様が発注した注文の総数を返します。
.total_spent資金お客様がすべての注文に支払った合計金額を返します。
.accepts_marketing?Booleanお客様がマーケティングを受け入れているかどうかを返します。
### LineItem {#lineitem-method}
LineItemオブジェクトを使用したスクリプトメソッド
方法戻り値の種類説明
.gramsグラム項目の合計重量を返します。
.line_price資金項目の価格
.discounted?Booleanスクリプトまたは手動で適用されたディスカウントによって、項目の価格がディスカウントされたかどうかを返します。クーポンコードを使用しても戻り値には影響しません。
.propertieshashこの項目に指定されたプロパティを返します。
.variantバリエーション項目で表示される特定の商品バリエーションを返します。
.quantityIntegerこの項目の数量を返します。
.selling_plan_idInteger項目の販売プランのIDを返します。このメソッドは、ストアでサブスクリプションを販売し、スクリプトにより商品バリエーションがサブスクリプションとして販売されたときに検出されるようにしたい場合に有用です。
### リスト
<tr>
  <td scope="row">.empty?</td>
  <td>Boolean</td>
  <td>
    <p>リストに要素が含まれていない場合に<code>true</code>を返します。</p>
  </td>
</tr>
<tr>
  <td scope="row">.first</td>
  <td>Elementまたはnil</td>
  <td>
    <p>最初の要素を返すか、リストが空の場合は<code>nil</code>を返します。</p>
  </td>
</tr>
<tr>
  <td scope="row">.index(*args, &amp;block)</td>
  <td>intまたはnil</td>
  <td>
    <p>リストの最初の要素であるインデックスを返します。引数の代わりにブロックが渡される場合、ブロックがtrueである最初の要素であるインデックスを返します。</p>
  </td>
</tr>
<tr>
  <td scope="row">.rindex(*args, &amp;block)</td>
  <td>intまたはnil</td>
  <td>
    <p>リストの最後の要素であるインデックスを返します。引数の代わりにブロックが渡される場合、ブロックがtrueである最初の要素であるインデックスを返します。</p>
  </td>
</tr>
<tr>
  <td scope="row">.last</td>
  <td>Elementまたはnil</td>
  <td>
    <p>最後の要素を返すか、リストが空の場合は<code>nil</code>を返します。</p>
  </td>
</tr>
<tr>
  <td scope="row">

.length

Listオブジェクトを使用したスクリプトメソッド
方法戻り値の種類説明
.newリストリストを表示する新しいオブジェクトを作成します。
.[]Elementまたはnil

指定されたインデックスの要素を返します。

.&リスト

重複しない2つのリストに共通の要素を含む、新しいリストを返します。

.delete_ifリストオプションのコードブロックを使用して要素を削除します。Rubyのdelete_ifメソッドのドキュメントを参照してください。
int

リスト内の要素の数を返します。

.sizeint

lengthのエイリアスです。

.each(*args, &block)リスト

リスト内の各要素に対してブロックを1回呼び出し、要素をパラメーターとしてブロックに渡します。

### 配送先住所
ShippingAddressオブジェクトを使用したスクリプトメソッド
方法戻り値の種類説明
.name文字列配送先住所に関連付けられた個人の名前を返します。
.address1文字列配送先住所の住所部分を返します。
.address2文字列配送先住所の住所部分の、オプションの追加フィールドを返します。
.phone文字列配送先住所の電話番号を返します。
.city文字列配送先住所の市区町村を返します。
.zip文字列配送先住所の郵便番号を返します。
.province文字列配送先住所の都道府県または州を返します。
.province_code文字列配送先住所の都道府県または州の省略値を返します。
.country_code文字列配送先住所の国の省略値を返します。
### 資金
Moneyオブジェクトを使用したスクリプトメソッド
方法戻り値の種類説明
.derived_from_presentment(customer_cents:X)資金金額 (セント) を顧客の現地 (表示) 通貨からストアの通貨に変換します。このメソッドは、セントでの数値を処理するcustomer_centsパラメータを受け付けます。たとえば、Money.derived_from_presentment(customer_cents: 500)です。
.new資金価格を表示する新しいオブジェクトを作成します。
.zero資金

価格が0の新しいオブジェクトを作成します。

+資金 Moneyオブジェクトを2つ追加します。
-資金1つのMoneyオブジェクトを別のオブジェクトから差し引きます。
*資金 Moneyオブジェクトに数値を乗じます。
#### Moneyの例
Money.new(cents: 1000)

1,000セントまたは10ドルを表示するMoneyオブジェクトを作成します。

Money.new(cents: 100) * 50

1ドルを表示してから50を乗算するMoneyオブジェクトを作成します。50ドルを表示するMoneyオブジェクトを返します。

バリエーション

Variantオブジェクトを使用したスクリプトメソッド
方法戻り値の種類説明
.idIntegerバリエーションのID番号を返します。
.price資金バリエーションの単価を返します。
.product商品バリエーションの関連商品を返します。
.skus List<String>在庫の追跡によく使用されるバリエーションの最小管理単位 (SKU) を返します。
.titleStringバリエーション名を返します。
### 商品
Productオブジェクトを使用したスクリプトメソッド
方法戻り値の種類説明
.idInteger商品のID番号を返します。
.gift_card?Boolean商品がギフトカードかどうかを返します。
.tags List<Tag>この商品に設定されているタグを表示する文字列のリストを返します。
.product_typeString通常は絞り込みや検索に使用される、商品にタグを付けることができる分類です。
.vendorStringこの商品の販売元を返します。
### Kernel

Kernelはすべてのクラスに含まれるRubyモジュールです。そのため、Kernelのメソッドはすべてのオブジェクトで使用できます。このメソッドは、グローバル関数が他の言語で動作するのと同じ方法で動作します。

Kernelオブジェクトを使用したスクリプトメソッド
方法戻り値の種類説明
.exitなしエラーなしで現在のスクリプトの実行を終了します。Output.cartに何かが割り当てられる前に実行される場合、スクリプトには効果がありません。これは、お客様にスクリプトを実行する資格がない場合などにスクリプトを終了するのに便利な方法です。
#### Kernelの例
customer = Input.cart.customer
if customer && customer.email.end_with?("@mycompany.com")
  # Employees are not eligible for this promotion.
  exit
end

項目のメソッド

以下のメソッドは、項目スクリプトでのみ使用できます。

カート

項目スクリプトでCartオブジェクトを使用したスクリプトメソッド
方法戻り値の種類説明
.subtotal_price_was資金ディスカウントが適用される前のカートの小計金額を返します。
.subtotal_price_changed?Boolean小計金額が変更されたかどうかを返します。
### 項目
項目スクリプトでLineItemオブジェクトを使用したスクリプトメソッド
方法戻り値の種類説明
.change_line_price(Money new_price, { message: String }) 資金項目の価格を指定した金額に変更します。messageが必要です。new_priceは現在の価格より低い必要があります。
.original_line_price資金スクリプトとディスカウントが適用される前の、項目の元の価格を返します。
.line_price_was資金現在のスクリプトによって変更が適用される前の、項目の価格を返します。
.line_price_changed?Boolean項目の価格が変更されたかどうかを返します。
.change_properties(hash new_properties, { message: String }) hash項目の新しいプロパティを設定します。元のプロパティのhashはproperties_wasに保存され、メソッドに渡されるプロパティのhashが項目の新しいプロパティになります。
.properties_washash変更が適用される前に、項目の元のプロパティのhashを返します。
.properties_changed?Boolean項目のプロパティが変更されたかどうかを返します。
.split({ take: Integer })項目項目を2つの項目に分割します。新しい項目を作成するために、takeが元の項目から削除する数量を指定します。
## .splitの例 {#ex-split}

このサンプルスクリプトでは、original_line_itemという項目を2つの項目に分けます。新しい項目の数量は1です (take: 1により指定)。これにより、スクリプトは新しい項目に「3つ目の帽子は5ドル」とメッセージを添付して、ディスカウント価格を適用します。

if original_line_item.quantity >= 3
  new_line_item = original_line_item.split(take: 1)
  new_line_item.change_line_price(Money.new(cents: 500), message: "Third hat for 5 dollars")
  cart.line_items << new_line_item
end

バリエーション

項目スクリプトでVariantオブジェクトを使用したスクリプトメソッド
方法戻り値の種類説明
.compare_at_price資金バリエーションの割引前価格を返します。バリエーションに割引前価格が設定されていない場合はnilを返します。
## 配送方法

以下のメソッドは、配送スクリプトでのみ使用できます。

入力

配送スクリプトでInputオブジェクトを使用したスクリプトメッソッド
方法戻り値の種類説明
.shipping_ratesShippingRateListすべての配送料のリストを返します。
### ShippingRateList
配送スクリプトでShippingRateListオブジェクトを使用したスクリプトメッソッド
方法戻り値の種類説明
.delete_ifShippingRateListオプションのコードブロックを使用して配送料を削除します。Rubyのdelete_ifメソッドのドキュメントを参照してください。
.sort!ShippingRateList比較演算子を使用するか、オプションのコードブロックを使用して配送料を並び替えます。Rubyのsort!メソッドのドキュメントを参照してください。
.sort_by!ShippingRateListオプションのコードブロックを使用して配送料を並び替えます。Rubyのsort_by!メソッドのドキュメントを参照してください。
### ShippingRate
配送スクリプトでShippingRateオブジェクトを使用したスクリプトメッソッド
方法戻り値の種類説明
.codeString配送料のコードを返します。
.markup資金該当する場合は、配送料のマークアップを返します。
.nameString配送料の名前を返します。change_nameメソッドを使用して変更できます。
.price資金配送料の価格を返します。
.sourceString該当する場合は、配送料に関連付けられたソース (配送業者) を返します。ソースは変更できません。
.change_name(String new_name)String 配送料の名前 (最大255文字) を変更します。ソースを変更、削除、または非表示にすることはできません。
.apply_discount(Money discount, { message: String })資金指定した定額のディスカウントを適用します。価格を0より低くすることはできません。メッセージが必要です。
.phone_required?Boolean配送料を受領するために電話番号が必要な場合はtrueを返し、電話番号が必要ない場合はfalseを返します。
## 決済方法

以下のメソッドは、決済スクリプトでのみ使用できます。

入力

決済スクリプトでInputオブジェクトを使用したスクリプトメッソッド
方法戻り値の種類説明
.payment_gatewaysPaymentGatewaysListストア内の決済ゲートウェイサービスすべてのリストを返します。
### PaymentGatewayList
決済スクリプトでPaymentGatewayListオブジェクトを使用したスクリプトメソッド
方法戻り値の種類説明
.delete_ifPaymentGatewayListオプションのコードブロックを使用して決済ゲートウェイサービスを削除します。Rubyのdelete_ifメソッドのドキュメントを参照してください。
.sort!PaymentGatewayList比較演算子を使用するか、オプションのコードブロックを使用して決済ゲートウェイサービスを並び替えます。Rubyのsort!メソッドのドキュメントを参照してください。
.sort_by!PaymentGatewayListオプションのコードブロックを使用して決済ゲートウェイサービスを並び替えます。Rubyのsort_by!メソッドのドキュメントを参照してください。
### PaymentGateway
方法戻り値の種類説明
.nameString決済ゲートウェイサービスの名前を返します。
.enabled_card_brands List<String>

決済ゲートウェイサービスがクレジットカードに対応している場合、ストアで許可されているクレジットカードのタイプが含まれるリストを返します。決済サービスがクレジットカードに対応していない場合、空のリストを返します。

.change_name(String new_name)String決済ゲートウェイサービスの名前を変更します。ロゴ付きの決済ゲートウェイサービスの名前は変更できません。
## ストアの例

以下の項目スクリプトの例では、お客様がギフトカードではない商品を注文すると、商品の価格が9ドル下がります。ストアへのすべての訪問でお客様が支払った合計金額も表示されます。

customer = Input.cart.customer Input.cart.line_items.each do |line_item| product = line_item.variant.product next if product.gift_card? line_item.change_line_price(line_item.line_price - Money.new(cents: 900), message: customer.total_spent) end Output.cart = Input.cart

詳しくはこちら

詳しくはこちら:

お探しの情報が見つかりませんか?いつでもお気軽にお問い合わせください。