Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Wire up social share features #61

Closed
aaronjudd opened this issue May 13, 2014 · 11 comments
Closed

Wire up social share features #61

aaronjudd opened this issue May 13, 2014 · 11 comments

Comments

@aaronjudd
Copy link
Contributor

Wire up client sharing for Twitter, Facebook, Pinterest and use the message stored in product data. Wire default messages if no message provided. Remove instagram, replace with G+

@aaronjudd aaronjudd added this to the Beta milestone May 13, 2014
@aaronjudd aaronjudd added the beta label Jun 28, 2014
@aaronjudd aaronjudd modified the milestones: v0.2.3, Beta Jan 16, 2015
@aaronjudd aaronjudd self-assigned this Jan 16, 2015
@aaronjudd
Copy link
Contributor Author

@lovetostrike this might be the right issue to log your thoughts on shareIt implementation

@putstrln
Copy link
Contributor

I have already added support for pinterest on my local shareit. And the way I see it, we should try to refactor social sharing buttons/functions on reaction to loop over an array that the user provides.

@bstocks
Copy link
Contributor

bstocks commented Jan 22, 2015

As part of this task, will there be an admin interface for authenticating into social accounts at the shop level? If so, then an additional feature would be to automatically add relevant features to the share buttons such as including the company twitter handle, etc.

@aaronjudd
Copy link
Contributor Author

@lovetostrike you can now use the new reaction package registry to provide the templates to the social blocks,
see https://github.com/reactioncommerce/reaction-core/blob/development/docs/packages.md#reactioncoreregisterpackage

Where in the core templates we'd add:

