Welcome to the NB_Store Module. Please take a few minutes to read this document, which will help you install and configure the module.
The purpose of this documentation is to be a reference explaining the NB_Store features. Although it gives an overview of the store it is NOT a User Guide.
In Store Manager Menu the "Settings Admin" allows you to setup email address, roles, limits, etc.
The "Host Only" restricts access to just the host user.
Name | Description |
administrator.email | Email address of the store administrator. Error messages will be sent to this email address. |
categorymenujs.includes | CSV List of javascript files to be included when the category menu module is displayed. Files should be placed in "/DesktopModules/NB_Store/js". |
categorymenucss.includes | CSV List of css files to be included when the category menu module is displayed. Files should be placed in "/DesktopModules/NB_Store/js". |
categorymenustartupjs.includes | List of javascript templates that will be registered as startup scripts. |
cheque.provider | Assembly name of the cheque provider for the store checkout. Usually this will only be updated from the checkout settings. |
chqpayment.emailsubject | Subject of the email that is sent when a client pays by cheque. |
country.list | List of countries to be allowed in this portal. (e.g. "France,United Kingdom"). To create bespoke countries for different language create a new country list in DNN called "StoreCountry.(CountryCode)" e.g. StoreCountry.fr-FR |
gateway.loadimage | File path of the GIF image that is displayed when processing is passed to the bank gateway. |
gateway.provider | Assembly name of the bank gateway provider for the store checkout. Usually this will only be updated from the checkout settings. |
manager.role | Name of the store manager role. |
managerlite.role | Name of the LITE store manager role. |
merchant.culture | Enter a standard language-locale value for the merchant. e.g. en-US or fr-FR or en-AU. |
merchant.email | Merchant email address. All orders and reports will be sent to this email address. |
ordershipdate.days | Estimated number of days when an order will be shipped. The number of days entered here will be added to the current date and placed in the [Order:ShipDate] field, when an order is created. |
ordershipped.emailsubject | Email subject when a order is shipped. |
ordersreport.subject | Email subject of the orders report. |
ordersreport.xsl | File Path of the orders report xsl. |
ordervalidated.emailsubject | Email subject of the validated order email. |
paymentOK.emailsubject | Email subject of the order confirmation email. |
paymentunverified.emailsubject | Email subject of the order confirmation email, when a order cannot be validated automatically. |
PayPal.gateway | Paypal configuration settings. |
product.limit | Sets the product limit for the store. |
productlite.limit | Sets the product limit for the LITE store. |
SIPS.exepath | Directory path of the SIPS response.exe & request.exe |
SIPS.gateway | SIPS configuration settings |
store.email | Email address of the store. All emails will be sent from this address. |
image.resize | Will resize a product image on upload to the specified size (450px default). If the image is smaller than the value specified the original size is used. If set to "0" resize of image is turned off. |
image.quality | Sets the quality of the image on resize, default is 85. Valid ranges are 1 - 100. |
purgecartmins | Number of minutes a cart will stay in the database before it is deleted (Default 10080). The Store Scheduler needs to be setup for this to work. |
purgeordermins | Number of minutes an uncompleted order will stay in the database before it is deleted (Default 2880). The Store Scheduler needs to be setup for this to work. |
gatewayexpiremins | Number of minutes to be passed to a gateway provider, that tells the provider to timeout. (The setting is not automatically created in NB_Store.) |
lockstockoncart | If set to true any products placed into the cart will be taken into account when calculating stock levels, Portal Wide. Effectively this means the stock is not available to purchase by someone else when a product is placed in the basket, By default NB_Store only locks the stock when an order starts processing. |
productqty.limit | Sets the maximum qty allowed to be entered into the cart for a single product (default 999999). If set to less than 21 a dropdown list will be used for the Qty input. |
minimumcarttotal.limit | Sets the minimum purchase cost that needs to exist in the cart before a purchase can be made. The template "minimumcarttotal.text" will be displayed if the cost is not reached and the customer goes to the cart. Must be numeric, language specific also. (The setting is not automatically created in NB_Store.) |
lightboxgallerytemplate.name | The name of the template to use as the lightbox gallery template. if setting does not exist "nyromodalgallery.template" will be used. |
lightboxtemplate.name | The name of the template to use as the lightbox template. if setting does not exist "nyromodal.template" will be used. |
productlistjs.includes | CSV list of javascript files to be included when the product list module is displayed. Files should be placed in "/DesktopModules/NB_Store/js". |
productlistcss.includes | CSV list of css files to be included when the product list module is displayed. Files should be placed in "/DesktopModules/NB_Store/js". |
productliststartupjs.includes | List of javascript templates that will be registered as startup scripts. |
productlinksoncart.flag | If set to true products listed on the cart have a link back to the website. By default this flag is set to true. (The setting is not automatically created in NB_Store.) |
currency.culture | The culture code to be used to display currency in the store. If you enter a formatting code between double quotes NB_Store will use that formatting, e.g. "#0.00". (The setting is not automatically created in NB_Store, the default will be the merchant culture.) |
currency.symbol | Specify a fallback currency symbol if the currency.culture setting is set to a formatting code. If blank then the fallback will be the merchant culture symbol. |
rowdelimeter.importmapping | Row delimiter for CSV import. Use html decode to convert any special characters (e.g.: 	 = horizontal tab; = vbCrLf) |
fielddelimeter.importmapping | Field delimiter for CSV import |
fieldqualifier.importmapping | Field qualifier for CSV import, defaults to double quote (") |
fieldescapedqualifier.importmapping | Field escaped qualifier for CSV import, default to 2 double quotes ("") |
promo.roles | A list of comma separated roles which can be used for discount. These roles must exist in DNN and only the roles lists here will be available in the Promotions role dropdownlist. |
shipcountrycode.default | Default country code for shipping, if not created then the merchant country code is used. (The setting is not automatically created in NB_Store.) - http://www.iso.org/iso/country_codes/iso_3166_code_lists/english_country_names_and_code_elements.htm |
debug.mode | If debug mode is on, caching in certain areas will not be done. This must be off on a live site for best performance. |
debug.email | If set then all store emails will be sent to this email address. Ensure this setting is empty for a live site. |
cookiecart.expire | Numeric to set the number of days the cart cookie will last, default is 30 days. (The setting is not automatically created in NB_Store.) |
shipfree.list | CSV List of country codes where Free Shipping will be applied, if empty then free shipping will apply to all countries. (e.g. "FR,UK,IT") |
searchdescription.flag | value of 1 or 0 to indicate if the description field of the product should be included in the search. This will have a performance issue on large sites. If you find your search slow you should set it to 0 and make sure the key words exist in the summary field. |
dealer.role | Name of the dealer role. |
taxexempt.list | CSV List of country codes where Tax will NOT be applied, if empty then tax will apply to all countries. (e.g. "FR,UK,IT") |
taxapplies.list | CSV List of country codes where Tax WILL be applied, if empty then tax will apply to all countries. (e.g. "FR,UK,IT") |
filesystemtemplates.flag | If set to True and the "debug.mode" setting is also set to true then a directory will be created in the portal which will allow edit of the template through the file system. This option is for development and should not be used on a production system. |
admintemplates.groups | This is a xml structure of the template admin treeview. In normal operation, this option should not be altered. |
adminsettings.groups | This is a xml structure of the settings admin treeview. In normal operation, this option should not be altered. |
adminproduct.repeatcolumns | Back Office repeat column for product list image mode. If not created then the default is 4. |
adminproduct.thumbsize | Back Office thumbnail size of product list image mode. |
adminproduct.pagesize | Back Office Page size of product list. |
admincss.includes | CSS files to be included when the Back Office Skin is displayed. |
adminjs.includes | Javascript files to be included when the Back Office Skin is displayed. |
adminstartup.includes | Javascript code to be run when the Back Office page is displayed. This code should exist in the Back Office templates. |
textboxedit.flag | Use a textbox to edit the templates. |
allowzerodealerprice.flag | Allow a zero dealer price to be added. If set to false the unit price will be copied to the dealer price, if the dealer price is zero. |
404.url | Relative url of the 404 error html to be display if a product does not exist. If left blank a 301 redirect is done to the product list. |
encapsulated.image | File name of the image to be used as the encapsulated image, from the portal root. If blank then the default cheque image is used. |
encapsulated.text | Text to be used above the encapsulated gateway. If blank then the resx "lblCheque" value is used. |
checkout.tab | TabID of default checkout page. |
store.tab | TabID of default Product List page. |
categorypurchase.list | CSV list of category id's. Only products in these categories will be allowed to be added to the cart. If blank this option is turned off. |
diskthumbnails.flag | Use Disk thumbnails, if set then NB_Store will create thumbnails on disk and use these to display the product thumbnails. |
diskthumbnails.size | Disk thumbnail size, The size of thumbnails to create on disk. This can be a single value or CSV list of sizes. e.g. "100,150x30,30". Each product list module that uses the disk thumbs must have an entry in this list to match the thumb size it is trying to display, otherwise no thumbnails will exist for the that size and no image will be displayed. |
outofstockmodels.flag | If YES then the out of stock models will appear on the product detail radio button and table list. |
allowcartmodellimit.flag | Allows a cart limit to be added for each model. |
createsearchstats.flag | Keep statistics on the searches made for products in NB_Store. |
searchwordpurge.days | Number of Days to keep statistics for searches made for products in NB_Store. Default 60 days. |
stockpage.size | Number of records to display in the Back Office Stock page. Default 25. |
orderedit.flag | Allow an order to be edited. |
ordereditclient.flag | Allow users to edit their order after the order has been placed. Only applies to orders NOT with a status of "Payment OK". To make an order editable the manager must move the order to a status of waiting. |
orderedititems.flag | Allow Order Items to be changed. |
ordereditprice.flag | Allow Order Items Prices to be changed. |
calccart.provider | Calculation provider, will overwrite built-in NB_Store cart row calculations. |
calcship.provider | Calculation provider, will overwrite built-in NB_Store shipping calculations. |
calctax.provider | Calculation provider, will overwrite built-in NB_Store tax calculations. |
calcdiscount.provider | Calculation provider, will overwrite built-in NB_Store discount calculations. |
calcextra.provider | Calculation provider, allows extra calculations to be included. |
tagextra.provider | Templating token provider, allows extra data display for product detail and product list. Used by [TAGEXTRA:<ctrldata>] |
tokenextra.provider | token provider, allows extra data display for token replacements in text and email notification. |
event.provider | Event provider, allows interface to certain events that occur in NB_Store. |
option.provider | Option Providers, allows default values for option textboxes in product detail to be assigned externally. |
InternalUpdate.provider | Internal Update provider allows updates to be done externally when a payment has been made. |
feeder.settings | Feeder settings. See The NB_Store Feeder. |
clientchqemail.name | Name of the client email template to be used by the encapsulated payment provider. Default "chqpayment.email". |
managerchqemail.name | Name of the manager email template to be used by the encapsulated payment provider. Default "chqpayment.email". |
rss.template | Main template for RSS feeder. Use the token [Product:rssitem] to include the product items in the feed. |
rssitem.template | Item template for RSS feeder. |
singlepurchase.flag | Will only ever allow 1 item in the client's cart. If another item is selected then the existing item in the cart is removed. |
elapsedorderhours.limit | Set the time elapsed hours for an edited order to be payed. If the elapsed time goes over, then the client will not be allowed to pay for the order. If this value is 0 then no time limit to pay for an edited order is set. |
datedisplay.format | (Optional) Formats dates for emails and display. (e.g. "dd MMM yyyy") default is "d" |
purgelogfiles.days | Number of days LogFiles will be kept for. Empty value and no Logfiles will be removed |
ProductMarkOnDelete.flag | If set to YES then when a product is deleted, it is not removed from the Database, only marked as deleted. |
encrypt.key | Key to use when encrypting and cookie data or other data that needs encrypting. If blank no encryption is done. |
Referrertrace.flag | Flag to turn on Referrer tracking. |
adminorder.pagesize | Page size of the Order list in the Back Offcie. Default 25. |
shippingcumlative.flag | If True the shipping calcuation will add weight, Price and Quantity shipping to create a total shipping cost. If false (Default) the cheapest price between price and quantity with be used unless the weight cost has been calculated, in which case weight cost is used. |
shippinglessdiscount.flag | If True the discount in the cart will be taken off the cart total to calculate all shipping costs. If false (Default) the discount will not be used to calculate shipping costs. |
allowzeroshipping.flag | setting to allow zero calculated shipping methods to display |
cookiecart.byuser | setting to allow users to have different carts on the same PC |
cartthumbs.flag | settings to show thumbnail on cart list |
cartthumb.size | size of thumbnail on cart list |
The country lists displayed throughout the store have been designed to default to a DNN list called "StoreCountry.(CountryCode)" if no list by this name exists in the store then the DNN "Country" list is used. Also if you enter a "country.list" in the store settings, only the countries in the "country.list" will be displayed in the dropdown. The names in the "country.list" must match the names in the DNN list used in order to be displayed.
Type | Name | Description |
chqpayment.email | Email that will be sent when a client pays by cheque. | |
ordershipped.email | Email sent when the Manager of the store clicks the shipped button from the edit order page. | |
ordervalidated.email | Email sent when the Manager of the store clicks the validated button from the edit order page. | |
orderreceipt.email | Email sent when the Manager of the store clicks the validated button from the edit order page. | |
orderamended.email | Email sent when the Manager of the store clicks the Amended button from the edit order page. | |
paymentOK.email | Email sent to client when payment has been accepted. | |
paymentunverified.email | Email sent to client when payment has been accepted, but PayPal has been unable to verify. | |
.template | lightbox.template | Used in productlist and productdetail to display image in lightbox. [TAG:IMAGELIGHTBOX] |
.template | lightboxgallery.template | Used in productlist and productdetail to display image in lightbox. [TAG:GALLERY#] |
.template | noimage.template | Used in productlist and productdetail to display noimage when lightbox token is used but no image exist. [TAG:IMAGELIGHTBOX] |
.template | noimagegallery.template | Used in productlist and productdetail to display noimage when lightbox token is used but no image exist. [TAG:GALLERY#] |
.template | minicart.template | Template to be show in the minicart module. |
.template | minicartempty.template | Template to be show in the minicart module, when cart is empty. |
.template | order.email.template | Template that can be used to display order details in other email templates. |
.template | receipt.email.template | Template that can be used to display receipt details in other email templates. |
.template | order.text.template | Template that can be used to display order details in other text templates. |
.template | receipt.text.template | Template that can be used to display receipt details in other text templates. |
.template | productdetail.template | Template used to display product list. |
.template | productlist.template | Template used to display product detail. |
.template | nosearchresult.template | Template used to display when a product search has no products returned. |
.template | soldoutimg.template | Template used when token [TAG:SOLDOUTIMG] is used in the product list. If the product stock qty = 0 the template will be displayed. |
.template | productxmldata.template | Template to create bespoke fields for product data. |
.template | fromprice.template | This template is displayed using the [TAG:FROMPRICE]. You can use the token [TAG:DEALERPRICE], [TAG:DEALERPRICECURRENCY], [TAG:FROMPRICE], [TAG:FROMPRICECURRENCY],[TAG:BESTPRICE], [TAG:BESTPRICECURRENCY],[TAG:SALEPRICE],[TAG:SALEPRICECURRENCY] within this template to display the from price value. No other tokens are supported. |
.template | dealerprice.template | This template is displayed using the [TAG:DEALERPRICE]. You can use the token [TAG:DEALERPRICE], [TAG:DEALERPRICECURRENCY], [TAG:FROMPRICE], [TAG:FROMPRICECURRENCY],[TAG:BESTPRICE], [TAG:BESTPRICECURRENCY],[TAG:SALEPRICE],[TAG:SALEPRICECURRENCY] within this template to display the dealer price value. No other tokens are supported. |
.template | bestprice.template | This template is displayed using the [TAG:BESTPRICE]. You can use the token [TAG:DEALERPRICE], [TAG:DEALERPRICECURRENCY], [TAG:FROMPRICE], [TAG:FROMPRICECURRENCY],[TAG:BESTPRICE], [TAG:BESTPRICECURRENCY],[TAG:SALEPRICE],[TAG:SALEPRICECURRENCY] within this template to display the best price value. No other tokens are supported. |
.template | saleprice.template | If this template exists then it is used to replace the [TAG:SALEPRICE] token in the product list and the product details or you can use it with the [TAG:BESTPRICE]. You can use the token [TAG:DEALERPRICE], [TAG:DEALERPRICECURRENCY], [TAG:FROMPRICE], [TAG:FROMPRICECURRENCY],[TAG:BESTPRICE], [TAG:BESTPRICECURRENCY],[TAG:SALEPRICE],[TAG:SALEPRICECURRENCY] within this template to display the sale price value. No other tokens are supported. |
.template | modeltable.template | This template is used to display the table structure used when the [TAG:MODELSTABLE] is used. The token [TAG:TABLEROWS] must be included to make the rows of the table display. |
.template | modeltablerow.template | This template is used to display the rows of the [TAG:MODELSTABLE] token. It is called by using the [TAG:TABLEROWS] token in the 'modeltable.template' template. |
.template | nowishlist.template | Template used to display when wish list has no products. |
.template | adminproductalt.template | Display template for backoffice product select. |
.template | adminproductitem.template | Display template for backoffice product select. |
.template | checkoutaddress.template | This template is used to display checkout address fields. Valid values for databind property: AddressDescription, AddressName, Address1, Address2, City, RegionCode, CountryCode, PostalCode, Phone1, Phone2, PrimaryAddress, CreatedByUser, CreatedDate, OrderID, CompanyName, Extra1, Extra2, Extra3, Extra4.
In addition, or as a full replacement, you can use [OrderUserProfile:XXX] tokens, where XXX is the name of any DNN user profile field e.g. [OrderUserProfile:FirstName]. This includes any custom profile fields you have created. This type of token reads DNN profile fields, but does not all them to be updated via the address collector. Instead, the user should be directed to the default DNN profile page to update their address. The email field is not included in these tokens. |
.template | stgheader1.template | Header for checkout cart page. |
.template | stgheader2.template | Header for checkout address page. |
.template | stgheader3.template | Header for checkout gateway page. |
.template | stgheader5.template | Header for order completed page. |
.template | goodrelations.template | goodrelations template that can be placed at the top of you product detail template to help SEO. Use [Template:goodrelations.template] to place it in your product detail template. |
.template | stg2form.template | Allows a form to be added to the bottom of the stage2 checkout, using same tokens as bespoke products fields to create the form. Data entered into the form can be displayed by using the token [Order:Stg2FormXML] which will use the xsl "Stg2FormXML.xsl" to render the html. |
.template | stg3form.template | Allows a form to be added to the bottom of the stage3 checkout, using same tokens as bespoke products fields to create the form. Data entered into the form can be displayed by using the token [Order:Stg3FormXML] which will use the xsl "Stg3FormXML.xsl" to render the html. |
.template | ProductPageName.template | Template to display product page title. valid tokens are [TAG:PRODUCTREF],[TAG:PRODUCTNAME],[TAG:MANUFACTURER],[TAG:CATEGORYNAME],[TAG:SUMMARY],[TAG:TAGWORDS],[TAG:SEONAME] and [TAG:PORTALNAME]. |
.template | gatewaysep.template | Html used to separate multiple payment gateways in the checkout. |
.template | gateway.template | Template to display the payment providers in stage 3 of the checkout, can be turn on by an option in the module settings. Valid tokens are [TAG:PURCHASE],[TAG:GATEWAYRADIO],[TAG:GATEWAY:{gateway ref}],[TAG:DATABIND:{Class field name}] and[TAG:XML:<XSL name>:getorderxml] |
.template | detailrows.template | Template to display the cart and order rows when the [Order:DetailTemplateRows] token is used. [Detail:*],[Product:*] and [Model:*] token are allowed. |
.template | editaddress.template | Template to display the edit address fields in Admin Order. |
.template | categorypagename.template | Template to display page title for productlist based on category name. [TAG:PORTALNAME] can be used, plus [Category:*] tokens |
.text | chqpayment.text | Text displayed after client has paid by cheque. |
.text | emptycart.text | Text displayed when a client views an empty cart. |
.text | extradetail.text | Message displayed above the extra detail textbox on the checkout. |
.text | gatewaymsg.text | Message displayed above the credit card payments. |
.text | logintext.text | Text displayed when the client goes to the checkout, but has not logged in. |
.text | orderprint.text | Template of order when client or manager requests a printed receipt. |
.text | orderview.text | Template of order when client or manager views order. |
.text | paymentFAIL.text | Text displayed when payment has failed. |
.text | paymentinprocess.text | Text displayed when a client tries to pay for an order already in process. |
.text | paymentOK.text | Text displayed when payment successful. |
.text | paymentSECURITY.text | Text displayed if order doesn't match userid. |
.text | productlimit.text | Text displayed if manager tries to add a new product, when product limit has been reached. |
.text | specialshipping.text | Text displayed if shipping can't be calculated. If you want shipping charge disabled set the shipping free limit to "0". |
.text | minimumcarttotal.text | Text displayed if the minimum purchase price (set by the "minimumcarttotal.limit" setting) has not been reached. Use "[TAG:CARTMINIMUM]","[TAG:CARTTOTAL]" token to display value in message. |
.text | zeroprice.text | Text that will be used in the product list if the price is zero. If this setting is left blank then the 0.00 is displayed. |
.text | buybutton.text | Text to be displayed by the buy button on products. If left blank the resx file text is used. |
.text | outofstock.text | Text to be displayed when product is out of stock. If blank the resource file value is used. |
.text | outofstockmodelmsg.text | Text to be displayed on end of model description if out of stock. |
.text | receiptprint.text | Template of receipt when manager requests a printed receipt. If this template is empty then not receipt print button is displayed. |
.text | optionseperator.text | Text to be used as the option separator for the cart. Default of "/" used if blank. |
.text | elapsedorder.text | Text to be displayed if the order has passed it's elapsed time to pay. If blank, elspased time is disabled. |
.tracktemplate | *.tracktemplate | Template to create shipping tracking code links. e.g. "ups.tracktemplate". |
.shiptemplate | *.shiptemplate | Template to be displayed as the shipping option text if more than one method exists. |
.code | nyromodellightbox.code | JS Code to be added as nyromodal startup script. |
.code | *.code | JS Code to be added as startup script for any javascript, list of values can be specified in the "productliststartupjs.includes" setting. |
.ImportMapping | categoryCSV.ImportMapping | Allows CSV columns to be mapped to XML import structure. |
.ImportMapping | productCSV.ImportMapping | Allows CSV columns to be mapped to XML import structure. |
.xsl | Stg2FormXML.xsl | XSL to display the checkout stage 2 form data |
.xsl | Stg3FormXML.xsl | XSL to display the checkout stage 3 form data |
[Order:OrderID] [Order:UserID] [Order:PortalID] [Order:OrderNumber] [Order:ShortOrderNumber] [Order:OrderDate] [Order:ShipDate] [Order:ShippingAddressID] [Order:BillingAddressID] [Order:AppliedTax] [Order:ShippingCost] [Order:OrderIsPlaced] [Order:OrderStatusID] [Order:PayType] [Order:CalculatedTax] [Order:NoteMsg] [Order:NoteMsgHtml] [Order:VATNumber] [Order:Discount] [Order:PromoCode] [Order:Total] [Order:BankAuthCode] [Order:TrackingLink] [Order:DetailRows] [Order:DetailTemplateRows] [Order:ShippingMethod] [Order:TrackingCode] [Order:CartTotal] [Order:Stg2FormXML] [Order:Stg3FormXML] [Order:AlreadyPaid] [Order:OrderGUID] [Order:GatewayProvider] |
[SAddress:AddressID] [SAddress:PortalID] [SAddress:UserID] [SAddress:AddressDescription] [SAddress:AddressName] [SAddress:Address1] [SAddress:Address2] [SAddress:City] [SAddress:RegionCode] [SAddress:CountryCode] [SAddress:Country] [SAddress:PostalCode] [SAddress:Phone1] [SAddress:Phone2] [SAddress:PrimaryAddress] [SAddress:CreatedByUser] [SAddress:CreatedDate] [SAddress:OrderID] |
[BAddress:AddressID] [BAddress:PortalID] [BAddress:UserID] [BAddress:AddressDescription] [BAddress:AddressName] [BAddress:Address1] [BAddress:Address2] [BAddress:City] [BAddress:RegionCode] [BAddress:CountryCode] [BAddress:Country] [BAddress:PostalCode] [BAddress:Phone1] [BAddress:Phone2] [BAddress:PrimaryAddress] [BAddress:CreatedByUser] [BAddress:CreatedDate] [BAddress:OrderID] |
[Cart:TaxAmt] [Cart:TaxAppliedAmt] [Cart:ShipAmt] [Cart:DiscountAmt] [Cart:TotalAmt] [Cart:OrderTotal] [Cart:Qty] [Cart:URL] [Cart:TabID] [Detail:OrderDetailID] [Detail:OrderID] [Detail:Quantity] [Detail:UnitCost] [Detail:ModelID] [Detail:OptCode] [Detail:ItemDesc] [Detail:Discount] [Detail:Tax] [Detail:ProductURL] [Detail:Total] [Detail:TotalDiscount] [Detail:FileLink] |
[OrderUser:Email] [OrderUser:username] [OrderUser:FirstName] [OrderUser:LastName] [OrderUser:DisplayName] |
[Model:ModelID] [Model:ProductID] [Model:ListOrder] [Model:UnitCost] [Model:Barcode] [Model:ModelRef] [Model:Lang] [Model:ModelName] [Model:QtyRemaining] [Model:QtyTrans] [Model:QtyTransDate] [Model:ProductName] [Model:PortalID] [Model:Weight] [Model:Height] [Model:Length] [Model:Width] [Model:Deleted] [Model:QtyStockSet] [Model:DealerCost] [Model:PurchaseCost] [Model:XMLData] [Model:Extra] |
[Product:ProductID] [Product:PortalID] [Product:TaxCategoryID] [Product:Featured] [Product:Archived] [Product:CreatedByUser] [Product:CreatedDate] [Product:IsDeleted] [Product:ProductRef] [Product:Lang] [Product:Summary] [Product:Description] [Product:Manufacturer] [Product:ProductName] [Product:FromPrice] [Product:SalePrice] [Product:QtyRemaining] [Product:QtyStockSet] [Product:ImageURL] [Product:ImageDESC] [Product:ImageID] [Product:CategoryName] [Product:XMLData] [Product:ModifiedDate] [Product:SEOName] [Product:TagWords] [Product:IsHidden] |
[Category:CategoryID] [Category:PortalID] [Category:Archived] [Category:Hide] [Category:CreatedByUser] [Category:CreatedDate] [Category:ParentCategoryID] [Category:ListOrder] [Category:Lang] [Category:CategoryName] [Category:ParentName] [Category:CategoryDesc] [Category:Message] [Category:ProductCount] [Category:ProductTemplate] [Category:ListItemTemplate] [Category:ListAltItemTemplate] [Category:ImageURL] [Category:SEOPageTitle] [Category:SEOName] [Category:MetaDescription] [Category:MetaKeywords] |
[Currency:Symbol] [WishList:ItemCount] [Order:GoogleEcommerceUpdate] [Order:AmendedLink] |
The tracking of “UriReferrer” data can be activated by setting the “Referrertrace.flag” setting to ON.
In order for external tracking to work correctly, the Referrer link must point to a page on the NB_Store website in which the product list module is visible.
Referrer tracking works by adding the “UriReferrer” data onto the DB cart table, this is then transferred to the order table when an order have been created.
Reporting on the Orders table in the database can help identify where Referrer links are coming from.
The shipping rates that can be set are split into 6 elements, each element is used to calculate the shipping based on the details entered. The actual shipping applied is then calculated using the shipping formula.
MethodsThis allows you to create multiple shipping methods that are displayed as shipping options in the cart. The first method in the list is the default shipping.
By QuantityThis allows you to setup shipping based on the quantity of products in the cart.
By PriceAllows shipping costs by price range.
By WeightAllows shipping costs to be setup by product weight ranges.
Extra per CountryAllows an extra costs to be added based on the shipping country.
Extra per productEach product can have a special added box cost applied. A Box fill percentage can be specified, so that when a product has only 20% fill rate 1-5 products will only add the box cost once. 6-10 products will add the box cost twice (Box Cost * 2). Boxes are considered the same box if they have the same box cost, so different products can fit into the same box, if the box cost is the same. If a zero box percent is specified then the box sharing is turned off and the box cost will be added for each product. If no box cost is specified then the product will be ignored by box sharing. The box cost is used as an additional cost, on top of the normal shipping, for certain products.
Free shipping limitAllow you to enter a free shipping limit by price, if this is reached then shipping amount will be zero, regardless of any other settings.
Each element in the shipping is calculated, after which the actual shipping if determined by applying a simple formula
If the shipping amount cannot be calculated then a "-1.00" is returned from the calculation. In the case that a shipping method cannot be calculated it will not appear in the list of available shipping methods.
In the case that NO shipping can be calculated a "-1.00" may appear as the calculated shipping. In these cases you must ensure that a shipping cost can be calculated by the default shipping. If no shipping is to be calculated (shipping included in price) then you must set the default shipping method to have a "Free Limit" of "0.00". (Be careful that if you want to remove a "Free Limit" you use the deleted button - setting it to zero will always return a shipping cost of "0.00")
The tax rate system can be set in 3 modes:
Tax rates can be entered at 3 levels, Store level (Default), Category Level and product level. The tax rate the applies to each product is calculated in order of Product>Category>Default.
To exempt countries from tax you can create the "taxexempt.list" setting.
The store supports the Export of products, categories, images and orders. And the Import of Products, categories and product images.
For large imports you may need to update the web.config to allow for the execution, in which case you need to change the httpRuntime section to something like this:
<httpRuntime useFullyQualifiedRedirectUrl="true" maxRequestLength="8192" requestLengthDiskThreshold="8192" executionTimeout="6000"/>
You can import a CSV file by using the productCSV.ImportMapping and categoryCSV.ImportMapping templates.
A default Field delimiter of semi-colon is used ";"
A default Row delimiter of carrage return, line feed is used "vbCrLf"
To change these delimiters you can use the "RowDelimeter.ImportMapping" and "FieldDelimeter.ImportMapping" settings.
The example template that are installed with NB_Store, "categoryCSV.ImportMapping" and "productCSV.ImportMapping" refer to a simple CSV import.
The default mapping corresponds to a CSV file format of:
[COL:1];[COL:2];[COL:3];[COL:4];[COL:5];[COL:6];[COL:7];[COL:8];[COL:9];[COL:10]
CategoryName;ProductRef;Manufacturer;ProductName;Summary;XMLData(Custom Product Field);Weight;UnitCost;{Unused};ImageName
The [LANG] token can be used to link the import language, or a column token can be used if multiple Languages are to be imported.
The categoryID is linked to the "CategoryName" column in the productCSV.ImportMapping.
Each Product in the CSV file MUST have a ProductRef, products with a blank ProductRef will not be imported.
TIP: This easiest way to setup a CSV mapping is to create a product in the store with the format you require, export to xml, edit the xml and extract the product section for the "productCSV.importmapping" ( between the <P> nodes) and extract the category section for the "categoryCSV.importmapping" (between the <NB_Store_CategoriesInfo> node).
Then by editing it to place in the [COL:#] tokens in the correct place. (Careful this can get more complex than you may think).
Import of multiple language import:
- Each category name must be different for each language.
- A column must be specified for the Product Lang node. ([LANG] can be used for the other Lang fields)
- Each product must have an entry for each language, the product ref must be the same for each language.
The "replaceCSV.ImportMapping" template setting can be used to replace strings in the CSV file. By default this setting is not created during the NB_Store installation, so you will have to create it in "BackOffice>Utilities>Templates", if you require string replacements.
In should be created in the format:
<root>
<item col="1" str="" rpl="" substr="true"/>
<item col="*" str="" rpl="" substr="true"/>
</root>
col = the column for the replace to be active. if a "*" is used then all columns are active.
str = the string to be searched for.
rpl = the string to be used as the replacement.
substr = if true column with be searched for any substrings, if false the the whole column must match for a replacement to be made.
Categories and sub categories can be maintained from this page. Categories can be setup in multiple languages.
Products in the store have 3 levels of detail:
Products can be copied from the product administration. A copied product will copy all details, models and options. Images will reference the same images as the copied product.
Image resizing can be controlled by using the "image.resize" and "image.quality" settings.
As default image.quality is set to 85, if you wish to have higher quality images it is recommended to use 95. 100% quality images may be to large (kb) for normal web operation.
Image settings for advanced image resizing.
Settings "image.advanced" The value of this settings is a list of options in
order of
"InterpolationMode","SmoothingMode","PixelOffsetMode","CompositingQuality"
example:
7,2,0,0
would give
InterpolationMode = HighQualityBicubic
SmoothingMode =HighQuality
PixelOffsetMode =Default
CompositingQuality =Default
Values of advance setting possible are:
InterpolationMode (NB_Store Default=HighQualityBicubic)
-1 = Invalid ,0 = Default, 1 = Low, 2 = High, 3 = Bilinear, 4 = Bicubic, 5 =
NearestNeighbor, 6 = HighQualityBilinear, 7 = HighQualityBicubic
SmoothingMode (NB_Store Default=HighQuality)
-1 = Invalid, 0 = Default, 1 = HighSpeed, 2 = HighQuality, 3 = None, 4 =
AntiAlias
PixelOffsetMode (NB_Store Default=Default)
-1 = Invalid, 0 = Default, 1 = HighSpeed, 2 = HighQuality, 3 = None, 4 = Half
CompositingQuality (NB_Store Default=Default)
-1 = Invalid, 0 = Default, 1 = HighSpeed, 2 = HighQuality, 3 = GammaCorrected, 4
= AssumeLinear
NOTE: The Advance settings has a very fine effect on the image. For normal processing use the image.resize and image.quality settings to get the effect you need.
Related products can be selected from the product edit page. These products can be then be displayed in the product detail page by using the [TAGXML:<xsl file>] token.
The example included in the default settings is called "relatedproducts.xsl". By placing the tag [TAGXML:relatedproducts.xsl] in the product detail template you will see a list of the related products.
Stock levels for a product are entered at model level. Each model of a
product can have a stock quantity entered against it or a "-1" to turn off the
stock control for the product. These stock levels can be edited from the
product admin page or the stock / price list page. When a product reaches
0 stock the product will show a "Out of Stock" message if the user view the
product. Products that exist in the users cart also are taken into account
when calculating the stock levels for a product.
Max Stock level - This is the maximum stock for a model, it is used to calculate the percentage of stock left. If the stock is updated to a value greater than the current max then the max field is also updated.
Because in DNN only the Administrator role can a edit user, a simple user maintenance control has been created. With this your can update user email address, reset password, unlock users and view the orders for a client.
You can use the order administration to view or print details of an order and edit any aspect of the order, including changing the order details.
Basic administration of status and shipping date can be done easily without going into edit order mode.
Order Administration also allows you to send emails to help process an order. You can send a validated order email, order shipped email, order receipt email as well as an order amended email.
Once an order has been amended you can use the send order amended email to send an email with a "Amended link" to the client. The "Amended Link" will allow the client to go directly to the checkout and process the new order, allow the payment of the full amount or any additional costs that might have been added.
The "Amended Link" is displayed in the email templates by using the
[Order:AmendedLink] token. Or if you want to redirect to a special checkout,
created especially for amended orders, you can build the url link yourself in the
email and add url param of "codeid=[Order:OrderGUID]". It is this "codeid" param
that tells the checkout to re-process an existing order. The OrderGUID is only
created when the manager edits an order.
The parameters of the gateways can be changed from the Settings menu, these settings are now in XML and it is recommended to upgrade any old text based settings (Which will still work!) into the new XML format. An example of each settings can be found the documentation directory of the NB_Store module.
The Cheque gateway provider is created as a integral part of NB_Store. It can be turn off from the checkout settings, but has no other modifiable settings.
The parameters of the Paypal gateway can be changed from the Settings menu using the "PayPal.gateway" setting.
The [ORDERID] tag will be replaced by the internal order number.
NOTES:
paymentURL=https://www.sandbox.paypal.com/xclick (change to actual paypal url; this is the test one, best to use this in order to get it up and running)
verifyURL=https://www.sandbox.paypal.com/cgi-bin/webscr (as above!)
PayPalID=paypal@MyWebsite.com
CartName=TEST
ButtonImageURL=http://localhost/Desktopmodules/NB_Store/img/paypal60x38.gif (http://localhost/ needs to be your website root )
Currency=EUR
ReturnURL=http://www.MyWebsite.com/Cart/tabid/56/stg/5/ordID/[ORDERID]/Default.aspx?PayPalExit=RETURN (this URL needs to be set as your cart page url, with the ?PayPalExit=RETURN added on the end, stg/5 param tels the cart what response to do)
ReturnCancelURL=http://www.MyWebsite.com/Cart/tabid/56/stg/5/ordID/[ORDERID]/Default.aspx?PayPalExit=CANCEL (as above!)
ReturnNotifyURL=http://www.MyWebsite.com/Cart/tabid/56/stg/4/Default.aspx (as above!, but with stg/4.)
MerchantLanguage=fr
The parameters of the SIPS gateway can be changed from the Settings menu using the "SIPS.gateway" and "SIPS.exepath" settings.
Tags :
[ORDERID]
[ORDERID]
[TRANSID]
[ORDERNUMBER]
[ORDERAMOUNT]
[CUSTOMERID]
[LANGUAGE]
[PROMOCODE]
[CARTID]
NOTES:
For a detailed explanation of the SIPS settings look at the SIPS documentation. The only difference is that the recommended method of implementing the settings in NB_Store is to use a XML format.
The Store can be ran in 2 modes:
The Store Cart and Checkout have been joined to provide a single module.
View Cart | --> | Enter Address | --> | View Checkout-- | |--> | |--- |
Direct to Bank -------------- |
--> --> |
Return to Store Pay by Cheque |
Code | Name | Auto | Description |
10 | Incomplete | Y | Order has been created in the checkout, but not gone to the bank. |
20 | Waiting for Bank | Y | Order has been sent to the bank, but no order notification has been received. |
30 | Cancelled | Y | Order Cancelled. |
40 | Payment OK | Y | Payment accepted |
45 | Payment not verified | Y | Payment accepted, but the store was unable to verify that the payment was actually made. |
50 | Shipped | N | Shipped to the client |
60 | Waiting | N | Waiting. |
70 | Closed | N | Order has been completed and order has been Closed. |
75 | Archived | N | Order will be archived and removed from the store on the next store purge. (BO>Utilities>Export) |
80 | Waiting for Cheque | Y | Waiting for Cheque |
90 | Waiting for Payment | N | Waiting for payment |
100 | Waiting for Stock | N | Waiting for stock. |
The store has scheduler jobs that can be activated. By default these jobs are not setup when you install the module.
NEvoWeb.Modules.NB_Store.StoreOrderReport,NEvoweb.DNN.Modules.NB_Store
The purpose of this schedule job is to produce a report every day which is emailed to the store merchant email address.
This report then provides a daily overview of the site orders. Also the fact that the report is sent daily ensures the store email functionaity is working.
Time Lapse: 1 hour*
Retry Frequency: 2 hours
*The functionality of the report saves the last runtime in the store setting, and will only run the report once a day.
The report is produced using XSL the path of the "ordersreport_<Culture>.xsl" which is uploaded into the module directory when it is installed, must be entered in the store settings. This defaults to the module directory, but is modifiable so different portals can have different reports.
NEvoWeb.Modules.NB_Store.CleanUpCarts,NEvoweb.DNN.Modules.NB_Store
This schedule job will delete carts from the database that are older than 7 days and removed uncompleted orders that are older than 24 hours.
SPROC:NEvoweb_NB_Store_Cart_DeleteOldCarts
delete from dbo.[NB_Store_Cart]
where DateCreated < dateadd(day,-7,getdate())
delete from dbo.[NB_Store_Orders]
where OrderDate < dateadd(day,-1,getdate())
and OrderNumber = ''
Time Lapse: 1 day
Retry Frequency: 2 days
NEvoWeb.Modules.NB_Store.CreateSalePrices,NEvoweb.DNN.Modules.NB_Store
The purpose of this schedule job is to recalculated the discount prices for all
the products and is only needed if promotional Store Discounts have been setup
for the store.
Time Lapse: 1 hour*
Retry Frequency: 2 hours
*The functionality saves the last runtime in the store setting, and will only run the
calculation once a day.
NEvoWeb.Modules.NB_Store.SchedulerReport,NEvoweb.DNN.Modules.NB_Store
The purpose of this schedule job is to run any reports that have been scheduled from the reporting system.
Time Lapse: 1 hour*
Retry Frequency: 2 hours
*The functionality to time reports to an hours has been implemented, but this relies on the DNN scheduler and therefore differences in the times when reports run will happen.
NEvoWeb.Modules.NB_Store.StoreStatistics,NEvoweb.DNN.Modules.NB_Store
The purpose of this schedule job is to purge the statics from the NB_Store Database and to Process and statistical calculations that are required.
Time Lapse: 1 hour*
Retry Frequency: 2 hours
*The functionality of the job saves the last runtime in the store setting, and will only run the report once a day.
NOTE: This process is required for the product search word statistics to be purged and the products exists count to be updated.
NEvoWeb.Modules.NB_Store.PurgeStoreFiles,NEvoweb.DNN.Modules.NB_Store
This schedule job will purge unused files and images from all DNN portals that use NB_Store, including running the LogFile purge based on the "purgelogfiles.days" setting.
Time Lapse: 1 day
Retry Frequency: 2 days
Multiple product lists can be setup on a single portal. This allows for a list showing featured products only, different skins to display product lists or product details and different pages showing different categories. The control of how these modules interact can be done from the settings of each module. The product return tab after purchase can be set to the cart or the tab from which the user selected to view the product (Using the RtnTab query string parameter). The default return tab in the settings is currently overwritten by the query string param, but has been left in for future development.
The NB_Store_Search module is a replacement for the DNN Search module. Using this module allows the product list to act as the search results module for the DNN search index. The "nosearchresult.template" template is displayed when no products are found by the search.
In the product list settings a default order can be selected. Also if a queryString parameter of "orderby" is added the product list sort by the select value, a "desc" parameter can also be added to give a descending order.
From the Store Manager Menu, a number of options are available if logged on as host.
This option clears all products, categories, carts and orders from the store. In order to do this you must enter the host password.
Store validation will run a number of checks on the store to ensure the data integrity. To fix any errors found check the fix errors checkbox. Any errors fixed will be logged in the audit logs.
Product Image Validation - This will check to see if the imagepath in the
NB_Store_ProductImage table matches the Server Root MapPath + imageURL. If
it does not and the FIX error has been checked, the imagepath is updated with
the Server Root MapPath + imageURL path, if this file doesn't exist the
productimage record is removed from the database.
Product Document Validation - This will check to see if the document path in NB_Store_ProductDocs tables matches the Server Root Path, if not the the FIX will change to path to the correct one. If the document doesn't exist it will be removed from the database.
Product Language Validation - This will check to make sure product
descriptions and options exist in all languages. Used if a website has a
language added.
Category Language Validation - This will check to make sure category
descriptions exist in all languages. Used if a website has a language
added.
Importing settings and templates can now be done through this option. The drop down list shows any xml file in the NB_Store/templates directory. By selecting an import file Template, settings and Status table values can be imported. The format of the import files is exactly the same as the export of the module.
TIPS:
- To upgrade your settings and templates to add any new ones which may appear in later releases of NB_Store, import the "ManagerMenuDefault.xml" with the Overwrite option unchecked.
- To create your own template set export your templates using the module export, edit it as required, and place it in the NB_Store/templates directory.
- To change the language of the order status table edit an exported module file and import it with the changes, unchecking the overwrite option. (Status Names are always imported)