StoreFeeder Get Prices
Summary of Changes: (The purpose of this table is to keep traceability and Product team to highlight the things that were changed into the scope, based on comments or discussions)
Version | Date | Created / Updated | Notes |
---|---|---|---|
v1.0 | 14/06/2023 | Hristiyan Georgiev | First publish |
API Call : GET products?ExcludeTaxRateCountries=true&ModifiedFrom={ModifiedFrom}
Api Docs : GET Products
Unfortunately StoreFeeder do not have a dedicated call for getting only the prices so we have to use the Get Products call which returns a lot of information about the product, however we will only need to write the price. We want to exclude tax rate countries as this is irrelevant and it will make the payload a little bit smaller. We also want to create a record in last_date_run so each time the cron runs, we will create a record and on each run we will use the last date run and deduct 10 minutes and use this as ModifiedFrom for the request. This way we will not end up calling 10k products each time. The {ModifiedFrom} format is a UTC time field. The request should be like 2016-06-01T00:00:00Z . If we don’t map any SKU from the response in Hemi we want to skip it.
We would like to have the option to store the price in Product Account > Original Price. This is needed if the client wants to put some markup on the price from their original prices and will be easier if we stored the prices in the Original Price field. We want to control this via a parameter added in the Account StoreFeeder Connector > Get Prices Update Original Price. So if we have this parameter set to “yes” we update Product Account > Original Price and Product Account > Original RRP and if we have it set to “No” we update Product Account > Price and Product Account > RRP. If we are updating the Product Account > Price or Product Account > RRP and there is a price difference from the last price/rrp, we want to raise Product Account > Update Price = pending. We don't want to send any update if we have stored Original Price.
Example response :
{
"TotalItems": 1,
"PagingInfo": {
"PageSize": 100,
"Page": 1
},
"TotalPages": 1,
"Data": [
{
"ProductID": 5225275,
"SKU": "CHYU003-XL",
"Name": "CityComfort Men Pack Socks and Boxers-XL",
"ProductGUID": "022e0933-fd8e-4a24-8e8e-893eff0e31fb",
"ParentProduct": {
"ProductID": 5225271,
"SKU": "CHYU003"
},
"ProductType": "SimpleProduct",
"WarehouseInformation": {
"Warehouse": {
"WarehouseName": "FF STORES WAREHOUSES",
"WarehouseGuid": "47b69f20-ca67-48ad-b347-fa6d5b023a0e",
"WarehouseID": 213
},
"ContainsHazardousMaterials": false,
"IsFragile": false,
"UnitOfMeasure": "Unit",
"Weight": 0.2,
"Packaging": {
"PackagingID": 505,
"PackagingName": "Parcel"
},
"PackagingQuantity": 100,
"PackagingQuantityDecimal": 100.0000,
"ProductTypeDescription": "Men Socks and Boxers",
"DetailedProductTypeDescription": "",
"ProductComposition": "",
"ProductHarmonizedCode": "6107110000",
"RecordSerialNumberOnBarcodeDespatch": false
},
"PricingInformation": {
"TaxClass": {
"TaxClassID": 1,
"TaxClassGuid": "84bd98c3-a6de-439a-9354-1f3a4867b955",
"CreatedOn": "2007-03-25T19:27:35.74",
"IsGlobal": true,
"Name": "20",
"TaxRate": 20.0000
},
"Price": 9.9900,
"RRP": 10.0,
"Margin": 0.0000,
"AverageCost": 1.97,
"AverageCostExVat": 1.97,
"PriceIncludesVat": true,
"LastCostPrice": 1.9721,
"LastCostPriceExVat": 1.9721
},
"InventoryInformation": {
"Inventory": 499,
"Allocated": 0,
"OnBackOrder": 0,
"OnPurchaseOrder": 0,
"CalculatedReorderLevel": 0,
"SoldLast30Days": 1,
"SoldLast90Days": 1,
"SoldLast120Days": 1,
"LastOrderedDate": "2023-05-15T15:41:42"
},
"Brand": "CityComfort",
"Archived": false,
"IsAkit": false,
"ManufacturerPartNumber": "50",
"CreatedOnDate": "2022-12-19T10:46:37.02",
"LastModifiedDate": "2023-05-05T15:18:11.13",
"ProductSpecialAttribute": ""
}
]
}
Mapping: Please note N/A means we exclude it
StoreFeeder field | Hemi Mapping | Hemi Notes | ||
---|---|---|---|---|
Product |
||||
ProductID |
N/A | |||
SKU |
Product > SKU | |||
Name |
N/A | |||
ProductGUID |
N/A | |||
ParentProduct |
N/A | |||
ProductID |
N/A | |||
SKU |
N/A | |||
ProductType |
N/A | |||
WarehouseInformation |
N/A | |||
ContainsHazardousMaterials |
N/A | |||
IsFragile |
N/A | |||
UnitOfMeasure |
N/A | |||
Weight |
N/A | |||
Packaging |
N/A | |||
PackagingQuantity |
N/A | |||
PackagingQuantityDecimal |
N/A | |||
ProductTypeDescription |
N/A | |||
DetailedProductTypeDescription |
N/A | |||
ProductComposition |
N/A | |||
ProductHarmonizedCode |
N/A | |||
RecordSerialNumberOnBarcodeDespatch |
N/A | |||
PricingInformation |
N/A | |||
TaxClass |
N/A | |||
Price |
Product Account > Price |
OR
Product Account > Original Price | This is based on the parameter mentioned in the begining of the document. |
| | | RRP
| Product Account > RRP
OR
Product Account > Original Price | This is based on the parameter mentioned in the begining of the document. |
| | | Margin
| N/A | |
| | | AverageCost
| N/A | |
| | | AverageCostExVat
| N/A | |
| | | PriceIncludesVat
| N/A | |
| | | LastCostPrice
| N/A | |
| | | LastCostPriceExVat
| N/A | |
| | InventoryInformation
| | N/A | |
| | | Inventory
| N/A | |
| | | Allocated
| N/A | |
| | | OnBackOrder
| N/A | |
| | | OnPurchaseOrder
| N/A | |
| | | CalculatedReorderLevel
| N/A | |
| | | SoldLast30Days
| N/A | |
| | | SoldLast90Days
| N/A | |
| | | SoldLast120Days
| N/A | |
| | | LastOrderedDate
| N/A | |
| | Brand
| | N/A | |
| | Archived
| | N/A | |
| | IsAkit
| | N/A | |
| | ManufacturerPartNumber
| | N/A | |
| | CreatedOnDate
| | N/A | |
| | LastModifiedDate
| | N/A | Pick date from last_date_run and look for >= this date. The format is 2016-06-01T00:00:00Z |
| | ProductSpecialAttribute
| | N/A | |
History need to be incorporated and keep track of all price changes.