FAQ

Backup and Restore

Credit Cards - FAQ's

Customer - FAQ's

Database Questions

Dropship

Email - FAQ's

Freight FAQ's

Images - FAQ's

Importing to Database - FAQ's

Jobs - FAQ's

Macola - FAQ's

Orders - FAQ's

Password - FAQ's

PCI Compliance Issues

Production Orders (Work Orders)

Queries

Roles / Permissions - FAQ's

Sales Reps - FAQ's

Sales Tax FAQ's

Search - FAQ's

Security - FAQ's

Serial / Lot

Updates - FAQ's

Vendor - FAQ's


Backup and Restore

Restores

We create backups in case of emergencies and we recommend restoring information under the same circumstances.

When you restore the Data backup from the previous night it restores all the information to when you backed up the data.  Once you restore you have lost all information from the time of back up until that moment.  This also includes the Macola tables, which in turn could mean lost data, because you are restoring the entire database. There are ways to restore individual tables and/or records, but it is technically difficult and not recommended unless your company has a Database Administrator.

But many clients have asked "What if I accidentally delete a WebCategory out of my webmanager and want to restore it?"

Your 'inhouse' Database Administrator should be able to restore this for you. If you do not have a database administrator, BirdDog has consultants available to assist you with this.

Back to Top

Backups

Under most circumstances the Website can be divided into two sections: Data and Graphic Layout/Structure.  Since the website is divided into these sections, there are also two ways your site is backed up.

1) Backup the data that is displayed on the site (i.e. The content in Webmanager)

You should be running a backup every night of your Macola database, thus you are essentially backing up the Birddog tables that contain your WebManager data.  This is because the information that you populate in WebManager is stored in tables under the same sql database where your Macola information is stored.

2) Backup the Graphic Layout/Structure of the site.(i.e. Master Pages, Themes, Content Layout)

BirdDog Software maintains clients websites in the the same source control repository that controls our own software. We are backing this information daily. However, if you are maintaining your own website, it is your responsibility (see documentation Look and Feel Maintenance Option).

Back to Top


Credit Cards - FAQ's

Customer Entered Their Address Wrong and the Credit Card Charge Was Declined But Now Their Bank Shows Two Authorizations?

The issue is that that their are multiple parties involved with different requirements for the AVS (Address Verification Service). Here is typically what has happened:

  1. We asked the payment gateway (such as Authorize.Net) for an authorization.
  2. The payment gateway asked the customer's bank for an authorization.
  3. The customer's bank authorized the transaction but told the payment gateway that the address didn't match (first authorization).
  4. The payment gateway received the authorization with the note that the address didn't match.
    • Based on settings in their system, they declined the charge to us with the note that the address didn't match.
    • They request that the issuing bank void the authorization. This is typically where the problem occurs ... many banks ignore the void request.
  5. We displayed the error to the customer that the address didn't match.
  6. The customer fixed their address and resubmitted.
  7. We asked the payment gateway for an authorization.
  8. The payment gateway asked their bank for an authorization.
  9. The customer's bank authorized the transaction without issue (second authorization).
  10. The payment gateway received the authorization and forwarded it to us.
  11. We processed the order.

Please note that this is just one example. There are a myriad of issues that the customer's bank can report back to the payment gateway as AVS (Address Verification Service) Response Codes while authorizing the transaction with the most common being zip code and mismatches. The stricter you have your settings on the payment gateway to decline for these kinds of AVS issues, the more likely multiple authorizations are going to happen.

 

Back to Top

Capture Process Not Finding Order to Capture

You run the "Capture Selected Orders" process (Enterprise for Windows>Processes>Credit Cards>Capture Selected Orders) and the order you're trying to capture does not show on the report.  This indicates that the order did not meet certain requirements needed and therefore, was not sent to your credit card processor to capture.

Below are requirements necessary for capturing.

  • Order is selected.  See Order Status Codes
  • Order Type is O.
  • Order has a credit card transaction OR the customer has saved credit cards
  • Total Selected is > $0.00
  • If Progression, then existing payment count = 0 (Progression only allows a single o/e cash payment against an order per g/l account)
  • If ES, then Payment Amount < Total Selected
  • Order terms code is marked as Credit Card.  See Credit Card Terms Code Setup

 

Back to Top

Freight Calculation Logic when Capturing Credit Card

Logic for calculating freight when authorizing or capturing a credit card in Enterprise for Windows (Transactions>Credit Cards>Capture Credit Card or Transactions>Credit Cards>Authorize Credit Card):

  • If you have the freight license then use the freight module to calculate an estimate (Freight label says "Freight Estimate")
  • Else if the order has a freight amount use that value (Freight label says "Freight from Order")
  • Otherwise use the order sub total multiplied times the freight pay code credit card percentage (Ent Win > Maintain > Freight > Pay Codes...) (Freight label says "Freight Estimate @ ...%")

 

 

Back to Top

Coding for BDCreditCardTrxs.trx_type

Below is the coding used for BDCreditCardTrxs.trx_type:

0 - None

1 - Declined

2 - Authorize

3 - Captured

4 - Voided

5 - Verified

Back to Top

Tokenization - How to Convert Old Saved CC #'s to Use Aliases

Implement Credit Card Aliases for Authorize.Net -
Customer Information Manager(CIM) has to be turned on inside Authorize.Net for this to function correctly. This can be done before starting the update since turning it on will not affect the older software. Basically, go turn it on now. You can view how to accomplish this by watching this video. If this is the first time you have used Authorize.net, nothing else needs to be done, but if you have taken orders using BirdDog before, then you will need to run the Credit Cards: Convert Encrypted Credit Cards To Profiles job after all software is running 9.8.5. This process can be started any time after the update is complete. If you test with a staging site against production data do not process any credit card transactions (including authorizations) against production data while production sites are running versions earlier than 9.8.5.  NOTE: If running a synced site, this process must be run on both the local and hosted side.

Back to Top

G/L Account Setup for Merchant Accounts

The G/L Account for a credit card merchant account is assigned in the payment gateway setup area.  Currently, you need to do this using Enterprise for Windows.  There is an enhancement coming that will allow you to enter the account info using Dashboard (Enterprise) on the website.  However, until then:

Using Enterprise for Windows:

Go to Maintain>Credit Cards>Merchant Accounts

Double click on the Merchant Account you want to setup

Go to the Cash Account tab

Enter the G/L info

Click Save

 

 

Back to Top

Getting 100's of Unauthorized Transactions at Authorize.net

If you are getting 100s of unauthorized transactions in your Authorize.net account, it means your Authorize.net transaction key got stolen.  If it wasn't caused by an employee leak or lucky guess, then you were most likely hacked.

Here are some recommended steps to follow if this happened.

  1. Scan your computers for malware. It looks like a hacker got access to your email and/or your site's Dashboard. The best malware scan we found is this one:  http://download.cnet.com/Malwarebytes-Anti-Malware/.  Download a free version. Do a full scan and let it clean your computers.
  2. Scan your website for suspicious files. If hackers got your FTP login and uploaded a backdoor, they will be able to get any information from your database without having to log in to the site’s control panel.
  3. Change your email account passwords.
  4. Change all administrator passwords for the site.
  5. Login to your Authorize.net account. Change the login password there and generate a new API key.
  6. Enter the new key (password) at Dashboard > System Management > Payment Gateways > Authorize.net.
  7. Add your site IP address as the only allowed source of transactions in your Authorize.net account. This will stop any unauthorized transactions being posted from somewhere else even if a hacker gets your transaction key.  If we host your site, we can provide you with your site's IP address.  Click here to go to Authorize.net's help page for this.
  8. Typically when this happens, the culprits are testing credit card numbers and the charges are for $1.  You can set up a minimum charge (i.e. $5) at Authorize.net. This would then refuse any charges that come in for $1.  NOTE: You can also set a maximum charge.

Back to Top

Why is a CC Required when Terms Code is NET30

The system is requiring you to enter credit card info, but your terms code is set to an "On Account" type like NET30.  What's wrong?

Go to System Management | Site Settings
Edit site in question
Go to Payment Methods tab
Notice "Credit Card Terms Code" box (the upper one, top right of page)
Any entries here will require a credit card for checkout
Delete the offending terms code from list
Save
Click "Reload Site Settings" icon

Back to Top

Credit Cards - Where & How Saved CC's Are Stored

Credit card info for Birddog Customer Service & ecommerce is saved in the BDCreditCardInfo table.  CC's for Customer Service are stored by the customer number.  However, CC's stored for ecommerce are stored by the UserID (guid).  Both of these are found in the cus_no field.

Back to Top

Are Authorizations in Real-Time When Placing the Order?

Yes, a Real-Time authorization is crucial to making sure the next steps of fulfillment are a "GO". The authorization is in real-time and verifies sufficient funds on the card to cover the full order and including the freight charges.

Back to Top

Are CreditCard Numbers Encrypted?

Yes, All Credit Card information is encrypted in secure tables and fully PCI Compliant.

Back to Top

Credit Cards - Order Number Not Showing On Web Order Authorizations

We send all the address data for AVS when authorizing / capturing a credit card. We can't send Order # / Invoice # when authorizing on the web because we don't place the order until AFTER it Authorizes. When we Capture the Credit Card, we send the Invoice #.

Back to Top

Credit Cards - Authorizations for Back Orders

Credit Card companies do not allow you to Capture against a single Authorization more than once. 

In the scenario where you have an Order with a Back Order, when the original Invoice is captured it will 'Use Up' the original Authorization, even if it is for a lower amount. 

Credit Card Deluxe will remember the original Credit Card used. 

If you are using the Picking System, it will automatically reauthorize the Credit Card before Picking.

If you are not using the Picking System, when you go to capture, Credit Card Deluxe will attempt to capture the invoiced amount against the original Credit Card. 

In environments where you are concerned that your customer's Credit Card will not have sufficient Credit for the Back Order and you are not using the Picking System, you will need to manually Authorize the Back Ordered shipment before shipping.

Back to Top

Credit Cards - How Secure is the CC Process for BirdDog?

Very secure. As long as your site is utilizing SSL, the entire order form is encrypted when it is transmitted to the database. When placed in the database, this credit card number is also encrypted. For orders placed through Customer Service, the credit card number is encrypted the moment it is saved to the database.
 
The majority of credit card number theft is caused by Key Loggers that have been installed maliciously on a customer's computer.  If a customer believes that their card number was comprised, we recommend you have them run anti-virus / anti-spyware software to check and clean their computer.  If you believe the compromise was on your end, you should run like software on your local computers.

Back to Top

Credit Cards - Why do CC fields not display when a Customer chooses CC as the payment method?

For Credit Card fields to display, the site has to know that the Terms Code is actually a Credit Card Terms Code.  This setting is in Site Settings | Credit Card Settings | Credit Card Terms Codes.

Back to Top

Credit Cards - An individual cannot place an order on my web site

You may get an email or phone call from a customer that states, they cannot place an order on the web site.

The most common reasons for this to happen is related to the customers credit card.
  • The card was declined.
  • AVS mismatch.
  • Other specified rules that were set up at your Gateway were not met by the card holder.

Ask the customer if they saw any red messages near the credit card information.  Credit card messages are displayed at the Checkout page near the credit card information in bold red letters.

Ask the customer to try a different credit card. 

If that does not work, then have the customer send you a screenshot of the checkout page after the submit order button has been selected.

If the customer still cannot place an order and after you have reviewed the screen shot for Red messages, please send the screenshot and the username of the customer trying to place an order to Support@BirdDogSW.com for review.

Back to Top


Customer - FAQ's

Next Customer Number - Where Does It Come From

The next customer number comes from different tables depending on if you're running Macola Progression or ES.

Progression

  • You'll find the next customer number in the arctlfil_sql table

ES

  • You'll find the next customer number in the bacosettings table
  • The following query shows the next customer number for Macola ES.  (Add 1 to that number.)
  • SELECT * FROM bacosettings WHERE settinggroup='general' and settingname='AccountCodeNextNumber'

NOTE: If Synergy is installed, Next Customer Number is coming from the bacosettings table in the Synergy database, not the Macola DB.

