PHPackages                             webprog/shop - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Framework](/categories/framework)
4. /
5. webprog/shop

ActiveLibrary[Framework](/categories/framework)

webprog/shop
============

Laravel package for an abstract online store with CRUD, currency rates and delivery calculation

00PHP

Since Apr 9Pushed 2mo agoCompare

[ Source](https://github.com/mercY-f/shop)[ Packagist](https://packagist.org/packages/webprog/shop)[ RSS](/packages/webprog-shop/feed)WikiDiscussions main Synced 1w ago

READMEChangelogDependenciesVersions (1)Used By (0)

webprog/shop
============

[](#webprogshop)

Laravel-пакет для абстрактного интернет-магазина.

Установка
---------

[](#установка)

```
composer require webprog/shop
```

Публикация ресурсов
-------------------

[](#публикация-ресурсов)

```
# Конфигурация
php artisan vendor:publish --tag=shop-config

# Blade-шаблоны
php artisan vendor:publish --tag=shop-views

# Миграции
php artisan vendor:publish --tag=shop-migrations

php artisan migrate
php artisan db:seed --class="Webprog\Shop\Database\Seeders\ShopDatabaseSeeder"
```

Конфигурация (.env)
-------------------

[](#конфигурация-env)

```
SHOP_ROUTE_PREFIX=shop
SHOP_CURRENCY_BASE=USD
SHOP_DELIVERY_SERVICE=haversine   # haversine | openroute | mapbox
SHOP_DELIVERY_RATE_PER_KM=0.5
OPENROUTE_API_KEY=
MAPBOX_API_KEY=
```

Маршруты
--------

[](#маршруты)

Маршруты подключаются автоматически из пакета (не публикуются).

МетодURIДействиеGET/shop/productsindexGET/shop/products/createcreatePOST/shop/productsstoreGET/shop/products/{id}showGET/shop/products/{id}/editeditPUT/shop/products/{id}updateDELETE/shop/products/{id}destroyАналогично для: categories, suppliers, customers, warehouses, orders.

Фасад CurrencyRate
------------------

[](#фасад-currencyrate)

```
use Webprog\Shop\Facades\CurrencyRate;

$rate = CurrencyRate::get('EUR');           // float: курс EUR к USD
$amount = CurrencyRate::convert(100, 'EUR'); // float: 100 USD в EUR
$rates = CurrencyRate::getRates();           // array: все курсы
CurrencyRate::clearCache();                  // сбросить кеш
```

Фасад DeliveryCalculator
------------------------

[](#фасад-deliverycalculator)

```
use Webprog\Shop\Facades\DeliveryCalculator;

$from = ['lat' => 50.45, 'lng' => 30.52]; // Киев
$to   = ['lat' => 48.46, 'lng' => 35.04]; // Днепр

// Метод из конфига:
$result = DeliveryCalculator::calculate($from, $to);

// Явный выбор метода:
$result = DeliveryCalculator::via('haversine')->calculate($from, $to);
$result = DeliveryCalculator::via('openroute')->calculate($from, $to);
$result = DeliveryCalculator::via('mapbox')->calculate($from, $to);

// $result = ['distance_km' => 477.3, 'cost' => 238.65, 'service' => 'haversine']
```

Лицензия
--------

[](#лицензия)

MIT

###  Health Score

19

—

LowBetter than 10% of packages

Maintenance58

Moderate activity, may be stable

Popularity0

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity11

Early-stage or recently created project

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

### Community

Maintainers

![](https://www.gravatar.com/avatar/7a104e98c43974dd0a3718101d318fc6ed6c96832ddd3cf15a186736b6eb3f5f?d=identicon)[mercY-f](/maintainers/mercY-f)

---

Top Contributors

[![mercY-f](https://avatars.githubusercontent.com/u/191957771?v=4)](https://github.com/mercY-f "mercY-f (1 commits)")

### Embed Badge

![Health badge](/badges/webprog-shop/health.svg)

```
[![Health](https://phpackages.com/badges/webprog-shop/health.svg)](https://phpackages.com/packages/webprog-shop)
```

###  Alternatives

[laravel/socialite

Laravel wrapper around OAuth 1 &amp; OAuth 2 libraries.

5.7k104.3M822](/packages/laravel-socialite)[laravel/dusk

Laravel Dusk provides simple end-to-end testing and browser automation.

1.9k38.6M289](/packages/laravel-dusk)[pinguo/php-msf

Pinguo Micro Service Framework For PHP

1.7k4.2k](/packages/pinguo-php-msf)[nineinchnick/edatatables

Grid widget for the Yii Framework, wrapper for the DataTables jQuery plugin

173.2k](/packages/nineinchnick-edatatables)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
