Giter Site home page Giter Site logo

elcodi / bamboo Goto Github PK

View Code? Open in Web Editor NEW
198.0 198.0 44.0 41.27 MB

Meet Bamboo, an e-commerce project built on top of Elcodi and Symfony. Give us a star to support our project :)

Home Page: http://bamboo.elcodi.com

License: MIT License

PHP 33.54% Shell 0.11% CSS 12.34% HTML 29.92% JavaScript 22.03% Ruby 0.08% Gherkin 0.83% Smarty 1.05% ApacheConf 0.09%

bamboo's Introduction

Elcodi for Symfony

Build Status Build Status Scrutinizer Code Quality Latest Stable Version Total Downloads License

Elcodi is a suite of e-commerce Components and Bundles built on top of Symfony and under MIT license. It aims to promote SOLID principles, efficient code reuse, separation of concerns as effective building blocks for the development of e-commerce applications.

Elcodi provides a reference implementation for the basic core components found in e-commerce web projects.

See the front-end store and the back-office demo application in action, and check out the source code for Bamboo.

Elcodi was awarded as the Best Open Source project of 2015 by the Symfony Community awards.

Best Open Source

Requirements

Elcodi is supported on PHP 5.4.* and up.

Documentation

Check the documentation in Elcodi Docs.

Tags

  • Use last unstable version ( alias of dev-master ) to stay always in last commit.
  • Use last stable version tag to stay in a stable release.
  • Latest Unstable Version Latest Stable Version

Contributing

This project follows some standards. If you want to collaborate, please ensure that your code fulfills these standards before any Pull Request.

composer update
composer check-style

There is also a policy for contributing to this project. Pull requests must be explained step by step to make the review process easy in order to accept and merge them. New features must come paired with Unit and/or Functional tests, check them using:

composer test

bamboo's People

Contributors

alch avatar almacbe avatar arkaitzgarro avatar claretcrab avatar cordoval avatar emanueleminotto avatar fweber-de avatar gorkalaucirica avatar grisendo avatar hacfi avatar janit avatar javiereguiluz avatar jverdeyen avatar marcelsj avatar mickaelandrieu avatar mmoreram avatar nilportugues avatar nubeiro avatar octante avatar rogergros avatar sstok avatar tonipinel avatar weaverryan avatar xphere avatar ysramirez avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

bamboo's Issues

Order line amount at PaymentBridge

The "amount" value of each order line at Elcodi\Store\PaymentBridgeBundle\Services\PaymentBridge::getExtraData() takes the total order line amount, not the unit amount.

Abandonned dependency

On composer install first execution, there is a warning output:

Package liip/doctrine-cache-bundle is abandoned, you should avoid using it. Use doctrine/doctrine-cache-bundle instead.

Image route should be accessible even if store.under_construction = true

Due to current implementation of the store enabled event listener, if the store configuration is set to "under construction" no route under the public store will work, not even the elcodi_media_image_resize and elcodi_media_image_view routes (needed to display images).
Because of this, images in the admin also won't be displayed until the store.under_construction is set to false

Symfony applications should not throw AccessDeniedHttpException

in src/Elcodi/Admin/PageBundle/Controller/PageController.php, line 296