To determine if you're Synergy integrated, run this query:

  • SELECT Value from bdsettings where name = 'IsSynergyEnabled'

If Value=1 you are Synergy integrated.

 

 

 

Back to Top

Customer (Bill-to) Info Missing when User Logged in to Site

If the Bill-to info or the "On Account" tab is missing on the check out page or Billi-to info is missing in Account | Update Bill-to Information, check the following:

System Management | Roles | Default | Default Permissions | Customers | View.  If unchecked, this means the User can't "see" their Customer.

Check that box and Save.

Back to Top


Database Questions



Best Practices - Proper Care and Feeding of Your Database-mod

Once software is installed, BirdDog recommends that you set up these Jobs to keep your database lean and mean

Index Defrag Job - This job will cleanup index defragmentation increasing the speed of queries.

Purge Tables Job - You will find there are tables that can grow very large over time.  For example: logging, carts, page hits, master table audit, and trigger tables to name a few.  It is highly recommended to run the "Purge Tables" job on a regular basis.

Additional services included with your hosted website

Pingdom Monitoring - BirdDog uses Pingdom for web performance management. With Pingdom we monitor hosted sites uptime, performance, transactions, and more. Another benefit of monitoring is it keeps your site from "going to sleep" which greatly speeds up load times. If you are hosting your own website, consider a service like Pingdom to guard against embarrasing and costly downtimes.

App Log Monitoring - BirdDog monitors your hosted web site for level 1 and 2 errors to make sure the application is healthy 24/7.

Back to Top

Database - I am moving or renaming my db; what do I need to know?

Only Renaming Database

  1. Ensure all users are out of Macola.
  2. Stop Job Master on the database server and wait for the jobs to clear.
  3. Edit BirdDogSoftware.JobMaster.exe.config in the Job Master folder and update the database name="new database name"  entry.
  4. Stop any local websites using that database.
  5. Edit the Birddog.config in the local web site folder and update the entry.
  6. Restart the web site and test.
  7. Restart Job Master and check logging to ensure there are no issues.

  

Moving Database to New Database Server and/or Renaming Database

  1. Ensure all users are out of Macola.
  2. Stop Job Master on the database server and wait for the jobs to clear.
  3. Stop any local websites using that database.
  4. Detach or backup the databases on the old server. 
  5. Move the database to the new server and restore or reattach.
  6. Ensure permissions on the databases are set correctly.
  7. Install Job Master on the new database server.
  8. Edit BirdDogSoftware.JobMaster.exe.config in the Job Master folder and update it with the new database information.
  9. Edit the Birddog.config in the local web site folder and update it with the new database information. (click here for instructions)
  10. Start the local websites up and correct any issues.
  11. Start Job Master up and check logging for any issues.

Note 1. If you are moving the database by backing them up, it is recommended that once you have backed them up to put them in read only mode so no one can accidently utilize them.

 

   Macola ES Instructions

How should Macola ES be moved from one server to another?

Revision Date: 12/14/2010
Module:
Version: Macola ES

Description: How should Macola ES be moved from one server to another?

Solution:
  1. Backup all Macola ES databases.
  2. Install ES on the new server using the ProductUpdater_T6_AE.exe.
    For installation instructions and to download the Product_T6_AE.exe from your Exact Customer Portal, go to Macola ES Support Center, Reference Library, Macola ES Release Notes, click on the applicable version of ES, and go to the Update Information section. Click on the link to the Installation instructions. There is a link to the Macola ES Product Updater near the bottom of the Installation instructions screen.
  3.  Restore all Macola ES databases to the new SQL server.
  4. Within SQL Enterprise Manager/SQL Management Studio add the domain users to Security, Logins.
  5. At each workstation browse to the ES Network Installation folder on the new server and run Wsetup.exe.
  6. Open Macola ES and create an empty or demo company per document 21.573.386 to create the MSLLOCKDB database.
  7. Remove and recreate the Macola ES Crystal User (ESCRWUser) per document 17.427.722.
Attachments: None

Key Words: move migrate ES new different server

Additional Resource:
Additional knowledgebase documentation - Knowledgebase
FREE on-demand training - Document: 10.040.533 - Americas Training Start Page

 
  Macola Progression Instructions    

New Progression SQL server - same Progression application server

Revision Date:02/10/2012

Module:  System

Version: Progression 7.7.6xx

Description: Replacing the old SQL Server and moving Progression databases to it. The application server will remain unchanged.The following outline is necessary to properly move the databases and properly configure the application server to see the new SQL Server.

SolutionStep1:  The following list of instructions will need to be followed for the New SQL server:

1. Install Microsoft SQL server as the default option, not an instance, using mixed mode authentication.

Beginning withProgression 7.7.600, this version of Progression software will run on the Microsoft SQL 2008r2 server platform.Earlier versions of Progression software will need to be updated before moving to this platform.

Please Note: log on to the network as the "Domain Administrator".

Prerequisite:For SQL 2008r2 you will need to install the SQL backward compatibility components (SQL-DMO part) on the server and client side to run Visual Menu Builder and the Progression Setup Utility.  
 
Please Note:Because of the technical nature of the prerequisite the compatibility components should be completed by a qualified SQL server IT person or Exact Business Partner. Exact can recommend an Exact consultant to help as well. Please contact your Exact account manager. 
 
The MSI is located athttp://www.microsoft.com/downloads/en/details.aspx?FamilyId=C6C3E9EF-BA29-4A43-8D69-A2BED18FE73C&displaylang=en

If the Server and workstation is 32 bit, use X86 Package (SQLServer2005_BC.msi) - 11273 KB

If the Server and workstation is 64 bit, use the X64 Package (SQLServer2005_BC.msi) - 18569 KB

 

 
2. Loginto Progression as the SUPERVISOR, and change the Progression Supervisor's password to "SUPERVISOR" on the current SQL server. Log back into into Progression as SUPERVISOR to verify the change has taken place. 

3. From the old SQL server, detach the SCREENS, PWE, MSLLOCKDB, and all Progression DATA databases.

4. Copy the SCREENS, PWE, MSLLOCKDB, and all Progression DATA databases to the new SQL server and attach them.

5. Start Management Studio, File, Open, File, navigate to the Progression installation folder (ie: Macsql), open the SQLScript folder and select the msl_locking.sql script. Change the dropdown arrow on the toolbar from MASTER to MSLLOCKDB and execute the SQL script.

6. From Management Studio, New Query, execute the following against ALL Progression databases:
    (SCREENS, PWE, MSLOCKDB, and all Progression DATA databases)

   sp_dropuser supervisor_sql

   sp_dropalias supervisor_sql 

7. From Management Studio, File, Open, File, navigate to the Progression installation folder (ie: Macsql), open the SQLScript folder and select the User7.sql script. Change the dropdown arrow on the toolbar to MASTER and execute the SQL script.  

8. From Management Studio, Security, Logins, right click on SUPERVISOR_SQL,select Properties. Then select User Mapping, select each Progression databases as well as Public and  DB_OWNER Database role membership for: window.

  9.

9.Since this was not a new Progression install there are several SQL Stored Procedures that will not be present and are needed for Progression to operate. Using the attached file (SQL 2008 Progression Stored Procedures.txt) to create the stored procedures, copy the text file to the New server. Open Management Studio, File, Open, File and navigate to where you placed this file on the server, copy and paste into New Query. Execute each SQL script against MASTER.

10. Once the SQL scripts have run, check that the scripts actually created. From Management Studio navigate to Databases, System Databases, Master, Programmability, Stored Procedures. Four Stored Procedures should be shown as...

 dbo.sp_MacMSSLockEraser

 dbo.sp_MSLGetLCID8

 dbo.sp_MSLGetSQLVer

 dbo.sp_MSLOpenTableEraser

SolutionStep 2:  The following list of instructions will need to be followed for the existing Application server:

1. From the Progression installation folder (Macsql) edit the file MACSQL.cfg changing each line SERVER= to designate the New SQL server name.    

[SQL_INFO]

Companies_Installed=2

[Company_005]

Name=Johnnies Bakery

Server=

Database=Data_005

LOCKDB=MsllockDB

FRL=False

[Company_100]

Name=Bobbies Bakery

Server=

Database=Data_100

LOCKDB=MsllockDB

FRL=False

[ENGLISH]

Server=

Database=SCREENS

LockDB=msllockdb

2. From the Progression installation folder (Macsql) navigate to the PWE folder. Locate the PWE.tam file, uncheck read-only, then edit the file to specify the new server name.

[DbInfo]
Server=New SQL servername
Database=PWE
[WebPages]
Support-Name=Search the &Web (Google)
Support-Address=http://www.google.com
Misc-Name=Macola &Home Page
Misc-Address=http://www.macola.com
Misc2-Name=&Exact Software Home Page
Misc2-Address=http://www.exact.nl/custom/PubWebStart.asp?Language=1

3. Log into Progression as Supervisor and open System Manager, Maintain, Visual Menu Builder. From the Visual Menu Builder toolbar select, Tools, Synchronize With SQL...

SolutionStep 3:  The following list of instructions will need to be followed for each of the client workstations as well as the SQL server:

Select Start, Run and type cliconfg, then select OK.



Select a protocol to enable\disable from the right hand side of the screen Enabled protocols by order.

Please Note:If selecting Named Pipes, also select the Alias tab and remove the Alias before saving any changes. You will need to confirm the Named Pipes protocol is enabled on the SQL server.  

Attachments:SQL 2008 Progression Stored Procedures.txt

Key Words:Progression SQL server, application server, SQL server

Additional Resources:
Additional Knowledgebase documentation -Knowledgebase
FREE on-demand training - Americas Training Start Page

 

 

Back to Top

Pointing Your Web Site To A New Server/Database

If you need to point your web site to a new server / database, please follow these steps:
 
