Any content object in the CMS that can be sold will have a pricing table associated with it. For example:
In simple cases, there will be a single price for the purchase, but in other cases you can define multiple price points. Each price point can have its own conditions for whom it applies to, based on dates or user access level.
The e-commerce system chooses the lowest price that applies to the person making the purchase. For example a logged-in member who is purchasing the above delegate fee on July 31, 2021 is eligible for 2 prices:
The system will automatically choose the cheaper of the two, ie. the $350 rate.
If you want the system to choose differently, set the price status to "priority". Priority prices will be chosen over regular prices.
To remove some prices from consideration, set the price status to "inactive".
If there are no valid prices, then the item cannot be purchased.
To give special rates to members, set the access level of the price point to "members". This is normally equivalent to a level-2 user. To give special rates to anyone who is logged in, set the access level of the price point to "users" (ie. level-1).
To make something available for purchase by members only, make sure that the only price point is for "members". Without any price point, members of the public will not be able to purchase the item.
If you just want to make sure a purchaser logs in before purchasing any item, have a "users" price point, but no "public" price point.
If you want higher pricing for members, set the member price to "priority". For example, say you have a discounted application fee for new members. Since they are not members yet, that would have to be a public price. But that would make existing members eligible for that public price as well, since public prices are available to everyone. So the member (ie. renewal) price would have to be set to "priority" status to be chosen over that public price.
Any price point can have a start and end date associated with it. That price point is only available between those dates. If there is only a start date, then the price is available any time after that date. If there is only an end date, then the price is available until that date.
If you have a sale on an item for the month of July, you can set a special price that is valid for July 1 - July 31. (Note that time is significant, so set the end date to 07-31 23:59, or 08-01 00:00.)
If the price goes up on a certain date, just add the new price with no conditions. Then put an end date on the current price.
If the price goes down on a certain date, add the new price with a start date. As the cheaper price, it will take over on that date.
Every price can have an optional description - this will be shown where ever the price is displayed, and will also be included on the invoice/receipt, and in itemized financial reports.
Generally speaking the regular price point needs no description. But you might want to add a description to special rates, for example "member rate", or "late fee".
Purchases are normally tagged with an accounting code to categorize them appropriately in financial reports. You can optionally set the accounting codes of your special price points if you want them to be categorized differently.
There is no need to set the price accounting code otherwise; it will automatically be set to the normal accounting code for the purchase.