setono/sylius-shop-the-look-plugin

Create looks for your Sylius store that let your customers buy more items

Installs: 9 585

Dependents: 0

Suggesters: 0

Security: 0

Stars: 0

Watchers: 3

Forks: 0

Open Issues: 6

Type:sylius-plugin

v0.2.8 2022-04-08 12:52 UTC

This package is auto-updated.

Last update: 2024-04-08 17:38:15 UTC


README

Latest Version on Packagist Software License Build Status

Installation

Require plugin with composer

composer require setono/sylius-shop-the-look-plugin

Import configuration

# config/packages/setono_sylius_shop_the_look.yaml
imports:
    - { resource: "@SetonoSyliusShopTheLookPlugin/Resources/config/app/config.yaml" }

(Optional) Import fixtures

If you wish to have some looks to play with in your application during development.

# config/packages/setono_sylius_shop_the_look.yaml
imports:
    # ...
    - { resource: "@SetonoSyliusShopTheLookPlugin/Resources/config/app/fixtures.yaml" }

Import routing

# config/routes/setono_sylius_shop_the_look.yaml
setono_sylius_shop_the_look:
    resource: "@SetonoSyliusShopTheLookPlugin/Resources/config/routes.yaml"
    # Or if your app doesn't use localized URLs:
    # resource: "@SetonoSyliusShopTheLookPlugin/Resources/config/routes_no_locale.yaml"
    # @see https://docs.sylius.com/en/latest/cookbook/shop/disabling-localised-urls.html

Add plugin class to your bundles.php

Make sure you add it before SyliusGridBundle, otherwise you'll get exception.

<?php
$bundles = [
    // ...
    Setono\SyliusShopTheLookPlugin\SetonoSyliusShopTheLookPlugin::class => ['all' => true],
    Sylius\Bundle\GridBundle\SyliusGridBundle::class => ['all' => true],
    // ...
];

Prepare assets

If you're using Webpack encore in your app:

  • Add swiper to your package.json:
yarn add swiper
  • Specify plugin's scripts alias at webpack.config.js:
// webpack.config.js
// Admin
const setonoShopTheLookPluginAdminResources = path.resolve(__dirname, 'vendor/setono/sylius-shop-the-look-plugin/src/Resources/private/admin/');
// ...
adminConfig.resolve.alias['setono/shop-the-look-plugin'] = setonoShopTheLookPluginAdminResources;
// ...

// Shop
const setonoShopTheLookPluginShopResources = path.resolve(__dirname, 'vendor/setono/sylius-shop-the-look-plugin/src/Resources/private/shop/');
// ...
shopConfig.resolve.alias['setono/shop-the-look-plugin'] = setonoShopTheLookPluginShopResources;
  • Use plugin's apps/styles:
// assets/admin/js/app.js
import 'setono/shop-the-look-plugin/js/app';
// assets/shop/js/app.js
import 'setono/shop-the-look-plugin/js/app';
import 'setono/shop-the-look-plugin/scss/app';
  • And run yarn encore dev to rebuild it

If you're using regular scripts inclusion

This is not supported out of the box (slug generation script), but I guess you can do something like this at your app's javascript file:

(function ($) {
  'use strict';

  $.fn.extend({
    // Put setono-shop-the-look-slug.js's content here
  });

  $(document).ready(() => {
    $(document).lookSlugGenerator();
  });
})(jQuery);
# config/packages/setono_sylius_shop_the_look.yaml
imports:
    // ...
    - { resource: "@SetonoSyliusShopTheLookPlugin/Resources/config/app/ui/admin.yaml" }

Also, you should discover src/Resources/private and adjust shop styles/scripts to your needs.

Update your database:

$ bin/console doctrine:migrations:diff
$ bin/console doctrine:migrations:migrate

Override templates

Inject look discount lines from src/Resources/views/templates/bundles templates to cart/checkout/order templates like it was done at tests/Application/templates/bundles.