Go to the Folder that contains the web site.
Open the "Birddog" file in an editor. (Don't mistake this for the Birddog folder.)
There you'll see two lines.  One says "DataBase", the other "Server".
Edit the value for these lines to match your new server name and database name (if it changed).
If you changed the log-in & password for the SQL server, you'll need to change "User" & "Password" also.
Save.

    Now, to apply your changes, you'll need to reload the site.  Follow these steps to do this:

In the same root folder for the web site, open the file called "Web".
At the end of the first line (after the >), type a space. (just hit the space key)
Save. (Anytime this file is altered, the web site will reload.)


Back to Top

Record Locks - Appear to not be Working

Macola has a Stored Procedure (sproc) named sp_MacMSSLockEraser that is called every time you open a new window. The purpose of this sproc is to remove orphaned Record Locks but, unfortunately, this sproc assumes all Record Locks are created by Macola and removes locks created by other applications, such as BirdDog Software. To fix this, we must comment out the sproc. The only down side is that you will have to manually remove orphaned Record Locks, but fortunately, that is easy to do in System Management | System | Record Locks.
 
To manually comment out the sproc:
  • Open SQL Management Studio
  • Open Databases | System Databases | Master | Programmability | Stored Procedures
  • Right click on MacMSSLockEraser and click Modify
  • Put the following comments under ALTER PROCEDURE....AS
    • /* This Procedure removes Records Locks orphaned by Macola OR
         created by other programs. This is very bad...commenting it out.
      */
  • Put -- in front of every line after that
  • Click Execute
To comment the sproc out with a query, execute the following:
 
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go
ALTER PROCEDURE [dbo].[sp_MacMSSLockEraser]
    @dbname varchar(30),
    @cur_spid smallint = NULL
 AS
/* This Procedure removes Records Locks orphaned by Macola OR
   created by other programs. This is very bad...commenting it out.
*/
/* This Procedure will remove all orphaned records out of the
    the MacLocks table of the specified database. This will be executed
    each time a user launches a new app using the MacMSS.DLL
*/
--DECLARE @lspid varchar(11)
--SET @lspid = CAST(@cur_spid AS varchar(11))
--
--BEGIN
--        PRINT @dbname
--    EXEC("delete from " +  @dbname + "..MacLocks where SessionID not in
--         (select spid from master..sysprocesses where program_name = 'MacMSS')")
--    EXEC("delete from " + @dbname + "..MacLocks where SessionID =" + @lspid )
--END
 

Back to Top

Simple Querys and Timeouts

Simple queries like this one should NEVER timeout...as a matter of fact, any query of the pattern:

SELECT TOP 1 * FROM {tablename} WHERE {Columnname with an index}={value}

should NEVER timeout. If they do that means something has gone horribly wrong...either the SQL server is overloaded or the indexes are heavily fragmented (or the indexes are heavily fragmented causing the SQL server to be overloaded). Rarely is the screen/process that throws this error the problem...it just happened to be unlucky enough to ask the SQL server a question when it was too busy to respond.

Also, note that every piece of the above query pattern is important:

  • TOP 1 - Guarantees 1 record...without top 1 you don't know the number of records coming back...could be 1 or a million...very easy for a million-row query to timeout. Many queries the software executes WILL NOT have a TOP 1 because they are returning a list of some kind
  • Columnname with an index - Important that the query uses a column that has an index. A SELECT TOP 1 query against a million-row table that is properly indexed and the index is defragmented will return in hundreds of milliseconds or less. The same query without the top 1 and without the index could take 10 minutes or more.

Use this procedure to review where the potential issue is.

Back to Top

SQL Timeout SOP

99.99% of all SQL timeouts are due to indexes that need to be maintained (defragged/statistics rebuilt) or growth tables that need to be purged.

Here are some things to check:

Check the DB for Fragmentation

Are tables growing too large?

If every table in the query that is timing out has less than 10% index fragmentation then there may be an issue with the query. Please open a support ticket with the log entry that has the timeout.

Back to Top

Table '{Table Name}' does not have the identity property. Cannot perform SET operation.

You receive an error similar to this:

System.Web.Services.Protocols.SoapException: Server was unable to process request. ---> 8106 Table 'IMMATCST_SQL' does not have the identity property. Cannot perform SET operation. ---> Table 'IMMATCST_SQL' does not have the identity property. Cannot perform SET operation. at System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage message, WebResponse response, Stream responseStream, Boolean asyncCall) at System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters) at BirdDogSoftware.FrameWork.Sync.TableToSync2_3.DataToWebsite(DataSet data) in C:\build\BirdDogFrameworkLayer\BirdDogSoftware.FrameWork\Sync\TableToSync2_3Local.vb:line 397 at BirdDogSoftware.FrameWork.Sync.TableToSync2_3.UploadRecordsMarkedToUpload(String TargetID) in C:\build\BirdDogFrameworkLayer\BirdDogSoftware.FrameWork\Sync\TableToSync2_3Local.vb:line 480 at BirdDogSoftware.FrameWork.Sync.SyncTriggeredTables2_3.BeginSync() in C:\build\BirdDogFrameworkLayer\BirdDogSoftware.FrameWork\Sync\SyncTriggeredTables2_3.vb:line 119


The issue is that BirdDog Software utilizes Microsoft ADO.Net for query generation which requires that the table have an identity column set. All tables should already have this set. If you are receiving this error then something has modified the table schmea incorrectly. Typically, this is fairly easy to correct:

  1. Open Microsoft SQL Server Management Studio
  2. Go to {Your Database}>Tables and right click>Design on the appropriate table
  3. Select the identity column (you may need to compare with a properly functioning database to determine the correct column, but it is typically named ID or A4GLIdentity)
  4. Go to Column Properties>Identity Specification>Is Identity and set it to Yes
  5. Save the table


Back to Top

Tables Growing Too Large - Purge Tables Job

You will find there are tables that can grow very large over time.  For example: logging, carts, page hits, master table audits, and trigger tables to name a few.  It is highly recommended to run the "Purge Tables" job on a regular basis.  Here's how to set it up.  (NOTE: You must be licensed for and running "Job Master" for this function to work.)

  1. Go to Dashboard > System Management > Automation > Jobs
  2. Click the "Add" icon
  3. Select Job Type, "Purge Tables"
  4. Click the "Add" icon
  5. Enter a description in the "Description" text box
  6. Select max hours you want it to run (NOTE: This is labor intensive on your DB.  Do not let it run during daytime business hours.)
  7. Go to "Service Data" tab
  8. Here you'll select the number of days you want to keep for each table (see below for example)
  9. Click on "Edit Job Schedule" icon
  10. Select how often you want the job to run (see note below)
  11. Click Save for the schedule
  12. Click Save for the job

NOTE: When & how often should you run the job?  This job is very labor intensive on the DB and can slow things down.  Therefore, it is highly recommended that it be run at night during off peak hours.  If your DB has grown quite large and you're just starting to run this job, it's recommended you run it nightly for a few hours until it gets caught up.  This may take a couple of weeks.  After that, you can usually set it to run once a week.

Examples of typical time frames we set the number of days to save to.  However, you can set these to whatever you feel works best for you.


Item Master Audit: 365
Item Location Audit: 365
Order Header Audit: 365
Order Line Audit: 365
Page Hit Tracking: 365
Application Logging: 30
Shopping Carts: 180 (NOTE: Customer Saved Carts are NOT deleted by the Purge Tables job)
Trigger Audit Tables: 180
Backup Tables: 365


Back to Top


Dropship

Create PO from Order - Macola Setup

Perform the following steps in Macola to setup auto creating a purchase order for an order with a dropship item.

This is for ES.

Turn on Purchase Order Creation

  • System>Package Settings>Distribution>Order Entry Setup
    • Create Purchase Orders: R=Released

Create Location

  • System>Distribution>Inventory Management>Inventory Locations
    • Create a location for the dropship item

Create Ship-To Code

  • System>Distribution>Purchase order>Ship-to Codes
    • Create a Ship-to code for the location created in the previous step
    • Drop Ship Code: Checked

 Assign Default Ship-to Code (Optional)

  • System>Package Settings>Distribution>Purchase Order Setup
    • Ship-To Code: Set to Ship-to code to code from previous step

Assign Item Location

  • BOM & IM>Items>Maintenance
    • Assign the dropship location as the "Primary" location for the item
    • Go to "Purchasing" tab
      • Create PO from O/E: "Y=User Interface Required"

Placing Order

  • After adding item to order, change the location to the dropship location
  • Click Save
  • "Create Purchase Order" window appears
  • Verify info
  • Click OK
  • You can see the PO# by going to the order in Enterprise (Customer Service>Order Search)
    • It's in the "Ord Rep No" column for that line item

Below is the Macola help doc for this:

Revision Date: 06/24/2013

Module: OE/PO

Version: ES 9.5.XXX

Description: How can we create drop shipments for our OE to PO items?

Solution: The OE to PO Integration allows you to create regular purchase orders or drop ship type purchase orders. Regular purchase orders ship to you but, a drop ship type purchase order ships directly to your customer. The drop ship purchase orders created from O/E will ship directly to the customer on the original O/E order.

To create drop ship purchase orders from O/E, you need to perform specific set up steps. The Create PO from O/E field in the Item Master record controls how and if you can create a purchase order from an O/E order for each item. This field must be set to User Interface Required (Y) for any item (BOM & IM> Items> Maintenance> Purchasing), you want to push Drop Ship purchase orders from O/E.

Next, you will have to define a Ship-To Code in Ship-to Codes Maintenance (System> Distribution> Purchase order> Ship-to codes), to use for drop shipments for any location for which you will create Drop Ship purchase orders. Activate the Drop Ship check box in the Ship-To Codes Maintenance application for each of these codes.

If there is no drop ship ship-to code defined then you can create a new code on the fly. When the User Interface screen opens you can click the search on the Ship-To code field and if the code does not exist already click New. This will open the Ship-to Code Maintenance and a new code can be added.

After setting up your items and Ship-To Codes, you can create Drop Ship purchase orders from O/E. When you enter the customer order, Macola ES will display the Create Purchase Orders - Vendor Info screen, where you can edit Vendor, Ship-To, and Quantity information for the purchase order before it is created. For a Drop Ship purchase order, you will enter a Ship-To Code marked as Drop Ship in Ship-To Codes Maintenance.

Finally, you will print the Drop Ship purchase order using the Print Purchase Orders application instead of printing the order from P/O Entry. The Print Purchase Order application allows you to specify Form 15 for an individual order. If you print the order from P/O Entry, the order will print with Ship-To Code address as the ship to and the order will not drop ship to your O/E customer. Form 15 is identical to the stock purchase order form, except that the customer's address from the O/E Header prints as the shipping address on the purchase order.

After printing, Drop Ship type purchase orders pushed from O/E behave as any Drop Ship purchase order created directly from Purchase Order Entry.

Back to Top


Email - FAQ's

SMTP Server Setup

There are 2 places where you set this up. One is for emails the site sends (like order confirmations).  The other is for emails the system sends out (like when you invoice in Enterprise for Windows).  In each case there's a test button next to the "SMTP Server" text box.  It will test the current settings that are entered (that way you can test before saving the settings).  I usually just send a test email to myself.  It will say "Success" or give you the error.

For the site emails:
Go to System Management>Site Settings
Click edit for the site you wish to set
Go to the "Email" tab
Enter the SMTP info
Run the test
If OK, Save
Click the Reload Site Settings icon

For the system:
Go to System Management>Global Settings
Go to the Email tab
Enter the SMTP info
Run the test
If OK, Save

Back to Top

Emails Fail to Send Using Office365 SMTP Server

You're using the SMTP server settings you got with Office 365 and you get an error (like the following) when you try to send an email from Enterprise for Windows or your Birddog website.

Request: MAIL FROM: SIZE=114 RET=HDRS RCPT TO: ORCPT=Rfc822;Support@Birddogsw.Com DATA Response: 530 5.7.57 SMTP; Client Was Not Authenticated To Send Anonymous Mail During MAIL FROM [MWHPR22CA0056.Namprd22.Prod.Outlook.Com]

The problem is you're most likely using SMTP server "smtp.office365.com".  That server can't be used for "direct send" emails.  You need to use the server setting that contains "mail.protection.outlook.com".  See the following Microsoft help doc: https://answers.microsoft.com/en-us/msoffice/forum/msoffice_outlook-mso_winother-mso_o365b/client-was-not-authenticated-to-send-anonymous/d405bcb0-f40c-42fa-b1b2-477597100123?auth=1

Do an MX Lookup for your email domain (use link below) and use the setting that includes "mail.protection.outlook.com".

https://www.dnsqueries.com/en/mx-lookup.php

 

Back to Top

Where Are Email Addresses Pulled From

Throughout our process, there are many instances where emails are generated. The below is a list of where these email addresses are pulled from according to the process in question:
  • Ecommerce order
    • Entered By
    • Any additional emails entered
  • Customer Service Order Acknowledgement
    • Whatever email address you enter when you click the email button
    • Also, Customer Service has the ability to "turn off" emails, if this is done then Shipping Notifications and Invoices will not be emailed
  • Shipping Notification
    • Ecommerce
      • Entered By
    • Customer Service
      • Ordered By
    • If Macola Order or neither of the previous assigned an email address, and the order has a Ship To Address
      • Ship To Email
    • If still no email
      • Customer Email
  • Invoice
    • Ecommerce
      • Entered By
    • Customer Service
      • Ordered By
    • If Macola Order or neither of the previous assigned an email address
      • Customer Email
    • If still no email
      • Customer's AP Email
    • In addition, if an email was assigned before the Customer's AP Email then the AP Email will be CCd
  • Lost Password
    • Whatever you enter assuming it is a valid email address in the system
  • Purchase Order
    • Whatever email address you enter when you click the email button
  • Order Campaign
    • Selected User's email address

Back to Top

Error Saving Email Template - Can't Insert Value NULL

If you get the error below when trying to save an email template, run the following query against the database.  Please contact Tech Support for assistance if you are not experienced with DB admin work.

alter table bdemailtemplates alter column "To" varchar(255) NULL

Cannot insert the value NULL into column 'To', table 'BDEmailTemplates'; column does not allow nulls. INSERT fails.
The statement has been terminated.

Back to Top

Order Confirmation, Password Recovery, etc. Emails Not Displaying Correctly

