プラグイン仕様・動作保証環境

  • プラグイン名 : 再入荷通知 for ECCUBE 4
  • バージョン : 1.0.10
  • サーバー環境 : EC-CUBE対応バージョンの動作環境を満たすサーバー

JavascriptAPIの使い方

このドキュメントでは、Back In StockプラグインのJavaScript APIを使用して、在庫切れの商品の再入荷通知を受け取る方法を説明します。以下の例では、BackInStockSubscriptionAPIクラスの各メソッドの詳細と使用方法を説明します。

APIの初期化

まず、BackInStockSubscriptionAPIクラスをインスタンス化して、APIのURLとトークンを渡します。これにより、APIエンドポイントにアクセスするための準備が整います。

<script src="{{ asset('BackInStockSubscription/assets/libs/js/api.js', 'plugin') }}"></script>

const backInStockApi = new BackInStockSubscriptionAPI({
    list: '{{ url('api_subscriptions_list') }}',
    create: '{{ url('api_subscriptions_create') }}',
    update: '{{ url('api_subscriptions_update') }}',
    delete: '{{ url('api_subscriptions_delete') }}',
    fetch: '{{ url('api_subscriptions_get') }}'
});

ユーザーの購読を取得する

getUserSubscriptionsメソッドを使用して、指定したユーザーIDの購読を取得できます。

async function getUserSubscriptionsExample() {
    try {
        const subscriptions = await backInStockApi.getUserSubscriptions();
        console.log('subscriptions', subscriptions);
    } catch (error) {
    console.error(error);
    }
}
getUserSubscriptionsExample();

購読を作成する

createSubscriptionメソッドを使用して、新しい購読を作成できます。購読オブジェクトには、product_class_id、emailが含まれている必要があります。

async function createSubscriptionExample() {
    const subscription = {
        product_class_id: 11,
        email: 'test@example.com'
    };

    try {
        const newSubscription = await backInStockApi.createSubscription(subscription);
        console.log('newSubscription', newSubscription);
    } catch (error) {
        console.error(error);
    }
}
createSubscriptionExample();

購読を更新する

updateSubscriptionメソッドを使用して、既存の購読を更新できます。購読IDと更新された購読オブジェクトを渡す必要があります。

async function updateSubscriptionExample() {
    const updatedSubscription = {
        id: 16,
        product_class_id: 5,
        email: 'updated@example.com'
    };

    try {
        const updatedResult = await backInStockApi.updateSubscription(updatedSubscription);
        console.log(updatedResult);
    } catch (error) {
        console.error(error);
    }
}
updateSubscriptionExample();

購読を削除する

deleteSubscriptionメソッドを使用して、購読を削除できます。購読IDを渡すだけで削除が完了します。

async function deleteSubscriptionExample() {
    const subscriptionId = 16;
    try {
        await backInStockApi.deleteSubscription(subscriptionId);
        console.log('Subscription deleted successfully.');
    } catch (error) {
        console.error(error);
    }
}
deleteSubscriptionExample();

購読を取得する

getSubscriptionメソッドを使用して、購読IDによって特定の購読を取得できます。

async function getSubscriptionExample() {
    const subscriptionId = 17;
    try {
        const subscription = await backInStockApi.getSubscription(subscriptionId);
        console.log(subscription);
    } catch (error) {
        console.error(error);
    }
}
getSubscriptionExample();

APIの使い方

このドキュメントでは、Back In StockプラグインのAPIの使い方を説明します。ユーザーは、在庫切れの商品の再入荷通知を受け取るために登録することができます。

ユーザーの購読リストを取得する

このAPIエンドポイントでは、ログインしているユーザーの購読リストを取得できます。

リクエスト

GET /back-in-stock-subscription/api/subscriptions

レスポンス

成功した場合、購読リストの配列が返されます。失敗した場合、HTTPステータスコードとエラーメッセージが返されます。

成功例

