Difference between revisions of "VbzCart"

from HTYP, the free directory anyone can edit if they can prove to me that they're not a spambot
Jump to navigation Jump to search
 
(59 intermediate revisions by 2 users not shown)
Line 1: Line 1:
[[Technology]]: [[VbzCart]]
+
<hide>
 +
[[page type::article]]
 +
[[thing type::software]]
 +
[[thing type::project]]
 +
[[category:software]]
 +
</hide>
 +
==About==
 +
[[VbzCart]] is [[free/open-source]] software for running an [[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/ig|federated retail}} functionality
==Tables==
+
==Pages==
Fields which are used as keys (i.e. unique identifiers) are in italics
+
{|
===Administration===
+
|-
Main data tables:
+
|
*'''admin_users''' -- users with access to the admin system
+
* [[/ui]]: help pages
**''ID'' - int(4) (autonumber)
+
* [[/pieces]]: features and concepts
**Name - varchar(32)
+
* [[/coding]]: technical documentation
**Email - varchar(128)
+
|
*'''admin_groups''' -- each group has a role to play, and each role requires a particular set of privileges
+
* [[/history]]: how we got here
**''ID'' - int(4) (autonumber)
+
* [[/archive]]: obsolete pages
**Name - varchar(32)
+
* [[/meta]]: how to document
**Descr
+
|}
*'''admin_privs''' -- particular privileges; meaning is defined in code
 
**''ID'' - int(4) (autonumber)
 
**Name - varchar(32)
 
**Descr
 
 
 
Collection/link tables:
 
*'''admin_user_groups''' -- users in each group / groups to which each user belongs
 
**''ID_User'' - int(4)
 
**''ID_Group'' - int(4)
 
*'''admin_group_privs''' -- privileges each group has / groups having a particular privilege
 
**''ID_Group'' - int(4)
 
**''ID_Priv'' - int(4)
 
===Catalog===
 
 
 
A "title" is a group of items with a common description, e.g. different sizes or styles of a shirt, different media (CD, cassette) for an audio recording.
 
 
 
In the previous version of the cart software, we had to have items of somewhat different appearance (e.g. longsleeve and shortsleeve shirts) sharing a single title, so as to remove the necessity to ''always'' have pictures for each. In this version, a title can point to another title for its picture, thus keeping it clear whether the picture is truly representative or just an approximation.
 
 
 
*'''cat_titles''' -- catalog titles
 
**'''ID'''#@ - int(4) (autonumber)
 
**'''ID_Supplier''' - int(4) -- cat_suppliers.ID
 
**Name - varchar(128) -- name of title, usually according to supplier (not strict)
 
**CatKey - varchar(32) -- must be unique within supplier
 
**Descr - text -- descriptive text (also may be included in search)
 
 
 
*'''cat_items''' -- catalog items
 
**'''ID'''#@ - int(4) (autonumber)
 
**'''CatNum''' - varchar(32) -- catalog number: must be unique, but may change
 
**'''ID_Title''' - int(4) -- cat_titles.ID
 
**'''ID_IType''' - int(4) -- type of item
 
**'''ID_IOpt''' - int(4) -- item option (usually size)
 
 
 
===Shopping===
 
 
 
The items a customer wants to order are saved in a cart. The cart also saves session information, e.g. customer's IP/domain, but not the customer's shipping or payment data. Later on, we'll allow customers to make changes to carts after the cart has already been assigned to an order, so will need session info stored separately, which is why it's in a separate table.
 
 
 
*'''shop_carts''' -- shopping carts
 
**''ID'' - int(4) (autonumber)
 
 
 
*'''shop_session''' -- shopping session
 
**Remote_Client - text -- browser user_agent string
 
**Remote_IPAddr - int(4) -- remote host IP address
 
**Remote_Domain - text -- remote host domain info (reverse lookup), if any
 
**WhenStarted - timestamp -- when this cart was started (i.e. first item added)
 
**WhenLocked - timestamp -- when this cart was locked (can't add/remove items)
 
 
 
Collection/link tables:
 
*'''shop_cart_sessions''' -- a given cart might be accessed from different sessions, when that functionality is available
 
**''ID_Cart'' - int(4)
 
**''ID_Sess'' - int(4)
 
 
 
*'''shop_cart_items''' -- items in a cart
 
**ID_Cart - int(4)
 
**ID_Item
 
===Browsing===
 
These tables have to do with searching for items and how they are displayed; the data are mostly static.
 

Latest revision as of 22:43, 17 August 2019

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