In 9.6 and later, if a place holder is messed up; i.e. displays %ord-no% instead of the order number, then you most likely have single "%" signs that need to be changed.

Any single "%" must be changed to "\%".

Example:  change "100%" to "100\%".

However if it's a pair of "%" signs, leave them as is.

Example: "%ord_no%"  would stay as is.

You will find the email templates in Dashboard | System Management | System | Email Templates
Click the "Edit" icon for the template you want.
Click on the "HTML Template" tab
Open in HTML view ("HTML" in the tool bar)
Add the "\" where needed.
Click Update
Click Save

Back to Top


Freight FAQ's

Freight Calculation Logic when Capturing Credit Card

Logic for calculating freight when authorizing or capturing a credit card in Enterprise for Windows (Transactions>Credit Cards>Capture Credit Card or Transactions>Credit Cards>Authorize Credit Card):  click here

Back to Top

Residential Flag Conversion

We changed where the "Residential" flags are stored in the database.  If you're running a newer version and the system is not rating freight correctly because of Residential / Commercial issues, you'll need to run the queries below to move the Residential flags from the old tables to the new tables.

THE FOLLOWING IS FOR MACOLA ES ONLY.  DO NOT RUN ON PROGRESSION DATABASES.

BEFORE RUNNING THESE UPDATE QUERIES, BACKUP THE BDCUSTOMERSUPPORT & BDSHIPTOSUPPORT TABLES.

-------------------------

CUSTOMER DEFAULT SHIP-TO ADDRESSES:

This query does the update:

update bdcustomersupport
set bdcustomersupport.residential = cicmpy.yesnofield5
from bdcustomersupport (nolock)
inner join cicmpy (nolock) on bdcustomersupport.cus_no = cicmpy.debcode

---------------------------

Use this query to view the results (you can run it before the conversion to see the before & after):

select cs.cus_no, cs.residential, c.yesnofield5 from bdcustomersupport cs (nolock)
inner join cicmpy c (nolock) on cs.cus_no = c.debcode

 

SAVED SHIP-TO ADDRESSES:

This query does the update:

update bdshiptosupport
set bdshiptosupport.residential = a.yesnofield5
from cicmpy c (nolock)
join addresses a (nolock) on a.account = c.cmp_wwn and a.type = 'DEL'
join bdshiptosupport s (nolock) on s.cus_no = c.debcode and s.ShipTo_No=a.AddressCode
where c.debcode is not null

---------------------------

Use this query to view the results (you can run it before the conversion to see the before & after):

select c.debcode, s.cus_no, a.AddressCode, a.yesnofield5, s.residential
from cicmpy c (nolock)
join addresses a (nolock) on a.account = c.cmp_wwn and a.type = 'DEL'
join bdshiptosupport s (nolock) on s.cus_no = c.debcode and s.ShipTo_No=a.AddressCode
where c.debcode is not null
order by c.debcode

 

Back to Top

Free Freight on Item Not Calculating Correctly

   You have an item that is marked for free freight (Item Edit>Logistics tab).  However, when you add that item to a cart that has other items, the total freight price drops.  Since the item you added has free freight, you expected the freight price to stay the same. 

    What actually happens is the percentage of the free item's freight weight of the total weight is removed from the total freight price.

The following example used actual UPS ratings and includes a 1 lb. package weight added to the total weight.

Example:

item1 = 2 lbs.
item2 = 1 lb.  and has free freight
Add item1 to cart.  Freight = $16.07
Add item2 to cart.  Freight changes to $12.74

The total weight for the order = 4 lbs.  (includes 1 lb. package weight)
If item2 was not free freight, the total freight price would be 16.98.

Item2 is 1/4 of the total package weight and therefore 1/4 of the freight price is free.
1/4 off of $16.98 = $12.74

Back to Top

Do Items with No Weight or Dimensions Rate Freight

If you have an item that does not have a weight or dimensions assigned, will it rate freight?

The determining factor here is if you have a packaging weight assigned to the ship via code.  Typically, the answer to this would be yes.  However, it is something that must be set up in Enterprise for Windows.  To setup, do these steps:

  • Using Enterprise for Windows
  • Go to Maintain>Freight>Shipping Methods
  • Double click on the Ship Via code you want to edit
  • Go to the "Pricing" tab
  • There you should see a weight range for shipping (i.e. "=>0 to <= 150")
  • Notice the "Packaging Weight" entry
  • This is typically set to "1" (this is 1 lb. of packaging materials)
  • Double click on that line if you want to edit this amount

If the item has no weight or dimensions, the package will still rate for the 1 lb. of packaging material.  If this is set to "0" and the only items on the order have no weight or dimensions, then the freight will not rate.  You will see an error for that ship via code when you click the "Rate Freight" button.

 

Back to Top

Freight Quote Checklist

Invariably the freight quote doesn't match what you expected or the quote you are receiving from the shipper's website because you are comparing apples to oranges.

To verify a freight quote, use the shipper’s website, taking all of the following details into consideration.

What to look for

 

  1. Verify the Item

Is the item weight correct?

Warehouse Management | Items | Enter Item Number | Logistics | General | Freight | Weight

Is the item oversized/dim weighted?

(This is typically a large box that doesn’t weigh much.)

Warehouse Management | Items | Enter Item Number | Logistics | Freight Dimensions

Does the item add any handling charges?

Warehouse Management | Items | Enter Item Number | Logistics | General | Freight | Handling Charges

  1. Verify the Ship Via

Does the ship via include packaging weight?

Enterprise for Windows | Maintain | Freight | Shipping Methods | Choose the shipping method you are rating against.

Does the ship via have a price modifier?

The system allows the price returned from the shipper’s API to be discounted or increased. If you have a price modifier of .9 make sure and multiply the freight component of the quote from the shipper’s website by .9

Enterprise for Windows | Maintain | Freight | Shipping Methods | Choose the shipping method you are rating against. | Pricing

Does the ship via have any exceptions?

All of the above settings on a ship via can have exceptions based upon country, state/province, customer type, and customer number.

Enterprise for Windows | Maintain | Freight | Shipping Methods | Choose the shipping method you are rating against. | Pricing |Add new Pricing | Exceptions | Add Exception | Choose Customer Number, Customer Type, State, or Country

Is the ship via configured to add any per package or per shipment charges?

Enterprise | Maintain | Freight | Shipping Methods | Choose the shipping method you are rating against. | Pricing |Add new Pricing | Weight of Packaging Material

Does the order you are comparing have multiple items?

If so, are you comparing the same package count and weight on the shipper’s website?

Multiple factors can affect how the system calculates packages including:

  • Package Weight Bias (normally the max package size)
  • Package Weight too small (packages to combine with other packages)

Enterprise | Maintain | Freight | Shipping Methods | Choose the shipping method you are rating against. | Packaging

  1. Verify the Address of the ship from location

 

System Management | Locations

Packaging logic is covered in detail at How does the system determine the number of packages.

Setting up freight is covered in detail here.

  1. Request a quote on the Shipper’s Website
  1. Go to the shipper’s website
  1. Login using your credentials.
  1. Create an identical shipment
    • Weights
    • Dimensions
    • Origin location address
    • Ship to address
    • Packaging weight
    • Transit times

Is the From address the same that was entered on the BirdDog site?

Is the To address the same that was entered on the BirdDog site?

Are these addresses the same ones plugged into the BirdDog ship fields?

Is the rate in BirdDog being compared to the same type in the other shippers?

Are special services used for the shipper?

Back to Top

Best Way Shipping

Best Way System

The Current System:
Typically, distribution companies choose either FedEx or UPS to be their shipper, and they use them exclusively. They get a contract with “great” rates from that shipper. On their website, they will ask their shoppers, “Do you want this UPS Ground? UPS 3 Day? or UPS 2 Day?"

The choices available to the shoppers are not who will deliver the order, but when will it arrive?

These distributors all have negotiated the “best rates” with a shipper. However, usually hidden fees are behind every zip code. Is it rated residential? Add on a charge. Who has the better rates to CA? FedEx or UPS? Who has the better rates to TX? Are you really getting the best rate to every zip code? Are you getting the best rate to every address in every zip code? The answer is probably not. You are paying too much for shipping if you are using this method.

Imagine the shipping company salesperson bringing you a contract. You take the contract and begin to sign it, knowing if their prices are too high, they will not win the package, and the competition will get your business.  Then, the salesperson snatching that contract from you, going back to the office to redo it, and bringing you yet a better rate. This scenario is a reality with the Best Way System!

The Best Way System:

What if you could get all the shippers to compete with one another to give you the absolute cheapest rate regardless of the zip code or address in which it is sent?

You can! BirdDog Software has created Best Way.

The whole freight rating logic is available in our Freight Module. Whenever you buy our freight module and you already have an API code for the shippers, Best Way chooses the best way to ship.

When our customers purchase our freight module, our software rates all of the shippers. For example, when you have an account with FedEx, FedEx will give you the credentials you need to put in our software for us to be able to talk to FedEx on your behalf. The same is true for UPS or USPS.

For instance, a shopper goes to the website of one of our Best Way clients. That shopper places a number of items in the shopping cart and fills out the ship to form. Our software goes to work deciding which shipper will provide the cheapest rates to that address for that order.

The cheapest rate appears. The shopper agrees to place the order. The API is picked. The customer pays the rate quoted.

You win the sale in part because the shipping costs are affordable.

After you have already setup valid accounts for UPS and FedEx, follow the steps below.

In order to set this up in your Freight Module, follow these steps:

  1. Set up a Best Way account.
    1. System Management | Freight Account | Add New Freight Account
    2. Choose Best Way from the drop-down menu.
    3. Enter Best Way in the description field.
    4. The User name, password, and API password can be "BW."
    5. When using the Best Way rating method, it is important there is only one ship via code per shipper/shipping method combination. So, there should only be one Best Way Ground, for example.
  2. Set up Best Way Ship Vias in Site Settings
    1. System Management | Site Settings | Your Site | Ecommerce | Ship Via Code
    2. Input the Best Way options here so Ecommerce customers will only see the Best Way for shipping Method.

Back to Top

Freight Quoted for Order Differs from Shipping Interface

It's not unusual for the freight charge that's quoted during the order process to be different than the amount quoted from your shipping interface (i.e. WorldShip, ShipGear, etc.).  This could be a minor variation like gas surcharges that are constantly changing or an order placed on the last day of the month and you run the shipping interface on the first when prices may change.  It could also be a signicant amount due to an inadequate set up of the item.  An example of this would be that you didn't take into account dimensional rating.  Freight companies are now charging by size as well as weight.  (Let us know if you need help with that.)  So, the question is, what gets used for the order? 

The idea here is that we don't want to upset the customer by changing (increasing) the amount that was originally quoted.  Therefore, the system is designed to use the original amount quoted during the order process IF that quote was a valid freight quote.  The hope is that some of the minor differences are a little higher and some a little lower, so it all balances out for you in the end.  If it's a major difference like the case of dimensional rating, you'll need to make some set up changes for the items.

To get a valid freight quote for shipping interface purposes you have to be licensed and be using our Freight Quote, Picking System, and Shipping Interface modules.  If that's not the case, then the system will use what's returned from your shipping interface (i.e. WorldShip, ShipGear, etc.).

If you decide to charge actual freight, BirdDog recommends stating this information during check out to inform the customer that freight quotes are estimates only and actual freight charges will be charged.


Back to Top

UPS Testing

If you need to test UPS freight charges, go to the URL below and do the following:

Enter the To & From address info. (Make sure this info is correct.)
Click Update
Enter package info
Enter your account number (located in the "How will you pay the shipping charges?")
   Without the account #, the freight will rate at a higher amount.
Click Update
You should get a list of options and amounts.

https://wwwapps.ups.com/ctc/request?WBPM_lid=homepage/ct1.html_pnl_ctc

Back to Top

Multi-boxed Items Not Calculating Freight Correctly

You have an item that gets shipped in multiple boxes.  You have the "Package as Componets" box checked, but the freight is not calculating correcctly.

