Code Monkey home page Code Monkey logo

commerce's Introduction

Craft Commerce icon

Craft Commerce

Craft Commerce is an amazingly powerful and flexible ecommerce platform for Craft CMS.

You can learn all about it at craftcms.com/commerce, and documentation is available at craftcms.com.

Requirements

This plugin requires Craft CMS 5.1 or later.

Installation

You can install this plugin from the Plugin Store or with Composer.

From the Plugin Store

Go to the Plugin Store in your project’s Control Panel and search for “Commerce”. Then click on the “Install” button in its modal window.

With Composer

Open your terminal and run the following commands:

# go to the project directory
cd /path/to/my-project.test

# tell Composer to load the plugin
composer require craftcms/commerce

# tell Craft to install the plugin
php craft plugin/install commerce

# optional: copy the Craft Commerce example templates to your project’s templates folder
php craft commerce/example-templates

Resources

We highly recommend you check out these resources as you’re getting started with Craft Commerce:


Build Status Total Packagist Downloads Latest Stable Version

commerce's People

Contributors

akshayagarwal avatar andris-sevcenko avatar angrybrad avatar augustmiller avatar benjamindavid avatar billythekid avatar boboldehampsink avatar brandonkelly avatar dependabot[bot] avatar engram-design avatar gijsstegehuis avatar gtettelaar avatar hahnzilla avatar i-just avatar jamesedmonston avatar joostwaaijer avatar lukeholder avatar makeilalundy avatar mattstein avatar nfourtythree avatar nilsenpaul avatar pdaleramirez avatar radabaugh avatar rosanarufer avatar saboteur777 avatar samuelbirch avatar shinybrad avatar snyk-bot avatar timkelty avatar watarutmnh 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

commerce's Issues

Use rules to stop an email being sent automatically from an order status change.

Currently all emails are sent for that status on an order status change.

Would be good to allow the user to use twig to return true or false on whether to send that email.

This would be useful for things like order stock thresholds. A user could only send the email if the stock has fallen below a limit they have set for items on the order.

Order Shipments

Ability to choose multiple shipping methods on an order
Ability to split order after order is complete #170

Multi-Store

  • Product types become multi-store/site aware #39 #157 #37 #382
  • Variant should also be localized? #167
  • Localized (translatable) description of discount/sale/shipping method #199 #457
  • Pricing is per site/ per store #93
  • Store settings become store specific #1681
  • Store specific sales #2053

Line Item updating, keeps error line item model assigned to cart

Suppose you have 3 items left in stock. A customer after adding 1 item to the cart tries to update the line item to 5 units for example. Commerce answers with an error flash saying something like "couldn't update the line item. There are only 3 left in stock"

But even after that, the line item is actually updated to 5 t (or whatever value you entered) - this is the line item model output.

Additional Events to raise

raise events for the following:

  • item added to cart
  • item removed from cart
  • onBeforeSaveProduct
  • onSaveProduct
  • onBeforeSaveOrder (when not cart completedAt != null)
  • onSaveOrder (when not cart completedAt != null)

Generate Variants Button

generate all combinations of option values from current products option type. Once time action.

Inventory management

  • Manage stock on a per-location basis
  • Allow backorders
  • Stock screen tracks adding and deduction of stock.
  • Allow Bulk updating of stock.
  • Track number of purchasable sales over a period of time.
  • Allow reservation of stock while items are in the cart. ?
  • Change 'unlimited stock' to 'track stock' ?
  • Update stock when manually editing the order on order edit page.
  • Update stock option when deleting an order.

Reporting

Just use twig templates for report with dompdf ?

Also provide system level widgets for basic charts. (Not inventing own dashboard)

Possible report: #247

Enable front end Custom field updating on certain endpoints

When saving a order and product in the cp, the element custom field saving should be working.

Need to add same ability to update custom fields on frontend for following actions:

  • Adding to cart (update order custom fields)
  • Updating Quantity
  • Standalone custom field updating controller action

Discount Types

Add a 'type' column to discounts, and let plugins add dicount types.

  • Discount Types provide settings options
  • Discount Types provide the order matching logic
  • Discount Types provide the price modification

Enable 'Per User Limit' and 'total number of uses' on discount engine

Decide when a discount is considered used. And then decide how will we count these limits.

Ideas

  • To check "per user limit" we have no way but to be counting each time a user has used discount. It will be a new record "CustomerDiscountUse" with incremental field "uses"
  • to check "total use limit" we can add a field to the discount model
  • each time a discount is used there will be incrementation to total discount uses and to CustomerDiscountUse
  • if there is a per user limit, then require the user to enter an email on the order to retrieve the customer record.
  • Need to define what "discount used" means. Discount should be treated as used when an order is completed only. Otherwise there can be incomplete orders which will catch and block limited discounts.
  • Need a order complete event and increment discounts use counters on that event.
  • One more problem - is there a case when we need to decrement uses counter? I guess not? If some discount reached it's limit and a moderator wants to prolong the action he can just increment the discount use limits somehow?
  • After we get "discount.totalUses" counter and uses counters per each user we can easily check if discount is available or not just in DiscountAdjuster

Sales Types

Add a 'type' column to sales, and let plugins add sales types.

  • Sales Types provide settings options
  • Sales Types provide the order matching logic
  • Sales Types provide the price modification

Customer Listing and Address view

Would like to be able to see listing of customers in CP, with a link to the related craft user, and a list of all addresses of that customer.

in the ORDER edit screen, need to put hyperlinks to the addresses on the order for shipping and billing (which take them to see the address on the customer view screen)

Would also like a way to edit the customers addresses in CP ?

Add a incomplete cart purge setting?

Right now all carts are persisted if something is added to the cart. When left for a long time they become abandoned.

Add a

purgeIncompletedCartDuration

field to orderType model??

allow a string set to any valid PHP interval specification (http://php.net/manual/en/dateinterval.construct.php). e.g "P3M" (3 months)

make a controller action and service that deletes any order with no completedAt Date and a lastUpdated date older than the purgeIncompletedCartDuration from time time the action is run.??

Then in a new tab on orderType edit called 'actions', make a button that triggers the controller action. Put a count of how many orders meet the criteria in the button.??

Also need to think about if they are associated with a logged in member, maybe the should never be (like wishlists)

Shipping Method Types

Plugins should be adding new shipping methods the same way they add new gateway types, field types, etc.. So all shipping methods become managed by Commerce, not just the "custom" ones.

  • Figure out what to do with the Rules settings, which are currently only used by Custom shipping methods.

implement own redirectToPostedUrl to work with returnUrl and cancelUrl

Pass the order to the into returnUrl like redirectToPostedUrl does so users can do things like:

<input type="hidden" name="returnUrl" value="market/orders/success?id={number}">
or
<input type="hidden" name="returnUrl" value="market/orders/success/{number}">

add to Market_BaseController ??

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.