setono / sylius-peak-wms-plugin
将您的商店与Peak WMS集成
dev-master / 1.0.x-dev
2024-09-16 08:48 UTC
Requires
- php: >=8.1
- doctrine/orm: ^2.15
- doctrine/persistence: ^2.5 || ^3.2
- knplabs/knp-menu: ^3.4
- liip/imagine-bundle: ^2.0
- ocramius/doctrine-batch-utils: ^2.4
- psr/event-dispatcher: ^1.0
- psr/http-message: ^1.1
- psr/log: ^1.0 || ^2.0 || ^3.0
- setono/composite-compiler-pass: ^1.1
- setono/doctrine-orm-trait: ^1.1
- setono/peak-wms-php-sdk: ^1.0@alpha
- sylius/admin-bundle: ^1.0
- sylius/core: ^1.0
- sylius/core-bundle: ^1.0
- sylius/grid-bundle: ^1.0
- sylius/order: ^1.0
- sylius/payment: ^1.0
- sylius/product: ^1.0
- sylius/resource-bundle: ^1.0
- sylius/shipping: ^1.0
- sylius/ui-bundle: ^1.0
- symfony/config: ^5.4 || ^6.4
- symfony/console: ^5.4 || ^6.4
- symfony/dependency-injection: ^5.4 || ^6.4
- symfony/event-dispatcher: ^5.4 || ^6.4
- symfony/framework-bundle: ^5.4 || ^6.4
- symfony/http-foundation: ^5.4 || ^6.4
- symfony/http-kernel: ^5.4 || ^6.4
- symfony/messenger: ^5.4 || ^6.4
- symfony/routing: ^5.4 || ^6.4
- symfony/workflow: ^5.4 || ^6.4
- webmozart/assert: ^1.11
- winzou/state-machine: ^0.4
Requires (Dev)
- api-platform/core: ^2.7.16
- babdev/pagerfanta-bundle: ^3.8
- behat/behat: ^3.14
- beyondcode/expose: ^2.6
- doctrine/doctrine-bundle: ^2.11
- infection/infection: ^0.27.6
- jms/serializer-bundle: ^4.2
- lexik/jwt-authentication-bundle: ^2.16
- matthiasnoback/symfony-dependency-injection-test: ^4.3 || ^5.0
- nyholm/psr7: ^1.8
- phpspec/prophecy-phpunit: ^2.2
- phpunit/phpunit: ^9.6
- psalm/plugin-phpunit: ^0.18
- psalm/plugin-symfony: ^5.1
- setono/code-quality-pack: ^2.8
- shipmonk/composer-dependency-analyser: ^1.6
- sylius/sylius: ~1.12.13
- symfony/browser-kit: ^5.4 || ^6.4
- symfony/css-selector: ^5.4 || ^6.4
- symfony/debug-bundle: ^5.4 || ^6.4
- symfony/dotenv: ^5.4 || ^6.4
- symfony/http-client: ^5.4 || ^6.4
- symfony/intl: ^5.4 || ^6.4
- symfony/phpunit-bridge: ^7.1
- symfony/property-info: ^5.4 || ^6.4
- symfony/serializer: ^5.4 || ^6.4
- symfony/web-profiler-bundle: ^5.4 || ^6.4
- symfony/webpack-encore-bundle: ^1.17
- willdurand/negotiation: ^3.1
- zenstruck/messenger-test: ^1.10
This package is auto-updated.
Last update: 2024-09-16 08:48:58 UTC
README
安装
composer require setono/sylius-peak-wms-plugin
将插件类添加到您的 bundles.php
确保您在 SyliusGridBundle
之前添加它,否则您将收到 您请求了一个不存在的参数 "setono_sylius_peak.model.upload_order_request.class".
异常。
<?php $bundles = [ // ... Setono\SyliusPeakPlugin\SetonoSyliusPeakPlugin::class => ['all' => true], Sylius\Bundle\GridBundle\SyliusGridBundle::class => ['all' => true], // ... ];
导入路由
# config/routes/setono_sylius_peak.yaml setono_sylius_peak: resource: "@SetonoSyliusPeakPlugin/Resources/config/routes.yaml"
如果您的应用程序不使用区域设置
# config/routes/setono_sylius_peak.yaml setono_sylius_peak: resource: "@SetonoSyliusPeakPlugin/Resources/config/routes_no_locale.yaml"
添加环境变量
将以下变量添加到您的 .env
文件中
###> setono/sylius-peak-wms-plugin ### PEAK_WMS_API_KEY=YOUR_API_KEY ###< setono/sylius-peak-wms-plugin ###
扩展实体
订单
实体
<?php # src/Entity/Order/Order.php declare(strict_types=1); namespace App\Entity\Order; use Setono\SyliusPeakPlugin\Model\OrderInterface as PeakOrderInterface; use Setono\SyliusPeakPlugin\Model\OrderTrait as PeakOrderTrait; use Sylius\Component\Core\Model\Order as BaseOrder; use Doctrine\ORM\Mapping as ORM; /** * @ORM\Entity * * @ORM\Table(name="sylius_order") */ class Order extends BaseOrder implements PeakOrderInterface { use PeakOrderTrait; }
产品变体
实体
<?php # src/Entity/Product/ProductVariant.php declare(strict_types=1); namespace App\Entity\Order; use Doctrine\ORM\Mapping as ORM; use Setono\SyliusPeakPlugin\Model\ProductVariantInterface as PeakProductVariantInterface; use Setono\SyliusPeakPlugin\Model\ProductVariantTrait as PeakProductVariantTrait; use Sylius\Component\Core\Model\ProductVariant as BaseProductVariant; /** * @ORM\Entity * * @ORM\Table(name="sylius_product_variant") */ class ProductVariant extends BaseProductVariant implements PeakProductVariantInterface { use PeakProductVariantTrait; }
更新您的数据库
php bin/console doctrine:migrations:diff php bin/console doctrine:migrations:migrate
将作业添加到您的cron
# Will process the orders that are ready to be sent to Peak WMS php bin/console setono:sylius-peak-wms:process-upload-order-requests # Will create upload product variant requests for all product variants php bin/console setono:sylius-peak-wms:create-upload-product-variant-requests # Will process the upload product variant requests php bin/console setono:sylius-peak-wms:process-upload-product-variant-requests # Will update the inventory in Sylius based on the inventory in Peak WMS php bin/console setono:sylius-peak-wms:update-inventory # Will remove webhooks older than the given threshold (default is 30 days) php bin/console setono:sylius-peak-wms:prune-webhooks
注册webhooks
要从Peak WMS接收库存调整和订单状态更新,您需要在Peak WMS中注册webhooks。
通过运行以下命令来完成此操作
php bin/console setono:sylius-peak-wms:register-webhooks
注意 您还需要在Peak界面中启用webhooks的发送。
开发
(cd tests/Application && yarn install) (cd tests/Application && yarn build) (cd tests/Application && bin/console assets:install) (cd tests/Application && bin/console doctrine:database:create) (cd tests/Application && bin/console doctrine:schema:create) (cd tests/Application && bin/console sylius:fixtures:load -n) (cd tests/Application && symfony serve -d) vendor/bin/expose token <your expose token> vendor/bin/expose default-server free # If you are not paying for Expose vendor/bin/expose share https://127.0.0.1:8000