For non-individual sellers only!
Program includes the following features:
Program has internal interpreter and allows writing complex expressions or small programs to calculate new price, margin and final price. You can use all sums and properties retrieved from Amazon in such expressions or scripts (small programs for interpreter).
Program "Amazon Best Prices" consists of two components: Configurator and Repricing document. First component allows administrators to configure repricing. Second component allows staff to make repricing using prepared configurations.
There are two ways to create lists of products which you are going to reprice:
To select lists of products to reprice from ERP you have to define: the ERP table where products listed, field with ASIN or SKU. In addition you may define other fields of the table: column with cost price, minimum price and with listing price to save new calculated prices. Also program allows to define a filter for products selected from ERP.
If you can't relate products with lists in ERP, you may retrieve them from Amazon. Program makes a request for appropriate report and saves listings as flat-files on disk. Then program will suggest repricing batches (by 100 or 1000 or all items) of items from saved listings.
Program with window which includes two pages.
Has "document" behavior. It means that, like any office document, configurator has "New", "Open", "Save" buttons and allows the creation of several files with settings to provide several kinds of repricing of products listed on several Amazon marketplaces ( com, com.uk, de, ... ).
Configurator allows the testing of settings and making real repricings.
Window has required fields. Program will check them when you try to save settings or to make a real repricing.
Includes Amazon marketplace connection properties and ERP data source properties. Also requires the setting of the error journal file.
You may obtain Marketplace ID, Merchant ID, Access key and Secret key here : https://developer.amazonservices.com/. Click "Sign up for MWS" and follow instructions.
Almost all of Amazon properties are required.
In order to test the connection, the type of ERP data source and a valid connection string (in the case of a database) are required.
The connection string builder can be used ("Build connection string" button) to create a valid connection string.
First, switch on "FBA" checkbox if you use "Fulfillment By Amazon".
Then define two groups of settings for "ERP repricing" and "Listings repricing", and calculation expressions/scripts.
|Table||The table of ERP with list of products. Table must include a column with ASIN or SKU. Click "..." button to select table from existing.|
|ASIN/SKU column name||Key column with ASIN or SKU. SKU is preferable, because of it must be unique for all your listings. Click "..." button at right of text box to select existing column from list.|
|Cost price column name||Column with cost price. Cost price is needed to calculate margin to prevent possible losses. Click "..." button at right of text box to select existing column from list.|
|Minimal price column name||Additional sums to control profit and to prevent losses. You may use MinPrice variable in calculation of prices or margin, you may filter items by MinPriceDifference column when sent new prices to Amazon or when delete items from repricing.|
|Price column name||You may define a column with current Amazon listing prices in ERP table to store new calculated prices.|
You may set a default filter for selection products from ERP. Filter can be too complex. Can include any number of nested brackets. Each pair of brackets consists of filter conditions (for columns of ERP table) and nested brackets. Also pair of brackets has control to select logical operation ( OR / AND ) for conditions and nested brackets inside.
|Additional Join||If you need to relate table with products with another table (to use additional filter conditions, for example) , define join condition. Refer to main table by it's name. Make sure that syntax is valid for database type of your ERP.|
|Additional Join||If you can't define filter expression with using of "Default filter" dialog, write it using of SQL syntax valid for your ERP database type.|
|Quantity greater than zero||When program retrieves reports from Amazon, such reports include quantity of rest of product on Amazon. You may reprice only products with positive amount.|
There are three sums which you can calculate by writing expressions or scripts: new price, margin and final price. Click button at left of appropriate field with expression to write/modify script.
"Expression" is one line without "return". Program evaluates expression and assign the result for appropriate sum.
"Script" is a small program with several lines for interpreter. You may use constants, variables, operators, brackets. There is a programmer's guide for "Dynamic Objects, Expressions and Scripts in .Net", but you have to remember following main rules:
You can use following variables writing a script to calculate any sum:
|ASIN||String||Amazon ASIN. Use as string in expressions. For example: if (ASIN‹"B00000001"); .... ASIN is unique for marketplace, but does not have to be unique for ERP. Several SKU with different conditions and prices for one ASIN is allowed.|
|SKU||String||Seller SKU. Unique for all your listings on Amazon, but not unique for Amazon. SKU must be unique for your ERP. Use as string in expressions.|
|Title||String||Name or description of product. Use as string in expressions. For example: if (Title.Contains("Karl Marx")); ....|
|Brand||String||Use as string in expressions.|
|SalesRank||Integer||Maximum sales rank for all categories on Amazon. Use as integer in expressions.|
|Condition||String||"New" or empty for new products. Else "Used" or any other valid for Amazon. Use as string in expressions. For example: if (String.IsNullOrWhiteSpace(Condition) || Condition.Trim().ToLower()=="new"); ....|
|CostPrice||Decimal||If you have defined the column with "CostPrice" in your ERP table in settings, then you may use CostPrice in expressions as decimal. For example: markup=FinalPrice-CostPrice; .... Else you have to assume that your mark-up is a percent from current price. For example: if(CostPrice>0.0); markup=FinalPrice-CostPrice; else; markup=CurrentPrice/1.25; end;. Pay attention that all decimal constants are used with dot and decimal places 0.0 !|
|CurrentPrice||Decimal||Program retrieves from Amazon. Use as decimal in expressions.|
|CurrentShipping||Decimal||Program retrieves from Amazon. Use as decimal in expressions.|
|CurrentPriceLanded||Decimal||Sum of CurrentPrice and CurrentShipping. Use as decimal in expressions.|
|CurrentRegularPrice||Decimal||Program retrieves from Amazon. Price without any charges. Use as decimal in expressions.|
|LowestPriceNew||Decimal||Lowest listing price for products with "New" condition. Program retrieves from Amazon. Use as decimal in expressions.|
|LowestPriceUsed||Decimal||Lowest listing price for products with non "New" condition. Program retrieves from Amazon. Use as decimal in expressions.|
|LowestPrice||Decimal||Lowest of LowestPriceNew and LowestPriceUsed.|
|LowestPriceNewLanded||Decimal||Lowest landed(listing price + shipping) price for products with "New" condition. Program retrieves from Amazon. Use as decimal in expressions.|
|LowestPriceUsedLanded||Decimal||Lowest landed(listing price + shipping) price for products with non "New" condition. Program retrieves from Amazon. Use as decimal in expressions.|
|LowestPriceLanded||Decimal||Lowest of LowestPriceNewLanded and LowestPriceUsedLanded|
|CompetitivePriceNew||Decimal||Lowest competitive price for products with "New" condition. Program retrieves from Amazon. Learn about "competitive prices" on Amazon site. We recommend use LowestPriceNew. Use as decimal in expressions.|
|CompetitivePriceUsed||Decimal||Lowest competitive price for products with non "New" condition. Program retrieves from Amazon. Learn about "competitive prices" on Amazon site. We recommend use LowestPriceUsed. Use as decimal in expressions.|
|CompetitivePrice||Decimal||Lowest of CompetitivePriceNew and CompetitivePriceUsed|
|CompetitivePriceNewLanded||Decimal||Lowest competitive price and shipping for new products.|
|CompetitivePriceUsedLanded||Decimal||Lowest competitive price and shipping for used products.|
|CompetitivePriceLanded||Decimal||Lowest of CompetitivePriceNewLanded and CompetitivePriceUsedLanded.|
|MinPrice||Decimal||Additional price from ERP to calculate profit and to prevent losses. For example: if (NewPrice›MinPrice);NewPrice=CurrentPrice;. Program won't reprice items where price not changed (new price == current price).|
|Height||Decimal||Program gets from Amazon, but you can change it. Additional property to calculate sums(shipping). But we recommend always use CurrentShipping.|
|Length||Decimal||Program gets from Amazon, but you can change it. Additional property to calculate sums(shipping). But we recommend always use CurrentShipping.|
|Weight||Decimal||Program gets from Amazon, but you can change it. Additional property to calculate sums(shipping). But we recommend always use CurrentShipping.|
|Width||Decimal||Program gets from Amazon, but you can change it. Additional property to calculate sums(shipping). But we recommend always use CurrentShipping.|
|New price||Default expression is: return LowestPriceLanded-CurrentShipping-0.01;. So, we take lowest price and make our new price in 0.01 less.|
|Margin||Before calculating margin, program takes calculated new price and asks Amazon to estimate fees. So, you can use two additional variables in script of margin calculation:
Default script for margin is:
CostPrice=Decimal.Round(CurrentPrice/1.25,2); // If cost price not set then assume our mark-up is 25%;
|Final price||If not set - new price will be saved on Amazon. Default expression is: return NewPrice;. In additional you can use Margin variable to refer calculated margin.|
Shows dialog with default filter, defined in ERP products repricing settings and allows changing filter conditions. Then selects data from ERP table, retrieves products and their properties by ASIN or SKU from Amazon and adds into repricing document which makes calculations of new price, margin and final price.
First, program checks to see if there any reports with listings from Amazon on computer? If report with listings exists (retrieved earlier), then program asks: use existing report or make new report request to Amazon and update old report with new?
After report with listings is accepted/received, next dialog allows adding into repricing document one hundred or thousand of items (if the number of products in your listings is too big).
Then program adds products from listings to repricing document which retrieves products data from Amazon and makes calculations.
You may prepare several configurations and save them as different files with "dtoarp" extension. For example: C:\Users\All\MyAmazonRepricingConfig.dtoarp
You have to adjust a launch of repricing document and have to pass a parameter with full path of file of configuration. Just edit shortcut "Amazon Best Prices. Repricing documents" command like:
C:\Program Files (x86)\DataOdyssey\Amazon Best Prices\ARP.exe C:\Users\All\MyAmazonRepricingConfig.dtoarp
If you run the repricing document without the link to the configuration, the program will prompt for the location of the configuration file. When you click "Reprice ERP products ..." or "Reprice Listings ..." in Configurator, Configurator passes configuration to repricing document without saving to any file.
Repricing document is implemented like any office document and has "New", "Open" and "Save" buttons. You may prepare any number of documents and may keep them in ERP database or exchange folder.
Repricing document must have unique name. Program generates it for each new document. If ERP exchange datasource is folder, then program saves repricings as files with names the same as names of document with "dtoarpdoc" extension. If ERP data source is database, then program will create two tables: DTOMPAZ_REPRICING_HEADERS and DTOMPAZ_REPRICING_ITEMS.
Most common are: create new document with selection products from ERP using default filter, or create new document with selection products from listings, retrieved from Amazon.
It is very important to remember one rule. If you add products by ASIN, ASIN does not have to be unique in your ERP. Possible situation when you have products with one ASIN but with different conditions (new or used) and different prices. In this case program will add several items into repricing document (for each SKU). So, adding items by SKU is more preferable way.
For each item added to document program does:
After items selection and repricing you have to analyze errors returned by Amazon or occurred during calculation. Then delete rows with errors.
Check items and sums. You can mark and delete items using filter conditions. Explore system menu ( "Blank"/"Document" button at top-left of window).
And you may change some of sums (CostPrice, MinPrice, NewPrice, ...). Program will recalculate changed items.
Then you may save document in ERP source and make repricing on Amazon. Use "Reprice ..." button or appropriate menu items.