{{#each reactionApps provides="social"}}
     {{> dynamicTemplate template=template}}
{{/each}}

@putstrln
Copy link
Contributor

putstrln commented Mar 8, 2015

ok, I will update the PR to work with the new package system. That's neat.

@aaronjudd
Copy link
Contributor Author

thoughts on reaction-social:

The advantage of one package for social is that we can have the whole codebase in one repo, but easily break into separate dashboards if we want it to look like multiple packages. easier maintenance of the social package this way I think - even though I see this becoming much larger in functionality / scope. Might be nice to not have to worry about multiple packages. Community wise, we'd want to encourage PR for additional social channels, rather than a new package if we take the single package approach.

With multiple repo / packages, we could add account-ui auth packages as a dependency - there will be more maintenance (publishing etc), but it will also be easier for developers to copy a simple social package and write their own without worrying about the scope/functionality of other social packages. ie: probably an easier implementation than what you had to do in https://github.com/lovetostrike/reaction-social/blob/master/client/templates/social.coffee#L10. We might want to move shared functionality into core with this, or we'd need to have some shared (reaction-social) package in addition to the specific channels (as a weak dependency).

I had an idea that at some point we'd want to wrap create our own accounts-ui package and replace with our own templates/code/workflow, and I think that if we had individual social channel packages, and we included the accounts-* auth packages from meteor - it could be a non-breaking/easier change to future reaction versions.. But honestly, I think it's only a slight advantage, and maybe more work. Might be better to just wrap accounts-ui into a reaction-accounts-ui, or not worry about that until the time comes even.

As of now, I'm leaning towards keeping the single repo/package. I'd like something with less maintenance, and a more centralized community development than the payment or shipping packages. I think it could end up being a different beast, encompassing SEO, social channel content, and much more, so not really on par with the payment/social packages.

@lovetostrike @aldeed @spencern @evliu @jgladch
In any case, looking for thoughts on this... (and maybe some feedback on #345 as it's sort of related).

@putstrln
Copy link
Contributor

@aaronjudd I haven't used accounts-ui code so I don't know how it's gonna work. For the social package, storing the channels under single repo, at least for now, would keep things tidy since everything's changing very fast. When it reaches some level of maturity, it should be easily decomposed into several channel packages if we want. I just think less is more at this point.

We might want to move shared functionality into core with this, or we'd need to have some shared (reaction-social) package in addition to the specific channels (as a weak dependency).

I also like the idea that using this as a managment package for social channels after early stage. Core doesn't need to bother with adding/removing new channels and they will just need to talk to reaction-social API or follow its conventions.

@aldeed
Copy link
Contributor

aldeed commented Mar 23, 2015

I think a single social pkg could be ok. For auth, you could list every auth pkg as a weak dependency. Then the social pkg can enable & configure as necessary by checking to see if each auth pkg has been added.

if (Package && Package['accounts-facebook']) {
  // configure and turn on facebook auth
}

@spencern
Copy link
Contributor

I agree with @lovetostrike and @aldeed that I think for the foreseeable future it makes sense to keep social channels under a single package.

@aaronjudd
Copy link
Contributor Author

ok, sounds like a plan then. @lovetostrike there's a couple minor UI things I'm going to patch up in reaction-social, and then I'll publish it, and include it in the 0.5.3 release as a "test" package. We can build on it from here.

@putstrln
Copy link
Contributor

@aaronjudd sounds good... I will test more once I get some non-localhost environment.

aaronjudd added a commit that referenced this issue Mar 24, 2015
Thanks to contributions from @danielgindi `right to left internationalization` is now supported.

Take a look at the Russian or Hebrew languages to see RTL in action.

 - Resolves #176

Also contributions from  @firstred and @epson121 added Dutch and Croatian translations.

Thanks to contributions from @lovetostrike, the initial `reactioncommerce:reaction-social` package has been published, which gives basic social sharing functionality.

 - Resolves #61
 - Resolves #281

- if there is neither a sessionCart nor a userCart, create a sessionCart
  * add sessionId to cart.sessions
  * auto insert/update userId if authenticated
  * observers to ensure cart always exists (ie after deletion)
- if sessionCart is a not a userCart return sessionCart
- if sessionCart just authenticated, add userId
- only return a user cart when authenticated
  * copy existing userCart(s) into sessionCart and remove userCart(s)
- if userCart just logged out, remove sessionId from userCart and create new sessionCart
- allow multiple sessionId per cart when userCart

TODO:

- realistically this may not be very solid way to handle sessions.
- Session handling will need a **close review in the future**.
- potential edge cases where multiple session/auth/merge actions to a cart may destroy the cart
- cart really should have mirrored client and server methods and be tested offline

Issue updates:

- Remove packages introduced in reactioncommerce/reaction-core#76
- Resolves #271
- Resolves #339
- Resolves #326
- Resolves #183
- Strategic updates for issue #16
- Strategic updates for issue #318
- Strategic updates for issue #76

   * dashboard enable/disable **guest checkout**
   * change default step to **guest checkout** or create/sign-in
   * store email for order - **after order completion if guest**
   * not visible after destroyed session (ie: refresh)
   * updated checkout and progress bar to use
     cart value instead of session

TODO:

- validation on email guest entry
- add account creation instructions to an order completion email
- potentially add third prompt for account creation after email (or promos,etc)
- order emails!
- use workflow states to control checkout ui flow.

Thanks to initial contributions from @prinzdezibel!

- use new Accounts collection (previously referred to as customers)
- create account on user create, or use a session specific account
- implement Template.dynamic handling of AddressBook edit/add/grid
- changes to checkout address handling, fix accounts context
- update addressBook forms to autoform-v0.5.0 compatible (autoform not upgraded)
- change accounts/shop `email` from string to `emails` array
  - `emails: {'address': options.email, 'verified': true}`
- changed Shops, Accounts email to an array `emails`
- userAccountsDropdown icon for orders, profile
- user view of order history

TODO:

- merge session accounts to user account upon email confirmation (and email saved on cart)
- reduce / cleanup garbage sessions  (merge will help)
- session / accounts/ cart garbage collector
- account profile / settings
- on account creation / login  with password
    - if confirmed account creation email
      - create a account collection record with this userId
      - update all orders with matching email to match this userId
      - copy all order addresses into Accounts.profile.addressBook
      - copy all social / email info to Accounts.
      - users collection locked down, nothing exposed to client, used for authentication only
    - else
      - if there are more orders with this email
      - display on order view "Add order"

* moves user orders from cart/checkout folder to dashboard/orders
* add message for confirmation of email
* authenticated user can see all orders where userId in list view
* admin can see all in list view
* userAccountsDropdown icon for orders
* add cartId to Orders (instead of using cartId as orderId)

TODO:

- integrate the admin view of list into dashboard admin flow
- this is possibly a breaking change to the orders dashboard.
- remove sessionId from orders on logout

* updates to handling settings from registry (public, private)
* rename and move settingGeneral to shop/settings
* rename and move settingsAccounts to shop/accounts

**Multi-shop/vendor**

* shop account updates to prep multi-shop dashboard
* shopId added to cart.items (variants)

Issue updates:

- Strategic updates for issue #236
- Strategic updates for issue #327

* added settings.public to publish public settings to ReactionCore.xxx

Thanks to contributions and docs from @spencern

- Test coverage for product methods
- Fix, add coverage for core methods

* Upgrade to Meteor 1.0.4.2
* Implements `check` and `audit-argument-checks`
* Implements `browser-policy`
* Fixed footer layout pages loading.
* Updates CFS, removes FileStorage collection.
* **Contributions from @aldeed @prinzdezibel @spencern @boboci9 @evliu @ceh @gouthamve @KEFIRCHIK @epson21 @firstred
**
aaronjudd pushed a commit that referenced this issue Dec 3, 2015
aaronjudd pushed a commit that referenced this issue Dec 3, 2015
aaronjudd added a commit that referenced this issue Dec 3, 2015
Thanks to contributions from @danielgindi `right to left internationalization` is now supported.

Take a look at the Russian or Hebrew languages to see RTL in action.

 - Resolves #176

Also contributions from  @firstred and @epson121 added Dutch and Croatian translations.

Thanks to contributions from @lovetostrike, the initial `reactioncommerce:reaction-social` package has been published, which gives basic social sharing functionality.

 - Resolves #61
 - Resolves #281

- if there is neither a sessionCart nor a userCart, create a sessionCart
  * add sessionId to cart.sessions
  * auto insert/update userId if authenticated
  * observers to ensure cart always exists (ie after deletion)
- if sessionCart is a not a userCart return sessionCart
- if sessionCart just authenticated, add userId
- only return a user cart when authenticated
  * copy existing userCart(s) into sessionCart and remove userCart(s)
- if userCart just logged out, remove sessionId from userCart and create new sessionCart
- allow multiple sessionId per cart when userCart

TODO:

- realistically this may not be very solid way to handle sessions.
- Session handling will need a **close review in the future**.
- potential edge cases where multiple session/auth/merge actions to a cart may destroy the cart
- cart really should have mirrored client and server methods and be tested offline

Issue updates:

- Remove packages introduced in reactioncommerce/reaction-core#76
- Resolves #271
- Resolves #339
- Resolves #326
- Resolves #183
- Strategic updates for issue #16
- Strategic updates for issue #318
- Strategic updates for issue #76

   * dashboard enable/disable **guest checkout**
   * change default step to **guest checkout** or create/sign-in
   * store email for order - **after order completion if guest**
   * not visible after destroyed session (ie: refresh)
   * updated checkout and progress bar to use
     cart value instead of session

TODO:

- validation on email guest entry
- add account creation instructions to an order completion email
- potentially add third prompt for account creation after email (or promos,etc)
- order emails!
- use workflow states to control checkout ui flow.

Thanks to initial contributions from @prinzdezibel!

- use new Accounts collection (previously referred to as customers)
- create account on user create, or use a session specific account
- implement Template.dynamic handling of AddressBook edit/add/grid
- changes to checkout address handling, fix accounts context
- update addressBook forms to autoform-v0.5.0 compatible (autoform not upgraded)
- change accounts/shop `email` from string to `emails` array
  - `emails: {'address': options.email, 'verified': true}`
- changed Shops, Accounts email to an array `emails`
- userAccountsDropdown icon for orders, profile
- user view of order history

TODO:

- merge session accounts to user account upon email confirmation (and email saved on cart)
- reduce / cleanup garbage sessions  (merge will help)
- session / accounts/ cart garbage collector
- account profile / settings
- on account creation / login  with password
    - if confirmed account creation email
      - create a account collection record with this userId
      - update all orders with matching email to match this userId
      - copy all order addresses into Accounts.profile.addressBook
      - copy all social / email info to Accounts.
      - users collection locked down, nothing exposed to client, used for authentication only
    - else
      - if there are more orders with this email
      - display on order view "Add order"

* moves user orders from cart/checkout folder to dashboard/orders
* add message for confirmation of email
* authenticated user can see all orders where userId in list view
* admin can see all in list view
* userAccountsDropdown icon for orders
* add cartId to Orders (instead of using cartId as orderId)

TODO:

- integrate the admin view of list into dashboard admin flow
- this is possibly a breaking change to the orders dashboard.
- remove sessionId from orders on logout

* updates to handling settings from registry (public, private)
* rename and move settingGeneral to shop/settings
* rename and move settingsAccounts to shop/accounts

**Multi-shop/vendor**

* shop account updates to prep multi-shop dashboard
* shopId added to cart.items (variants)

Issue updates:

- Strategic updates for issue #236
- Strategic updates for issue #327

* added settings.public to publish public settings to ReactionCore.xxx

Thanks to contributions and docs from @spencern

- Test coverage for product methods
- Fix, add coverage for core methods

* Upgrade to Meteor 1.0.4.2
* Implements `check` and `audit-argument-checks`
* Implements `browser-policy`
* Fixed footer layout pages loading.
* Updates CFS, removes FileStorage collection.
* **Contributions from @aldeed @prinzdezibel @spencern @boboci9 @evliu @ceh @gouthamve @KEFIRCHIK @epson21 @firstred
**
cmbirk pushed a commit to cmbirk/reaction that referenced this issue Aug 18, 2019
…-product-importer-develop

Updated product-import plugin in develop branch.
zenweasel pushed a commit that referenced this issue Sep 20, 2022
Remove obsolete environment variables
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants