Advertisement
Guest User

Untitled

a guest
Mar 27th, 2017
27
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.65 KB | None | 0 0
  1. Use Cases
  2. Guest Checkout
  3. Unique email id and contact no? sorted
  4. Email id and contact no already used by same customer? sorted
  5. Email id used but not contact no - not allowed, change contact no after email authentication? Figure out UX.
  6. Contact no used but not email - Not allowed. Use different phone number, or login into previous account with phone number and change email id.
  7. Email id and contact no already used by 2 separate customers - Same as c.
  8. Address selection for guest checkout. TBD with UX, Algo and manual.
  9. Logged in Checkout
  10. Unique contact no - sorted
  11. Contact no already used by another customer - 1.d
  12. Unified cart across platforms?
  13. Unified cart across devices? Yes.
  14. Unified cart across cities? TBD with UX
  15. Merge carts after login? TBD with UX
  16. Order Source?
  17.  
  18. Schema Changes for Web
  19. to be deleted(move to panem)
  20. Users - Remove from web
  21. Delivery_addresses - Remove from web
  22. Referral_codes - Remove from web
  23. Bookings and associations - remove from web
  24. Wishlist
  25. Devices
  26. to be modified
  27. Customers - keep temporarily until kyc migration
  28. Payments - add panem user_id, remove all other user credentials
  29. Carts - add panem user_id and delivery_address_id, will be empty for guest checkouts until panem user created.
  30. Orders - add panem user_id
  31.  
  32.  
  33.  
  34. Ghost User Workflow on Web/Mobile
  35. On first visit, ask user for city and create a ghost user.
  36. POST /ghost_users
  37. Request
  38. :city_id
  39. :medium
  40. :device_params
  41. :device_id
  42. :device_name
  43. device_os
  44. :device_os_version
  45. :device_app_version
  46. :track_params
  47. :source
  48. :campaign
  49. :medium
  50. Response - This would return the ghost_identifier
  51. Save ghost user identifier in cookie/local storage.
  52. Cookie Name - furlenco_ghost_identifier
  53. Header Name - X-Ghost-Identifier
  54. All subsequent calls will include this ghost user identifier.
  55. When user logins, Panem Token is returned, which is stored on cookie/local storage
  56. Cookie Name - furlenco_panem_token
  57. Header Name - X-Panem-Token
  58. All subsequent calls should contain this token
  59.  
  60. Guest Checkout Workflow on Web/Mobile
  61. User enters email_id and contact_no for guest checkout.
  62. Get the user_id from panem and update cart
  63. POST /guest_user
  64. Request
  65. email_id
  66. contact_no
  67. Response
  68. If user for email_id exists
  69. if user has same contact_no as given, user is returned and user_id is updated in cart.
  70. If user has different contact_no as given, error - "The email id you provided - #{email_id} already has a contact no - #{masked_contact_no} saved. Proceed if you wish to use the same contact no. You might choose to change it after logging in into your account."
  71. If user doesn’t have contact_no, contact_no is updated, user id returned, and user_id is saved in cart
  72. if user for contact_no is present(obviously it’ll have a different email_id since we dealt the previous case earlier), error - "The contact no you provided - #{contact_no} already has a email id - #{masked_email_id} saved. Proceed if you wish to use the same email id. You might choose to change it after logging in into your account."
  73. if email_id and contact_no are unique, user created, returned and user_id is updated in cart.
  74. The user has to keep trying until the above step is successful.
  75. After this, get all delivery_addresses of user(masked since he’s not logged in)
  76. GET cart/user/delivery_addresses
  77. Response - [
  78. { id: 1, full_address: `full masked address of user` },
  79. { id: 2, full_address: `full masked address of user` }
  80. ]
  81. Now the user has the option to either choose one of these addresses or create a new one.
  82. Choose one delivery_address, this would validate whether it belongs to the user.
  83. PUT /cart/delivery_addresses
  84. Request
  85. delivery_address_id
  86. Create a delivery_address
  87. POST cart/delivery_addresses
  88. Request
  89. city_id
  90. pincode
  91. address
  92. The delivery_address_id is updated in the cart.
  93. Now he can checkout.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement