Skip to content

Commit

Permalink
Merge branch 'development'
Browse files Browse the repository at this point in the history
  • Loading branch information
aaronjudd committed May 17, 2017
2 parents bc7e423 + d43118d commit a4eded1
Show file tree
Hide file tree
Showing 24 changed files with 528 additions and 283 deletions.
6 changes: 3 additions & 3 deletions admin/dashboard.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,11 @@ You'll find a selection of dashboard features, broken down into two sections, Ac

## Actions

- Orders - Review and process orders. For more info, visit the [Orders](https://reactioncommerce.com/docs/master/orders) section.
- Email - Manage your mail setup and view email logs.
- Orders - Review and process orders. For more info, visit the [Orders](https://docs.reactioncommerce.com/reaction-docs/master/orders) section.
- Accounts - Add, edit, and remove permissions for each of your shop members.

## Settings

- Settings - Configure your shop's name, address, payment methods, and other settings.
- Catalog - Enable or disable your product catalog view.
- Localization and i18n - Configure language, timezone, and currency.
- Payment - Manage payment methods and add discount codes.
Expand All @@ -25,6 +24,7 @@ You'll find a selection of dashboard features, broken down into two sections, Ac
- Search - Configure your store's search settings.
- SMS Notifications - Enable SMS notifications.
- Social - Set your shop's Facebook, Twitter, Pinterest, and Google Plus accounts.
- Email - Manage your mail setup and view email logs.
- Login services - Enable or disable customer login via social media.
- Template - Customize your email's messaging and look and feel.

Expand Down
14 changes: 8 additions & 6 deletions admin/faq.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,5 @@
# Frequently Asked Questions

## Is Reaction live and ready for production? Can I start selling now?

It depends! We do have a few shops in production, but your individual requirements may vary. We're currently in our Beta release, so we're still rolling out features with each new release. For more info, check out our [Features page](https://reactioncommerce.com/features) roadmap, or our [project board](https://waffle.io/reactioncommerce/reaction).

## How do I sign up for an account, login to my dashboard, and set up my domain?

Currently, Reaction is only available locally via GitHub. In early 2017, we'll be launching the Beta release of our hosted platform, which will allow anyone to set up shop via our intuitive dashboard. Our custom hosting solution, which runs on Docker, will support domains, SSL, and more. Our vision is to allow anyone to customize, extend, and deploy his or her Reaction shop directly from on our platform.
Expand Down Expand Up @@ -36,8 +32,14 @@ We're always testing! During our Alpha release, we performed extensive tests, de

We're always open to contributions from our community. To learn more about becoming a contributor, [click here](http://blog.reactioncommerce.com/how-to-get-involved-with-reaction-commerce/). And don't forget to read our [Community Guidelines](https://docs.reactioncommerce.com/reaction-docs/master/guidelines)!

## Reaction runs on JavaScript. Does this have a negative impact on SEO?
## Reaction is all JavaScript. Does this have a negative impact on SEO?

Nope! [Google indexes JavaScript when crawling websites](https://googlewebmastercentral.blogspot.com.es/2014/05/understanding-web-pages-better.html).

Additionally, Reaction uses the Meteor spiderable package, which renders a search engine-friendly static page version of your shop using PhantomJS. You can read more about it [here](https://www.eventedmind.com/feed/meteor-the-spiderable-package).
Additionally, Reaction can use a [modified version](https://github.com/ongoworks/spiderable) of the Meteor spiderable package, which renders a search engine-friendly static page version of your shop using PhantomJS.

It's worth noting that the spiderable package is slotted for deprecation. The reasons for this include:

- Google has deprecated the AJAX crawling specification that the spiderable package is based on
- Search engine crawlers (like Google's) have gotten much better at dealing with JavaScript/AJAX based applications, without the need for any special handling
- There are now several better options for SEO goodness, like pre-rendering services (e.g. Prerender.io - which is included in Reaction and can easily be setup), server-side rendering techniques, etc.
2 changes: 1 addition & 1 deletion admin/payment.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ To enable a payment provider for your shop, login as a shop admin and navigate t

![](/assets/admin-dashboard-navigation.png "Reaction Commerce Dashboard")

From the Dashboard, locate the payment package you want to enable. Click the plus icon to turn on particular payment package, and then click the cog icon to enter your settings.
From the Dashboard, locate the payment package you want to enable. Click the plus icon to turn on particular payment package, and then click the cogwheel icon to enter your settings.

Reaction supports the following payment packages:

Expand Down
5 changes: 0 additions & 5 deletions developer/architecture/layout.md
Original file line number Diff line number Diff line change
Expand Up @@ -67,39 +67,34 @@ Layouts can work in conjunction with [workflows](/developer/architecture/workflo
workflow: "coreCartWorkflow",
container: "checkout-steps-main",
audience: ["guest", "anonymous"],
priority: 1,
position: "1"
}, {
template: "checkoutAddressBook",
label: "Shipping Billing",
workflow: "coreCartWorkflow",
container: "checkout-steps-main",
audience: ["guest", "anonymous"],
priority: 2,
position: "2"
}, {
template: "coreCheckoutShipping",
label: "Shipping Options",
workflow: "coreCartWorkflow",
container: "checkout-steps-main",
audience: ["guest", "anonymous"],
priority: 3,
position: "3"
}, {
template: "checkoutReview",
label: "Review Payment",
workflow: "coreCartWorkflow",
container: "checkout-steps-side",
audience: ["guest", "anonymous"],
priority: 4,
position: "4"
}, {
template: "checkoutPayment",
label: "Complete",
workflow: "coreCartWorkflow",
container: "checkout-steps-side",
audience: ["guest", "anonymous"],
priority: 5,
position: "5"
}]
});
Expand Down
14 changes: 7 additions & 7 deletions developer/architecture/routing.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Routing

Reaction Router extends the routing functionality provided by [kadira:flow-router-ssr](https://github.com/kadirahq/flow-router/tree/ssr). The basics of FlowRouter are covered in the [FlowRouter documentation](https://github.com/kadirahq/flow-router), but you can most likely find everything you need to use Reaction Router on this page.
Reaction Router extends the routing functionality provided by [React Router](https://github.com/ReactTraining/react-router). The basics of React Router are covered in the [React Router documentation](https://reacttraining.com/react-router/), but you can most likely find everything you need to use Reaction Router on this page.

## Usage

Expand All @@ -9,19 +9,19 @@ Reaction Router is exported as `Router` from `"/client/api"`.
```js
import { Router } from "/client/api";

// Example: use a FlowRouter method to get a URL query param
// Example: use a Reaction Router method to get a URL query param
const urlParam = Router.getQueryParam("urlParam");
```

## Route Definition

While you _can_ use the [Flow Router API](https://github.com/kadirahq/flow-router/tree/ssr) to directly add routes to the app, we recommend that you use the Reaction Router API. Reaction Router extends FlowRouter to integrate route permissions, make routing configurable by plugins (via the package registry), and to help future proof against changes to the routing layer (like possibly switching away from FlowRouter in the future).
While you _can_ use the [React Router API](https://reacttraining.com/react-router/). to directly add routes to the app, we recommend that you use the Reaction Router API. Reaction Router extends React Router to integrate route permissions, make routing configurable by plugins (via the package registry), and to help future proof against changes to the routing layer.

Our recommended approach to define routes is to use the **Package Registry**.

### Registry Routing

Routes are very simple and based on the syntax of [path-to-regexp](https://github.com/pillarjs/path-to-regexp) which is used in both [Express](http://expressjs.com/) and `iron:router`.
Routes are very simple and based on the syntax of [path-to-regexp](https://github.com/pillarjs/path-to-regexp) which is used in both [Express](http://expressjs.com/) and [React Router](https://reacttraining.com/react-router/).

The **Reaction package registry** entries define routes that can be used with the Router API. You can also pass local functions to the registry.

Expand Down Expand Up @@ -70,7 +70,7 @@ defaultVisitorRole = ["anonymous", "guest", "product", "tag", "index", "cart/ch

### Route Table

The package registry route entries are collectively added to the Flow Router routing table upon startup.
The package registry route entries are collectively added to the Reaction Router routing table upon startup.

You can view these routes for debugging. Add to a file in `custom` and create a global export of the Router that you can use in your browser console.

Expand Down Expand Up @@ -271,7 +271,7 @@ A Blaze template helper that will return an absolute path for a named route.

## Route Hooks

The `Router.Hooks` namespace provides a router-agnostic API for registering functions to be called either on specific routes or on _every_ route. Like FlowRouter, there are hooks for `onEnter` and `onExit` and the callback functions are passed the same `context` object to optionally do something with.
The `Router.Hooks` namespace provides a router-agnostic API for registering functions to be called either on specific routes or on _every_ route. There are hooks for `onEnter` and `onExit` and the callback functions are passed the same `context` object to optionally do something with.

### API

Expand Down Expand Up @@ -344,7 +344,7 @@ Router.Hooks.onEnter(() => analytics.page());

#### Using route context in your hook

The same context object from FlowRouter is available to every callback
The context object from Reaction Router is available to every callback

```js
function logSomeContext(context) {
Expand Down
35 changes: 35 additions & 0 deletions developer/community.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
# Community

Welcome to the Reaction community!

This is the starting point for becoming a contributor - improving docs, improving code, giving talks etc.

Participating in our Gitter channels, our planning meetings, are welcome contributions to Reaction.

If you'd like to contribute code, you'll want to review the [contribution guidelines](contributing.md) and the [code styleguide](styleguide.md).

## Roadmap

Reaction is a series of projects that combine the efforts of [community contributors](https://github.com/orgs/reactioncommerce/outside-collaborators) and core product development from the [@reactioncommerce](https://github.com/orgs/reactioncommerce/people) team.

A long term roadmap and completed features list is on our [features page](https://reactioncommerce.com/features).

You will find these roadmap items defined as projects on the [Reaction repository's project page](https://github.com/reactioncommerce/reaction/projects).

Specific features in progress are found grouped on the [Reaction repository's milestones page](https://github.com/reactioncommerce/reaction/milestones).

## Projects

Reaction projects can have both @core leads as well as community leads.
Chat channels and meetings are open to all.

| Name | Leads | Gitter Channel | [Schedule](http://getrxn.io/2rcCal) |
| ------------------- | ----------------------- | ---------------------------------------------------------------------------------- | ----------------------------------------- |
| Connectors, Catalog | @aaronjudd @jshimko | [reactioncommerce/catalog](https://gitter.im/reactioncommerce/catalog) | Every 2 weeks on Wednesday 2PM Pacific |
| Core | @aaronjudd | [reactioncommerce/core](https://gitter.im/reactioncommerce/core) | Every 2 weeks on Wednesday 2PM Pacific |
| Components | @mikemurray @kieckhafer | [reactioncommerce/components](https://gitter.im/reactioncommerce/components) | Every 2 weeks on Tuesday 3PM Pacific |
| Deployment | @jshimko | [reactioncommerce/deployment](https://gitter.im/reactioncommerce/deployment) | Every 2 weeks on Thursday 10AM Eastern |
| Design | @rymorgan | [reactioncommerce/design](https://gitter.im/reactioncommerce/design) | Every 2 weeks on Wednesday 3PM Pacific |
| Documentation | @sophiehe | [reactioncommerce/documentation](https://gitter.im/reactioncommerce/documentation) | Monthly on the Fourth Tuesday 3PM Pacific |
| Marketplace | @spencern | [reactioncommerce/marketplace](https://gitter.im/reactioncommerce/marketplace) | Every 2 weeks on Wednesday 7AM Pacific |
| Plugins | @zenweasel @impactmass | [reactioncommerce/plugins](https://gitter.im/reactioncommerce/plugins) | Every 2 weeks on Tuesday 1 PM Pacific |
22 changes: 11 additions & 11 deletions developer/configuration.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ Environment variables take priority over variables set in _settings.json_.

You can also assign these variables before the `reaction` command.

### REACTION_
### REACTION\_

The `REACTION_EMAIL`, `REACTION_USER`, `REACTION_AUTH` environment variables will configure the default administrator account.

Expand All @@ -39,20 +39,22 @@ Set the Reaction [logging level](/developer/architecture/logging.md). Defaults t
Provide a [standard connection string for mongoDB](https://docs.mongodb.com/manual/reference/connection-string/).

```sh

MONGO_URL=mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]]

```
During development, mongoDB is installed and running locally, and can be accessed on the port above the http port. Use [RoboMongo](https://robomongo.org/) and create a connection to `localhost:3001`, or `meteor mongo` on the CLI to access the local mongoDB instance. The default database is `meteor`.
### ROOT_URL
_Export `ROOT_URL` and [packages/reaction-core/registry.js](https://github.com/reactioncommerce/reaction/blob/development/packages/reaction-core/server/registry.js) will update the domain in the `shops` collection to match the domain from `ROOT_URL`._ This lets you use alternate domains, or enforce SSL on a fresh installation. An empty ROOT_URL will just default to _localhost_.
Export `ROOT_URL` and Reaction will update the domain in the `Shops` collection to match the domain from `ROOT_URL`. This lets you use alternate domains, or enforce SSL on a fresh installation. An empty `ROOT_URL` will just default to `localhost`.
### MAIL_URL
To send email you should pre-configure the administrative SMTP email server. [env MAIL_URL variable](https://docs.meteor.com/api/email.html#Email-send). The Reaction dashboard provides a UI for quick configuration of the email server as well.
To send email you should pre-configure the administrative SMTP email server from `reaction.json` or using [env MAIL_URL variables](https://docs.meteor.com/api/email.html#Email-send).
Reaction supports sending mail over SMTP; the `MAIL_URL` environment variable should be of the form `smtp://USERNAME:PASSWORD@HOST:PORT`.
The Email dashboard provides a UI for quick configuration of the email server as well.
## Settings
Expand Down Expand Up @@ -193,15 +195,14 @@ Use `reaction.json` to provide an initial pre-configuration of Reaction. This wi
_Note: Where `name` is Reaction package name, the `settings` object will update the `Packages` collection on every restart/reload._
## Default Data
Reaction installs sample data, translations, and other fixture defaults from `/private/data/` and `/private/data/i18n` using the `Reaction.Import` class.
- Products.json
- Shipping.json
- Shops.json
- Tags.json
- Products.json
- Shipping.json
- Shops.json
- Tags.json
You can overwrite or delete these import files to alter the default data. If altered, the changed data will be merged with existing documents, but changes in the database will not overwrite on restart if there are no changes.
Expand All @@ -225,7 +226,6 @@ Meteor.startup(function () {
});
```
### loadSettings
```js
Expand Down
2 changes: 1 addition & 1 deletion developer/core/collection-hooks.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Collection Hooks

The [Reaction Collection hooks](https://github.com/reactioncommerce/reaction/blob/development/packages/reaction-collections/common/collections/hooks/hooks.js) extend [Mongo.Collection](http://docs.meteor.com/#/full/mongo_collection) with before/after hooks for insert, update, remove, find, and findOne.
The [Reaction Collection hooks](https://docs.reactioncommerce.com/reaction-docs/master/method-hooks) extend [Mongo.Collection](http://docs.meteor.com/#/full/mongo_collection) with before/after hooks for insert, update, remove, find, and findOne.

Works across client, server or a mix. Also works when a client initiates a collection method and the server runs the hook, all while respecting the collection validators (allow/deny).

Expand Down
2 changes: 1 addition & 1 deletion developer/core/hooks.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Hooks

[Reaction method hooks](https://github.com/reactioncommerce/reaction/blob/development/packages/reaction-core/server/methods/hooks/hooks.js) allow you to interact with a Reaction method **before** and **after** the method is called. You can pass either a single method name and hook function or pass a dictionary of `Object.<string, hook>` like you were setting up original Meteor methods.
[Reaction method hooks](https://docs.reactioncommerce.com/reaction-docs/master/method-hooks) allow you to interact with a Reaction method **before** and **after** the method is called. You can pass either a single method name and hook function or pass a dictionary of `Object.<string, hook>` like you were setting up original Meteor methods.

The method hooks utilized in Reaction are based on [Workpop/meteor-method-hooks](https://github.com/Workpop/meteor-method-hooks) which itself is based on [hitchcott/meteor-method-hooks](https://github.com/hitchcott/meteor-method-hooks)

Expand Down
Loading

0 comments on commit a4eded1

Please sign in to comment.