Here's something you can try.  For the item that you want in 2 boxes, the supported method to is to turn on the Package as Components setting for the item.  However, there is a way to fool the system using the Freight Dimensions screen.  What you do is enter 0 to .5 in the Quantity Range (Quantity Start = 0, Quantity End = .5).  That will split each item into 2 boxes.  (It wasn't designed to be used that way, but it works.)  Make sure to uncheck the "Package as Components" box.

If you want the package split into 4 boxes, make the "Quantity End" = .25, etc.

You will find thess settings in Dashboard | Warehouse Management | Items.  Edit Item.  Go to Logistics | Freight Dimensions tab.  Click Add under Custom Freight Dimensions

Back to Top

Display a Message in the Shipping Method Box on the Checkout Page

To display a custom message in the Shipping Method box on the checkout page, do the following:

  1. Log in to your site with a user that has page editing permissions.
  2. Go to site name/Categories.aspx?Id=Shipping_Method_Instructions
  3. Click the "Edit Page" menu item at the top left of page
  4. Enter the message in the Long Description text box
  5. In the "Roles" tab, make sure Default & Anon > View is checked
  6. Save

Back to Top

Package Weight Restrictions Setup


  1. Go to Enterprise for Windows > Maintain > Freight > Shipping Methods
  2. Double click on shipping method you want to change
  3. Go to "Packaging" tab

 The Packaging tab has the following options:

  • Package Weight Bias - The maximum weight package you want the system to normally create.  This is typically between 30 and 50 pounds.
  • Package Weight Too Small - Packages of this size or smaller will be merged into other packages.
  • Maximum Package Weight - Maximum weight a package can be allowed to ship through this Shipping Method.
  • Flat Rate Add per Shipment - Charge to add to the shipment

Back to Top

How To - Ship Kit Items Separately

If you want to ship components of a kit separately and not as one unit, do the following:

Go to Enterprise for Windows
Maintain > Items...
Load the kit item in question
Go to the Logistics tab
Check "Package as Components"
Click "OK"

This will cause the system to consider the components as separate items for shipping instead of one unit.

Back to Top

Free Freight for Order

To give free freight for an order, please do the following:
 
In Warehouse Management > Items
  1. Click the Add Item icon
  2. In the Main Setup tab
  3. Create a new item number.  This will be the name of the coupon to be entered on the order.
  4. Description = "Free Freight" (or something like this)
  5. Activity Code = "Active"
  6. Stocked = unchecked
  7. Controlled = unchecked
  8. In the Coupon tab
  9. Set Item As Coupon = checked
  10. Percentage / Amount = 0
  11. Coupon Expiration = last date of Free Freight offer
  12. Number of Uses = 10000
  13. Number of Uses Per Customer = 10000 (unless you want to limit use)
  14. Applies To = Whole Order
  15. Save
In System Management > Order Rules
  1. Click the Add Order Rule icon 
  2. Description = name of this offer
  3. Enter Start & End dates
  4. Eval Method = Cart Changes
  5. Triggers = click Add
    1. Trigger = "Item"
    2. Criteria = name of coupon (item number from above)
    3. Save
  6. Results = click Add
    1. Result = "Free Freight On Order"
    2. Criteria = blank
    3. Save
  7. Save
When an order is placed and the coupon code is entered, a line will appear on the order stating "Free Freight" with a line amount of $0 and the freight charge will be $0.

VARIATIONS
Free Freight in the U.S
Add Trigger
  1. Trigger = Ship to Country
  2. Criteria = US
Free Freight in the U.S. except Alaska, Hawaii, & Puerto Rico
Along with the "Ship to Country" trigger above, add another trigger
  1. Trigger = Ship to State
  2. Criteria = AK,HI,PR
  3. Inverted box = checked (With the inverted box checked, if one of these states is selected then the trigger will return false and the coupon will NOT be applied.)

Back to Top

Free Freight for Item Using a Specific Ship Via

To set up free freight for an item when using a specific ship via, do the following:

Go to System Management>Order Rules
Click Add Rule
Enter a name for your rule in the Description box
Click Add Trigger
Select "Item" for Description
Enter Item # in Criteria
Save
Click Add Trigger
Select "Ship Via Code" for Description
Enter Ship Via code you want (see codes in System Management>Ship Vias)
Save
Click Add Results
Select "Free Freight On Items"
Save
Save

Whenever the item is selected and the ship via matches, it will give free freight for the item. 

Back to Top

How to - Display Ship Via Long Descriptions on Orders

You have a message that you'd like to display relating to the shipping method on the Check Out Confirm and/or Thank You pages (also, the Order Confirmation email).  For example, instead of just saying "Truck", it might say "Truck, will call with rates"
 
To do this, you have to customize the _Secure/CheckOutConfirm.aspx & _Secure/Thankyou.aspx pages to display the Ship-via long description instead of the short description.  Also works on the confirmation email.  This will display your message you set up in System Management | Ship vias long description on those pages.

Go into your _Secure/CheckOutConfirm.aspx & _Secure/Thankyou.aspx pages and change the following:

Change "cart.Ship_Via_Description" to "cart.Ship_Via.LongDescription"

You can make the same change in your Order Confirmation email template.

Back to Top

Don't Calculate Freight for Orders That Must Go By Truck

You have items that must go by truck and you don't want to calculate freight at the time of the order.  Instead, you will call the customer later and let them know what the freight charges will be.
 
To set up an order to show no freight charge when an item on the order has to go by truck, do the following:

STEP 1
1. In System Management | Ship Vias, click Add.
2. Code = "TRK" (or whatever you want).
3. Short Desc. = "Truck".
4. Long Desc. = "Truck - Will call with freight charges". You'll want this so the customer doesn't think they're getting free freight.
5. Shipper = "No Freight Charge".
6. Shipping Method = "LTL".
7. Save.

STEP 2
1. In System Management | Site Settings, select web site.
2. In the ecommerce tab, make sure "TRK" (or whatever you name you set in Step 1.2) is in the "Ship Via Codes" list.
3. Save.
4. Reload the site (click on the two blue circular arrows). This will apply your changes.

STEP 3
1. In Warehouse Management | Items, go to Item Edit for the Item you're referring to.
2. Go to the Logistics tab.
3. In the Required Shipping area, set:
4. Method = "LTL"
5. Description = "This item must be shipped by ground. Will call with freight charges."  Or something of this nature.  Whatever you put here will be displayed under the item on the Checkout page.
6. Save.

Now, whenever a customer selects an item that must be sent by truck, freight will not be calculated for the order and they'll get a message letting them know that you will call with the freight charges.

Back to Top

Freight Charges Different For Same Address

If a customer is seeing different freight charges for the same address, here are some things to look for.  
 
If the customer is rating the freight as a "Guest" and then logged in with their Customer number, they can see different rates for the following reasons:
  1. If the Terms Codes are set different, especially if one is "COD", the may quote a higher rate.
  2. If one is set  to "Residential" and the other not, the "Residential" will quote a higher rate.
Also, freight quotes can change because the Shippers are constantly adjusting rates for fuel cost.

Back to Top

Customer Pickup Order Shows "Outside of Freight Services" Error

This is most likely occurring because the order's weight is exceeding the max limit set in Shipping Methods.  Since this is a customer pickup order, you shouldn't have to worry about a max weight limit.
 
If you go to Enterprise for Windows | Maintain | Freight | Shipping Methods, double click on "CPU", then go to the "Pricing" tab.  There, you will see a Weight Range.  It is probably set to "=>0 to <= 150".  (150 lbs. is the max for UPS.)  Change the 150lbs to 20000lbs (same as Truck).  This should eliminate the problem.

Back to Top

Freight - How Do I Setup & Use a Regional LTL Carrier?

Scenario: There may come a time when you want to use a regional freight carrier instead of one of the big names like FedEx or UPS. While you are not able to rate the order using BirdDog since the shipper doesn't have a recognized API, you can obtain the shipment freight cost in other ways - a website, for example, or a phone call to the freight carrier in question.
 
Resolution: First, setup the freight carrier in Enterprise. The usual methods are used here and this presumes you are setting this up on the Website.
  • Setup the Freight Account 
  • Setup the Ship Vias - Shipper is Unknown, Shipping Method is appropriate one
  • Enable for Ecommerce - Add the Ship Vias under the Site Settings | Ecommerce tab.

Once the regional LTL freight carrier is set-up, a customer purchasing items from your store can use this option as normal ... with the caveat that the customer won't get real-time rates. Instead, you'll need to have a comment on the checkout advising the customer that freight will be generated after the fact. Thus, the steps would be:

  • Customer visits site, orders items and checks out.
  • Customer Service receives the email alerting you that you have received this order
  • Customer Service should review this order and obtain the freight charge through the method that you will use (perhaps by giving the regional freight carrier a phone call or visiting their website to rate the package.)
  • Customer Service then edits the order in Customer Service and apply the freight charge.
  • While viewing this revised order, you can then have it email a new copy of this order (complete with the added freight charge)
  • Proceed through your regular procedures to fulfill this order.
 

Back to Top


Images - FAQ's

How do I protect images on my site

Images displayed from your web site originate from a public server.  Note there is no way to protect your images from being copied by others and uploaded to their web site;  if they can view it, they can copy it. 

 

The top 3 ways to protect the images that your company has spent a large amount of time and assets on from plagiarism are as follows:

 

The copyright solution. 

One solution is to include copyright information right on the graphic, a watermark.  While a really industrious graphics thief might be able to alter the copyright text, chances are they won't want to go to that trouble. Thieves are rarely industrious. If they were, they'd make their own clipart.

 

The javascript solution.

This really should not be considered a solution.  Especially to anyone who wants the pictures.  You can disable the right click function of a mouse with a simple Javascript. Disabling right clicking can be annoying to legitimate surfers. What if they want to copy your contact information? They won't be able to. Unless . . . they disable Javascript in their browser. Poof! Right clicking returned.

 

The software solution.

How serious are you about protecting your images? If you're really serious, you will probably have to part with some money. Digimarc, for instance, sells ImageBridge Pro, which allows you to embed identifiers into your digital images, enabling the viewer of the image to be sent directly to image-specific information on the content owner's Website. While this won't necessarily prevent surfers from stealing your graphics, it lets them know you're serious about protecting them. They might move on to an easier mark.

Back to Top

Images - Alignment

You have an image on a page that you want to align with another item on the page.
 

There are a few ways to handle this, all equally valid:

  • Edit the image and add white-space on either side, such that the width is equal to the item you want to align it to - probably the easiest/safest.
  • Add an "align" attribute, set to "center," to the image; would look like <img align="center" src="https://www.birddogsw.com:443/path/to/image" />—this can be done by double-clicking the image in the editor and setting alignment to center - this is my second choice.
  • Add an "hspace" attribute to the image markup with an appropriate amount (AKAhorizontalspace; adds the indicated value, usually in pixels, to either side of the image)—would look like <img hspace="#px" src="https://www.birddogsw.com:443/path/to/image" />
  • Enclose the image in <div style="text-align: center"></div>
 

Back to Top

Using Multiple Images on ItemForm

There are a handful of steps necessary to support the multi-image platform on ItemForm. Once complete, you will have multiple image available on the item - when you hover over one, you will see a larger version of it in the main image area.
  • Go to the Item in question.
    • After editing it, click on the Image tab.
    • In the Small Image field, browse to and select the original file image. DO NOT RESIZE. The system does that for you automatically.
    • Now click to the Files tab
    • Click Add.
      • Browse to the next picture you want to appear in the image column. As before, do not resize the image. Use the regular sized version.
      • Populate the Alternate Text and Title as you desire. There are tool-tips explaining these.
      • In the Group dropdown, select Image List.
      • Save.
    • Repeat for the other images you want to see in the image column.
    • Save.
At this point, you're good to go. It's as simple as that.

Back to Top

Website Recommendations

See Website recommendations here

Back to Top


Importing to Database - FAQ's

Can't Import Special Characters

If your import is not importing special characters correctly (like the Trademark symbol), the import CSV file must be saved in UTF-8 format.

Back to Top


Jobs - FAQ's

Export Query Result(Email)

Follow these steps to create a job that will email the results of a query.
NOTE: If the query does not return any items, the email will NOT be sent.

