diff --git a/designdocs/address_manager.png b/designdocs/address_manager.png
deleted file mode 100644
index 4807e21db..000000000
Binary files a/designdocs/address_manager.png and /dev/null differ
diff --git a/designdocs/cart.pod b/designdocs/cart.pod
deleted file mode 100644
index c093187ff..000000000
--- a/designdocs/cart.pod
+++ /dev/null
@@ -1,159 +0,0 @@
-=head1 Shopping Cart
-
-The shopping cart has to be flexible enough to hold any type of
-purchasable good (anything derived from WebGUI::Asset::Sku), user
-friendly, and also have speedy reporting options so that macros can be
-written to display the cart data.
-
-=head2 Data Dictionary
-
-The following fields are needed to construct this object's table called
-"cart".
-
- Field Schema Description
- cartId guid The unique id for this cart.
- sessionId guid The sessionId attached to this cart. Can't use userId because the user may not be logged in yet.
- shippingAddressId guid The id of the address to ship to.
- couponId guid A coupon that is applied to this cart.
-
-=head2 Method Dictionary
-
-The following methods will be available from the WebGUI::Shop::Cart
-class.
-
-=head3 addItem
-
-Adds an item to the cart. Returns the number of items now in the cart.
-
-param: asset - the asset object to be added already
-configured as needed
-
-=head3 create
-
-Creates a new cart object if there's not one already attached to the
-current session object. Otherwise just instanciates the existing one.
-Returns a reference to the object.
-
-param: session - a reference to the current session
-
-=head3 delete
-
-Deletes this cart and all cartItems contained in it.
-
-=head3 empty
-
-Removes all items from this cart.
-
-=head3 get
-
-Returns a duplicated hash reference of this object's data.
-
-param: any field - returns the value of a field
-rather than the hash reference
-
-=head3 getId
-
-Returns the cart id.
-
-=head3 getItems
-
-Returns an array reference of WebGUI::Asset::Sku objects that are in
-the cart.
-
-=head3 new
-
-Instanciates a cart based upon a cartId.
-
-param: sessionId - a reference to the current
-session
-
-param: cartId - the unique id for this cart
-
-=head3 update
-
-Sets properties in the cart.
-
-param: hashref
-
-=head3 www_removeItem
-
-Checks privileges and displays appropriate message. Removes an item by
-itemId. Returns www_viewCart
-
-=head1 Shopping Cart Item
-
-This object represents an individual item in the cart.
-
-=head2 Data Dictionary
-
-The following fields are needed to construct this object's table called
-"cartItems".
-
- Field Schema Description
- itemId guid primary key
- cartId guid The unique id for this cart.
- assetId guid The assetId for this item.
- options medium Text A json serialized hashref of any configuration data associated with this item so that it can be edited or whatnot.
- shippingAddressId guid Assign a special shipping address to this item beyond the one attached at the cart level.
- quantity integer The number of these items being purchased.
-
-=head2 Method Dictionary
-
-The following methods will be available from the WebGUI::Shop::CartItem
-class.
-
-=head3 create
-
-Creates a new cart item object. Returns a reference to the object.
-
-param: cart - a reference to a cart
-
-param: asset - A reference to the asset you wish to
-create.
-
-
-=head3 get
-
-Returns a duplicated hash reference of this object's data.
-
-param: any field - returns the value of a field
-rather than the hash reference
-
-=head3 getSku
-
-Returns an instanciated WebGUI::Asset::Sku object for this cart item.
-
-=head3 incrementQuantity
-
-Increment the amount in cart by one.
-
-param: quantity - up it by more than one
-
-=head3 new
-
-Instanciates a cart item based upon a cartId and assetId.
-
-param: session - the session object
-
-param: cartId - the unique id for this cart
-
-param: assetId - the unique id of an skue contained
-in the cart
-
-=head3 remove
-
-Removes an item from the cart.
-
-param: assetId - the unique id of the asset to be
-removed
-
-=head3 update
-
-Updates an item in the cart.
-
-param: assetId - the unique id of the sku to be
-updated
-
-param: hashRef - a hash reference of the things that
-might be updated, including quanity, shippingAddressId, and options.
-
diff --git a/designdocs/cart_preshipping.png b/designdocs/cart_preshipping.png
deleted file mode 100644
index a8007344b..000000000
Binary files a/designdocs/cart_preshipping.png and /dev/null differ
diff --git a/designdocs/cart_with_address.png b/designdocs/cart_with_address.png
deleted file mode 100644
index e92340a38..000000000
Binary files a/designdocs/cart_with_address.png and /dev/null differ
diff --git a/designdocs/cart_with_line_item.png b/designdocs/cart_with_line_item.png
deleted file mode 100644
index 722d99e69..000000000
Binary files a/designdocs/cart_with_line_item.png and /dev/null differ
diff --git a/designdocs/cc_form.png b/designdocs/cc_form.png
deleted file mode 100644
index 1f4fa659a..000000000
Binary files a/designdocs/cc_form.png and /dev/null differ
diff --git a/designdocs/commerce.pod b/designdocs/commerce.pod
deleted file mode 100644
index dc6b36661..000000000
--- a/designdocs/commerce.pod
+++ /dev/null
@@ -1,1237 +0,0 @@
-=head1 WebGUI 7.5+ Commerce System Needs and Wants
-
-We need a massive overhaul of the commerce system, not just for the
-sake of it, but because of the current system's inflexibility. The new
-system must support everything the current system supports, plus
-resolve these limitations.
-
-=head2 Must Haves
-
-The following items must be introduced to the commerce system in order
-to fix fundamental flaws:
-
-=over
-
-=item Flexible Prices
-
-Currently because price is attached to the base object every product
-must have a price and there is no way to override it. The problem with
-this is that some configurable products have a variable price, and
-other products (like donations and auctions) you want the user to be
-able to type in a price. Therefore the new system needs to allow for
-variable price. This is a limitation of the current shopping cart and
-the current base product.
-
-=item Item Callbacks
-
-There must be a callback system after checkout. Right now there's no
-way to trigger custom functionality in custom products after purchase.
-So if you want a workflow to kick off after someone has purchased
-something to give them a bunch of privileges, send an email, etc you
-couldn't do it. Or if your product needed to mark something as out of
-stock, that's not possible either.
-
-=item Web Based Payment Gateways
-
-There's currently no way to pass off the checkout process to a
-third-party web site such as PayPal, 2checkout, or Google Checkout. The
-system right now is designed to work with payment gateways that have
-behind the scenes APIs.
-
-=item Vendor Id
-
-If you want two different vendors to sell from the same site (like
-Amazon does) you have a problem because currently WebGUI treats
-everything as one site one store. Therefore we need a vendor id
-attached to each product so we can keep track of who sold what. This
-might even be used by a single vendor to keep track of sales by
-department.
-
-=item Independent Skus
-
-Not all products have SKUs, but the current system requires a sku. For
-example, does a donation have a SKU? It may or may not. Obviously every
-product has to have a unique id to track it behind the scenes, but
-whether or not a store owner cares about this number is largely
-dependent upon the type of thing being purchased or sold.
-
-=item Merge Ops And Assets
-
-Currently we have the product asset, the product macro, and the product
-manager in admin console. This needs to be brought down to a single
-item, and that item needs to be an asset which is easily placable on
-the site by people familiar with WebGUI. This is not to say that the
-base product class should be an asset. Maybe it should, maybe it
-shouldn't, but the three mechanisms we have now must be merged. This
-will go a long way toward ease of use.
-
-And since the current product system will become a product asset, the
-subscription system should become a subscription asset.
-
-=item Cart Macro
-
-We need a macro or other mechanism to display what's in the user's
-cart. This also means we need a good API for querying this information
-quickly and easily.
-
-=item Plugins as Drivers
-
-All plugins for shipping, payment, tax, etc should be built like
-drivers, so that the API remains consistent for all of them, and a
-driver is loaded behind the scenes for the appropriate plugin based
-upon rules or users choice.
-
-=item Pretty Checkout
-
-The checkout process must be streamlined, easy to use, and pretty.
-Right now it's none of those things.
-
-=item Unique Items
-
-We need to be able to handle unique items in the cart. For example,
-with the Event Manager, someone buys a badge to an event, that badge is
-unique to them and can't possibly have a quantity of anything greater
-than one. However, the current cart allows for more than one of it.
-
-=back
-
-=head2 Niceties
-
-The following items would make the commerce system better, but can be
-added at a later date if need be:
-
-=over
-
-=item Aisles
-
-An aisle is an asset container for products. It would display
-all of it's children as well as any product that fit within a
-particular keyword group using the WebGUI keywords system. Aisles
-should also have a nifty import/export mechanism to make uploading
-products to the system easier.
-
-=item Affiliates
-
-Affiliate tracking system. We need a way to track who's sending us
-sales, so that we can automatically commission them. Note that the
-automatic commissioning is a big part of this. Just tracking stuff
-isn't good enough as it creates a lot of manual labor for writing out
-checks at the end of the month. It may be that we just need to hook in
-with some third party affiliate programs rather than build our own.
-
-=item Discounts
-
-Discounts, coupons, sales, and gift certificates. These may all be
-separate items, but the goal is virtually the same, we need mechanisms
-to give discounts based upon the group a user is in, sale period,
-coupons, discount codes, gift certificates, etc.
-
-=item Ad Manager Tie In
-
-Tie the ad management system in with commerce so that people can buy
-ads on a site without human intervention.
-
-=item Saved Carts
-
-Allow for saved shopping carts, so that users can come back to a cart
-later. This will most likely mean that the user has to create an
-account to attach their cart to.
-
-=back
-
-=head2 Pipe Dream
-
-The following items are pie in the sky that we should build at some
-point, but definitely won't make it into WebGUI in the 7.5 or 7.6 time
-frames unless someone funds them:
-
-=over
-
-=item Auction System.
-
-We're not talking ebay here, but a way to conduct
-simple auctions would still be nice.
-
-=item Product configurator.
-
-If you're buying something complex, you're
-probably going to have lots of options to switch. Therefore we need a
-product configurator system. Dell's web site for buying computers is a
-great example of a configurator.
-
-=back
-
-=head1 Coupon
-
-Coupons (sometimes called promotional codes) are a way to apply
-discounts to a purchase. Only one coupon per purchase though because we
-don't want to have to deal with coupon magnification effects.
-
-=head2 Data Dictionary
-
-The following fields are needed to construct this object's table called
-"coupon".
-
-Field
-
-Schema
-
-Description
-
-couponId
-
-guid
-
-The unique id for this coupon.
-
-code
-
-varchar(35), unique
-
-The coupon code the user has to type in to use this coupon.
-
-title
-
-varchar(100)
-
-A title for this coupon.
-
-options
-
-mediumtext
-
-A json serialized hash reference with the coupon rules.
-
-=head2 Method Dictionary
-
-The following methods will be available from the WebGUI::Shop::Coupon
-class.
-
-Method
-
-Description
-
-create
-
-Creates a new WebGUI::Shop::Coupon object. Returns a reference to the
-object.
-
-param: session - a reference to the current session
-
-param: hashRef - a hash reference containing a list
-of the parameters in coupon table, except for couponId.
-
-delete
-
-Deletes this coupon.
-
-get
-
-Returns a duplicated hash reference of this object's data.
-
-param: any field - returns the value of a field
-rather than the hash reference.
-
-getId
-
-Returns the coupon id.
-
-new
-
-Instantiates a coupon based upon couponId.
-
-param: session - a reference to the current session
-
-param: couponId - the unique id to instantiate
-
-newByCode
-
-Instantiates a coupon based upon coupon code.
-
-param: session - a reference to the current session
-
-param: code - the coupon code.
-
-set
-
-Update a parameter for the coupon.
-
-param: hashRef - a hash reference containing a list
-of the parameters in coupon table, except for couponId.
-
-
-=head1 Taxes
-
-There are various taxes that need to be applied to an order based upon
-where an order is being shipped to. This class deals with that.
-
-=head2 Data Dictionary
-
-The following fields are needed to construct this object's table called
-"tax".
-
-Field
-
-Schema
-
-Description
-
-taxId
-
-guid
-
-The unique id for this tax.
-
-field
-
-varchar(100)
-
-The field to match against to calculate this tax.
-
-value
-
-varchar(100)
-
-The value of the field to match.
-
-taxRate
-
-float, default 0
-
-A percentage of the sale price to tax.
-
-=head2 Method Dictionary
-
-The following methods will be available from the WebGUI::Shop::Tax
-class.
-
-Method
-
-Description
-
-add
-
-Adds an item to the tax table.
-
-param: field - choose from
-"country",
-"state", or
-"code".
-
-param: value - the value to match against field. For
-example, for state it might be
-"WI".
-
-param: taxRate - the rate to apply to this locale in
-percent.
-
-calculate
-
-Returns a tax price. Calculates the tax price using the following
-formula:
-
-sum(
- sku price * ( $sku->getTaxRate? $sku->getTaxRate : percentageOfPrice)
-)
-
-+
-
-flatFee
-
-+
-
-total weight of shippable items * pricePerWeight
-
-+
-
-total quantity of shippable items * pricePerItem
-
-param: cart - a reference to the cart object.
-
-delete
-
-Deletes an item from the tax table.
-
-param: taxId - the id of the item to delete
-
-exportTaxData
-
-Creates a tab delimited file from the tax table using the field, value,
-and taxRate in a temporary storage location, and returns a reference to
-the storage location.
-
-getItems
-
-Returns a WebGUI::SQL::Result object containing the information in the
-tax table.
-
-importTaxData
-
-Deletes all the existing records in the tax table, and replaces them
-with the values in the file.
-
-param: path - the path to the tab delimited file to
-import. See the export() method for details.
-
-new
-
-Instanciates the tax object.
-
-param: session - a reference to the current session
-
-www_add
-
-Checks to see if the user has privileges to access commerce functions.
-If not, returns an insufficient privileges message. If so, adds an item
-to the the tax table. Returns www_view.
-
-www_delete
-
-Checks to see if the user has privileges to access commerce functions.
-If not, returns an insufficient privileges message. If so, deletes a
-tax item based upon taxId. Returns www_view.
-
-www_export
-
-Checks to see if the user has privileges to access commerce functions.
-If not, returns an insufficient privileges message. If so, returns a
-tab delimited file generated via the export() method. Returns the
-www_view method.
-
-www_import
-
-Checks to see if the user has privileges to access commerce functions.
-If not, returns an insufficient privileges message. If so, pull a tab
-delimited file off the POST, and puts it into a storage location. Then
-passes the path into the import() method. Then deletes the storage
-location. Returns the www_view method.
-
-www_view
-
-Draws an HTML fragment showing the tax options. See the diagram below
-for details.
-
-=head2 Todo
-
-=over
-
-=item 1.
-
-Convert existing state based tax tables to the new system.
-
-=back
-
-=head1 Address
-
-Addresses are used to store address information for users, for
-shipping, billing, and other uses. In the future the address object may
-be used by other subsystems, but it will first be used by commerce.
-
-=head2 Data Dictionary
-
-The following fields are needed to construct this object's table called
-"address".
-
-Field
-
-Schema
-
-Description
-
-addressId
-
-guid
-
-The unique id for this address.
-
-label
-
-varchar(100)
-
-A label for this address like
-"home",
-"work", etc.
-
-name
-
-varchar(100)
-
-The name of this shipping location be it a business name or a personal
-name.
-
-address
-
-varchar(100)
-
-The street address of this location.
-
-city
-
-varchar(100)
-
-The city of this location.
-
-state
-
-varchar(100)
-
-The state or province of this location.
-
-code
-
-varchar(35)
-
-The zip code or postal code of this location.
-
-country
-
-varchar(100)
-
-The country of this location.
-
-phoneNumber
-
-varchar(35)
-
-A phone number for this location, used for shipping.
-
-=head2 Method Dictionary
-
-The following methods will be available from the WebGUI::Shop::Address
-class.
-
-Method
-
-Description
-
-create
-
-Creates a new WebGUI::Shop::Address object. Returns a reference to the
-object.
-
-param: session - a reference to the current session
-
-param: hashRef - a hash reference containing a list
-of the parameters in address table, except for addressId.
-
-delete
-
-Deletes this object.
-
-get
-
-Returns a duplicated hash reference of this object's data.
-
-param: any field - returns the value of a field
-rather than the hash reference
-
-getId
-
-Returns the addressId.
-
-new
-
-Instantiates a address based upon addressId.
-
-param: session - a reference to the current session
-
-param: addressId - the unique id to instantiate
-
-set
-
-Update a parameter for the address.
-
-param: hashRef - a hash reference containing a list
-of the parameters in address table, except for addressId.
-
-=head1 Transaction History
-
-Transaction history keeps track of all orders attempted whether
-successful or not as well as the state of all objects involved at the
-time of sale, because things change over time.
-
-=head2 Data Dictionary
-
-The following fields are needed to construct this object's table called
-"transaction".
-
-Field
-
-Schema
-
-Description
-
-transactionId
-
-guid
-
-The unique id for this transaction.
-
-isSuccessful
-
-tinyint
-
-A boolean indicating whether the transaction succeeded or not.
-
-transactionCode
-
-varchar(100)
-
-The transaction id or code received from the payment gateway. In
-iTransact it is called "xid".
-
-statusCode
-
-varchar(35)
-
-A string indicating the status code for the transaction.
-
-statusMessage
-
-varchar(100)
-
-If a longer message was given with the status code that is stored here.
-
-userId
-
-guid
-
-The userId that made the purchase.
-
-username
-
-varchar(35)
-
-The username of the user making the purchase.
-
-amount
-
-float
-
-The total purchase amount.
-
-shippingAddressId
-
-guid
-
-The unqiue id of the shipping address.
-
-shippingAddressName
-
-varchar(100)
-
-The name of the person/company to ship to.
-
-shippingAddress
-
-varchar(100)
-
-The street address to ship to.
-
-shippingState
-
-varchar(100)
-
-The state or province to ship to.
-
-shippingCity
-
-varchar(100)
-
-The city to ship to.
-
-shippingCode
-
-varchar(20)
-
-The postal code or zip code to ship to.
-
-shippingCountry
-
-varchar(100)
-
-The country to ship to.
-
-shippingPhone
-
-varchar(35)
-
-The phone number for this location.
-
-shippingMethodId
-
-guid
-
-The id of the shipping plugin used.
-
-shippingMethodTitle
-
-varchar(100)
-
-The name of the shipping method used.
-
-shippingTrackingNumber
-
-varchar(100)
-
-A tracking number received back from a shipping module, if any.
-
-shippingStatus
-
-varchar(35), default 'NotShipped'
-
-A flag indicating whether the order has shipped, is on back order, or
-whatever.
-
-billingAddressId
-
-guid
-
-The unique id of the billing address for this order.
-
-billingName
-
-varchar(100)
-
-The name this of person/company to bill to.
-
-billingAddress
-
-varchar(100)
-
-The street address to bill to.
-
-billingState
-
-varchar(100)
-
-The state or province to bill to.
-
-billingCity
-
-varchar(100)
-
-The city to bill to.
-
-billingCode
-
-varchar(20)
-
-The postal code or zip code to bill to.
-
-billingCountry
-
-varchar(100)
-
-The country to bill to.
-
-billingPhone
-
-varchar(35)
-
-The phone number for this location.
-
-billingMethodId
-
-guid
-
-The id of the billing method used.
-
-billingMethodTitle
-
-varchar(100)
-
-The name of the billing method used.
-
-couponId
-
-guid
-
-The unique id of the coupon applied to this order.
-
-couponTitle
-
-varchar(100)
-
-The title of the coupon applied to this order.
-
-totalPrice
-
-float
-
-The final sale price.
-
-The following fields are needed to construct this object's table called
-"transactionItems".
-
-Field
-
-Schema
-
-Description
-
-transactionId
-
-guid
-
-The unique id for this transaction.
-
-assetId
-
-guid
-
-The assetId for this item.
-
-title
-
-varchar(100)
-
-The title of this item.
-
-options
-
-mediumText
-
-A json serialized hashref of any configuration data associated with
-this item so that it can be edited or whatnot.
-
-shippingAddressId
-
-guid
-
-Assign a special shipping address to this item beyond the one attached
-at the cart level.
-
-shippingAddressName
-
-varchar(100)
-
-The name of the person/company to ship to. Only used when a special
-shipping address has been attached to this item.
-
-shippingAddress
-
-varchar(100)
-
-The street address to ship to. Only used when a special shipping
-address has been attached to this item.
-
-shippingState
-
-varchar(100)
-
-The state or province to ship to. Only used when a special shipping
-address has been attached to this item.
-
-shippingCity
-
-varchar(100)
-
-The city to ship to. Only used when a special shipping address has been
-attached to this item.
-
-shippingCode
-
-varchar(20)
-
-The postal code or zip code to ship to. Only used when a special
-shipping address has been attached to this item.
-
-shippingCountry
-
-varchar(100)
-
-The country to ship to. Only used when a special shipping address has
-been attached to this item.
-
-shippingMethodId
-
-guid
-
-The id of the shipping plugin used. Only used when a special shipping
-address has been attached to this item.
-
-shippingMethodTitle
-
-varchar(100)
-
-The name of the shipping method used. Only used when a special shipping
-address has been attached to this item.
-
-shippingStatus
-
-varchar(35),default 'NotShipped'
-
-A flag indicating whether the item has shipped, is on back order, or
-whatever. Only used when a special shipping address has been attached
-to this item.
-
-quantity
-
-integer
-
-The number of this sku desired.
-
-price
-
-float
-
-The price paid for this item.
-
-=head2 Method Dictionary
-
-The following methods will be available from the
-WebGUI::Shop::Transaction class.
-
-Method
-
-Description
-
-addItem
-
-Adds an item to the transactionItems table. Automatically serialize
-hashRefs like options into json. Make a callback to the original SKU to
-let it know that the item has been purchased. This enables things like
-tickets to be decremented, kick off a workflow, and subscriptions to
-give permissions, etc.
-
-create
-
-Creates a new transaction object. Returns a reference to the object.
-
-param: session - a reference to the current session
-
-param: hashRef - a hash reference containing any/all
-of the fields from the transaction table minus the
-"transactionId" field.
-
-delete
-
-Deletes this transaction and all related transaction items.
-
-get
-
-Returns a duplicated hash reference of this object's data.
-
-param: any field - returns the value of a field
-rather than the hash reference
-
-getId
-
-Returns the transaction id.
-
-getItems
-
-Returns an array reference of hash references for all the rows of data
-in the transactionItem table. Automatically convert serilized json into
-hash reference.
-
-new
-
-Instantiates a WebGUI::Shop::Transaction object using transactionId.
-
-param: session - a reference to the current session
-
-param: transactionId
-
-set
-
-Updates a transaction object.
-
-param: hashRef - a hash reference containing any/all
-of the fields from the transaction table minus the
-"transactionId" field.
-
-setStatus
-
-Default status is "pending" as
-items are being added to it.
-
-param: status - The status to set:
-
-pending - default
-
-pending payment - waiting on payment to complete
-
-pending shipment - waiting on shipment to be marked
-
-complete - order has been paid and shipped
-
-returned - order has been cancelled
-
-=head2 Todo
-
-=over
-
-=item 1.
-
-Convert all existing transactions in the current transactions table
-into the new style transactions.
-
-=item 2.
-
-Convert recurring transactions back into their relevant subscription
-asset types so subscriptions are tracking their own subscribers.
-
-=item 3.
-
-As soon as a transaction object has been created a workflow should be
-kicked off. The workflow will go through various stages as the status
-of the order is updated. Various workflow activities will need to be
-completed for this.
-
-=item 4.
-
-We need to create screens for users to see their transaction history,
-and administrators to manage their transaction history.
-
-=back
-
-
-=head1 Donation Asset
-
-This asset will be used by sites that want to accept variable amount
-funds from it's users. But the reason it will be built as part of this
-project is to prove variable pricing.
-
-=head2 Data Dictionary
-
-The following fields are needed to construct this assets table called
-"Donation".
-
-Field
-
-Schema
-
-Description
-
-assetId
-
-guid
-
-revisionDate
-
-bigint
-
-=head2 Method Dictionary
-
-The following methods will be available from the
-WebGUI::Asset::Wobject::Donation class.
-
-Method
-
-Description
-
-view
-
-Displays the donation amount form.
-
-www_addToCart
-
-Adds this item to the cart.
-
-=head1 Subscription Asset
-
-This will be an asset in the form of the subscription manager.
-
-=head2 Todo
-
-=over
-
-=item 1.
-
-Write a subscription asset.
-
-=over
-
-=item 1.
-
-Move the "redeem a subscription
-code" functionality from the user account to the
-subscription asset.
-
-=back
-
-=item 2.
-
-Convert all subscriptions into subscription assets.
-
-=over
-
-=item 1.
-
-Create subscription assets in the import node under a folder called
-"Subscriptions".
-
-=item 2.
-
-Write an upgrade migration to convert all ^SubscriptionItem(); macros
-into ^AssetProxy macros.
-
-=item 3.
-
-Write an upgrade migration to convert all ^SubscriptionItemPurchaseUrl
-macros into ^AssetProxy macros. I know this isn't a 1:1 translation,
-which is why we also need to add something to the gotchas to warn
-people about the change.
-
-=item 4.
-
-Convert subscription recurring urls to new subscription urls or provide
-instructions for doing it.
-
-=back
-
-=item 3.
-
-Delete the SubscriptionItem macro code and its reference from the
-config file.
-
-=item 4.
-
-Delete the SubscriptionItemPurchaseUrl code and its reference from the
-config file.
-
-=item 5.
-
-Make new templates that look good, and throw out the old ones.
-
-=back
-
-=head2 Data Dictionary
-
-The following fields are needed to construct this assets table called
-"Subscription".
-
-Field
-
-Schema
-
-Description
-
-=head2 Method Dictionary
-
-The following methods will be available from the
-WebGUI::Asset::Wobject::Subscription class.
-
-Method
-
-Description
-
-www_addToCart
-
-Adds this item to the cart.
-
-=head1 Product Asset
-
-This asset will be the mix of the current product asset and the
-products that are in the product manager in the admin console.
-
-=head2 Todo
-
-=over
-
-=item *
-
-Merge the products in the product manager into the product asset.
-
-=over
-
-=item *
-
-Make the URL of the new products the skew.
-
-=item *
-
-Place all the new products in the import node under a
-"Products" folder.
-
-=item *
-
-Write an upgrade migration to get rid of the ^Product(); macro and
-replace it with the ^AssetProxy; macro.
-
-=back
-
-=item *
-
-Convert all products to use the base product class.
-
-=item *
-
-Eliminate all product manager code from the admin console.
-
-=item *
-
-Delete the Product macro code and it's reference from the config file.
-
-=item *
-
-Make new templates that look good, and throw out the old ones.
-
-=back
-
-=head2 Data Dictionary
-
-The following fields are needed to construct this assets table called
-"Product".
-
-Field
-
-Schema
-
-Description
-
-=head2 Method Dictionary
-
-The following methods will be available from the
-WebGUI::Asset::Wobject::Product class.
-
-Method
-
-Description
-
-www_addToCart
-
-Adds this item to the cart.
-
-=head1 Event Manager Asset
-
-The event manager asset needs to be updated to use the new commerce
-subsystem.
-
-TODO:
-
-=over
-
-=item *
-
-Make use of the new base product class.
-
-=item *
-
-Set all cart items to unique so that quantity cannot be incremented.
-
-=item *
-
-Set a callback workflow to mark tickets out of stock, associate a
-transaction id with the badge, etc.
-
-=item *
-
-Update the templates to reflect changes
-
-=item *
-
-Update the templates to reflect suggestions from GAMA
-
-=back
-
-=cut
-
-#Pod::HTML2Pod conversion notes:
-#From file commerce.html
-# 91169 bytes of input
-#Fri Feb 15 15:16:43 2008 jtsmith
-# No a_name switch not specified, so will not try to render
-# Will try to render
diff --git a/designdocs/commerce_flowchart.png b/designdocs/commerce_flowchart.png
deleted file mode 100644
index f26001f1e..000000000
Binary files a/designdocs/commerce_flowchart.png and /dev/null differ
diff --git a/designdocs/commerce_settings.png b/designdocs/commerce_settings.png
deleted file mode 100644
index 61431b44e..000000000
Binary files a/designdocs/commerce_settings.png and /dev/null differ
diff --git a/designdocs/pay.pod b/designdocs/pay.pod
deleted file mode 100644
index aec51edbd..000000000
--- a/designdocs/pay.pod
+++ /dev/null
@@ -1,269 +0,0 @@
-=head1 Payment Gateway
-
-Payment gateways are the mechanism by which users can pay for the items in their shopping cart.
-
-=head2 Data Dictionary
-
-There is no table for this class.
-
-=head2 Method Dictionary
-
-The following methods will be available from the WebGUI::Shop::Pay class.
-
-=head3 _loadDriver
-
-A method used load a payment gateway driver. See WebGUI::Pluggable.
-
-=head3 create
-
-A class method.
-
-Creates a new WebGUI::Shop::PayDriver object. Returns a reference to the object.
-
-param: session - a reference to the current session
-
-param: class - the classname of the driver for the gateway you want to configure
-
-param: hashRef - a hash reference containing a list of the parameters in paymentGateway table, except for paymentGatewayId.
-
-=head3 getDrivers
-
-A class method.
-
-Returns an array reference of the driver classes enabled in the config file.
-
-=head3 getPaymentGateways
-
-A class method.
-
-Returns an array reference of the configured payment objects.
-
-=head3 getOptions
-
-A class method.
-
-Returns a hash reference of paymentGatewayIds as keys, with "label" and "form" as subkeys. Label provides the human readable label for the object, and form provides the HTML form, that includes the button for the payment gateway option. This is required since some payment gateways take the user off site and have very complex forms that need to be created and posted to the remote site.
-
-param: cart - a reference to the cart object to
-generate options for.
-
-=head3 new
-
-A class method.
-
-Instantiates a payment gateway based upon paymentGatewayId.
-
-param: session - a reference to the current session
-
-param: paymentGatewayId - the unique id to instantiate
-
-=head3 www_listPaymentGateways
-
-Returns a list of the payment gateways configured currently.
-
-=head3 www_editPaymentGateway
-
-The add/edit form for managing a payment gateway.
-
-=head3 www_editPaymentGatwaySave
-
-Saves the result of www_editPaymentGateway and then displays
-www_listPaymentGateways.
-
-
-
-
-=head1 Payment Gateway Driver
-
-Payment gateway drivers are used to collect payment. In Perl terms this
-is the DBD to DBI. All payment gateway drivers (itransact, paypal,
-google checkout, etc) will be derived from this base class.
-
-=head2 Data Dictionary
-
-The following fields are needed to construct this object's table called "paymentGateway".
-
- Field Schema Description
- paymentGatewayId guid the primary key
- label varchar(100) A title for this payment that will be displayed to the user. For example "Pay Pal" or "Credit Card" or "Check"
- className varchar(255) The plugin classname that will be used for this payment gateway.
- options mediumtext A json serialized hash reference with configuration data for this payment gateway.
-
-=head2 Method Dictionary
-
-The following methods will be available from the WebGUI::Shop::PayDriver class.
-
-=head3 create
-
-A class method.
-
-Creates a new WebGUI::Shop::PayDriver object. Returns a reference to the object.
-
-param: session - a reference to the current session
-
-param: hashRef - a hash reference containing a list of the parameters in paymentGateway table, except for paymentGatewayId.
-
-=head3 definition
-
-A class method.
-
-Returns an array reference of hash references of fields that are
-defined for this payment gateway driver similar to definition() in
-WebGUI::Asset.
-
-param: definition - an array ref of hash refs
-
-field:
-
- [
- {
- name =E "Payment Type",
- fields =E {
- label =E {
- fieldType =E "text",
- label =E "Label",
- defaultValue =E "Credit Card"
- },
- enabled =E {
- fieldType =E "yesNo",
- label =E "Enabled?",
- defaultValue =E 1
- },
- groupToUse =E {
- fieldType =E "group",
- label =E "Who can use?",
- defaultValue =E 1
- },
- receiptMessage =E {
- fieldType =E "text",
- label =E "Receipt Email Message",
- defaultValue =E undef
- },
- }
- }
- ],
-
-=head3 delete
-
-Deletes this payment gateway.
-
-=head3 get
-
-Returns a duplicated hash reference of this object's data.
-
-param: any field - returns the value of a field rather than the hash reference.
-
-=head3 getId
-
-Returns the payment gateway id.
-
-=head3 getButton
-
-Returns the HTML postable form that will take the user to check out
-using this payment gateway.
-
-=head3 getName
-
-Return a human readable name for this driver. Never overridden in the
-subclass, instead specified in definition.
-
-=head3 new
-
-A class method.
-
-Instantiates a driver.
-
-param: session - a reference to the current session
-
-param: options - a hash reference of configurable parameters for this driver
-
-=head2 Todo
-
-We need the following payment gateways converted to the new API:
-
-=over
-
-=item 1.
-
-itransact
-
-=item 2.
-
-cash
-
-=item 3.
-
-check
-
-=back
-
-=head3 set
-
-Update a parameter for the payment gateway.
-
-param: hashRef - a hash reference containing a list
-of the parameters in paymentGateway table, except for paymentGatewayId.
-
-
-
-=head1 iTransact Driver
-
-This allows for credit card payments via the iTransact payment gateway.
-
-=head2 Data Dictionary
-
-Payment gateway drivers have no database tables, unless they need it on
-a one-off basis.
-
-=head2 Method Dictionary
-
-The following methods will be available from the
-WebGUI::Shop::PayDriver::Itransact class.
-
-=head2 definition
-
-Returns an array reference of hash references of fields that are
-defined for this ship driver similar to definition() in WebGUI::Asset.
-
-param: definition - an array ref of hash refs of definitions
-
- [
- {
- name =E "iTransact",
- fields =E {
- username =E {
- label =E "Vendor ID",
- fieldType =E "text",
- defaultValue =E undef
- },
- password =E {
- label =E "Password",
- fieldType =E "password",
- defaultValue =E undef
- },
- useCvv2 =E {
- label =E "Use CVV2?",
- fieldType =E "yesNo",
- defaultValue =E 1
- },
- }
- }
- ]
-
-=head3 getButton
-
-Returns the HTML postable form that will take the user to check out
-using this payment gateway.
-
-=head3 www_collectPaymentInfo
-
-Collects payment info from the user.
-
-=head3 www_displayStatus
-
-Displays a status message to the user after collecting payment info.
-The status may be a success message along with a printable receipt, or
-an error message like "Credit card
-declined."
-
-=cut
diff --git a/designdocs/payment_options.png b/designdocs/payment_options.png
deleted file mode 100644
index 3e8bdab24..000000000
Binary files a/designdocs/payment_options.png and /dev/null differ
diff --git a/designdocs/shipper.pod b/designdocs/shipper.pod
deleted file mode 100644
index 3ed5fea8f..000000000
--- a/designdocs/shipper.pod
+++ /dev/null
@@ -1,237 +0,0 @@
-=head1 Shipper
-
-This is the master class to manage shipper drivers. In Perl terms the
-DBI to DBD.
-
-=head2 Data Dictionary
-
-There is no table for this object.
-
-=head2 Method Dictionary
-
-The following methods will be available from the WebGUI::Shop::Ship class.
-
-=head3 create
-
-A class method.
-
-Creates a new WebGUI::Shop::ShipDriver object. Returns a reference to the object.
-
-param: session - a reference to the current session
-
-param: class - the classname of a driver to create
-
-param: hashRef - A hash reference of properties. See WebGUI::Shop::ShipDriver->set for details.
-
-=head3 getDrivers
-
-A class method.
-
-Returns an array reference of the driver classes enabled in the config file.
-
-=head3 getShippers
-
-A class method.
-
-Returns an array reference of the configured shipping objects.
-
-=head3 getOptions
-
-A class method.
-
-Returns a hash reference of shipperIds as keys, with "label" and "price" as subkeys. Label provides the human readable label for the object, and price provides the calculated price for shipping.
-
-param: cart - a reference to the cart object to calculate for.
-
-=head3 new
-
-Instantiates a WebGUI::Shop::ShipDriver object based upon shipperId.
-
-param: session - a reference to the current session
-
-param: shipperId - the unique id to instantiate
-
-=head3 www_listShippers
-
-Returns a list of the shippers configured currently.
-
-=head3 www_editShipper
-
-The add/edit form for managing a shipper.
-
-=head3 www_editShipperSave
-
-Saves the result of www_editShipper and then displays www_listShippers.
-
-
-=head1 Shipper Driver
-
-Shipping modules are used to calculate shipping costs. Shipping modules
-are not allowed to have a user interface. Instead, they plug their data
-into the shopping cart screen if any items in the shopping cart have
-shipping. In Perl terms this is the DBD to DBI. All shipping drivers
-(flat rate, fedex, ups, dhl, usps, etc) will be derived from this base
-class.
-
-=head2 Data Dictionary
-
-The following fields are needed to construct this object's table called "shipper".
-
- Field Schema Description
- shipperId guid The unique id for this shipper.
- className varchar(255) The plugin classname that will be used for this shipping module.
- options mediumtext A json serialized hash reference with configuration data for this shipper.
-
-=head2 Method Dictionary
-
-The following methods will be available from the WebGUI::Shop::ShipDriver class.
-
-=head3 calculate
-
-Returns a shipping price.
-
-param: cart - a reference to the cart object.
-
-=head3 create
-
-A class method.
-
-Creates a new WebGUI::Shop::ShipDriver object. Returns a reference to the object.
-
-param: session - a reference to the current session
-
-param: hashRef - A hash reference of properties. See WebGUI::Shop::ShipDriver->set for details.
-
-=head3 definition
-
-A class method.
-
-Returns an array reference of hash references of fields that are
-defined for this ship driver similar to definition() in WebGUI::Asset.
-
-param: definition - an array ref of hash refs
-
-field:
-
- [
- name => "Shipper Type",
- fields => {
- label => {
- fieldType => "text",
- label => "Label",
- defaultValue => undef
- },
- enabled => {
- fieldType => "yesNo",
- label => "Enabled?",
- defaultValue => 1
- },
- }
- ],
-
-=head3 delete
-
-Deletes this object.
-
-=head3 get
-
-Returns a duplicated hash reference of this object's data.
-
-param: any field - returns the value of a field
-rather than the shippingId. Automatically converts the options json
-into a hash reference.
-
-=head3 getId
-
-Returns the shipperId.
-
-=head3 getName
-
-Return a human readable name for this driver. Never overridden in the
-subclass, instead specified in definition.
-
-=head3 getEditForm
-
-Similar to the method of the same name in WebGUI asset, but uses the
-definition from this module.
-
-=head3 new
-
-A class method.
-
-Instantiates a driver.
-
-param: session - a reference to the current session
-
-param: options - a hash reference of configurable
-parameters for this driver
-
-=head3 set
-
-Update a parameter for the ship object.
-
-param: hashRef - a hash reference containing a list of the parameters in shipper table, except for shipperId. Automatically convert the options parameter into json.
-
-
-=head1 Flat Rate Shipper
-
-This allows for basic shipping calculations without any tie-ins to external shippers.
-
-=head2 Data Dictionary
-
-Shipping drivers have no database tables, unless they need it on a one-off basis.
-
-=head2 Method Dictionary
-
-The following methods will be available from the WebGUI::Shop::ShipDriver::Flat class.
-
-=head3 calculate
-
-Returns a shipping price. Calculates the shipping price using the following formula:
-
- total price of shippable items * percentageOfPrice
- + flatFee
- + total weight of shippable items * pricePerWeight
- + total quantity of shippable items * pricePerItem
-
-param: cart - a reference to the cart object.
-
-=head4 definition
-
-A class method.
-
-Returns an array reference of hash references of fields that are
-defined for this ship driver similar to definition() in WebGUI::Asset.
-
-param: definition - an array ref of hash refs of definitions
-
- [
- {
- name => "Flat Rate",
- fields => {
- percentageOfPrice => {
- fieldType => "float",
- label => "Percentage Of Price",
- defaultValue => 0
- },
- flatFee => {
- fieldType => "float",
- label => "Flat Fee",
- defaultValue => 0
- },
- pricePerWeight => {
- fieldType => "float",
- label => "Price Per Weight",
- defaultValue => 0
- },
- pricePerItem => {
- label => "Price Per Item",
- fieldType => "float",
- defaultValue => 0
- },
- }
- }
- ]
-
-
-=cut
diff --git a/designdocs/sku.pod b/designdocs/sku.pod
deleted file mode 100644
index ecda42880..000000000
--- a/designdocs/sku.pod
+++ /dev/null
@@ -1,80 +0,0 @@
-=head1 SKU (base product class)
-
-The SKU class is what all other products will be subclassed from. It
-needs to be simple so it can be extended to fit any need.
-
-=head2 Data Dictionary
-
-The following fields are needed to construct this assets table called
-"SKU".
-
- Field Schema Description
- assetId guid The unique id assigned to this sku that may never change. It's with all assets
- revisionDate bigint
- sku varchar(35) unique The unique id that the shop keeper assigns to this item. It may be changed by the shop keeper. By default this is set equal to assetId.
- salesAgentId guid The unique id of the vendor associated with this sku, if any
- overrideTaxRate yesNo Do you want to use an override for tax rate?
- taxRateOverride float An override value for the default tax rate.
-
-=head2 Method Dictionary
-
-The following methods will be available from the WebGUI::Asset::Sku
-class.
-
-=head3 addToCart
-
-Adds this sku to the shopping cart.
-
-param: options - Takes an options hash reference and calls applyOptions() if specified as a shortcut.
-
-=head3 applyOptions
-
-Accepts a configuration data hash reference that can configure a sku a
-certain way. For example, "a size XL red
-t-shirt" instead of just "a
-t-shirt".
-
-param: options - a hash reference containing the
-configuration properties returned from getOptions()
-
-=head3 getOptions
-
-Returns a hash reference of configuration data that can return this sku
-to a configured state. See applyOptions() for details.
-
-=head3 getMaxAllowedInCart
-
-By default returns 99999999. Should be overridden by subclasses. For
-unique items should return 1. For items that have a count in stock,
-should return the number that are currently in stock.
-
-=head3 getPrice
-
-By default return 0.00. Should be overridden by subclasses.
-
-=head3 getTaxRate
-
-Returns undef. However, if the user specifies a tax override in this Sku then it returns the special tax rate.
-
-=head3 isShippingRequired
-
-By default return 0. Should be overridden by subclasses.
-
-=head3 newBySku
-
-Class method.
-
-Instanciates based on an existing sku, rather than an assetId. Dynamically looks up class and creates appropriate object.
-
-param: session - a reference to the current session
-
-param: sku - the sku to instanciate
-
-=head3 processStyle
-
-Looks up the style from the container and and wrappers the product in
-it.
-
-param: html - the HTML output to be wrapped by the
-style
-
diff --git a/designdocs/test b/designdocs/test
deleted file mode 100644
index 4c5795da7..000000000
--- a/designdocs/test
+++ /dev/null
@@ -1,7 +0,0 @@
- # Use the program 'html2pod' that comes in this dist, or:
- use Pod::HTML2Pod;
- print Pod::HTML2Pod::convert(
- 'file' => 'commerce.html', # input file
- 'a_href' => 1, # try converting links
- );
-