[
    {
        "id": 17,
        "productClass": {
          "id": 11,
          "name": "チェリーアイスサンド",
          "stock": 0,
          "isStockUnlimited": false
        },
        "product": {
          "id": 2,
          "name": "チェリーアイスサンド"
        },
        "isSent": false,
        "createdAt": "2023-03-27 17:08:56",
        "updatedAt": "2023-03-27 17:08:56",
        "email": "test@example.com",
        "sentAt": null
    }
]

購読を作成する

このAPIエンドポイントでは、ログインしているユーザーが在庫切れの商品の再入荷通知を受け取るために新しい購読を作成することができます。

リクエスト

POST /back-in-stock-subscription/api/subscriptions
Content-Type: application/json

{
    "email": "example@example.com",
    "product_class_id": 123
}

レスポンス

成功した場合、作成された購読オブジェクトが返されます。失敗した場合、HTTPステータスコードとエラーメッセージが返されます。

成功例

{
    "id": 17,
    "productClass": {
        "id": 11,
        "name": "チェリーアイスサンド",
        "stock": 0,
        "isStockUnlimited": false
    },
    "product": {
        "id": 2,
        "name": "チェリーアイスサンド"
    },
    "isSent": false,
    "createdAt": "2023-03-27 17:08:56",
    "updatedAt": "2023-03-27 17:08:56",
    "email": "test@example.com",
    "sentAt": null
}

購読を更新する

このAPIエンドポイントでは、ログインしているユーザーが購読を更新することができます。

リクエスト

PUT /back-in-stock-subscription/api/subscriptions
Content-Type: application/json

{
    "id": 1,
    "email": "updated@example.com",
    "product_class_id": 456
}

レスポンス

成功した場合、更新された購読オブジェクトが返されます。失敗した場合、HTTPステータスコードとエラーメッセージが返されます。

成功例

{
    "id": 17,
    "productClass": {
        "id": 11,
        "name": "チェリーアイスサンド",
        "stock": 0,
        "isStockUnlimited": false
    },
    "product": {
        "id": 2,
        "name": "チェリーアイスサンド"
    },
    "isSent": false,
    "createdAt": "2023-03-27 17:08:56",
    "updatedAt": "2023-03-27 17:08:56",
    "email": "test@example.com",
    "sentAt": null
}

購読を削除する

このAPIエンドポイントでは、ログインしているユーザーが購読を削除することができます。

リクエスト

DELETE /back-in-stock-subscription/api/subscriptions
{
    "id": 1
}
                                

成功例

{
    "status": true
}

購読を取得する

このAPIエンドポイントでは、ログインしているユーザーが特定の購読を取得することができます。

リクエスト

GET /back-in-stock-subscription/api/subscriptions/fetch?id=1

レスポンス

成功した場合、購読オブジェクトが返されます。失敗した場合、HTTPステータスコードとエラーメッセージが返されます。

成功例

{
    "id": 17,
    "productClass": {
        "id": 11,
        "name": "チェリーアイスサンド",
        "stock": 0,
        "isStockUnlimited": false
    },
    "product": {
        "id": 2,
        "name": "チェリーアイスサンド"
    },
    "isSent": false,
    "createdAt": "2023-03-27 17:08:56",
    "updatedAt": "2023-03-27 17:08:56",
    "email": "test@example.com",
    "sentAt": null
}

Cron Job インストールガイド

このプラグインは、在庫切れの商品が再入荷した際にお客様に通知する機能を提供します。Cron Job を使用して、定期的に back-in-stock:notification コマンドを実行するようにサーバーを設定する方法を説明します。

一般的な Cron Job の設定方法

サーバーでの Cron Job 設定方法は、サーバーの種類やホスティング環境によって異なります。一般的な方法を以下に示しますが、お使いのサーバーのドキュメントやサポート情報を参照してください。

1. ターミナルで Cron Job を開く

ターミナルを開いて、以下のコマンドを実行してください。

