John Lewis Stock FTP
Version | Created / Updated | Notes |
---|---|---|
1.0 | Danail Deltchev | |
1.1 | Aleksander Cvetkov | Add folder for error files and update the logic for processing the response from JL. |
1.2 | Milen Markov | Added mapping for tradedCode field |
The Purpose of this document is to specify the details around Stock updates on John Lewis Marketplace
The Inventory is slightly different than the other flows as well. It is a standard .csv file that is also indicated by a leading “Inventory” in the naming. This flow does NOT require a .DONE file to be created. As soon as the Inventory.csv file is dropped in the correct folder The Edge will start reading it. This means that we should not employ any renaming strategies (as we do on our standard out of the box Hemi Exports)
Filename format: inventory-yyyymmddhhmmssnnnnnn.csv
Ftp Path Label for the setting: StockUpdate
(/Inventory)
Ftp Path Label for the setting for getting errors: StockUpdateError
(/Inventory/errors)
Example Mapping:
Integration Field | Integration Notes | Integration Format | Hemi Mapping | Hemi Notes |
---|---|---|---|---|
part_number | An 8-digit numeric code allocated by JLP Buying, also called Stock Number. This can change occasionally when Buying need to restructure their assortment | Part number | Product Account > ChannelItemID | Mandatory field. This is used for unique reference on JL marketplace. Should be filled in as part of the onboarding of a client process and should be provided by JL |
tradedCode | Suppliers’ product identifier | Text (20) | <v1.2> Product Account > Marketplace EAN / Product Details > EAN |
OR Product Details > SKU</v1.2> | <v1.2> To be controlled by a new drop-down field called ‘Seller Product Code used’ with possible option of empty value (default), SKU or EAN (following the standard priorities - Marketplace EAN → EAN). If both EAN fields are empty we are to fill a null value in the field for the selected product </v1.2> | | current_lead_time_to_delivery_in_days | What the supplier's current lead time for delivery of this product is | Number | *Calculate | We should calculate this in days the same way we do in the Acknowledgement update of an order - taking the general Handling time and delivery time for the products: handling time (going through item_account Dispatch Time Max > If there is a Shipping template assigned to this item - > Default Shipping template: basically the same method we are using to determine handing time when we are listing a product) + delivery time (from the assigned Shipping template OR the default one we take the Shipping Method and take the “delivery time” (NEW FIELD). Expectation is for this Marketplace the Shipping templates will have only one Shipping Method. In case there are multiple the biggest delivery time should be used) = days for delivery which we should use in this field as a number | | standard_lead_timeto delivery_in_days | What the supplier's usual lead time for product delivery is | Number | Account John Lewis > Standard Lead Time To Delivery In Days | New field! I believe we should set this as one value for all and update only the current_lead_time | | fulfilmentType | How the supplier fulfils delivery of this product | Deliver to John Lewis Direct to customer | N/A | | | supplier_product_status | The status of the product according to the supplier, independent of JLP's product status e.g. if they consider it to be deleted | Active Deleted Discontinuing | <v1.2> “Active” </v1.2> | <v1.2> For now, this should be hardcoded as ‘Active’ </v1.2> | | free_stock | The current quantity of this product available for sale to all retailers (excludes any ring-fenced quantity for JLP). | Number | Product Account > Quantity | | | ring_fenced_units_for_jl | Ring fenced stock for JLP. | Number | N/A | | | date_expected_back_in_stock | For products that are out of stock, expected date when next delivery of stock will arrive | Date (yyyy-mm-dd) | N/A | |
Additional Information:
- We want to employ our standard process for Stock updates as described here: Stock Update general requirements . As a quick recap (please check with the doc for full scope) - we are looking for products with update_quantity = pending and/or end_item = 1, follow all needed status requirements and update accordingly all needed fields back in Hemi
- We should put the items pushed to JL on “sent” status as we are to wait and check if there is an error feed
- If the file was successfully processed it will be moved from its original folder to sub folder processed. If it was not it will be moved to sub folder errors and there will be error file like this “inventory-yyyymmddhhmmssnnnnnn.csv.ERROR“
- We don’t have example files for the errors. Until we get one and ensure how it works we are to put all records on error status in Hemi if an “err” file is created by JL