Before proceeding, you must first create the query you are going use in System Management | System | Queries.

  1. Go to System Management | Automation | Jobs
  2. Click "Add Job" icon
  3. In "Job Type" DDL (drop down list), select "Export Query Result(Email)"
  4. Click "Add"
  5. In the "Main" tab
    1. Description - Give your procedure a name
    2. Query - Select the query you created from the DDL
    3. Subject - Enter the subject line of your email
    4. From - Enter email "From" address (blank uses default email set in Site Settings)
  6. Go to Roles, Groups, or Users tab and select who all you want the email to go to
  7. Click on "Edit Job Schedule" icon
    1. Select Frequency and Time schedule
    2. Click Save
  8. Click Save

The job should now be listed in the Jobs listing.

To see how to make it so you only get one email per unique item, click here.

Back to Top

Mass Create Item / Locations

This job does not create Locations, it creates Item / Locations.
  • For it to create anything, the Item / Location for the item range and the Location to copy "from" must exist
  • Location to Copy "to" must exist in the Location file
  • Item / Location "to" must not exist for the Item being copied
  • UserID to Notify must be a valid User (this is the UserID guid, not the LoginID, see the BDUsers table)
  • You must have the Inventory Console license
This is the format for the Service Data Definition:
Starting Item Number, Ending Item Number, Item / Location to copy from, Item / Location to create, UserID To Notify

Example:
1000,1010,WH1,WH2,6a67dc7f-e063-44f2-84e0-ab960253d890

You can set the Edit Job Schedule for a one time use and Job Master will run the job at that time.

Back to Top

New Job DDL is Empty

You click on the icon to add a new job and the DDL in the pop-up is empty.
  1. Run the Crystal Reports Runtime msi on the server.  Tech Support can supply this.
  2. Make sure the JM version is up to date.

Back to Top

Print Pick Ticket Job Fails

If the Print Pick Ticket job fails to run, you can try adding the following to the startup section in the BirdDogSoftware.JobMaster.exe.config file:

^startup useLegacyV2RuntimeActivationPolicy="true">

    ^supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.1" />
    ^requiredRuntime version="v4.0.20506" />

NOTE: Change ^ to < when adding to config file.  This was done so the text would display (instead of being read as html code).

 

Back to Top


Macola - FAQ's

Error Logging In - Progression

This is for Macola Progression only.

All of a sudden you are unable to log in multiple users to Macola.  You might get a message stating you have exceeded the max number of users or you might get an error message like this:

The C:\macsql\PROSQL7.CFG is either missing or does not contain the necessary information. 
Please make the necessary changes and restart Progression Workflow Explorer.

Have users exit Macola and delete all files from the macsql\users directory.

Back to Top

Menu Items Disappeared

If you're suddenly missing menu items in Macola, your user data folder my have gotten corrupted.  You can try the following: append "-old" to the \users\user name\AppData\Roaming\Exact folder (\users\user name\AppData\Roaming\Exact-old).  The system will recreate the folder and with any luck you'll have your menu items back.

Back to Top

Synergy / EM10 FAQ's

Back to Top

Updating Macola with a Synchronized Site

Scenario: You have a synchronized environment (local website, syncs back and forth between the 'live' site we host) and you want to update your Macola to the latest version.

Resolution: Disable BirdDog synchonization triggers to prevent schema errors during the update process. There are essentially three steps that must be completed and they are surprisingly easy:
  1. Turn Sync Triggers Off. Using the Enterprise for Windows software, navigate to Maintain | Sync | De-Activate Sync Triggers. Follow the steps that come up. The system may prompt you to restart Enterprise for Windows.
  2. Update Macola. Follow whatever procedure you are provided to complete your update. It is essential that you do not update until the above-mentioned triggers are deactived.
  3. Turn Sync Triggers On. Using the Enterprise for Windows software, navigate to Maintain | Sync | Activate Sync Triggers. Follow the steps that come up. The system may prompt you to restart Enterprise for Windows. Triggers must be turned back on before any data updates occur to keep the remote site in sync.
And that's it. There's really nothing more to it than this.

Back to Top


Orders - FAQ's

Save Order/Invoice in PDF Format

To save an order/invoice in PDF format, do the following:

  1. Go to Dashboard | Customer Service | Order Search
  2. Search for and select order/invoice #
  3. Click on "Printer" icon (upper right corner)
  4. Order/Invoice will appear
  5. Right click on order/invoice
  6. Select "Print"
  7. If "Destination" is not set as "Save as PDF"
    1. Click on "Change" under "Destination"
    2. Select "Save as PDF"
  8. Click "Save"
  9. Select destination folder
  10. Enter file name
  11. Click "Save"
Order/Invoice will be saved in the destination folder with the name you entered in a PDF format.

Back to Top

Order Won't Post - Selection Code Not "X"

For an order to be able to post, it must have Status = "9" and Selection Code = "X".  If the Selection Code does not equal "X", you can try changing it and and run the post process again.  Run the following query to change the Selection Code to "X".

Update oeordhdr_sql
Set selection_cd = 'X'
Where ord_no like '%order number%'

NOTE: Replace "order number" with the actual order number for the order that won't post.

Click here to see a list of all Status & Selection Codes.

Back to Top

Open Order Analysis Not Displaying All Orders

When using the Sales Analysis | Open Order Analysis tool, you notice there are orders missing from the list.  This could be caused by one of the following reasons:
  1. This is a line detail report. If the orders don't have any lines, they want show up.
  2. It supports permissions.  Therefore, you have to have View permission to the order's customer to see the order.

Back to Top

Why Are My Orders Coming In "On Hold"

If you are licensed for Order Rules, your orders will automatically be placed "On Hold".  To set up Job Master to process them, click here.

If you don't want your site to automatically place orders "On Hold", do the following:
  1. Go to System Management | Site Settings
  2. Select the site you want to edit
  3. Go to the Order Settings tab
  4. Check the "Process Order Rules Synchronously" check box
  5. Save
  6. Click the "Reload Site Settings" icon

Back to Top

Process On Hold Orders - Job

If you are licensed for Order Rules, then your orders will come in with the "On Hold" flag set.  You can use Job Master to automatically take the orders off from hold.

If you don't want your site to automatically put your orders "On Hold", click here for instructions.

NOTE: Orders that are "On Hold" because of "Customer over their credit limit" or "Customer over their terms" will remain on hold until manually processed.

To use this feature, do the following:
  1. Go to System Management | Jobs
  2. Click the "Add Job" icon
  3. For Job Type, select "Process On Hold Orders"
  4. Click the "Add" icon
  5. Enter a name for your job in the Description
  6. Click "Edit Job Schedule" icon
  7. Frequency = "Every X Minutes"
  8. Minutes = Most customers set this to "1"
  9. Save
  10. Save


NOTE: You must be licensed for Job Master and have it running for this process to function.  Please contact your Account Manager if you need more info about Job Master.

Back to Top

Process Awaiting Carts - Job

There is a Job you can set up in System Management | Jobs called "Process Awaiting Carts".  Typically, the only time you would use this job is if your customers place very large orders that take a long time to process and the system is timing out because of this long processing time.  If you set your system to use this job, then the cart won't be turned into an order at the time the customer clicks the place order button.  The system will assign an order number and send a confirmation email (for the customer's sake) and then place the cart in a queue awaiting Job Master to run this job and convert the cart into an order.

To use this feature, do the following:
  1. Go to System Management | Site Settings
  2. Click on the site you want to apply this to
  3. Go to "Order Settings" tab
  4. Check the "Use Job Master to Process Orders" box
  5. Save
  6. Click the "Reload Site Settings" icon
  7. Go to System Management | Jobs
  8. Click the "Add Job" icon
  9. For Job Type, select "Process Awaiting Carts"
  10. Click the "Add" icon
  11. Enter a name for your job in the Description
  12. Enter an email address in case of an error in the "Service Data" text box
  13. Click "Edit Job Schedule" icon
  14. Frequency = "Every X Minutes"
  15. Minutes = Most customers set this to "1"
  16. Save
  17. Save

This will now process any carts that are waiting to be converted into orders.

NOTE: You must be licensed for Job Master and have it running for this process to function.  Please contact our Professional Services department if you need more info about Job Master.

Back to Top

Order Status & Selection Codes

There are 2 primary codes that are used to track orders thorugh the system.  The "Status" code tracks the overall status of an order as it goes through the system.  The "Selection" code monitors the status of the order as it travels through the billing process.

Order Status Codes:

C - Credit Hold
1 - Booked
2 - Back Order
3 - Released Back Order
4 - Pick Ticket Printed
5 - Confirmed Picked
6 - Packing Slip Printed
7 - Confirmed Shipped
8 - Selected for Billing
9 - Invoice Printed
L - Closed
P - Posted

Order Selection Codes:

C - Order Complete. Order has been entered properly or has been unselected for billing.
I - Order Incomplete. Order is being edited or was not saved completely.
N - Order Not Okay. Problem during order entry.
S - Order Selected.  Order Selected for billing.
X - Order Invoiced.  Invoice has been printed.
Z - Order Posted. Order has been posted.

Typical Process an Order Goes Through

Step in Process Status Code Selection Code Line Selection Code
Order Placed - On Credit Hold C C  
Released from Credit Hold 1 C  
Pick Ticket Printed 4 C  
Packing Slip Printed 6 C  
Selected for Billing 8 S  S
Order Captured 8 S  S
Order Invoiced 9 X  S
Order Posted P Z  P

Back to Top

Order Won't Post - Out of Balance

This is for when the pre-post report says the order is out of balance.

If it is a birddog order (ecommerce, webservice) we want to see it and fix any problems.
 
If it is a macola order, try this first:
  • Reprint the invoice, and select 'no' , it did not print correctly, to uninvoice it.
  • Unselect the order.
  • Then run the order through the select and print process again, validating any data along the way.
This should clear up any weird state issues.
If there is weird data somewhere (like inventory data or something), this should help us better locate the trouble spots.

Back to Top

Order Won't Pick

If you have an order that won't Pick, try the following:
 
Bring the order up in Macola.  If you get a message that says, "This order is incomplete. Do you want to make it complete."  Click "Yes" and try again to Pick it.

Back to Top

Duplicate Orders - How-to Handle Customer Inquiries to Avoid for Synced Sites

These procedures presume that your site is being hosted by BirdDog and utilizes the sync process.
 
The scenario: A customer calls-in, stating they placed a web order and would like to know the status or make a change. However, when the CSR looks for the order locally, they can't find it. Not finding an order in the system, the CSR then recreates the order for the customer. The original order syncs down and the customer now ends-up with a web order and a CSR placed order.

 

Some points on this issue:
  1. Web orders will normally download within 60 minutes, but can sometimes take longer before they're available in the local system. If the customer just placed it and they are calling to check on the status, it would not be unusual for the order to appear missing due to this needed time period for synchronization. You just need to wait a bit longer.  Explain to the customer that there is a time delay for the order to make it's way to your system. Check with the customer to make sure they got an Order Confirmation email (NOT an invoice) sent to the email account they used to log-in to the site. (Some do not read the check-out page that tells them to look for it.)  If possible, log-in to the live (hosted) site and see if the order is there in Customer Service.  If it's there but not on the local site, then you'll now it hasn't synced yet.
  2. If the web order was placed more than a few hours earlier and still can't be located, then ask the customer to either forward their Order Confirmation to you or check your local email account that receives the Order Confirmations and see if it has been received. If you have a confirmation but no order, immediately forward it to the employee designated to handle these types of situations so that a high priority can be placed on it and it can get tracked down. Make sure the "designated employee" is aware of the situation as to prevent delays and irritated customers. 
  3. Make sure to get the customer’s email address. Email addresses are unique and are a great way to ID a customer. This is especially important for our customers who have added web sales to an existing Macola system. What can happen is that the customer creates a new account for themselves on the web because you never had their email or you did not send them a web store account email after you did get their email. Now they have a new web-based account AND the one that has been in Macola. So, when a CSR goes to look for the order, it can be easy to miss.
  4. Bottom line – don’t make a replacement order for a web customer until you give your "designated employee" a chance to check it out first. They should check for the order on the live (hosted) site and get the info back to the appropriate CSR ASAP. If deemed necessary, they should contact Technical Support to help troubleshoot the issue to see what the slow-down was so adjustments can be made to prevent them in the future.

Back to Top

Order Types - on Web Site

Order is placed on the web site. It is classified as received. Order is downloaded and converted from quote to an order. The order would now be classified as Accepted and should display that way after a upload changed. After order is posted it moves to the invoice history. 

Q type = Received  O type = Accepted   I type = Invoice History

Back to Top

volgnr5 error message when Posting

I am running the posting routine in Enterprise and I get the message, ‘The following error occurred: volgnr5 too long (Max length=5), value: 100000’

This message is caused by a limitation in the Exact Software table structure. The maximum amount of entries allowed in the AMUTACK table is 99,999.

To remedy this issue, in ES go to the System Tab and then under Company open Package Settings.

Under Financial select Source Journal setup.

On the right side you will see Order Entry and here is listed the Order Entry Sales Journal.

Click the search button and here select New.

Create the new Journal and make sure it is assigned in the Source Journal setup screen when you save and exit Package Settings.

If you are posting more than 99,999 transactions then you may need to create several new Order Entry Sales Journals.

Back to Top


Password - FAQ's

Add a Note to Password Section of New User Form

If you want to add a customized note to the Password section on the New User form, do this:

  1. Go to Dashboard > Website Management > Web Manager
  2. Highlight: Site > Support Pages > UserForm.aspx
  3. Click Add icon (Add new page below the selected page)
  4. In Short Description, enter name of page (i.e User Form Password Tips)
  5. Add your text to be displayed in the Long Description
  6. Go to "Page Information" tab
  7. Enter "UserForm_PasswordTips" in the "Code" box
  8. Go to "Roles" tab
  9. Make sure Anonymous & Default roles are checked for "View"
  10. Save

Now, go to the Login page for your site and click "Create Account". Your message should be in the Password section.

Back to Top

How To Change a Password

There are 2 places that you can work with a user's password: BRAIN | Contacts & System Mangement | Users.  Which one you use will depend on what you are licensed for and/or what role you are assigned.  i.e.  You must be licensed for BRAIN to use BRAIN | Contacts.  You have to be assigned a role that has permission to use System Management | Users.

BRAIN | Contacts
Go to BRAIN | Contacts
Search for and click on the Name of the Contact you want (make sure the type is "Contact" and you have the correct email address for the contact)
Go to the "Password" tab
Explanation of the items on that page
  • Password (& Confirm Password) - Use this if you want to manually enter a password for a user.  Enter a password then click either the "Save" icon or "Email New User" or "Email Password" and the new password will be saved.
  • Email New User - Clicking this will send the "New User" email with the user and password info.  If you have entered a new password (see step above) or have clicked "Randomize Password", the new password will be emailed.  NOTE: You must be logged in with a legal email user name for the email to be sent (i.e. you can't be logged in as "admin", that's not an email address ).
  • Email Password - Clicking this will email the user their password.  If you have entered a new password (see 2 steps above) or have clicked "Randomize Password", the new password will be emailed.  NOTE: You must be logged in with a legal email user name for the email to be sent (i.e. you can't be logged in as "admin", that's not an email address ).
  • Randomize Password - Clicking this will reset the user's password to a randomly generated password.  You must then click "Email Password" or "Email New User" so the user is emailed the new password.
  • Clear Password - This will save the Contact and reset the password to blank so the system will treat the contact as a new user during the account creation process.
