aquis / sylius-xporter-plugin
Plugin allowing to export and import back fixtures, in yml format.
Installs: 8
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 2
Forks: 0
Open Issues: 0
Type:sylius-plugin
Requires
- php: ^7.3
- sylius/sylius: ^1.7.5
- theofidry/alice-data-fixtures: ^1.3
Requires (Dev)
- behat/behat: ^3.6.1
- behat/mink-extension: ^2.3
- behat/mink-selenium2-driver: ^1.4
- behat/symfony2-extension: ^2.1
- behatch/contexts: ^3.3
- dmore/behat-chrome-extension: ^1.3
- dmore/chrome-mink-driver: ^2.7
- friends-of-behat/mink: ^1.8
- friends-of-behat/mink-browserkit-driver: ^1.4
- friends-of-behat/mink-extension: ^2.4
- friends-of-behat/page-object-extension: ^0.3
- friends-of-behat/suite-settings-extension: ^1.0
- friends-of-behat/symfony-extension: ^2.1
- friends-of-behat/variadic-extension: ^1.3
- lakion/mink-debug-extension: ^1.2.3
- nelmio/alice: ^3.7
- phpspec/phpspec: ^6.1
- phpstan/phpstan: 0.12.25
- phpstan/phpstan-doctrine: 0.12.13
- phpstan/phpstan-webmozart-assert: 0.12.4
- phpunit/phpunit: ^8.5
- sensiolabs/security-checker: ^6.0
- sylius-labs/coding-standard: ^3.1
- symfony/browser-kit: ^4.4
- symfony/debug-bundle: ^4.4|^5.0
- symfony/dotenv: ^4.4|^5.0
- symfony/intl: ^4.4|^5.0
- symfony/web-profiler-bundle: ^4.4|^5.0
- symfony/web-server-bundle: ^4.4|^5.0
- vimeo/psalm: 3.11.4
This package is auto-updated.
Last update: 2024-10-29 06:06:03 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
https://www.paypal.com/donate?hosted_button_id=KNKTPJXM8PEEQ