All Projects → polavi-project → Ecommerce

polavi-project / Ecommerce

Licence: other
A powerful and lightweight eCommerce platform using ReactJs, Graphql, PHP, and Mysql.

Programming Languages

es6
455 projects

Projects that are alternatives of or similar to Ecommerce

Nopcommerce
The most popular open-source eCommerce shopping cart solution based on ASP.NET Core
Stars: ✭ 6,827 (+24282.14%)
Mutual labels:  ecommerce, mysql, ecommerce-platform
Sylius Standard
Open Source eCommerce Application on top of Symfony
Stars: ✭ 165 (+489.29%)
Mutual labels:  ecommerce, ecommerce-platform, symfony
Orocommerce
Main OroCommerce package with core functionality.
Stars: ✭ 148 (+428.57%)
Mutual labels:  ecommerce, ecommerce-platform, symfony
Ec Cube
EC-CUBE is the most popular e-commerce solution in Japan
Stars: ✭ 591 (+2010.71%)
Mutual labels:  ecommerce, ecommerce-platform, symfony
Reaction
Mailchimp Open Commerce is an API-first, headless commerce platform built using Node.js, React, GraphQL. Deployed via Docker and Kubernetes.
Stars: ✭ 11,588 (+41285.71%)
Mutual labels:  graphql, ecommerce, ecommerce-platform
Ever
Ever® - Open-Source Commerce Platform for On-Demand Economy and Digital Marketplaces
Stars: ✭ 980 (+3400%)
Mutual labels:  graphql, ecommerce, ecommerce-platform
Sylius
Open Source eCommerce Platform on Symfony
Stars: ✭ 6,598 (+23464.29%)
Mutual labels:  ecommerce, ecommerce-platform, symfony
Example Storefront
Example Storefront is Reaction Commerce’s headless ecommerce storefront - Next.js, GraphQL, React. Built using Apollo Client and the commerce-focused React UI components provided in the Storefront Component Library (reactioncommerce/reaction-component-library). It connects with Reaction backend with the GraphQL API.
Stars: ✭ 471 (+1582.14%)
Mutual labels:  graphql, ecommerce, ecommerce-platform
Spree
Open Source headless multi-language/multi-currency/multi-store eCommerce platform
Stars: ✭ 11,571 (+41225%)
Mutual labels:  graphql, ecommerce, ecommerce-platform
Saleor
A modular, high performance, headless e-commerce platform built with Python, GraphQL, Django, and React.
Stars: ✭ 14,720 (+52471.43%)
Mutual labels:  graphql, ecommerce, ecommerce-platform
Saleor Dashboard
A GraphQL-powered, single-page dashboard application for Saleor.
Stars: ✭ 278 (+892.86%)
Mutual labels:  graphql, ecommerce, ecommerce-platform
Wellcommerce
Open-source E-Commerce software
Stars: ✭ 499 (+1682.14%)
Mutual labels:  ecommerce, ecommerce-platform, symfony
Yupe
Yupe! is an open source Yiiframework-based online e-commerce solution. Demo https://demo.yupe.ru/
Stars: ✭ 596 (+2028.57%)
Mutual labels:  ecommerce, ecommerce-platform
Magento Lts
Official OpenMage LTS codebase | Migrate easily from Magento Community Edition in minutes! Download the source code for free or contribute to OpenMage LTS | Security vulnerability patches, bug fixes, performance improvements and more.
Stars: ✭ 622 (+2121.43%)
Mutual labels:  ecommerce, ecommerce-platform
Thirtybees
thirty bees - e-commerce that works for you
Stars: ✭ 580 (+1971.43%)
Mutual labels:  ecommerce, ecommerce-platform
Graphqlbundle
This bundle provides tools to build a complete GraphQL server in your Symfony App.
Stars: ✭ 628 (+2142.86%)
Mutual labels:  graphql, symfony
Prestashop
PrestaShop is an Open Source e-commerce platform, committed to providing the best shopping cart experience for both merchants and customers.
Stars: ✭ 6,192 (+22014.29%)
Mutual labels:  ecommerce, ecommerce-platform
Cocorico
👐 Cocorico is an open source marketplace solution for services and rentals. More information right here: https://www.cocorico.io/en/ 🚀 Cocorico is also available in an off-the-shelf SaaS package, check out https://www.hatch.li to launch your platform today. 😍 We are hiring (telecommute welcome 🏡): https://www.welcometothejungle.com/en/companies/cocorico/jobs/candidatures-spontanees#apply
Stars: ✭ 765 (+2632.14%)
Mutual labels:  ecommerce-platform, symfony
Php Docker Boilerplate
🍲 PHP Docker Boilerplate for Symfony, Wordpress, Joomla or any other PHP Project (NGINX, Apache HTTPd, PHP-FPM, MySQL, Solr, Elasticsearch, Redis, FTP)
Stars: ✭ 503 (+1696.43%)
Mutual labels:  mysql, symfony
Thelia
Thelia is an open source tool for creating e-business websites and managing online content. Repo containing the new major version (v2)
Stars: ✭ 752 (+2585.71%)
Mutual labels:  mysql, symfony

