codeiqbv/laravel-mww
最新稳定版本:v0.1.0-beta.1
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.
统计信息
- 总下载量: 0
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 0
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2024-11-27