The AccessDeniedHttpException bypasses the Symfony Security component and always results in a 403 response. You should throw AccessDeniedException (without Http) instead, so that the Security Component displays a login form.

     * @throws AccessDeniedHttpException
     */
    private function canBeDeactivated(PageInterface $page)
    {
        if ($page->isPersistent()) {
            throw new AccessDeniedHttpException(
                $this
                    ->get('translator')
                    ->trans('admin.page.error.cant_modify_permanent')
            );
        }

More information: How to Secure any Service or Method in your Application


Posted from SensioLabsInsight

Admin translations

Translations are in the app folder and cannot be overridden (For example Blog translates Catalog)

Can't change languages in pages

When viewing a page language changes are ignored. ?_locale=[language] is added to the URL.

The page can be seen in different languages depending on the language of the page you're coming from.

Weight should be decimal

In the bamboo admin, when you add or edit a product you can add the weight for it.

Right now it's an integer but should be a decimal number like price.

weight

Improve the command of activation of a store

this is a DX suggestion

The actual command from docs is hard to learn:

$ php app/console elcodi:configuration:set store.under_construction "0"
$ php app/console elcodi:configuration:set store.name "\"My bamboo store\""

I suggest:

$ php app/console elcodi:store:activate|deactivate
$ php app/console elcodi:store:rename "My Bamboo store"

Public methods in controller classes should only be actions

in src/Elcodi/Admin/AttributeBundle/Controller/AttributeController.php, line 279

Non-action public method found in controller class

     * @param AttributeInterface $attribute Attribute
     * @param array              $values    Values
     *
     * @return $this Self object
     */
    public function evaluateAttributeValues(AttributeInterface $attribute, array $values = [])
    {
        $actualValues = [];
        $values = array_filter($values, function ($value) {
            return !empty($value);
        });

Posted from SensioLabsInsight

Admin create/delete entities

  • Some delete actions not work. I believe we should implement the following code:

return parent::deleteAction(
$request,
$entity,
$redirectUrl
);

  • Missing buttons to create and delete entities

Thanks :)

New attribute page on variant modal shows the menu

Steps to reproduce:

  • Go to edit a product
  • Click on "Create my first variant" button
  • Click on "+ new attribute" button
  • The menu is shown and should be hidden

On the product edit page the buttons "New Variant" & "New attribute" seems not to be working.

Errors in PaymentBridgeBundle

While running JMSTranslationBundle, this bundle tries to "compile" each file and rise two errors in Elcodi/Store/PaymentBridgeBundle/Entity/PaypalTransaction.php

  • createdAt is duplicated, in entity and in DateTimeTrait.
  • $this->transactionId does not exist, but $this->transaction do.

The first is an easypick, but I don't know well the intricacies of PaymentBridge to solve the second without mistake.

/ping @alch ?

Description not saved when editing HTML

  • Go to a product with description
  • Edit the description on html
  • Save the product
  • Description has not been saved
  • Go to the product again
  • Edit html description
  • Press the button to "visual" again
  • Save the description
  • Description has been saved

Ping @tonipinel

Pricing in product with variant

When a product with variants is listed, the price shown should be the range of its variants, or the cheaper one. Now it shows the product price, which may be different.

Here in the home, the price shown for this shirt is $7.99

pricing-in-home

When we enter the product, we see the price range goes from $10.99 to $13.99

pricing-in-product-page

Wrong total price in paypal payment

  • shipping amount is no added to total price
  • total price = total price * quantity (instead of total price)

See use case:
3 x 5.95€ = 17.85€
shipping: 4.95 €
total = 22.8 €

in paypal = 53.55 € ( 17.85 x 3 )

Fixes and new features

  • Ordinations in datatables does not work
  • When modify product, pictures are deleted
  • Datetime widget is missing (coupons for example)
  • Missing new entities buttons
  • Missing delete entities buttons
  • Missing filters in datatables
  • In languages, currency, attributes tabs displays "Showing 1 to 0 of entries"
  • Banners are empty
  • Reports are empty

Incomplete order lines at PaymentBridge

Concept: Elcodi\Store\PaymentBridgeBundle\Services\PaymentBridge::getExtraData() returns an array with information about all order articles, not all real order lines.

Problem: PaymentSuite gateways use this method to build the payment form, but shipping, discounts, etc. are not included.

[User] Logged users marked as non-authenticated

When you log in as a Customer or as an AdminUser, the Symfony ToolBar shows a yellow badge for the username and a red badge for authentication, when both should be green.

This is a sign that we're doing something wrong with credentials, but I can't find what is it.

security-admin

security-customer

Add installer/wizard for a better DX

A small web interface like SensioDistributionBundle provides or a cli command could make it a lot easier for beginners.

It should show a status of the installation progress so you can see whether your created the database, created the database schema, imported the fixtures etc.

[Admin] Password recovery is not working

When I'm on /admin/password/remember and I fill the form, a link is generated and sent by mail (this can be found in the profiler bar). That link looks like /admin/password/recover/{recovery_hash}. Following that link shows an empty bamboo template.

Unused use statement should be avoided

in src/Elcodi/Admin/LanguageBundle/Controller/Components/LanguageComponentController.php, line 20

The class Doctrine\ORM\Tools\Pagination\Paginator is declared but never used. You should remove the use statement.

 * @author Elcodi Team <[email protected]>
 */

namespace Elcodi\Admin\LanguageBundle\Controller\Components;

use Doctrine\ORM\Tools\Pagination\Paginator;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Method;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;

use Elcodi\Admin\CoreBundle\Controller\Abstracts\AbstractAdminController;

Posted from SensioLabsInsight

Fixtures: Catalan language

Catalan language is active but is not configured in products, categories and pages. Therefore, the store does not work

Add more social networks

Now is posible to add your facebook and twitter account but it would be interesting to add also this social networks:

  • Instagram
  • Pinterest
  • linkedin
  • Google+
  • youtube

FormTypes should use factories to instanciate empty_data

Instead of using the create method inside (it means that always is created, even if is not used...), we should use an anonymous function, like is shown here.

/**
 * Default form options
 *
 * @param OptionsResolverInterface $resolver
 *
 * @return array With the options
 */
public function setDefaultOptions(OptionsResolverInterface $resolver)
{
    $resolver->setDefaults([
        'empty_data' => function() {
            return $this
                ->purchasableFactory
                ->create();
        },
    ]);
}

Delete products

When I press to delete a product that has been purchased, it fails. Maybe should see if the product has relationships before deleting it? And if have relationships, disable rather than delete?
captura de pantalla 2015-03-26 a las 16 50 23

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.