polarizetech/wixable

Automatically imports data collection items from the Wix Headless CMS to your Laravel models

0.0.3 2024-04-13 21:08 UTC

This package is auto-updated.

Last update: 2024-05-17 19:26:08 UTC


README

Wixable

Automatically imports (one-way sync from Wix CMS) data items from Wix Headless CMS to your app's database.

Installation

Install package: composer required polarize/wixable

Add your Wix API credentials to your environment file:

WIX_API_KEY="..."
WIX_ACCOUNT_ID="..."
WIX_SITE_ID="..."

Publish the migration for Wixables "wixable_data_items" table: php artisan vendor:publish --tag=wixable.migrations

Run migrations: php artisan migrate

Setup your models

Add a new class to your app/Models folder that extends Wixable\Wixable. Repeat for each of the Data Collections in Wix that you would like to keep synced (the model name should be the singular version of the data collection's ID).

For example, in the case of my "Breakfast Sandwich Reviews" collection in Wix (witch might have the Data Collection ID of "BreakfastSandwichReviews"), I would do the following:

  1. Run the artisan make command: php artisan make:model BreakfastSandwichReview

  2. Update the new model to extend the Wixable\Wixable abstract class:

<?php

namespace App\Models;

use Wixable\Wixable;

class BreakfastSandwichReview extends Wixable
{
    //
}

Note: You can also set the data collection name via the $dataCollectionId property like so...

class Reviews extends Wixable
{
    protected string $wixDataCollection = 'BreakfastSandwichReviews';

    ...

Schedule the importer

To automatically import your wix data items, add the following line to your AppServiceProvider (or schedule the php artisan wixable:import command another way if you prefer).

use Illuminate\Support\Facades\Schedule;

public function boot()
{
    Schedule::command('wixable:import')->everyFiveMinutes();

    ...