codeiqbv/laravel-mww
Composer 安装命令:
composer require codeiqbv/laravel-mww
包简介
Integration between Laravel and MijnWebwinkel
README 文档
README
A Laravel package for seamless integration with the MyOnlineStore API.
Table of Contents
- Installation
- Configuration
- Basic Usage
- Articles
- Orders
- Payments
- Discount Codes
- Shipping Methods
- Offline Locations
- Query Builders
- Resources
- Data Transfer Objects
- Error Handling
- Testing
- Multi-tenant Usage
Installation
You can install the package via composer:
composer require codeiqbv/laravel-mww
Configuration
Publish the config file:
php artisan vendor:publish --tag="myonlinestore-config"
Add these environment variables to your .env file:
MYONLINESTORE_API_KEY=your_api_key MYONLINESTORE_API_URL=https://api.myonlinestore.com MYONLINESTORE_API_VERSION=1 MYONLINESTORE_MULTI_TENANT=false MYONLINESTORE_LANGUAGE=nl_NL MYONLINESTORE_TIMEOUT=30
Basic Usage
The package provides a fluent interface for all API operations:
use CodeIQ\LaravelMww\Facades\MyOnlineStore; // Get all articles $articles = MyOnlineStore::articles()->get(); // Get all orders $orders = MyOnlineStore::ordersList()->get();
Articles
Listing Articles
// Basic listing $articles = MyOnlineStore::articles()->get(); // With filters $articles = MyOnlineStore::articles() ->limit(50) ->offset(0) ->createdBetween('2024-01-01 00:00:00', '2024-03-01 23:59:59') ->language('en_GB') ->get(); // Get count $count = MyOnlineStore::articles()->count();
Single Article Operations
// Get single article $article = MyOnlineStore::articles()->find(123); // Create article $articleData = new CreateArticleData( name: 'New Product', description: 'Product description', sku: 'PROD-123', price: [ 'default' => 12.50, 'action' => 9.95 ] ); $article = MyOnlineStore::articles()->create($articleData); // Update article $updateData = new UpdateArticleData( name: 'Updated Name', stock: 20 ); $article = MyOnlineStore::articles()->update(123, $updateData); // Delete article $success = MyOnlineStore::articles()->delete(123); // Delete article image $success = MyOnlineStore::articles()->deleteImage(456);
Orders
Listing Orders
// Basic listing $orders = MyOnlineStore::ordersList()->get(); // With filters $orders = MyOnlineStore::ordersList() ->limit(25) ->between('2024-01-01', '2024-03-01') ->status(1) ->archived(true) ->forDebtor('customer@example.com') ->orderBy('desc') ->get(); // Get count $count = MyOnlineStore::ordersList()->count();
Single Order Operations
// Get single order $order = MyOnlineStore::ordersList()->find(27); // Create order $orderData = new CreateOrderData( // ... order details ); $order = MyOnlineStore::ordersList()->create($orderData); // Update order $updateData = new UpdateOrderData( status: 2, archived: true ); $order = MyOnlineStore::ordersList()->update(27, $updateData); // Create credit order $creditData = new CreateCreditOrderData( credited_order_number: '272', status: 10 ); $creditOrder = MyOnlineStore::ordersList()->credit($creditData);
Payments
Order Payments
// Get order payments $payments = MyOnlineStore::ordersList() ->payments(27, ['properties', 'mutations']); // Create payment $paymentData = new CreatePaymentData( gateway: 'mollie', method: 'ideal' ); $payment = MyOnlineStore::ordersList() ->createPayment(27, $paymentData); // Update payment $updateData = new UpdatePaymentData( method: 'creditcard' ); $payment = MyOnlineStore::ordersList() ->updatePayment(27, 'payment-id', $updateData); // Delete payment $success = MyOnlineStore::ordersList() ->deletePayment(27, 'payment-id');
Payment Gateways
// Get all gateways $gateways = MyOnlineStore::payments()->gateways(); // Get store-specific gateways $gateways = MyOnlineStore::payments() ->storeGateways('store-id');
Discount Codes
// List discount codes $codes = MyOnlineStore::discountCodes() ->active() ->validBetween('2024-01-01', '2024-12-31') ->get(); // Create discount code $codeData = new CreateDiscountCodeData( description: 'Summer Sale', percentage_discount: '10.00' ); $code = MyOnlineStore::discountCodes()->create($codeData); // Get single code $code = MyOnlineStore::discountCodes()->find('SUMMER10'); // Update code $updateData = new UpdateDiscountCodeData( active: false ); $code = MyOnlineStore::discountCodes()->update('SUMMER10', $updateData); // Delete code $success = MyOnlineStore::discountCodes()->delete('SUMMER10');
Query Builders
The package provides fluent query builders for:
ArticleQueryBuilderOrderQueryBuilderPaymentQueryBuilderDiscountCodeQueryBuilderLocationQueryBuilderShippingQueryBuilder
Each builder provides methods for filtering and manipulating the respective resources.
Resources
API responses are transformed through Laravel Resources:
ArticleResourceOrderResourcePaymentResourceDiscountCodeResourceOrderLineResourcePriceResourceTaxResourceAddressResourceDebtorResource- And more...
Data Transfer Objects
Type-safe DTOs for creating and updating resources:
CreateArticleDataUpdateArticleDataCreateOrderDataUpdateOrderDataCreatePaymentDataUpdatePaymentDataCreateDiscountCodeDataUpdateDiscountCodeData- And more...
Error Handling
The package throws these exceptions:
use YourNamespace\MyOnlineStore\Exceptions\AuthenticationException; use YourNamespace\MyOnlineStore\Exceptions\ConfigurationException; use YourNamespace\MyOnlineStore\Exceptions\ValidationException; try { $result = MyOnlineStore::articles()->create($data); } catch (AuthenticationException $e) { // Handle invalid API credentials } catch (ValidationException $e) { $errors = $e->getErrors(); // Handle validation errors } catch (ConfigurationException $e) { // Handle configuration issues }
Testing
composer test
Multi-tenant Usage
For multi-tenant applications:
// Enable multi-tenant mode in config 'multi_tenant' => true, // Set tenant-specific credentials MyOnlineStore::setTenantCredentials( 'tenant-api-key', 'https://tenant-specific-url.com' ); // Continue using the API as normal $articles = MyOnlineStore::articles()->get();
Security
If you discover any security related issues, please email security@codeiq.nl instead of using the issue tracker.
Credits
License
The MIT License (MIT). Please see License File for more information.
codeiqbv/laravel-mww 适用场景与选型建议
codeiqbv/laravel-mww 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 0 次下载、GitHub Stars 达 0, 最近一次更新时间为 2024 年 11 月 27 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「laravel」 「CodeIQ B.V.」 「laravel-mww」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 codeiqbv/laravel-mww 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 codeiqbv/laravel-mww 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 codeiqbv/laravel-mww 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
Alfabank REST API integration
This package allows validation rules to be defined globally and reused. This way you can use the same rules for your Controller, Action classes, API post/update routes, Livewire and other sections.
Integration between Laravel and Virtualizro
Laravel package for Accurate Online API integration.
Shared RCX Laravel DataTables UI and configuration helpers.
Boot a Laravel project on any machine with one command: app:serve installs missing tools (PHP, Node, Composer, Herd, Docker), creates .env, sets up the database, runs migrations, builds assets, starts a queue worker and serves via Herd, Sail or artisan serve; app:down cleanly stops everything it sta
统计信息
- 总下载量: 0
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 6
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2024-11-27