GithubHelp home page GithubHelp logo

virtocommerce / vc-theme-b2b Goto Github PK

View Code? Open in Web Editor NEW
13.0 28.0 12.0 16.63 MB

B2B theme for VirtoCommerce Storefront. The theme demonstrating various aspects of B2B functionality

Home Page: http://demo.virtocommerce.com/B2B-store

JavaScript 16.00% Liquid 34.06% CSS 14.23% HTML 25.31% Batchfile 0.17% SCSS 6.97% Sass 3.25%
virtocommerce theme b2b

vc-theme-b2b's People

Contributors

aartiomov avatar akak1977 avatar alivemen avatar andrew-orlov avatar artem-dudarev avatar asvishnyakov avatar dmitry-virtoway avatar eugeneokhriemnko avatar flamasterr avatar ilyawzrd avatar kostyrin avatar krankenbro avatar megafreeman avatar mike-chirsky avatar mvktsk avatar n2pro avatar olegoo avatar tatarincev avatar trueboroda avatar v-dev-1 avatar vc-ci avatar woland2k avatar yecli avatar

Stargazers

 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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

vc-theme-b2b's Issues

Create basic product page layout

Add UI for:

  • Name with key properties: Item# (SKU), Mfr. Model#, UNSPSC#, Shipping Weight
  • Image
  • Price
  • Order options (one time or reorder)
  • Delivery options (shipping or pickup; use snippet from #29)
  • Product details (description)
  • Technical specs (additional properties)
  • Email and Print links

As a Registered user, I want to see quick links to my data on the home page

Purpose

Requirements

  • ?

Related issues

  • ?

User stories

  • ?

Acceptance criteria

  • GIVEN I logged in to the site WHEN I open home page THEN I must see account info block instead of sign-in where I should see following info:
  • First and Last names
  • Account ID
  • Link to Order History page
  • Link to Invoice History page
  • Link to My List page
  • Link to My Account page

Definition of Done

  • ?

As a Customer, I want to open product page, so I could see more details and actions for the product

As a Customer, I want to open product page, so I could see more details and actions for the product

Acceptance criteria

  • GIVEN the valid product exists in the catalog WHEN I open page of the product THEN I should see following blocks of data and actions:
  • Name with key properties: Item# (SKU), Mfr. Model#, UNSPSC#, Shipping Weight
  • Image
  • Price
  • Order options (one time or reorder)
  • Delivery options (shipping or pickup)
  • Technical specs (additional properties)
  • Email and Print links

Definition of Done

  • Unit tests pass with Code coverage 100%
  • Code review
  • Documentation

Tasks

  • ?

As a Customer, I want to add product to the list in the product page

As a Customer, I want to add product to the list in the product page

Acceptance criteria

  • GIVEN product page is opened and user is logged in WHEN I click on "Add to List" link THEN VC standard lists managing popup should be opened
  • GIVEN product page is opened and user is not logged in WHEN I click on "Add to List" link THEN notification should be shown "Please sign in or register to access lists", where sign in and register are the links to appropriate pages

Definition of Done

  • Unit tests pass with Code coverage 100%
  • Code review
  • Documentation

As a Customer, I want to see product with variations in one page

As a Customer, I want to see product with variations on one page, so that I could easily review all variations and bulk add to the cart

Acceptance criteria

  • GIVEN the product with variations exists in the catalog WHEN I open product with variation page THEN I should see different page than product without variation

Definition of Done

  • Unit tests pass with Code coverage 100%
  • Code review
  • Documentation

As a Customer, I want to email the product

As a Customer, I want to email the product

Acceptance criteria

  • GIVEN product page is opened WHEN I click on the link "Email" THEN pop up form should be opened
  • GIVEN there is a product notification template WHEN email is submitted from the product page THEN recipient should receive an email message with the link to the product page

Definition of Done

  • Unit tests pass with Code coverage 100%
  • Code review
  • Documentation

Tasks

  • ?

As a User, I want to update quantities of the products in the shopping cart

As a User, I want to update quantities of the products in the shopping cart

Acceptance criteria

  • GIVEN I have some products in the cart
    WHEN I change quantity for the product and click 'Update'
    THEN Order summary, product total and availability should be updated
  • GIVEN I have some products in the cart
    WHEN I change quantities for some products and click 'Update all'
    THEN Order summary, products totals and availabilities should be updated

As a Anonymous user, I want to sign in to the site

Purpose

As an Anonymous user, I want to sign in to the site

Acceptance criteria

  • GIVEN I have an account WHEN I open home page THEN I see sign-in block with user name and password on left top of the page
  • GIVEN I have an account WHEN I enter user name and password to the sign-in block THEN sign-in block is changed to the account info block
  • GIVEN I have an account WHEN I enter incorrect user name and password to the sign-in block THEN I should be redirected to a sign-in page with the error message "Your User ID or Password is incorrect. Please try again."

Definition of Done

  • E2E tests for acceptance criteria

Refactor styles

  • Add all bootstrap controls
  • Add reused blocks from theme
  • Review styles and refactor them to make controls look uniform

As a User, I want to filter products by search keyword within the category

Purpose

Requirements

  • ?

Related issues

  • ?

User stories

  • ?

Acceptance criteria

  • GIVEN I open browse page for specific category WHEN I enter search keyword in the 'Search within these results' input box THEN I should get list of items filtered by the keyword within the specific category

Definition of Done

  • ?

As a User, I want to view my shopping cart

As a User, I want to view my shopping cart

Acceptance criteria

  • GIVEN my shopping cart is empty
    WHEN I open shopping cart page
    THEN I should see page with message 'Your Cart is Empty'
  • GIVEN I added products to the cart
    WHEN I open shopping cart page
    THEN I should see following elements on the page:
  • List of products added to the cart. Each product should show availability info
  • Order summary with estimated shipping costs and discounts
  • Delivery method
  • Promotion code input box
  • GIVEN I added 1000 products to the cart
    WHEN I open shopping cart page
    THEN page should be opened in <5 sec where the list of products is paginated

As I customer, I want to select delivery option for variations in the product page

As I customer, I want to select delivery option for variations in the product page, so that I could see variations availability in one list

Acceptance criteria

  • GIVEN product with variations exists and product page is opened WHEN I select shipping address or pickup branch for variation THEN my selected delivery option should be set for all variations in the product page

Definition of Done

  • Unit tests pass with Code coverage 100%
  • Code review
  • Documentation

Error is generated by B2B when user is not part of the organization

@Woland2k commented on Wed Jul 26 2017

Expected behavior

Should show user profile.

Actual behavior

Login with user that is not part of the organization and you get the following error:

GET https://ADDRSS/admin/api/b2b/companyMember/fb283440-b11b-467f-8113-79e13966d7d5 500 Internal Server Error An error has occurred.

at System.Linq.Enumerable.d__941.MoveNext() at System.Linq.Enumerable.FirstOrDefault[TSource](IEnumerable1 source)
at VirtoCommerce.B2BExtensionsModule.Web.Controllers.Api.CorporateMembersController.GetCompanyMemberById(String id)
at lambda_method(Closure , Object , Object[] )
at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ActionExecutor.<>c__DisplayClass10.b__9(Object instance, Object[] methodParameters)
at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ActionExecutor.Execute(Object instance, Object[] arguments)
at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ExecuteAsync(HttpControllerContext controllerContext, IDictionary`2 arguments, CancellationToken cancellationToken)
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Web.Http.Controllers.ApiControllerActionInvoker.d__0.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Web.Http.Filters.ActionFilterAttribute.d__5.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Web.Http.Filters.ActionFilterAttribute.d__5.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Web.Http.Filters.ActionFilterAttribute.d__0.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Web.Http.Controllers.ActionFilterResult.d__2.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Web.Http.Filters.AuthorizationFilterAttribute.d__2.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Web.Http.Dispatcher.HttpControllerDispatcher.d__1.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Web.Http.Dispatcher.HttpControllerDispatcher.d__1.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Web.Http.Cors.CorsMessageHandler.d__5.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Web.Http.Cors.CorsMessageHandler.d__0.MoveNext()

Steps to reproduce


@asvishnyakov commented on Thu Jul 27 2017

In B2B user can't be not part of organization


@Woland2k commented on Thu Jul 27 2017

Why not? It should be a common scenario when user is not part of the organization.


@asvishnyakov commented on Thu Jul 27 2017

In B2B? But it's business-to-business, all clients in that case are companies.

Add popup for shipping/pickup choice

  • Add "Ship or pickup" link
  • Change link text to display current postal code or pickup location name (number) when use logged in
  • Open popup with shipping / pickup choice when click on "Ship or pickup" link
  • If shipping selected: show input for postal code and pass this postal code to current user address
  • If pick up selected: show link to fulfillment center selection. Then fulfillment center selected, pass its address to shipping method

Research:

  • Have user "current selected" address? How to get it?
  • Should/can we pass fulfillment center ID to shipment method?

As a Customer, I want to select delivery option on the product page

As a ___, I want ____, so that ___

Acceptance criteria

  • GIVEN ZIP code is not provided WHEN I open product page THEN I should see input box to enter ZIP code
  • GIVEN ZIP code is provided WHEN I open product page THEN I should see two delivery options: "Shipping" and "Pickup"
  • GIVEN ZIP code is provided WHEN I select delivery option "Shipping" in the product page THEN I should see "Expected to arrive" date and "Ship To" zip code.
  • GIVEN ZIP code is provided WHEN I select delivery option "Shipping" in the product page THEN I can change ZIP code
  • GIVEN ZIP code is provided WHEN I select delivery option "Pickup" in the product page THEN I should see "Available for pickup" date and Branch name.
  • GIVEN ZIP code is provided WHEN I select delivery option "Pickup" in the product page THEN I can change branch

Definition of Done

  • Unit tests pass with Code coverage 100%
  • Code review
  • Documentation

Tasks

  • ?

Allow filtration by fulfillment center on product list page

  • Research about filtration by fulfillment center (does this exist? what's architecture of filtration by fulfillment center?)
  • Create mock service to allow this filtration (if does not implemented)
  • Create popup with form for fulfillment center selection

Add styles and scripts for new theme

Add styles, script and their dependencies for new theme. Use bundles, except for files with variables, which must be imported to scss at storefront scss processing to be able get variable values from config.json. We need this to allow users easy configure brand colors, fonts, icons, etc. on admin site on-the-fly.

As a customer, I want to order the product with auto-reorder option

As a customer, I want to order the product with auto-reorder option

Acceptance criteria

  • GIVEN product page is opened WHEN I want to add a product to the cart THEN I should see the two options "Auto-reorder" and "Deliver one time only" next to "Add to the cart" button.
  • GIVEN product page is opened WHEN I select options "Auto-reorder" THEN I can select reorder period from the dropdown list of values: 1 week, 2 weeks, 1 month, 2 months, ..., 6 months

Definition of Done

  • Unit tests pass with Code coverage 100%
  • Code review
  • Documentation

Tasks

  • ?

Show detailed information about variation

Show detailed info about variations on click on it.
The following info needed:

  • Branch
  • Title
  • Sku
  • MFN
  • Price
  • Variation properties

Make research: does we need any other info here?

As a Customer, I want to filter variations list in the products page

As a Customer, I want to filter variations list in the products page

Acceptance criteria

  • GIVEN product has more than one variations WHEN I open product with variations page THEN I should see a block with filters by variations properties
  • GIVEN product has more than one variations WHEN I open product with variations page THEN I should see a table with the list of variations and columns:
  • Item #
  • Mfr. Model #
  • {Variatons properties}
  • Price
  • Delivery option
  • Qty (input field)
  • GIVEN product has more than one variations and product page is opened WHEN I select specific property value in the filter THEN I should see a list of variations filtered by specified value

Definition of Done

  • Unit tests pass with Code coverage 100%
  • Code review
  • Documentation

As a User, I want to view previously purchased items in the browse page

Purpose

As a User, I want to view previously purchased items in the browse page

Acceptance criteria

  • GIVEN I open the browse page and I'm registered in the site
    WHEN I click checkbox 'View previously purchased items'
    THEN I should see the list of the products from my previous orders.
  • GIVEN I open the browse page and I'm not registered in the site
    WHEN I click checkbox 'View previously purchased items'
    THEN I should see warning message 'You must be a registered user to view previously purchased products. Sign in at the top of the page.' with the link to sign-in page.
  • GIVEN I open the browse page and I'm registered in the site and I don't have any orders yet
    WHEN I click checkbox 'View previously purchased items'
    THEN I should see warning message 'No results found with "Previously Purchased Items Only".'

Definition of Done

  • E2E tests for acceptance criteria

Add support for product variations

In UI (only):

  • Show main product page only when product has no variations (i.e. {% if product.variants == 1 %})
  • Add breadcrumbs and email button
  • Add filters
  • Add table caption with Select items to compare, View previously purchased, Add to list and Add to card buttons
  • Add table body with product image, MFN, variation properties (one per column), price, delivery type and quantity columns.

As a User, I want to quickly add items to the Cart by entering an item SKU and quantities.

Purpose

Requirements

  • ?

Related issues

  • ?

User stories

  • ?

Acceptance criteria

  • GIVEN I open any page WHEN I click on the button in header 'BULK ORDER PAD' THEN popup should be displayed with the input form for SKU and quantities.
  • GIVEN I know the items SKU WHEN I enter SKU and quantities to the popup form 'BULK ORDER PAD', and click 'ADD TO CART' THEN I should see popup with operation results, buttons 'CONTINUE SHOPPING' and 'VIEW CART'.
  • GIVEN I entered SKU and quantities to the popup form 'BULK ORDER PAD' WHEN my SKU's are valid THEN operations results popup should show the count of added items and the total count of items in the cart.
  • GIVEN I entered SKU and quantities to the popup form 'BULK ORDER PAD' WHEN my some SKU's are not valid THEN operations results popup should show the count of added items, count of invalid items, list of invalid SKU's, total count of items in the cart.

Definition of Done

  • ?

As I Customer, I want to see variation detailed info in the product page

As I Customer, I want to see variation detailed info in the product page, so that I could review variation without leaving the product page

Acceptance criteria

  • GIVEN product with variations exists in the catalog, the product page is opened and variations details are hidden (collapsed) WHEN I expand variation row in the table THEN I should see more details about variation:
  • bigger image
  • Item #
  • Mfr. Model #
  • Name
  • Price
  • List of all properties
  • GIVEN product with variations exists in the catalog, the product page is opened and variations details are shown (expanded) WHEN I collapse variation row in the table THEN I shouldn't see more details about variation

Definition of Done

  • Unit tests pass with Code coverage 100%
  • Code review
  • Documentation

Tasks

  • ?

Add static style guide

Add static file "Style guide" which include all shared UI controls with their states + most used blocks like product item

Add basic layout for main page

Make header and footer (#5):

  • Add quick links at the top of page (#3)
  • Add main navigation links
  • Add navigation bar without dropdown implementation (#4)

As a Customer, I want to print product info

As a Customer, I want to print product info

Acceptance criteria

  • GIVEN product page is opened and product print notification template is defined WHEN I click on the link "Print" THEN browser print dialog page should be opened with generated pdf

Definition of Done

  • Unit tests pass with Code coverage 100%
  • Code review
  • Documentation

Tasks

  • ?

Allow to filter product variations by variation property

Behavior:

  • Get all variation properties available for product
  • Filter properties: only properties with values more than one should be used in filtration: no dropdown must be showed
  • When variations filtered by specified property, filter properties again: if property has only one value now, disable dropdown
  • Selected filter should be added to special list under filters with possibility to clear it or clear all filters

Create category (product list) page

  • Redesign product badge to display within search results
  • Redesign product list with pagination
  • Redesign aside panel with filters for displayed products

As a User, I want to search products by the branch

Purpose

As a User, I want to search products by the branch, so I could see only products available in the selected branch

Branch is the fulfilment center in the VC platform

Requirements

  • ?

Related issues

  • ?

User stories

  • ?

Acceptance criteria

  • GIVEN I open browse page WHEN I select the branch from the list THEN I should see the products in stock of the selected branch.

Definition of Done

  • ?

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.