定制 codeiqbv/laravel-mww 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

codeiqbv/laravel-mww

Composer 安装命令:

composer require codeiqbv/laravel-mww

包简介

Integration between Laravel and MijnWebwinkel

README 文档

README

Latest Version on Packagist Total Downloads

A Laravel package for seamless integration with the MyOnlineStore API.

Table of Contents

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:

  • ArticleQueryBuilder
  • OrderQueryBuilder
  • PaymentQueryBuilder
  • DiscountCodeQueryBuilder
  • LocationQueryBuilder
  • ShippingQueryBuilder

Each builder provides methods for filtering and manipulating the respective resources.

Resources

API responses are transformed through Laravel Resources:

  • ArticleResource
  • OrderResource
  • PaymentResource
  • DiscountCodeResource
  • OrderLineResource
  • PriceResource
  • TaxResource
  • AddressResource
  • DebtorResource
  • And more...

Data Transfer Objects

Type-safe DTOs for creating and updating resources:

  • CreateArticleData
  • UpdateArticleData
  • CreateOrderData
  • UpdateOrderData
  • CreatePaymentData
  • UpdatePaymentData
  • CreateDiscountCodeData
  • UpdateDiscountCodeData
  • 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 我们能提供哪些服务?
定制开发 / 二次开发

基于 codeiqbv/laravel-mww 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

  • 总下载量: 0
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 6
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 1
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2024-11-27