VbzCart/docs: Difference between revisions

From Woozle Writes Code
Jump to navigation Jump to search
(moved table design to separate page; events)
mNo edit summary
 
(52 intermediate revisions by 2 users not shown)
Line 1: Line 1:
[[Technology]]: [[VbzCart]]
==About==
[[VbzCart]] is {{l/htyp|free/open-source}} software for running an {{l/htyp|online retail}} operation.


Having evaluated [[osCommerce]] and found that, although it had many features I would like to have on vbz.net, it also lacked some crucial features currently needed (many of which are provided by the existing shopping cart system, and some of which would be needed in order to effectively manage porting the data from the existing system).
* '''[[/install]]''' has deployment instructions
* '''[[/status]]''' critical pieces still need to be (re)written, though most of it is working well (2017-06-25)
==Purpose==
The immediate purpose is to handle the more data-intensive aspects of managing a small online retail operation that offers a wide variety of products in a wide variety of choices. This [[/pieces|includes]] tracking orders, tracking packages sent to fill those orders, stock and inventory, which items need to be reordered from suppliers, what is currently expected from suppliers, what suppliers have sent in the past, etc.


So I'm writing a new system, in PHP, based on the data design of the existing VBZ cart system and adding new pieces as needed.
Once that is up and running, I'll begin work on additional functionality:
 
* "marketplace" ability -- 3rd parties can sell their items through the same site, and VbzCart will provide most of the same functionality to them
I will be taking notes on this page and gradually refining them into something resembling documentation, with the ultimate goal of producing a system which could be released under an [[htwiki:FOSS|open source]] license.
* distributed catalog search and other {{l/igov|federated retail}} functionality
 
==Pages==
==Documents==
{|
*[[VbzCart Tables]]
|-
==Notes==
|
===Identifying Sessions===
* [[/ui]]: help pages
I've been debating about the idea of allowing carts to work using IP address/domain plus browser ID (user_agent) because cookies don't always seem to work (and some people have them turned off), and I think I've come up with a reasonable compromise.
* [[/pieces]]: features and concepts
 
* [[/coding]]: technical documentation
The problem is that one user might connect through a dial-up (dynamic IP), place orders in a cart and disconnect, and then another user with the same browser and OS might happen to connect through the same dial-up -- which would cause that user to be assigned the previous user's shopping cart. This isn't a ''serious'' problem, because no personal information will be conveyed, but it can be off-putting to go to a store and find that your cart already has items in it. I would be inclined to immediately go somewhere else.
|
 
* [[/history]]: how we got here
What I've come up with is the following:
* [[/archive]]: obsolete pages
*sessions IDed via IP/browser have a much shorter expiration than cookie sessions
* [[/meta]]: how to document
*sessions IDed via IP/browser will show a warning to indicate the shorter expiration time (should show the actual session time remaining)
|}
*cookies have never been used for checkout; we have always used POST data (?session=xxxxx), so that's not an issue
 
===Sequence of Events===
*On receiving one or more items to add to the cart:
**Try to match with existing session:
***Check for session cookie; if found, use that
***If no session cookie, look for unexpired IP/browser match
**If no usable existing session found, create a new one (empty cart)
**Add items to the session cart
**Display cart & session info

Latest revision as of 13:37, 25 February 2024

About

VbzCart is free/open-source software for running an online retail operation.

  • /install has deployment instructions
  • /status critical pieces still need to be (re)written, though most of it is working well (2017-06-25)

Purpose

The immediate purpose is to handle the more data-intensive aspects of managing a small online retail operation that offers a wide variety of products in a wide variety of choices. This includes tracking orders, tracking packages sent to fill those orders, stock and inventory, which items need to be reordered from suppliers, what is currently expected from suppliers, what suppliers have sent in the past, etc.

Once that is up and running, I'll begin work on additional functionality:

  • "marketplace" ability -- 3rd parties can sell their items through the same site, and VbzCart will provide most of the same functionality to them
  • distributed catalog search and other federated retail functionality

Pages