So, to send a user their password, just click the "Email Password" button.  If you want to change their password, either enter it manually OR click "Randomize Password" (don't do both) and then click "Email Password".


System Management | Users
Go to System Management | Users
Search for and click "Edit" for the User you want
Go to the Password tab
Explanation of the items on that page
  • Require Password Change - If you check this and Save, the user will be required to change their password the next time they log in.  After they do this, the check box will clear itself.
  • Password (& Confirm Password) - Use this if you want to manually enter a password for a user.  Enter a password then click either the "Save" icon or "Email Password" and the new password will be saved.
  • Email Password - Clicking this will email the user their password.  If you have entered a new password (see step above) or have clicked "Reset Password", the new password will be emailed.  NOTE: You must be logged in with a legal email user name for the email to be sent (i.e. you can't be logged in as "admin", that's not an email address ).
  • Reset Password - Clicking this will reset the user's password to a randomly generated password.  You must then click "Email Password" so the user is emailed the new password.
So, to send a user their password, just click the "Email Password" button.  If you want to change their password, either enter it manually OR click "Reset Password" (don't do both) and then click "Email Password".

Back to Top

Password Hashing Conversion - 9.8.3 and beyond only

As of version 9.8.3, we have added new password security features that revises how we handle password encryption. More information on these new password features can be found on the What's New page for version 9.8. To convert your database to this new encryption, follow the below steps:

  1. Go to Dashboard > System Management > Global Settings
  2. On the main tab, you should observe Enable hashing user passwords button. Click on it. You will see a pop-up that wishes you to verify whether you want to run this since this process is irreversible.
  3. Clicking on this button will creates a new job called "Purge Unsecure User Data"; this job is set to run Daily but has not been (initially) assigned a time to run.
  4. Navigate to the Job (System Management > Automation > Jobs) and edit "Purge Unsecure Data."
  5. Set the Service Data Definition - this is how long you want this job to run at its max and it defaults to 8 hours. In all likelihood, the job will not run this long.
  6. Edit the Job Schedule and set when you want the job to run. Just to safe, it is advised to start this late in the day, especially if you have set the job to run for 8 hours or more.
  7. Save.
  8. After the job has run, not only have all existing passwords been hashed, but new customers will automatically use this format.

Back to Top


PCI Compliance Issues

Below are some PCI compliance issues that have come up.

Cross Scripting could be present. 
Cross site scripting is prevented on all pages through a ViewState form tag. It is regenerated on each request. There is no way for an attacker to exploit it.

Password field needs to have autocomplete=”false” attribute added.
autocomplete="off" provides no actual security fixes.  Most browsers and password managers ignore it. 

Login page must be forced https.
Go to Site Settings | SSL tab for site.
Make sure "Redirect To SSL" box is checked.
Save.  Reload Site Settings.


Production Orders (Work Orders)

Work Order Status Codes

C - Complete

D - Disassembly

I - In process, partial production

P - Released & Printed Order

R - Released

U - Unreleased

X - Something went wrong, unrelease then release again

Back to Top


Queries

Orders on Back Order

This will list the open orders that have an item on back order.

select distinct ord_no from oeordlin_sql (nolock)
where qty_bkord > 0
order by ord_no

Back to Top


Roles / Permissions - FAQ's

Customer Roles

In Customer Service > Customer Info there's a tab called Roles.  These are NOT the permissions that are given to a customer.  Rather, it's where you set what Roles have what Permissions for accessing that customer. 

Example:  If you want the Role "Employee" to be able to search for and view this customer, you would check those permissions for the Employee role.

Back to Top

View Details - How to Turn On in DB

Starting in v9.5, we added a new Permission category to the Roles called "View Details".  Basically, what this did is give you the ability to turn pricing on & off.  This comes in handy if you want to do something like hide prices from anonymous users so only users logged in can see prices.  If you were running an earlier version of Birddog (<= 9.1) then your DB didn't have this permission in it.  Since it got added when you upgraded, you now have to set that permission.  There's 2 steps that need to be performed.  1. Add the Permission setting to your default Item/Web Categories Roles.  2. Update the Permission settings in your DB for the current Roles.

Set the Default Settings

This will set the default Permissions for any new Items or Web Categories.

  • Go to Enterprise Dashboard>System Management>System>Roles
  • Click the Edit icon for the Role you want to edit
  • Go to the "Default Permissions" tab
  • Go to the "Items and Categories" tab
  • Set "View Details" to the setting you want (do you want prices to show or not for this Role)

-------------------------------------------

Update the Roles/Permissions in the DB

Typically, what we want to do here is turn on "View Details" for any Role that has "View" turned on.  If you need to set yours differently (like the example above where Anonymous can't see prices), please contact Tech Support for assistance.

First, run this query to see if you have any records that need to be updated.  It will show any records that have "View" set but not "View Details".

select * from BDRolePermissions (nolock)
where EntityType in (1,2) -- Items and Webcategories
and rights & 2 = 2 --Right has View on
and rights & 64 <> 64 -- Right has View Details off

Second, run this query to turn on "View Details" for any Role that has "View" turned on.  CAUTION: It is strongly recommended that you backup the BDRolePermissions table prior to running the following query.  See query at bottom of page for backing up the table.

update BDRolePermissions
set rights = rights | 64
where EntityType in (1,2) -- Items and Webcategories
and rights & 2 = 2 --Right has View on
and rights & 64 <> 64 -- Right has View Details off

----------------------------------------------------

Query to backup BDRolePermissions table (replace yyyymmdd with todays date):

Select * into BDRolePermissionsyyyymmdd from BDRolePermissions

Back to Top


Sales Reps - FAQ's

Sales Reps - How-to Set Up

There are basically two ways in which a Sales Rep is set up so that they can be assigned to an order. The first method is for Reps that typically work for you and will have access to the Enterprise Customer Service console. The second is for Reps that are typically not employed by you, but will have orders from their client base in which they may be paid a commission.
 
Before you start for either scenario, you must first create the Sales Rep. If you are using Macola ES, you must create the Rep in the Human Resources section and then assigned them as a Sales Rep. If you are using Macola Progression, you can either create the Rep in Macola or just go into Dashboard | System Management | Sales Reps and add them there (much easier). Please refer to Macola Help if you need assistance in Macola.
 
There is an order of precedence in which Sales Reps are assigned to an order. This is very important in assuring the right Rep gets credit. Please click here to review this.
 
If you're going to use Sales Reps, it is suggested you do the following to prevent having to manually change the Sales Rep on each order. If you don't do this, every order will be assigned the default Sales Rep set up in Site Settings.
  • Go to Dashboard | Site Settings | Site URL | Order Defaults tab.
  • Set Sales Person to "No Default Set". Save. Reload Site Settings.

SALES REPS THAT WORK FOR YOU & HAVE ACCESS TO CUSTOMER SERVICE

  • Go to Dashboard | System Management | Users.
  • Select the User log-in associated with the Rep and set their Roles to a minimum of Employee & Customer Service.
  • Set the Sales Person to the Sales Rep in question. Save.
  • Any order they enter will be assigned to them.

SALES REPS THAT ARE INDEPENDENT AND WILL NOT HAVE ACCESS TO CUSTOMER SERVICE

  • Go to System Management | Users.
  • Select the User log-in associated with the Sales Rep, set their Role to Default.
  • Set the Sales Person to Sales Rep in question. Save. Any order they enter will be assigned to them.
  • There are 2 scenarios in which orders may placed:
    • SALES REP WILL ENTER ORDER, CUSTOMER WILL BE BILLED
      • Go to System Management | Users
      • Select the User log-in associated with the Sales Rep.
      • In the Customers tab, add each of the Sales Rep's Customers to the "Current User's Customers".  Save.
      • This will allow the Sales Rep to log-in, select from their list of customers and place an order for them.
      • The Customer will be billed.
    • SALES REP WILL ENTER ORDER, SALES REP WILL BE BILLED
      • The Sales Rep will be the Bill-to (Customer).
      • The Sales Rep will have a Ship-to address entered for each of their customers.
      • The product will be shipped to the Customer & the Sales Rep will be billed.
      • This is handy for businesses that want to handle the money transactions yet have the product drop-shipped directly to the customer.

 

Back to Top

Sales Rep Selection - Order of Precedence

A Sales Rep is assigned to each order. The following shows the order of precedence in which the Sales Rep is selected:

ECOMMERCE (WEB) ORDERS
  1. ORDER DEFAULT (optional) - If an Order Default is set, this will be the first choice as the order's Sales Rep. If Order Default is set to "No Default Set", then go to the next item. Order Default is set in the Dashboard | System Management | Site Settings |website URL| Order Defaults tab.
  2. USER DEFAULT (optional) - The User Default is second in line. If the User Default is set to "No Sales Rep", go to the next item. The User's Sales Rep is set in Dashboard | System Management | Users | select user | User Information
  3. SHIP-TO DEFAULT (optional in ES) - If the first two items are skipped, then the Ship-to's default Sales Rep will be applied to the order.  The Sales Rep selected for Ship-to's is set in Macola.  ES: AR | Customers | Maintain | select customer | Shipping tab.  Progression: AR | Maintain | Alternate Address.
  4. BILL-TO DEFAULT - If the first three items are bypassed, then the Sales Rep will be set to the Customer's Sales Rep. This is set in the Dashboard | Customer Service | Customer Info | Financial tab. Since this is the final option, there must always be a Sales Rep assigned to a Customer. The Sales Rep Default for a new customer is set in the Dashboard | System Management | Site Settings | website URL | Customer Defaults tab. The Sales Rep selected here will be automatically assigned to all new customers.
 
CUSTOMER SERVICE ORDERS
  1.  SALESPERSON DDL (optional)- If a Sales Rep is selected from the Salesperson DDL on the Order Entry page, that Sales Rep selection will take precedence and will be applied to the order.
  2.  ORDER DEFAULT (optional) - If an Order Default is set, this will be the first choice as the order's Sales Rep. If Order Default is set to "No Default Set", then go to the next item. Order Default is set in the Dashboard | System Management | Site Settings |website URL| Order Defaults tab.
  3.  SHIP-TO DEFAULT - (optional in ES) If the first two items are skipped, then the Ship-to's default Sales Rep will be applied to the order.  The Sales Rep selected for Ship-to's is set in Macola.  ES: AR | Customers | Maintain | select customer | Shipping tab.  Progression: AR | Maintain | Alternate Address.
  4.  BILL-TO DEFAULT - If the first three items are bypassed, then the customer's default Sales Rep will be applied to the order.  This is set in the Dashboard | Customer Service | Customer Info | Financial tab. Since this is the final option, there must always be a Sales Rep assigned to a Customer. The Sales Rep Default for a new customer is set in the Dashboard | System Management | Site Settings | website URL | Customer Defaults tab. The Sales Rep selected here will be automatically assigned to all new customers.

Back to Top


Sales Tax FAQ's

Sales Tax Calculation Logic

BirdDog uses the following logic to calculate tax on an order: 

  1. Is the Order using a saved Ship To address and does the Order's Ship To Country/SubDivision/City match the saved Ship To's Country/SubDivision/City? If yes, use the tax code/schedule assigned to that Ship To address.
  2. Does the Ship To Country/SubDivision/City match the Customer's Country/SubDivision/City? If yes, then use the tax code/schedule assigned to the Customer.
  3. Does the Order's Ship To City have a Tax Code / Schedule in System Manager | Countries>SubDivision>Location, if yes then use it.
  4. Does the Order's Ship To SubDivision have a Tax Code / Schedule in System Manager | Countries>SubDivision, if yes then use it.
  5. Does the Order's Ship To Country have a Tax Code / Schedule in System Manager | Countries, if yes then use it.
  6. If none of the above apply, use the default Tax Code / Schedule from Web Site Settings | Customer Defaults.

When creating a new customer in BirdDog, similar logic is used to automatically set the tax code or schedule at the customer level:

  1. Does the Customer's State|Province have a Tax Code / Schedule in System Manager | Countries, if yes use it.
  2. Does the Customer's Country have a Tax Code / Schedule in System Manager | Countries, if yes use it.
  3. If none of the above apply, Use the default Tax Code / Schedule from Web Site Settings | Customer Defaults.

Logic Assumptions:

  • Default Customer Tax Code / Schedule is set to a non taxable Code / Schedule. See Customer Defaults in Site Settings.
  • All Countries and States / Provinces in which you are taxable have a default Tax Code / Schedule. See Countries / Provinces.

BirdDog honors the taxable/non taxable setting on items and the Tax Schedule assigned to the Item / Location.

(Tax Schedule on the Item / Location is the trick to charging sales tax correctly in complicated scenarios)

To determine if/when you should charge tax speak with your Sales Tax advisor.

 
Scenarios:

Assigning Tax Schedules in the State(s) where I have Nexus

Company XYZ charges tax in Oklahoma only.

  • In Customer Defaults, Customer Tax Code is set to Non Taxable.
  • In System Management/Tax Codes we set up tax codes for Oklahoma State Tax plus the individual tax codes for all cities and counties in Oklahoma.
  • In System Management/Tax Schedules we set up tax schedules that 'package' the individual tax codes into one schedule. For instance, I may have a tax schedule that includes the individual taxes for the State, City and County.


When a new customer visits the website, adds items to the cart and checks out they are creating a customer. 

  • If that customer is in any State besides Oklahoma they are assigned a tax code of Non Taxable.
  • If that Customer is in the State of Oklahoma they will be assigned the Tax Code / Schedule from Country | Provinces. 

Back to Top

Guest Checkout Not Calculating Tax Correctly

When setting up the Guest Customer in Customer Service | Customer Info, the Tax Code set in the Financial tab must match the state set in the Address tab.  When a guest customer uses the ship-to state that matches the Guest customer's default state, the system uses that default tax code.  If they enter a different state, the system uses the tax setting set in System Management | Countries/Provinces.

Back to Top


Search - FAQ's

How extensive is the out of the box search?

The standard BirdDog Search functionality will return items and categories for matches based on item number, short and long descriptions (for both categories and items), fields, Meta Keywords, and Meta Description.

Back to Top

Item Search Results Rankings

The order in which items are displayed in search results is determined by three things.

For the first two, go to Dashboard > Warehouse Management > Items and bring up the item in question.  In the Page Information tab, you will see "Primary Sort Order" & "Secondary Sort Order".  These numbers will determine the sort order when compared to other items.  A lower number will put an item higher in the list. 

Order of Precedence for Search Results:

1.  The Primary Sort has first priority.  This value is entered by you, the user.

2.  If the Primary Sort numbers are the same, then the Secondary Sort number will be used.  This number comes from an automated process.  Click here to learn more about Secondary Sort Order.

3.  If Primary & Secondary Sort numbers are the same, then the items will display in alphabetical order by their Item Number.

Hint: If you want to change the Primary Sort number, don't use small numbers (i.e. 1,2,3).  Use bigger numbers (i.e. 100,200,300 or 1000,2000,3000).  That way you can add other numbers in-between should the occassion arise.


Back to Top

Primary vs Secondary Sort Order

When you look at the Page Information tab in Item Edit for an item (Dashboard > Warehouse Management > Items), you'll see that there are 2 Sort Orders for search results: Primary & Secondary.  Primary is set by you, the user.  However, the Secondary Sort Order is created by an automated process that is setup in the Jobs section of Dashboard.  That job sums the number of lines for each item shipped over a time period (set in the job) and enters the negative of that value (since the smaller the number the higher in the sort order). We use lines instead of quantity so that popular items move towards the top, but keeps one time large shipments or small / high volume items from getting too high in the ranking.

To set up the Secondary Sort Order job to run, do the following:
  1. Go to Dashboard > System Management > Automation > Jobs
  2. Click the Add icon
  3. Select "Update Items Secondary Sort Order" from the drop down list (DDL)
  4. Click the Add icon
  5. Enter a description (i.e. "Secondary Sort Routine")
  6. Enter a number of days between jobs in the "Service Data" text box (NOTE: don't leave existing text there, it wants a number)
  7. Click the "Edit Job Schedule" icon
  8. Set how often you want this to run
  9. Save time schedule
  10. Save job
NOTE: Since this is a "Job", you must be licensed for and have Job Master running.  If you are not currently licensed for Job Master, please contact us to learn more about it.

To learn more about Item Search, click here.

Back to Top

Site Search Results Rankings

Our Site Search is an out-of-the-box product from Microsoft.  To see how it ranks the returned results, please visit "How Search Query Results Are Ranked (Full-Text Search)".

Back to Top

What Determines If My Item Shows in a Search

Whether you're using Site Search or Item Search, the main controlling factor if an item is returned is set using Roles/Permissions.  This is set in the Item Edit page.  To set the search permissions for customers for a particular item, do the following:

  • Go to Warehouse Management | Items
  • Select Item to Edit
  • Go to Roles tab
  • For Anonymous & Default, check or uncheck the "Search" permission check box
  • Save

Items also have a "Status" setting in the Item Setup tab (Planning, Forecasted, Active, & Obsolete).  This setting does NOT determine if the item will be returned in a search.  Use the Permission setting.

Back to Top


Security - FAQ's

Encrypt Passwords - How to

If your User Login Passwords aren't encrypted in the the BDUsers table and you want them to be, follow this procedure.

Using Enterprise for Windows
Go to Maintain > Security > Encrypt BDUser Passwords 
Note: If they are already encrypted, you'll get a message stating that.
It will ask you if you're sure about 3 times.

IMPORTANT: Restart website when done (or nobody will be able to login).

WARNING: Once encrypted, you can't reverse the process.

Back to Top

Windows Authentication (Use Trusted Connection) - Setup

There are two ways in which your website can connect to its database: SQL Server Authentication & Windows Authentication (aka Use Trusted Connection). 

SQL Server Authentication uses an SQL user login along with a password.  This is fine when working on your DB's using SSMS (SQL Server Management Studio).  However, it becomes a security risk when used by a website to connect to the DB because that login & password are stored non-encrypted in a config file.  If that file falls into the wrong hands, your DB's become free game to whomever.

The more secure route is Windows Authentication.  It uses a Window's User/Login created just for the prupose of connecting the site to the DB.  That way no DB login & password are stored in any config files.  The document will cover how to convert your website from SQL Server Authentication to Windows Authentication.

Before we start, there's one more thing we have to look at and that's how your site & DB are configured in regards to server setup and use of Active Directory.

  • If your site & DB are on different servers, use the same domain, and you use Active Directory, click here.
  • If your site & DB are on the same server, click here.

Back to Top


Serial / Lot

Purge Zero Quantity Serial / Lot Items

This is for Macola ES.

-In Macola, go to System/Utilities/Distribution/Inventory Management
-Select "Purge Zero Quantity Serial/Lots"
-Check the box that says "Purge Zero Quantity Serial/Lots"
-Item No. & Location boxes should be marked "ALL" (or enter your specifics)
-Click OK

Back to Top


Updates - FAQ's

Updating Your Web Site

Instructions for installing updates to your web site.

I find it easiest to use 2 Windows Explorer windows.  The first window is for the new unzipped update build.  The second window is for your current web site folder.

You should receive one of two types of updates.  Either a full site update with all new folders and files or just a bin folder update.

Complete Site Update:

  1. Make a backup of your current website folder (just in case).
  2. Delete all contents of the website folder except the birddog.config and robots.txt file.
  3. Select everything in the new build folder and copy to the website folder.
  4. Start/refresh the website.

Bin Folder Only:

  1. Make a backup of your current website folder (just in case).
  2. Open the bin folder in the new build folder.
  3. Hit ctrl-A to select all the folders & files, then ctrl-C to copy them.
  4. Highlight the website bin folder and hit ctrl-V to paste the folders & files there.
  5. Say yes when asked if you want to replace existing folders or files.
  6. Start/refresh the website.
  7. NOTE: There may be times when you are directed to delete the existing bin folder and start fresh.
It's normal for the new site to take a few minutes to build and come up for the first time. NOTE: There may be ocassions where a major upgrade will be implemented.  In those cases, you may receive additional instructions from your Project Manager or Tech Support.

Back to Top


Vendor - FAQ's

What Vendors Are Displayed on the Item Page

If you're logged in as a User type, you may see extra information at the bottom of the item pages about the items, such as item availabilities, costs, etc.  One of the tabs is Vendor Info.  It shows what vendors the item is available from.  To see and edit this list in Macola ES, do the following:

In Macola ES
Go to System > Distribution > Purchase Order > Item Vendors
Search for the item number
A list will be returned of all the vendors that are assigned to that item number.

Back to Top