Polavi

A powerful and lightweight eCommerce platform using ReactJs, Graphql, PHP and Mysql.

Features

Polavi backend screenshot

  • Catalog management
    • Category
    • Product
      • Product type and attributes
      • Advance pricing
        • Customer group price
        • Tier price
      • Product custom options - Add custom option to product with extra price
      • Product variants
  • Coupon management
    • Multi type of discount
      • Fixed discount to entire order
      • Percentage discount to entire order
      • Fixed discount to specific products
      • Percentage discount to specific products
      • Buy X get Y
      • Free shipping
    • Complex order and customer condition
  • Order management
  • Customer management

Demo

Demo store

Getting Started

Installation

Please check here for more detail.

Middleware system

declare(strict_types=1);

namespace Polavi\Middleware;

use function Polavi\generate_url;
use Polavi\Services\Http\Request;
use Polavi\Services\Http\Response;
use Polavi\Services\Routing\Router;

class RoutingMiddleware extends MiddlewareAbstract
{
    public function __invoke(Request $request, Response $response, $delegate = null)
    {
        $code = $this->getContainer()->get(Router::class)->dispatch();
        if($code == 404)
            $response->setStatusCode(404);
        else if($code == 405)
            $response->setContent('Method Not Allowed')->setStatusCode(405);
        else {
            $response->addState("currentRoute", $request->attributes->get("_matched_route"));
            $response->addState("currentRouteArgs", $request->attributes->get("_route_args"));
            $response->addState("currentUrl", generate_url($request->attributes->get("_matched_route"), $request->attributes->get("_route_args")));
        }

        return $delegate;
    }
}

Client rendering approach with es6 module dynamic import.

$response->addWidget(
    'category_edit_general',
    'admin_category_edit_inner_left',
    10,
    get_js_file_url("production/catalog/category/edit/general.js", true),
    [
        "id"=>"category_edit_general", 
        "data" => $result->data['generalInfo']
    ]
);

ReactJs template with Area and Widget

$response->addWidget(
    'admin_content',
    'container',
    20,
    get_js_file_url("production/area.js", true),
    [
        "id"=> "content_wrapper",
        "className"=> "content-wrapper"
    ]
);

// Adding a widget to Area
$response->addWidget(
    'admin_footer',
    'content_wrapper',
    20,
    get_js_file_url("production/cms/footer.js", true)
);

Loading data with Graphql and Promise

$this->getContainer()
    ->get(GraphqlExecutor::class)
    ->waitToExecute([
        "query"=>"{generalInfo: category(id: {$request->get('id')} language:{$request->get('language', get_default_language_Id())}){name status description include_in_nav position}}"
    ])
    ->then(function($result) use ($response) {
        /**@var \GraphQL\Executor\ExecutionResult $result */
        if(isset($result->data['generalInfo'])) {
            $response->addWidget(
            'category_edit_general',
            'admin_category_edit_inner_left',
            10,
            get_js_file_url("production/catalog/category/edit/general.js", true),
            [
                "id"=>"category_edit_general", 
                "data" => $result->data['generalInfo']]
            );
        }
    });

Prerequisites

Apache server, PHP 7.3, Mysql 5.6 and 1 free SendGrid account for transactional email Please check here for more detail.

Built With

  • Symfony - Some component from Symfony like HttpFoundation, EventDispatcher
  • React - All of html will be rendered by using ReactJs
  • Graphql-php - A great php framework for graphql
  • Promises - Promises/A+ library for PHP

Contributing

Contributions are welcome and appreciated. I am looking for any feedback or suggestion to improve this project. You can:

  • Submit a bug/issue or suggestion
  • Use this feedback page if you have any idea or feedback about this project
  • Submit a PR

Support / Discussion

If you are facing any problem or just want to discuss about this project, I invite you to join my Discord channel here

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].