Tämä artikkeli on suunnattu kehittäjille, jotka haluavat hakea toimituspisteitä GetShipAdvise-menetelmällä.
Huomautus: Tämä on tarkoitettu vain perusesimerkin näyttämiseen.
Sinun tulee soveltaa omaa liiketoimintalogiikkaasi ja virheenkäsittelyä.
Artikkelin sisältö:
- GetDropPoints-menetelmä
- Hae tiedot yhdestä toimituspisteestä, kun käyttäjä valitsee tuotteen
- Hae kaikkien toimituspisteiden tiedot kerralla
- Omat myymäläsi toimituspisteinä
-
GetDropPoints-menetelmä
Tämä menetelmä edellyttää, että data-objekti sisältää tuotteen tunnuksen, kuinka monta toimituspistettä haetaan, palvelut ja vastaanottajan osoitteen ("Kind": 1)
Huomautus: ResultCount on vähintään 1 ja enintään 10
Esimerkki Data-objektista
{
"ProdCSID": 5748,
"ResultCount": 10,
"Addresses": [
{
"Kind": 1,
"Name1": "John Doe",
"Street1": "Test address 1",
"PostCode": "8210",
"City": "Aarhus V",
"CountryCode": "DK"
}
],
"Services": [
676008
]
}
Hae tiedot yhdestä toimituspisteestä, kun käyttäjä valitsee tuotteen
Tätä lähestymistapaa käytetään, jos haluat pyytää toimituspistetietoja vasta sen jälkeen, kun käyttäjä on valinnut yhden GetShipAdvise-menetelmän palauttamista tuotteista.
Esimerkki vastauksesta GetDropPoints-menetelmästä, kun sitä kutsutaan alla olevan kaltaisella funktiolla.
Menetelmä ottaa asiakkaan valitseman rahtituotteen ja lähetyksen tiedot.
Sitten se kutsuu GetDropPoint-menetelmää ja lisää vastauksen tuoteobjektiin.
const getDropPointData = async (product, shipmentData) => {
let data = {
ProdCSID: product.ProdCSID,
ResultCount: 10,
Addresses: [shipmentData.Addresses.find(x => x.Kind == 1)]
}
if (product.Services) {
request["Services"] = product.Services.map((x) => x.serviceid)
}
let { DropPoints } = await GetDropPoints(data)
product.DropPoints = DropPoints
return product
}
Hae kaikkien toimituspisteiden tiedot kerralla
GetShipAdvise-menetelmä ei kutsu GetDropPoints-menetelmää itsessään. Nämä kaksi menetelmää on yhdistettävä, jotta GetShipAdvise-vastaus sisältäisi toimituspisteet.
Esimerkki GetShipAdvise-menetelmän oletusvastauksesta.
Kuten näemme, tuotteella ei ole toimituspistetietoja, mutta voimme nähdä, tukevatko tuotteet sitä.
Jotta saisit vastauksen kuten alla olevassa esimerkissä.
Sinun tulee kutsua GetDropPoint-menetelmää ennen GetShipAdvise-vastauksen palauttamista niille tuotteille, jotka tukevat toimituspisteitä ja joille toimituspisteet halutaan palauttaa.
Huomautus: Jotkut tuotteet voivat toimia sekä kotiinkuljetuksena että toimituspisteenä.
Tässä esimerkissä CSR-konfiguraatiotiedoston tuotteilla on Custom-kenttä "isDropPoint", joka osoittaa, tulisiko GetDropPoint-menetelmä kutsua niille vai ei.
const getProductsWithDropPointData = async (shipmentData) => {
let products = await GetShipAdvise(shipmentData)
let productsWithDropPointSupport = products.Products
.filter(x => x.SupportsDropPoint)
.filter(x => x.CustomFields && x.CustomFields.isDropPoint)
productsWithDropPointSupport.map(async (product) => {
let data = {
ProdCSID: product.ProdCSID,
ResultCount: 10,
Addresses: [shipmentData.Addresses.find(x => x.Kind == 1)]
}
if (product.Services) {
request["Services"] = product.Services.map((x) => x.serviceid)
}
let { DropPoints } = await GetDropPoints(data)
product.DropPoints = DropPoints
})
return products
}
Omat myymäläsi toimituspisteinä
Jotta GetDropPoint-menetelmä voisi palauttaa omat myymäläsi toimituspisteinä.
Sinun tulee täyttää seuraava malli. Jos tarvitset useamman kuin yhden toimituspisteen, lisää toinen <DropPointData>-elementti.
Jos sinulla ei ole pituus- ja leveysasteita, käytä molemmille arvoa 0.01.
<MapRefX>0.01</MapRefX>
<MapRefY>0.01</MapRefY>MapRefX tarkoittaa pituusastetta ja MapRefY leveysastetta.
Esimerkki kaikilla kentillä
<?xml version="1.0" encoding="utf-8"?>
<ArrayOfDropPointData xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<DropPointData>
<OriginalId>Test01</OriginalId>
<RoutingCode></RoutingCode>
<Depot/>
<Name1>nShift A/S</Name1>
<Name2/>
<Address1>Bredskifte Allé 11</Address1>
<Address2/>
<PostalCode>8210</PostalCode>
<City>Aarhus V</City>
<Region/>
<County/>
<District/>
<Province/>
<State/>
<CountryCode>DK</CountryCode>
<Contact>Test Contact</Contact>
<Phone>11 22 33 44</Phone>
<Email></Email>
<Fax/>
<MapRefX>10.135106</MapRefX>
<MapRefY>56.173088</MapRefY>
<OpeningHoursList>
<OpeningHours>
<Day>Monday</Day>
<Open>09:00</Open>
<Close>21:00</Close>
</OpeningHours>
<OpeningHours>
<Day>Tuesday</Day>
<Open>05:00</Open>
<Close>15:30</Close>
</OpeningHours>
</OpeningHoursList>
</DropPointData>
</ArrayOfDropPointData>Lataa malli napsauttamalla tästä.
Hieman tiiviimpi versio.
<?xml version="1.0" encoding="utf-8"?>
<ArrayOfDropPointData xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<DropPointData>
<OriginalId>01</OriginalId>
<Name1>nShift A/S</Name1>
<Address1>Bredskifte Allé 11</Address1>
<PostalCode>8210</PostalCode>
<City>Aarhus V</City>
<CountryCode>DK</CountryCode>
<Contact>Test Contact</Contact>
<Phone>11 22 33 44</Phone>
<MapRefX>10.132236331701279</MapRefX>
<MapRefY>56.179632447054956</MapRefY>
</DropPointData>
</ArrayOfDropPointData>
Lataa malli napsauttamalla tästä.
Huomautus: Useita tiedostoja tuetaan, ja jokaisessa tiedostossa ei tulisi olla yli 1000 toimituspistettä.
Tiedosto tulee lähettää paikalliselle asiakaspalvelulle, joka luo mukautetun tuotteen ja lisää listan siihen.
Jos tarvitset erityisen nimen, esim. "Collect @ Store", sinun tulee mainita tämä sähköpostissa.
Shipping Rules
Konfiguraatiotiedosto, joka sisältää tässä artikkelissa käytetyt GetShipAdvise-menetelmän tuotteet.
<?xml version="1.0" encoding="utf-8"?>
<CSR carriervalidation="0" defaultservicelevel="Service_Level_Configured_For_SA">
<Prices>
<Price name="fixed59" currency="DKK">
<Exceptions>
<Exception price="5900">
<ValidationRules>
</ValidationRules>
</Exception>
</Exceptions>
<Fees>
<Fee price="1900">
<ValidationRules>
</ValidationRules>
</Fee>
</Fees>
</Price>
<Price name="fixed39" currency="DKK">
<Exceptions>
<Exception price="3900">
<ValidationRules>
</ValidationRules>
</Exception>
</Exceptions>
</Price>
</Prices>
<ServiceLevels>
<ServiceLevel name="Service_Level_Configured_For_SA">
<Products>
<Product adviseprice="fixed39" name="GLS DK - Pakkeshop med Drop Points" conceptid="1551">
<ProductGoodsType goodstypeid="0"/>
<CustomFields type="Pickup Point" servicecode="P1"/>
<ValidationRules>
<ValidationRule name="country" allowcountries="DK" field="fld_AdrCountry"/>
</ValidationRules>
</Product>
<Product adviseprice="fixed59" name="GLS DK - Normal erhvervspakke" conceptid="113">
<ProductGoodsType goodstypeid="0"/>
<CustomFields type="Home Delivery" servicecode="P2"/>
<ValidationRules>
<ValidationRule name="country" allowcountries="DK" field="fld_AdrCountry"/>
</ValidationRules>
<Services>
<Service serviceid="11020" name="Private Delivery Service"/>
</Services>
</Product>
<Product adviseprice="fixed59" name="GLS DK - Export" conceptid="189">
<ProductGoodsType goodstypeid="0"/>
<CustomFields type="Home Delivery" servicecode="P3"/>
<ValidationRules>
<ValidationRule name="country" allowcountries="SE" field="fld_AdrCountry"/>
</ValidationRules>
</Product>
</Products>
</ServiceLevel>
</ServiceLevels>
</CSR>