aquis/sylius-xporter-plugin

Plugin allowing to export and import back fixtures, in yml format.

Package info

github.com/malutanpetronel/SyliusXporterPlugin

Homepage

Type:sylius-plugin

pkg:composer/aquis/sylius-xporter-plugin

Statistics

Installs: 8

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

v1.8 2021-01-20 13:29 UTC

Requires

Requires (Dev)

Suggests

None

Provides

None

Conflicts

None

Replaces

None

AGPL-3.0-or-later b5785bc15ad431cbffab90750e1ab590c8da8660

  • Petronel Malutan <malutanpetronel.woop@gmail.com>

syliussylius-pluginsylius aquis pluginsylius petro pluginsylius-xporter-plugin

This package is auto-updated.

Last update: 2026-06-29 02:12:05 UTC


README

INSTALATION

To correctly install the plugin please follow the next steps

Install the plugin

dev phase

,
 "repositories": [
 {
 "type": "path",
 "url": "../SyliusXporterPlugin"
 }
 ]

then

composer require aquis/sylius-xporter-plugin:*@dev

Fix Sylius related errors

You may get in 1.8 a strange error Attempted to load class "SecurityCheckerCommand" from namespace in bin/console can be fixed with probably from outside docker as inside will throw allowed memory:

composer require sensiolabs/security-checker

then fix missing directory

mkdir /srv/sylius/public/media/image

Enable the plugin in the bundles.php by adding at the end

...
Aquis\ProductDesignConfigurator\SyliusXporterPlugin::class => ['all' => true],

Enable plugin routes

Add the following routes into your project routes.yml

sylius-aquis-xporter-plugin.admin:
 # loads routes from the SyliusProductDesignConfigurator Plugin - Admin
 resource: '@SyliusXporterPlugin/Resources/config/admin_routing.yml'

sylius-aquis-xporter-plugin.shop:
 # loads routes from the SyliusProductDesignConfigurator Plugin - Shop
 resource: '@SyliusXporterPlugin/Resources/config/shop_routing.yml'

Import configurations in _sylius.yml of your project

- { resource: "@SyliusXporterPlugin/Resources/config/packages/_sylius.yml" }
- { resource: "@SyliusXporterPlugin/Resources/config/packages/oneup_flysystem.yml" }
- { resource: "@SyliusXporterPlugin/Resources/config/packages/monolog.yml" }

Add required traits in the project entities

+++ b/src/Entity/Channel/Channel.php
+use Aquis\XporterPlugin\Model\Channel\ChannelTrait;
+ use ChannelTrait;

+++ b/src/Entity/Customer/Customer.php
+use Aquis\XporterPlugin\Model\Customer\CustomerTrait;
+ use CustomerTrait;

+++ b/src/Entity/Order/Adjustment.php
+use Aquis\XporterPlugin\Model\Order\AdjustmentTrait;
+ use AdjustmentTrait;

+++ b/src/Entity/Order/OrderItem.php
+use Aquis\XporterPlugin\Model\Order\OrderItemTrait;
+ use OrderItemTrait;

+++ b/src/Entity/Payment/PaymentMethod.php
+use Aquis\XporterPlugin\Model\Payment\PaymentMethodTrait;
+ use PaymentMethodTrait;

+++ b/src/Entity/Product/Product.php
+use Aquis\XporterPlugin\Model\Product\ProductTrait as ProductTrait_EX;
+ use ProductTrait_EX;
 
+++ b/src/Entity/Product/ProductAttributeValue.php
+use Aquis\XporterPlugin\Model\Product\ProductAttributeValueTrait;
+ use ProductAttributeValueTrait;

+++ b/src/Entity/Product/ProductVariant.php
+use Aquis\XporterPlugin\Model\Product\ProductVariantTrait as ProductVariantTrait_EX;
+ use ProductVariantTrait_EX;
 
+++ b/src/Entity/Promotion/Promotion.php
+use Aquis\XporterPlugin\Model\Promotion\PromotionTrait;
+ use PromotionTrait;

+++ b/src/Entity/Shipping/ShippingMethod.php
+use Aquis\XporterPlugin\Model\Shipping\ShippingMethodTrait;
+ use ShippingMethodTrait;

+++ b/src/Entity/Taxation/TaxRate.php
+use Aquis\XporterPlugin\Model\Taxation\TaxRateTrait;
+ use TaxRateTrait;

