Skip to content
/ shop Public

Laravel Ecommerce Module built on top of AsgardCMS

License

Notifications You must be signed in to change notification settings

laraplug/shop

Repository files navigation

Latest Stable Version Software License Daily Downloads Monthly Downloads Total Downloads PHP7 Compatible

This module is currently under active development.

Need help! English Translation is incomplete. Any PR would be appreciated :)

Laraplug Shop

Laraplug Shop is a flexible, extendable e-commerce module, built on top of AsgardCMS platform.

Integrated with the modules below
laraplug/product-module
laraplug/attribute-module
laraplug/cart-module
laraplug/order-module
laraplug/theme-module (Deprecated)

Table Of Contents

Installation

  1. Install the package via composer:

    composer require laraplug/shop
  2. Execute migrations via AsgardCMS's module command:

    php artisan module:migrate Attribute
    php artisan module:migrate Product
    php artisan module:migrate Cart
    php artisan module:migrate Order --seed
    php artisan module:migrate Shop --seed
  3. Execute publish via AsgardCMS's module command:

    php artisan module:publish Attribute
    php artisan module:publish Product
    php artisan module:publish Cart
    php artisan module:publish Order
    php artisan module:publish Shop
    
  4. Done!

Usage

Extend Product Model

To create your own Book Product Eloquent model on BookStore module, just extend the \Modules\Product\Entities\Product model like this:

use Modules\Product\Entities\Product;

class Book extends Product
{
    // Override entityNamespace to identify your Model on database
    protected static $entityNamespace = 'bookstore/book';

    // Override this method to convert Namespace into Human-Readable name
    public function getEntityName()
    {
        return trans('bookstore::books.title.books');
    }

}

Add EAV to Product model

Add $systemAttributes to utilize laraplug/attribute-module on code-level like this:

use Modules\Product\Entities\Product;

class Book extends Product
{
    ...

    // Set systemAttributes to define EAV attributes
    protected $systemAttributes = [
        'isbn' => [
            'type' => 'input'
        ],
        'media' => [
            'type' => 'checkbox',
            'options' => [
                'audio-cd',
                'audio-book',
                'e-book',
            ]
        ]
    ];
}

Available SystemAttributes Parameters

type : String of input type (list below)

  • input : input[type=text]
  • textarea : teaxarea
  • radio : input[type=radio]
  • checkbox : input[type=checkbox]
  • select : select
  • multiselect : select[multiple]

options : Array of option keys

has_translatable_values : boolean

Register Your Product

You can register your Entity using ProductManager like this:

use Modules\Product\Repositories\ProductManager;
use Modules\BookStore\Products\Book;

class BookStoreServiceProvider extends ServiceProvider
{
    ...

    public function boot()
    {
        ...

        // Register Book
        $this->app[ProductManager::class]->registerEntity(new Book());

        ...
    }
}

About Laraplug

LaraPlug is a opensource project to build e-commerce solution on top of AsgardCMS.

Contributing

We welcome any pull-requests or issues :)

About

Laravel Ecommerce Module built on top of AsgardCMS

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 3

  •  
  •  
  •