PHPackages                             agriya/webshoppack - 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. agriya/webshoppack

ActiveLibrary

agriya/webshoppack
==================

716PHP

Since May 7Pushed 12y ago8 watchersCompare

[ Source](https://github.com/agriya/webshoppack)[ Packagist](https://packagist.org/packages/agriya/webshoppack)[ RSS](/packages/agriya-webshoppack/feed)WikiDiscussions master Synced yesterday

READMEChangelogDependenciesVersions (1)Used By (0)

Webshop Package
---------------

[](#webshop-package)

A Laravel 4 package for basic webshop

Installation
------------

[](#installation)

Add the following to you composer.json file

```
"agriya/webshoppack": "dev-master"

```

Run

```
composer update

```

Add the following to app/config/app.php

```
'Agriya\Webshoppack\WebshoppackServiceProvider',

```

Publish the config

```
php artisan config:publish agriya/webshoppack

```

Publish the asset

```
php artisan asset:publish agriya/webshoppack

```

Run the migration

```
php artisan migrate --package="agriya/webshoppack"

```

Run the db seed

```
php artisan db:seed --class="Agriya\Webshoppack\ProductCategoryTableSeeder"

php artisan db:seed --class="Agriya\Webshoppack\CurrencyExchangeRateTableSeeder"

```

Add the following to app/routes.php

```
Route::controller(Config::get('webshoppack::uri').'/view/{slug_url}', 'Agriya\Webshoppack\ViewProductController');

Route::group(array('before'	=>	'validate_admin'), function(){
	Route::controller(
		Config::get('webshoppack::admin_uri').'/list', 'Agriya\Webshoppack\AdminProductListController'
	);
	Route::controller(
		Config::get('webshoppack::admin_uri').'/view/{slug_url}', 'Agriya\Webshoppack\AdminViewProductController'
	);
	Route::controller(
		Config::get('webshoppack::admin_shop_uri'), 'Agriya\Webshoppack\AdminManageShopController'
	);
	Route::controller(
		Config::get('webshoppack::admin_uri').'/add', 'Agriya\Webshoppack\AdminProductAddController'
	);
	Route::controller(Config::get('webshoppack::admin_product_catalog_uri'), 'Agriya\Webshoppack\AdminManageProductCatalogController');

	Route::controller(Config::get('webshoppack::admin_product_cat_uri'), 'Agriya\Webshoppack\AdminProductCategoryController');

	Route::controller(Config::get('webshoppack::admin_product_cat_attr_uri'), 'Agriya\Webshoppack\AdminCategoryAttributesController');

	Route::controller(Config::get('webshoppack::admin_product_attr_uri'), 'Agriya\Webshoppack\AdminProductAttributesController');
});

Route::group(array('before' => 'validate_login'), function()
{
	Route::controller(
		Config::get('webshoppack::uri').'/add', 'Agriya\Webshoppack\ProductAddController'
	);
	Route::get(Config::get('webshoppack::shop_uri').'/user/message/add/{user_code}', 'Agriya\Webshoppack\MessageAddController@getAdd');
	Route::post(Config::get('webshoppack::shop_uri').'/user/message/add/{user_code}', 'Agriya\Webshoppack\MessageAddController@postAdd');
	Route::controller(
		Config::get('webshoppack::shop_uri').'/users/shop-details', 'Agriya\Webshoppack\ShopController'
	);
	Route::get(Config::get('webshoppack::myProducts'), 'Agriya\Webshoppack\ProductController@productList');
	Route::post(Config::get('webshoppack::myProducts').'/deleteproduct', 'Agriya\Webshoppack\ProductController@postProductAction');
});
Route::controller(
	Config::get('webshoppack::shop_uri').'/{url_slug}', 'Agriya\Webshoppack\ViewShopController'
);
Route::controller(
	Config::get('webshoppack::shop_uri'), 'Agriya\Webshoppack\ListShopController'
);
Route::get(
	Config::get('webshoppack::uri').'/{path}', function($path) {
    $path = substr($path, 0, 1) == '/' ? substr($path, 1) : $path;
    $slugs = explode('/', $path);

    $check = function($page, $slugs) use(&$check) {
        if($page->parent_category_id == 1) {
            return true;
        }

        $parent = Agriya\Webshoppack\ProductCategory::find($page->parent_category_id);
        if($parent->seo_category_name == array_pop($slugs)) {
            return $check($parent, $slugs);
        }
    };
	$error = true;
    foreach(Agriya\Webshoppack\ProductCategory::where('seo_category_name', '=', array_pop($slugs))->get() as $page) {
        if($check($page, $slugs)) {
        	$error = true;
            break;
        }
    }
    //todo : handle error
    if(!isset($page)) {
		return Agriya\Webshoppack\ProductController::showList(0);
	}
	else {
		return Agriya\Webshoppack\ProductController::showList($page->id);
	}
})->where('path', '.+');

Route::get(
	Config::get('webshoppack::uri'), 'Agriya\Webshoppack\ProductController@showList'
);

```

Add the following links in member &amp; admin layouts

```
Shops list - URL::to(Config::get('webshoppack::shop_uri'))
Products list - URL::to(Config::get('webshoppack::uri'))

if (Sentry::check()) use below links
	Shop Settings - URL::to(Config::get('webshoppack::shop_uri'))
	Manage Products - URL::to(Config::get('webshoppack::myProducts'))
	Add Product - URL::to(Config::get('webshoppack::uri').'/add')

if (Sentry::check() && hasAdminAccess) use below links
	Manage products - URL::to(Config::get('webshoppack::admin_uri').'/list')
	Manage category - URL::to(Config::get('webshoppack::admin_product_catalog_uri'))
	Manage Attributes - URL::to(Config::get('webshoppack::admin_product_attr_uri'))
	Manage shops - URL::to(Config::get('webshoppack::admin_shop_uri'))

```

###  Health Score

22

—

LowBetter than 22% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity11

Limited adoption so far

Community10

Small or concentrated contributor base

Maturity41

Maturing project, gaining track record

 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/2284930604d5f857ed064491674b1f56e6c0eaed1b00d00b54f8f35a791a7974?d=identicon)[agriya](/maintainers/agriya)

---

Top Contributors

[![rsensan](https://avatars.githubusercontent.com/u/351331?v=4)](https://github.com/rsensan "rsensan (16 commits)")

### Embed Badge

![Health badge](/badges/agriya-webshoppack/health.svg)

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

PHPackages © 2026

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