+++ b/src/Entity/Taxonomy/Taxon.php
+use Aquis\XporterPlugin\Model\Taxonomy\TaxonTrait;
+ use TaxonTrait;

+++ b/src/Entity/User/ShopUser.php
+use Aquis\XporterPlugin\Model\User\ShopUserTrait;
+ use ShopUserTrait;

+++ b/src/Entity/Channel/Channel.php
+use Aquis\XporterPlugin\Model\Channel\ChannelTrait;
+ use ChannelTrait;

+++ b/src/Entity/Customer/Customer.php
+use Aquis\XporterPlugin\Model\Customer\CustomerTrait;
+ use CustomerTrait;

+++ b/src/Entity/Order/Adjustment.php
+use Aquis\XporterPlugin\Model\Order\AdjustmentTrait;
+ use AdjustmentTrait;

+++ b/src/Entity/Order/OrderItem.php
+use Aquis\XporterPlugin\Model\Order\OrderItemTrait;
+ use OrderItemTrait;

+++ b/src/Entity/Payment/PaymentMethod.php
+use Aquis\XporterPlugin\Model\Payment\PaymentMethodTrait;
+ use PaymentMethodTrait;

+++ b/src/Entity/Product/Product.php
+use Aquis\XporterPlugin\Model\Product\ProductTrait as ProductTrait_EX;
+ use ProductTrait_EX;
 
+++ b/src/Entity/Product/ProductAttributeValue.php
+use Aquis\XporterPlugin\Model\Product\ProductAttributeValueTrait;
+ use ProductAttributeValueTrait;

+++ b/src/Entity/Product/ProductVariant.php
+use Aquis\XporterPlugin\Model\Product\ProductVariantTrait as ProductVariantTrait_EX;
+ use ProductVariantTrait_EX;
 
+++ b/src/Entity/Promotion/Promotion.php
+use Aquis\XporterPlugin\Model\Promotion\PromotionTrait;
+ use PromotionTrait;

+++ b/src/Entity/Shipping/ShippingMethod.php
+use Aquis\XporterPlugin\Model\Shipping\ShippingMethodTrait;
+ use ShippingMethodTrait;

+++ b/src/Entity/Taxation/TaxRate.php
+use Aquis\XporterPlugin\Model\Taxation\TaxRateTrait;
+ use TaxRateTrait;

+++ b/src/Entity/Taxonomy/Taxon.php
+use Aquis\XporterPlugin\Model\Taxonomy\TaxonTrait;
+ use TaxonTrait;

+++ b/src/Entity/User/ShopUser.php
+use Aquis\XporterPlugin\Model\User\ShopUserTrait;
+ use ShopUserTrait;

Run the follosing command to export your data

Data can start from any entity and all related info will be dumped into a yaml file

bin/console aquis:fixture:dump App\\Entity\\Product\\Product --ids=1,3 --debug=true

Test the plugin

We are using Behat, PHPSpec and PHPUnit to test this plugin.

How to run the tests

From the plugin root directory, run the following commands:

$ (cd tests/Application && yarn install)
$ (cd tests/Application && yarn build)
$ (cd tests/Application && bin/console assets:install public -e test)

$ (cd tests/Application && bin/console doctrine:database:create -e test)
$ (cd tests/Application && bin/console doctrine:schema:create -e test)

To be able to setup a plugin's database, remember to configure you database credentials in tests/Application/.env and tests/Application/.env.test.

Usage

Running plugin tests

  • PHPUnit

    $ bin/phpunit
  • PHPSpec

    $ bin/phpspec run
  • Behat

    $ bin/behat

Opening Sylius with this plugin

  • Using test environment:

    $ (cd tests/Application && bin/console sylius:fixtures:load -e test)
    $ (cd tests/Application && bin/console server:run -d public -e test)
  • Using dev environment:

    $ (cd tests/Application && bin/console sylius:fixtures:load -e dev)
    $ (cd tests/Application && bin/console server:run -d public -e dev)

done...

Sylius & API-PLATFORM
https://docs.sylius.com/en/latest/api/unified_api/introduction.html
Get the service names

bin/console debug:container | grep state_machine | grep -vE 'Transition|Definition' | awk '{ print $1 }'

Refresh js and css

bin/console assets:install web --ansi

bin/console debug:container sylius.repository.product

Install dev

COMPOSER=composer.dev.json composer install

Buy me a beer if this plugin helps you

👁 alt text

https://www.paypal.com/donate?hosted_button_id=KNKTPJXM8PEEQ