crontab -e

2. Cron Job の設定を追加する

Cron Job ファイルが開いたら、次のような行を追加します。

*/5 * * * * cd /path/to/your/eccube/directory && php bin/console back-in-stock:notification

この例では、back-in-stock:notification コマンドが 5 分ごとに実行されるように設定され

ています。/path/to/your/eccube/directory を EC-CUBE 4 がインストールされているディレクトリのパスに置き換えてください。

Cron Job の実行間隔の設定方法

Cron Job の実行間隔は、分、時、日、月、曜日によってカスタマイズできます。以下のパターンを参考にして、お客様の要件に合わせた設定を行ってください。

Cron Job の設定行は、次のような構成になっています。

*     *     *   *    *        コマンド
-     -     -   -    -
|     |     |   |    |
|     |     |   |    +----- 曜日 (0 - 6) (日曜=0)
|     |     |   +------- 月 (1 - 12)
|     |     +--------- 日 (1 - 31)
|     +----------- 時 (0 - 23)
+------------- 分 (0 - 59)

例 1: 毎時実行する

0 * * * * cd /path/to/your/eccube/directory && php bin/console back-in-stock:notification

例 2: 毎日午前 9 時に実行する

0 9 * * * cd /path/to/your/eccube/directory && php bin/console back-in-stock:notification

例 3: 毎週月曜日の午前 9 時に実行する

0 9 * * 1 cd /path/to/your/eccube/directory && php bin/console back-in-stock:notification

例 4: 毎月 1 日の午前 9 時に実行する

0 9 1 * * cd /path/to/your/eccube/directory && php bin/console back-in-stock:notification

3. 変更を保存して終了する

変更を保存し、Cron Job のエディタを閉じてください。

Cron Job の設定方法 (Linux - Ubuntu)

1. ターミナルで Cron Job を開く

Ubuntu でターミナルを開いて、以下のコマンドを実行してください。

crontab -e

2. Cron Job の設定を追加する

Cron Job ファイルが開いたら、次のような行を追加します。

*/5 * * * * cd /path/to/your/eccube/directory && php bin/console back-in-stock:notification

この例では、back-in-stock:notification コマンドが 5 分ごとに実行されるように設定され

ています。/path/to/your/eccube/directory を EC-CUBE 4 がインストールされているディレクトリのパスに置き換えてください。

3. 変更を保存して終了する

変更を保存し、Cron Job のエディタを閉じてください。

Cron Job の設定方法 (Linux - CentOS)

1. ターミナルで Cron Job を開く

CentOSでターミナルを開いて、以下のコマンドを実行してください。

crontab -e

2. Cron Job の設定を追加する

Cron Job ファイルが開いたら、次のような行を追加します。

*/5 * * * * cd /path/to/your/eccube/directory && php bin/console back-in-stock:notification

この例では、back-in-stock:notification コマンドが 5 分ごとに実行されるように設定され

ています。/path/to/your/eccube/directory を EC-CUBE 4 がインストールされているディレクトリのパスに置き換えてください。

3. 変更を保存して終了する

変更を保存し、Cron Job のエディタを閉じてください。

Cron Job の設定方法 (macOS)

1. ターミナルで Cron Job を開く

macOS でターミナルを開いて、以下のコマンドを実行してください。

env EDITOR=nano crontab -e

2. Cron Job の設定を追加する

Cron Job ファイルが開いたら、次のような行を追加します。

*/5 * * * * cd /path/to/your/eccube/directory && php bin/console back-in-stock:notification

この例では、back-in-stock:notification コマンドが 5 分ごとに実行されるように設定され

ています。/path/to/your/eccube/directory を EC-CUBE 4 がインストールされているディレクトリのパスに置き換えてください。

3. 変更を保存して終了する

変更を保存し、Cron Job のエディタを閉じてください。macOS の場合、Control + X を押して、Y を選択して、Enter キーを押すことで変更を保存できます。