tourze / wechat-mini-program-order-bundle
微信小程序-购物订单
Installs: 0
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 0
Open Issues: 0
Type:symfony-bundle
pkg:composer/tourze/wechat-mini-program-order-bundle
Requires
- doctrine/collections: ^2.3
- doctrine/dbal: ^4.0
- doctrine/doctrine-bundle: ^2.13
- doctrine/orm: ^3.0
- doctrine/persistence: ^4.1
- easycorp/easyadmin-bundle: ^4
- knplabs/knp-menu: ^3.7
- symfony/config: ^7.3
- symfony/dependency-injection: ^7.3
- symfony/doctrine-bridge: ^7.3
- symfony/framework-bundle: ^7.3
- symfony/http-kernel: ^7.3
- symfony/property-access: ^7.3
- symfony/routing: ^7.3
- symfony/security-core: ^7.3
- symfony/yaml: ^7.3
- tourze/bundle-dependency: 1.*
- tourze/doctrine-snowflake-bundle: 1.0.*
- tourze/doctrine-timestamp-bundle: 1.0.*
- tourze/doctrine-track-bundle: 1.0.*
- tourze/doctrine-user-bundle: 1.0.*
- tourze/easy-admin-menu-bundle: 1.0.*
- tourze/enum-extra: 1.0.*
- tourze/symfony-dependency-service-loader: 1.0.*
- tourze/symfony-routing-auto-loader-bundle: 1.0.*
- tourze/wechat-mini-program-appid-contracts: 1.0.*
- tourze/wechat-mini-program-auth-bundle: 1.0.*
- tourze/wechat-mini-program-bundle: 1.0.*
- tourze/wechat-mini-program-user-contracts: 1.0.*
Requires (Dev)
- doctrine/data-fixtures: ^2.0
- doctrine/doctrine-fixtures-bundle: ^4.0
- phpstan/phpstan: ^2.1
- phpunit/phpunit: ^11.5
- tourze/http-client-bundle: 1.0.*
- tourze/phpunit-doctrine-entity: 1.*
- tourze/phpunit-enum: 1.*
- tourze/phpunit-symfony-kernel-test: 1.0.*
- tourze/phpunit-symfony-unit-test: 1.*
- tourze/phpunit-symfony-web-test: 1.*
This package is auto-updated.
Last update: 2025-11-11 13:23:04 UTC
README
A Symfony Bundle for WeChat Mini Program shopping order management, providing shopping information and shipping information upload capabilities.
Features
- 🛍️ Shopping Information Management: Upload and manage shopping order details
- 🚚 Shipping Information Management: Upload and manage shipping/logistics information
- 🏗️ Entity Management: Complete Doctrine entity definitions for orders, items, and shipping
- 📊 Repository Pattern: Repository classes for data access
- 🔄 Event-Driven: Event subscribers for order processing
- 🧪 Fully Tested: Comprehensive test coverage with PHPUnit
Installation
composer require tourze/wechat-mini-program-order-bundle
Quick Start
1. Bundle Configuration
Add the bundle to your config/bundles.php:
return [ // ... other bundles WechatMiniProgramOrderBundle\WechatMiniProgramOrderBundle::class => ['all' => true], ];
2. Basic Usage
<?php use WechatMiniProgramOrderBundle\Request\UploadShoppingInfoRequest; use WechatMiniProgramOrderBundle\Entity\ShoppingInfo; use WechatMiniProgramOrderBundle\Entity\OrderKey; use WechatMiniProgramOrderBundle\Entity\ShoppingItemList; use WechatMiniProgramOrderBundle\Enum\OrderNumberType; use WechatMiniProgramOrderBundle\Enum\OrderDetailType; use WechatMiniProgramOrderBundle\Enum\LogisticsType; // 1. Create order key $orderKey = new OrderKey(); $orderKey->setOrderNumberType(OrderNumberType::USE_MCH_ORDER); $orderKey->setMchId('your-mch-id'); $orderKey->setOutTradeNo('your-out-trade-no'); // 2. Create shopping info $shoppingInfo = new ShoppingInfo(); $shoppingInfo->setOrderKey($orderKey); $shoppingInfo->setPayer($user); // UserInterface instance $shoppingInfo->setOrderDetailType(OrderDetailType::SHOPPING_ORDER); $shoppingInfo->setLogisticsType(LogisticsType::EXPRESS); // 3. Upload shopping info $request = new UploadShoppingInfoRequest(); $request->setShoppingInfo($shoppingInfo);
3. Upload Shopping Information
use WechatMiniProgramOrderBundle\Request\UploadShoppingInfoRequest; use WechatMiniProgramOrderBundle\Entity\ShoppingInfo; use WechatMiniProgramOrderBundle\Entity\OrderKey; use WechatMiniProgramOrderBundle\Entity\ShoppingItemList; $request = new UploadShoppingInfoRequest(); $shoppingInfo = new ShoppingInfo(); $orderKey = new OrderKey(); // Configure your shopping info $shoppingInfo->setOrderKey($orderKey); $shoppingInfo->setPayer($user); $shoppingInfo->setOrderDetailType(OrderDetailType::SHOPPING_ORDER); $request->setShoppingInfo($shoppingInfo);
4. Upload Shipping Information
use WechatMiniProgramOrderBundle\Request\UploadShippingInfoRequest; use WechatMiniProgramOrderBundle\Entity\ShippingInfo; $request = new UploadShippingInfoRequest(); $shippingInfo = new ShippingInfo(); // Configure your shipping info $shippingInfo->setTrackingNo('1234567890'); $shippingInfo->setDeliveryCompany('SF Express'); $request->setShippingInfo($shippingInfo);
Documentation
Entity Overview
Core Entities
- ShoppingInfo: Main shopping order information
- ShippingInfo: Shipping and logistics information
- OrderKey: Order identification keys
- ShoppingItemList: Shopping item details
- Contact: Contact information for orders
Enums
- OrderStatus: Order status enumeration
- LogisticsType: Logistics type enumeration
- DeliveryMode: Delivery mode enumeration
- OrderDetailType: Order detail type enumeration
Advanced Usage
Batch Operations
// Upload multiple shopping items $items = []; foreach ($products as $product) { $item = new ShoppingItemList(); $item->setMerchantItemId($product->getId()); $item->setItemName($product->getName()); $item->setItemCount($product->getQuantity()); $items[] = $item; } $shoppingInfo->setItemList($items);
Event Handling
// Listen to order events class OrderEventSubscriber implements EventSubscriberInterface { public function onOrderCreated(OrderCreatedEvent $event): void { // Handle order creation } }
Testing
Run the test suite:
./vendor/bin/phpunit packages/wechat-mini-program-order-bundle/tests
Requirements
- PHP 8.1+
- Symfony 6.4+
- Doctrine ORM 3.0+
References
- [WeChat Mini Program Shopping Order Documentation]( https://developers.weixin.qq.com/miniprogram/dev/platform-capabilities/ business-capabilities/shopping-order/shopping-order.html)
- [Upload Shopping Info API]( https://developers.weixin.qq.com/miniprogram/dev/OpenApiDoc/ shopping-order/normal-shopping-detail/uploadShoppingInfo.html)
- [Upload Shipping Info API]( https://developers.weixin.qq.com/miniprogram/dev/OpenApiDoc/ shopping-order/normal-shopping-detail/uploadShippingInfo.html)
Contributing
We welcome contributions! Please see CONTRIBUTING.md for details.
License
MIT