User Tools

Site Tools


public:webfronts_auto_import_api

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
public:webfronts_auto_import_api [2021/02/05 12:53] – [Setting Up Your WebFronts Test Account (for POS Vendors)] jeffpublic:webfronts_auto_import_api [2021/04/15 20:20] (current) – [Sending Data to WebFronts] jeff
Line 30: Line 30:
  
 ===== Sending Data to WebFronts ===== ===== Sending Data to WebFronts =====
 +==== Swagger API / OpenAPI Specification ====
 +https://demo31142.appliances.dev.rwsgateway.com/apis/webfronts/webfronts-import-api-v1.0.0.html#/
 +
 +==== Using the WebFronts App URL Wizard ====
  
 WebFronts has a rich system for importing data from CSV files. For users, there is a "wizard" in the WebFronts App (Tools > [[https://app.webfronts.com/data_import/upload_file.html | Import from Excel]]) that guides them through the decisions that need to be made: WebFronts has a rich system for importing data from CSV files. For users, there is a "wizard" in the WebFronts App (Tools > [[https://app.webfronts.com/data_import/upload_file.html | Import from Excel]]) that guides them through the decisions that need to be made:
  
   * Which column in the CSV file contains the RWS model number (used to match rows)?   * Which column in the CSV file contains the RWS model number (used to match rows)?
-  * Which column in the CSV file contains the RWS brand code (used to distinguish duplicate model numbers in different brands)? This is optional but highly recommended.+  * Which column in the CSV file contains the RWS brand code? This is used to distinguish between identical model numbers in different brandsThis selection is optional but highly recommended.
   * Which column(s) in the CSV file are being imported into which WebFronts column(s)?   * Which column(s) in the CSV file are being imported into which WebFronts column(s)?
-  * Should the data currently in the WebFronts column be completely erased before importing the data in the CSV file?+  * Should the data currently in the WebFronts column(s) be completely erased before importing the data from the CSV file?
  
 For those who want to automate this process (i.e. POS integrators), the wizard also generates a "magic URL" that can be used to send data programatically. This URL captures all the selections made in the wizard as well as a unique API key, which gives integrators permissions to upload files outside the WebFronts App. For those who want to automate this process (i.e. POS integrators), the wizard also generates a "magic URL" that can be used to send data programatically. This URL captures all the selections made in the wizard as well as a unique API key, which gives integrators permissions to upload files outside the WebFronts App.
Line 44: Line 48:
 {{ :public:do_this_with_a_script.jpg?nolink }} {{ :public:do_this_with_a_script.jpg?nolink }}
  
-Clicking on that link will bring up a dialog with the "magic URL" as well as basic instructions for how to use it. In short, integrators must send an HTTP POST to the "magic URL" with the CSV file to upload in the HTTP body as form data (''name=upload''). When a properly formatted and authorized request is received, the data in the attached CSV file is immediately imported into the WebFronts account and published to the site. Any errors will be noted in the JSON response.+Clicking on that link will bring up a dialog with the "magic URL" as well as basic instructions for how to use it. 
  
 {{ :public:import_api.jpg?nolink }} {{ :public:import_api.jpg?nolink }}
  
 +In short, integrators must send an HTTP POST to the "magic URL" with the CSV file to upload in the HTTP body as form data (''name=upload''). When a properly formatted and authorized request is received, the data in the attached CSV file is immediately imported into the WebFronts account and published to the site. Any errors will be noted in the JSON response.
  
-==== Important Notes ====+==== !! Important Notes !! ====
  
-You can upload multiple columns in the same CSV / URL +When a user is making changes in the account, programmatic uploads will not post to the site immediately. Instead, they will be queued and published when the user publishes the rest of their changes.
-Send data in bulk +
-Once per hour max is best+
  
-One request/warning: Please limit the number of uploads you do for each account per dayBasically, prefer big batch updates of lots of items over lots of small updates with just couple items. Each upload requires full publish of the site settings ("Publish Changes" in the WebFronts App), so it's an expensive operation.+A single CSV file can contain data for any number of WebFronts columnsUploads are processed more quickly when file contains multiple columns vs uploading each column in separate CSV.
  
-===== Download Columns (e.gsite or floor price) =====+Programmatic uploads should be limited to one per store location per hour per accountSend all updates for the hour in a single file. If possible, update all columns in the same upload.
  
-https://demo35859.appliances.dev.rwsgateway.com/_CGI/pricing_only_specs.zip?PW=-1911941970+ 
 +===== Getting Data from WebFronts ===== 
 + 
 +WebFronts has APIs that provide access to all the columns in The WebFronts App as well data on orders placed on WebFronts sites. If you are a POS vendor and are interested in getting access to these APIs, please contact [[mailto:jeff.dezso@retailerwebservices.com | Jeff Dezso]] for more information. 
 + 
 +==== Pricing ==== 
 + 
 +All APIs use the retailer's domain plus a common URI as the endpoint. The ''PW'' URL argument acts as an API key, and can be provided by the retailer or an RWS employee. 
 + 
 +Example Pricing API URL\\ 
 +[[https://demo12345.appliances.dev.rwsgateway.com/_CGI/pricing_only_specs.zip?PW=987654321]]
  
 You will get an XML file with all columns visible in WebFronts, including code, description, formula, and computed value. You will get an XML file with all columns visible in WebFronts, including code, description, formula, and computed value.
  
-You can also query for only certain models from the WebFronts pricing API. Here's an overview of some of the search options. The full search API is too large to dump on you. If you have specific use cases, please bring them to me, and I'll help you find the best approach.+<code> 
 +<product_pricing> 
 +   <product> 
 +      <key>CAFEA:UVH13012MSS</key> 
 +      <brand_code>CAFEA</brand_code> 
 +      <brand_name>CAFE</brand_name> 
 +      <pn>UVH13012MSS</pn> 
 +      <managed_data> 
 +         <column_data> 
 +            <REGULAR>=MSRP</REGULAR> 
 +            <REGULAR_FPV>1200.0</REGULAR_FPV> 
 +            <SALE>=MAP_WITH_PROMOS</SALE> 
 +            <SALE_FPV>1199.0</SALE_FPV> 
 +            <SPECIAL>N/A</SPECIAL> 
 +            <ON_SITE>true</ON_SITE> 
 +            <DELIVERY>Get Delivery Quote</DELIVERY> 
 +            <FRT>N/A</FRT> 
 +            <WARRANTY1>N/A</WARRANTY1> 
 +            <WARRANTY2>N/A</WARRANTY2> 
 +            <WARRANTY3>N/A</WARRANTY3> 
 +            <WARRANTY4>N/A</WARRANTY4> 
 +            <WARRANTY5>N/A</WARRANTY5> 
 +            <WARRANTY9>N/A</WARRANTY9> 
 +            <WARRANTY21>N/A</WARRANTY21> 
 +            <WARRANTY33>N/A</WARRANTY33> 
 +            <WARRANTY45>N/A</WARRANTY45> 
 +            <WARRANTY57>N/A</WARRANTY57> 
 +            <OFFER_WARRANTY>true</OFFER_WARRANTY> 
 +            <OFFER_DELV>true</OFFER_DELV> 
 +            <OUT_OF_CART_PRICE>N/A</OUT_OF_CART_PRICE> 
 +            <IS_ITEM_PROTECTED>false</IS_ITEM_PROTECTED> 
 +            <SORT_ORDER>N/A</SORT_ORDER> 
 +            <BRAND_DISTANCE_RESTRICTION_CART>=BRAND_DISTANCE_RESTRICTION_GUIDELINE</BRAND_DISTANCE_RESTRICTION_CART> 
 +            <BRAND_DISTANCE_RESTRICTION_QUOTE>=BRAND_DISTANCE_RESTRICTION_GUIDELINE</BRAND_DISTANCE_RESTRICTION_QUOTE> 
 +            <STORE_DISTANCE_RESTRICTION_CART>=BRAND_DISTANCE_RESTRICTION_GUIDELINE</STORE_DISTANCE_RESTRICTION_CART> 
 +            <STORE_DISTANCE_RESTRICTION_QUOTE>=BRAND_DISTANCE_RESTRICTION_GUIDELINE</STORE_DISTANCE_RESTRICTION_QUOTE> 
 +            <ADVANCED_PRODUCT_FLAGGING_ON_DISPLAY>false</ADVANCED_PRODUCT_FLAGGING_ON_DISPLAY> 
 +            <ADVANCED_PRODUCT_FLAGGING_CLEARANCE>false</ADVANCED_PRODUCT_FLAGGING_CLEARANCE> 
 +            <ADVANCED_PRODUCT_FLAGGING_IN_STOCK>false</ADVANCED_PRODUCT_FLAGGING_IN_STOCK> 
 +            <ADVANCED_PRODUCT_FLAGGING_GET_IT_TODAY>false</ADVANCED_PRODUCT_FLAGGING_GET_IT_TODAY> 
 +            <ADVANCED_PRODUCT_FLAGGING_EXPRESS_DELIVERY>false</ADVANCED_PRODUCT_FLAGGING_EXPRESS_DELIVERY> 
 +            <ADVANCED_PRODUCT_FLAGGING_BEST_SELLER>false</ADVANCED_PRODUCT_FLAGGING_BEST_SELLER> 
 +            <ADVANCED_AVAILABILITY>=AA()</ADVANCED_AVAILABILITY> 
 +            <ADVANCED_AVAILABILITY_FPV>0.0</ADVANCED_AVAILABILITY_FPV> 
 +            <map>1199.0</map> 
 +            <map_with_promos>1199.0</map_with_promos> 
 +            <map_no_promos>1199.0</map_no_promos> 
 +            <msrp>1200.0</msrp> 
 +         </column_data> 
 +      </managed_data> 
 +   </product> 
 +</product_pricing> 
 +</code> 
 + 
 + 
 +=== Querying the Pricing API === 
 + 
 +You can also query for only certain models from the WebFronts pricing API. Here's an overview of some of the search options. The full search API is too large to document here. If you have specific use cases, please bring them to [[mailto:jeff.dezso@retailerwebservices.com | Jeff Dezso]], and he will help you find the best approach
 + 
 +By default, with no URL parameters, the pricing API will return prices for every item currently showing to consumers. 
 + 
 +To download prices for just one brand, add the URL parameter ''MAN={CODE}''.
  
 +Only Whirlpool Products\\
 +[[https://demo12345.appliances.dev.rwsgateway.com/_CGI/pricing_only_specs.zip?PW=987654321&MAN=WHIRL]]
  
-===== Pricing API =====+Only Samsung Products\\ 
 +[[https://demo12345.appliances.dev.rwsgateway.com/_CGI/pricing_only_specs.zip?PW=987654321&MAN=SAMSUNG]]
  
-https://demo35859.appliances.dev.rwsgateway.com/_CGI/pricing_only_specs.zip?PW=-1911941970+Only Ashley Products\\ 
 +[[https://demo12345.appliances.dev.rwsgateway.com/_CGI/pricing_only_specs.zip?PW=987654321&MAN=ASHLEY]]
  
-That link will download everything - not necessarily what you wantTo download all items for just one brand, you can add the URL param "MAN={CODE}". For example+Only Coaster Products\\ 
 +[[https://demo12345.appliances.dev.rwsgateway.com/_CGI/pricing_only_specs.zip?PW=987654321&MAN=COASTER]]
  
-Only Ashley Products +To download prices for a single model, use the URL parameter ''KEY={RWS_KEY}''.
-https://demo35859.appliances.dev.rwsgateway.com/_CGI/pricing_only_specs.zip?PW=-1911941970&MAN=ASHLEY+
  
-Only Coaster Products +[[https://demo12345.appliances.dev.rwsgateway.com/_CGI/pricing_only_specs.zip?PW=987654321&KEY=BRTWD:126237]]
-https://demo35859.appliances.dev.rwsgateway.com/_CGI/pricing_only_specs.zip?PW=-1911941970&MAN=COASTER+
  
-You can also download the prices for a single model like this.+To search for models by keyword or partial model number, use the URL parameter ''PN={text}''
  
-With RWS Item Key +[[https://demo12345.appliances.dev.rwsgateway.com/_CGI/pricing_only_specs.zip?PW=987654321&KEY=126237]]
-https://demo35859.appliances.dev.rwsgateway.com/_CGI/pricing_only_specs.zip?PW=427532858&KEY=BRTWD:126237+
  
-Lookup by PN +//**Note:** This may return multiple modelsThey will be sorted by "best match" (same as a consumer search).//
-https://demo35859.appliances.dev.rwsgateway.com/_CGI/pricing_only_specs.zip?PW=427532858&KEY=126237  +
  
-Note: This may return multiple models. They will be sorted by "best match" 
  
  
-===== Warning ===== 
-One request/warning: Please limit the number of uploads you do for each account per day. Basically, prefer big batch updates of lots of items over lots of small updates with just a couple items. Each upload requires a full publish of the site settings ("Publish Changes" in the WebFronts App), so it's an expensive operation. 
  
public/webfronts_auto_import_api.1612547586.txt.gz · Last modified: 2021/02/05 12:53 by jeff

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki