
Feed-uri oferte furnizori prin import EDI
In cadrul magazinului se pot gestiona produsele care se vand de la diferiti terti fara a fi in gestiunea magazinului.
Acest lucru se poate automatiza prin mesaje EDI in 4 pasi:
- oferta valabila de la furnizor
- functie customizata prelucrare set date din feed
- mesaj EDI pentru sincronizare feed cu functia customizata
- programare rulare mesaj EDI
Oferta de la furnizor
In cadrul modulului Oferte de la furnizori se creeaza o oferta avand ca elemente:
- Furnizor = Se selecteaza partenerul de la care se primeste FEED-ul de produse
- Valabilitate oferta = Data pana la care este valabila oferta (obligatoriu in viitor pentru prelucrare feed!)
- Status = Oferta acceptata
Functie custom
In cadrul modului functii customizate se creeaza o functie de tip Import document prin mesaje EDI(standard) in care specificam structura intoarsa si codul functiei care va parsa feed-ul de produse
Model Structura
[id_produs] VARCHAR(25) NOT NULL DEFAULT (''),
[cod_produs] VARCHAR(50) NOT NULL DEFAULT (''),
[pret_achizitie] MONEY NOT NULL,
[moneda] VARCHAR(3) NOT NULL DEFAULT ('RON'),
[cantitate] NUMERIC(15, 3) NULL,
[zile_livrare_stoc] SMALLINT NULL,
[zile_livrare_comanda] SMALLINT NULL
Model functie
DECLARE @xml XML = REPLACE(@continutFisier, ' encoding="utf-8"', ' encoding="utf-16"');
WITH xmlnamespaces('http://base.google.com/ns/1.0' AS g)
INSERT INTO @ret_table([cod_produs], [pret_achizitie], [moneda], [cantitate], [zile_livrare_stoc], [zile_livrare_comanda])
SELECT t.c.value('g:id[1]', 'VARCHAR(50)'),
CAST(dbo.getwordnum(t.c.value('g:partner_price[1]', 'VARCHAR(50)'), 1, ' ') AS NUMERIC(16, 4)),
TRIM(dbo.getwordnum(t.c.value('g:partner_price[1]', 'VARCHAR(50)'), 2, ' ')),
IIF(TRIM(t.c.value('g:availability[1]', 'VARCHAR(50)')) = 'in stock', 100, 0),
IIF(TRIM(t.c.value('g:availability[1]', 'VARCHAR(50)')) = 'in stock', 3, 0),
IIF(TRIM(t.c.value('g:availability[1]', 'VARCHAR(50)')) = 'in stock', 0, 30)
FROM @xml.nodes('rss/channel/item') t(c)
Model structura produs in FEED
<rss xmlns:g="http://base.google.com/ns/1.0" version="2.0">
<channel>
<title>Soluții software eficiente</title>
<description>Forscope oferă soluții software</description>
<link>www.forscope.ro</link>
<item>
<g:id>EXS-2016-STD-USE-CAL</g:id>
<title>Exchange Server 2016 Standard User CAL certificat electronic</title>
<description/>
<g:product_type>MS Exchange Server 2016</g:product_type>
<g:brand>Microsoft</g:brand>
<link>https://forscope.ro/exchange-server-2016-standard-user-cal/#certificat-electronic</link>
<g:image_link>https://cdn.forscope.eu/files/ro/e/2492/product-img-exchange-server-2016-standard-user-cal-0-5x.png</g:image_link>
<g:recommended_retail_price>500 RON</g:recommended_retail_price>
<g:retail_price>300 RON</g:retail_price>
<g:partner_price>280 RON</g:partner_price>
<g:availability>in stock</g:availability>
</item>
</channel>
</rss>
Mesaj de tip EDI
In cadrul modului Mesaje EDI se creeaza un mesaj de tip IMPORT de la furnizorul respectiv si facem legatura cu functia custom specificand parametrii:
- Activ: sa fie bifat
- Directie: Import
- Format mesaj: Functie customizata - Actualizare oferta furnizor
- Mod de preluare pret: Preia din comanda clientului pretul fara TVA
- Protocol: https
- Cale fisiere: Adresa web a feed-ului cu produse
- Partener: Partenerul pentru care se face feed-ul de produse
- Functie customizata: Se selecteaza functia customizata (creata la pasul anterior)
- File encoding : tip encodare feed produse
Programare mesaj EDI
In cadrul modulului Activitati programate se creeaza o Programare in care se va stabili frecventa de rulare iar la Procesare Mesaje EDI se va activa mesajul de tip EDI stabilind frecventa programarii.
In urma prelucrarii mesajului EDI se va actualiza oferta de la furnizor:
- se vor actualiza in oferta cu informatiile din FEED:
- preturile de achizitie
- cantitatea
- zilele de livrare in cazul in care produsul exista in stoc furnizor
- zilele de livrare in cazul in care se comanda produsul de catre furnizor