setono / sylius-shipmondo-plugin
将您的商店与Shipmondo集成
v1.0.0-alpha.3
2024-04-10 16:34 UTC
Requires
- php: >=8.1
- doctrine/orm: ^2.15
- doctrine/persistence: ^2.5 || ^3.2
- firebase/php-jwt: ^6.10
- knplabs/knp-menu: ^3.4
- ocramius/doctrine-batch-utils: ^2.4
- psr/event-dispatcher: ^1.0
- setono/doctrine-object-manager-trait: ^1.1
- setono/shipmondo-php-sdk: ^1.0@beta
- sylius/core: ^1.0
- sylius/core-bundle: ^1.0
- sylius/grid-bundle: ^1.0
- sylius/order: ^1.0
- sylius/resource-bundle: ^1.0
- sylius/ui-bundle: ^1.0
- symfony/config: ^6.4
- symfony/console: ^6.4
- symfony/dependency-injection: ^6.4
- symfony/event-dispatcher: ^6.4
- symfony/event-dispatcher-contracts: ^3.4
- symfony/framework-bundle: ^6.4
- symfony/http-foundation: ^6.4
- symfony/http-kernel: ^6.4
- symfony/messenger: ^6.4
- symfony/remote-event: ^6.4
- symfony/routing: ^6.4
- symfony/string: ^6.4
- symfony/webhook: ^6.4
- symfony/workflow: ^6.4
- twig/twig: ^2.16 || ^3.8
- webmozart/assert: ^1.11
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.6
- sylius/sylius: ~1.12.13
- symfony/debug-bundle: ^6.4
- symfony/dotenv: ^6.4
- symfony/http-client: ^6.4
- symfony/intl: ^6.4
- symfony/property-info: ^6.4
- symfony/serializer: ^6.4
- symfony/web-profiler-bundle: ^6.4
- symfony/webpack-encore-bundle: ^1.17
- willdurand/negotiation: ^3.1
This package is auto-updated.
Last update: 2024-09-05 09:40:49 UTC
README
安装
composer require setono/sylius-shipmondo-plugin symfony/webhook
将插件类添加到您的 bundles.php
请确保在 SyliusGridBundle
之前添加它,否则您将收到 您请求了不存在的参数 "setono_sylius_shipmondo.model.remote_event.class".
异常。
<?php $bundles = [ // ... Setono\SyliusShipmondoPlugin\SetonoSyliusShipmondoPlugin::class => ['all' => true], Sylius\Bundle\GridBundle\SyliusGridBundle::class => ['all' => true], // ... ];
导入路由
# config/routes/setono_sylius_shipmondo.yaml setono_sylius_shipmondo: resource: "@SetonoSyliusShipmondoPlugin/Resources/config/routes.yaml"
或者如果您使用的是应用没有本地化
# config/routes/setono_sylius_shipmondo.yaml setono_sylius_shipmondo: resource: "@SetonoSyliusShipmondoPlugin/Resources/config/routes_no_locale.yaml"
添加环境变量
将以下变量添加到您的 .env
文件中
###> setono/sylius-shipmondo-plugin ### SHIPMONDO_USERNAME= SHIPMONDO_KEY= SHIPMONDO_WEBHOOKS_KEY= ###< setono/sylius-shipmondo-plugin ###
覆盖模板
为了能够编辑配送方式中的 pickupPointDelivery
和 carrierCode
属性,必须覆盖配送方式表单。
如果您还没有创建文件,请创建 templates/bundles/SyliusAdminBundle/ShippingMethod/_form.html.twig
并添加 {{ form_row(form.pickupPointDelivery) }}
和 {{ form_row(form.carrierCode) }}
到您想要的位置。例如,可以添加到 enabled
字段旁边
... <div class="three fields"> {{ form_row(form.enabled) }} {{ form_row(form.pickupPointDelivery) }} {{ form_row(form.carrierCode) }} </div> ...
在默认管理面板中看起来将是这样
扩展实体
Order
实体
<?php # src/Entity/Order/Order.php declare(strict_types=1); namespace App\Entity\Order; use Setono\SyliusShipmondoPlugin\Model\OrderInterface as ShipmondoOrderInterface; use Setono\SyliusShipmondoPlugin\Model\OrderTrait as ShipmondoOrderTrait; 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 ShipmondoOrderInterface { use ShipmondoOrderTrait; }
PaymentMethod
实体
<?php # src/Entity/Payment/PaymentMethod.php declare(strict_types=1); namespace App\Entity\Payment; use Doctrine\ORM\Mapping as ORM; use Setono\SyliusShipmondoPlugin\Model\PaymentMethodInterface as ShipmondoPaymentMethodInterface; use Setono\SyliusShipmondoPlugin\Model\PaymentMethodTrait as ShipmondoPaymentMethodTrait; use Sylius\Component\Core\Model\PaymentMethod as BasePaymentMethod; /** * @ORM\Entity * * @ORM\Table(name="sylius_payment_method") */ class PaymentMethod extends BasePaymentMethod implements ShipmondoPaymentMethodInterface { use ShipmondoPaymentMethodTrait; }
ShippingMethod
实体
<?php # src/Entity/Shipping/ShippingMethod.php declare(strict_types=1); namespace App\Entity\Shipping; use Doctrine\ORM\Mapping as ORM; use Setono\SyliusShipmondoPlugin\Model\ShippingMethodInterface as ShipmondoShippingMethodInterface; use Setono\SyliusShipmondoPlugin\Model\ShippingMethodTrait as ShipmondoShippingMethodTrait; use Sylius\Component\Core\Model\ShippingMethod as BaseShippingMethod; /** * @ORM\Entity * * @ORM\Table(name="sylius_shipping_method") */ class ShippingMethod extends BaseShippingMethod implements ShipmondoShippingMethodInterface { use ShipmondoShippingMethodTrait; }
Shipment
实体
<?php # src/Entity/Shipping/Shipment.php declare(strict_types=1); namespace App\Entity\Shipping; use Doctrine\ORM\Mapping as ORM; use Setono\SyliusShipmondoPlugin\Model\ShipmentInterface as ShipmondoShipmentInterface; use Setono\SyliusShipmondoPlugin\Model\ShipmentTrait as ShipmondoShipmentTrait; use Sylius\Component\Core\Model\Shipment as BaseShipment; /** * @ORM\Entity * * @ORM\Table(name="sylius_shipment") */ class Shipment extends BaseShipment implements ShipmondoShipmentInterface { use ShipmondoShipmentTrait; }
更新您的数据库
php bin/console doctrine:migrations:diff php bin/console doctrine:migrations:migrate
开发
(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