XML feed synchronisatie

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Freelance senior ICT ontwikkelaar (zzp)

Belastingdienst B/cao Startdatum inzet: 9-1-2023 Einddatum inzet: 31-12-2023 Uren per week: 36,00 Standplaats: Apeldoorn Max tarief: € 86,00 Team LIV is op zoek naar een enthousiaste, flexibele, multitaskende en hands-on ontwikkelaar met veel ervaring in het gedeeltelijk of volledig zelfstandig bepalen van ontwikkel- en realisatie aanpak. Onze nieuwe collega moet in staat zijn te werken in een hectische omgeving waarbij er sprake is van zeer verschillen realisatietrajecten voor wat betreft(technische)diepgang, startmoment (wel/geen beschrijvingen beschikbaar) en klantcontact. De gekozen ontwikkelmethodiek dient passend te zijn voor het op te lossen vraagstuk waarbij samenwerking met de testengineer in relatie tot Systeem integratie test

Bekijk vacature »

Freelance senior Programmeur (zzp)

Dienst Uitvoering Onderwijs Uren per week: 36,00 Standplaats: Groningen Max tarief: € 90,00 Startdatum inzet: 2-1-2023 Einddatum inzet: 1-1-2024 Wat doen we voor werk momenteel? Nieuwe applicaties: We bouwen nieuwe applicaties voor inwinnen B3/B4 scholen. Deze scholen kunnen inschrijvingen via een website aanleveren per keer of meerdere inschrijvingen via bestand. Deze inschrijvingen leggen we vast en ze kunnen ook beheerd worden. Moderniseren: Daarnaast hebben we zoals alle andere teams ook een flinke migratie voor de boeg om in de Cloud te landen. Eén applicatie (AVOID) hebben we al succesvol gemigreerd en deze draait bijna in PRD. De grootste uitdaging voor

Bekijk vacature »

Oracle Apex Developer

Dit ga je doen Jouw taken bestaan uit: Het bouwen maatwerk Oracle applicaties voor Europese business units; Het implementeren van de nieuwste technieken om te blijven innoveren; Actief meedenken en aandragen van verbetervoorstellen. Hier ga je werken Deze organisatie in de regio Veenendaal is een van wereld grootste retailers met ruim 16.000 winkels in 27 markten en jaarlijks ruim 5,3 miljard klanten die winkelen bij een van hun welbekende retailmerken. Binnen de organisatie is er een IT Group actief die dient als IT Service Provider voor de hele organisatie en waar dagelijks IT'ers werken aan state-of-the-art IT oplossingen. Dit doen

Bekijk vacature »

Freelance senior Programmeur (zzp)

Dienst Uitvoering Onderwijs Uren per week: 36,00 Standplaats: Groningen Max tarief: € 90,00 Startdatum inzet: 2-1-2023 Einddatum inzet: 1-1-2024 Wat doen we voor werk momenteel? Nieuwe applicaties: We bouwen nieuwe applicaties voor inwinnen B3/B4 scholen. Deze scholen kunnen inschrijvingen via een website aanleveren per keer of meerdere inschrijvingen via bestand. Deze inschrijvingen leggen we vast en ze kunnen ook beheerd worden. Moderniseren: Daarnaast hebben we zoals alle andere teams ook een flinke migratie voor de boeg om in de Cloud te landen. Eén applicatie (AVOID) hebben we al succesvol gemigreerd en deze draait bijna in PRD. De grootste uitdaging voor

Bekijk vacature »

SAP Integratie Ontwikkelaar

Ben jij ambitieus in de verdere ontwikkeling van SAP binnen HANOS, en heb je kennis van SAP PI, CPI (SAP integration suite) en of andere middleware tooling? Dan ben jij mogelijk onze nieuwe SAP Integratie (middleware) Ontwikkelaar! Lees snel verder en solliciteer! Wat ga je doen? AlsSAP Financieel Consultantben je, als deel van een gedreven team van interne SAP consultants, de schakel tussen de gebruikersorganisatie en ICT. Je draagt proactief bij aan een optimale aansluiting van de SAP-functionaliteit (een applicatielandschap met o.a. Suite on HANA, Fiori, Hybris, C4C en BO), op de bedrijfsprocessen. Verder ondersteun je de HANOS organisatie bij

Bekijk vacature »

Oracle Developer / PL SQL

Dit ga je doen Software ontwikkeling aan een internationaal gebruikt pakket; Werken met technieken als Oracle 19c, Toad, PL/SQL, Oracle Forms, Reports en Designer; Meedraaien in internationale projecten; Meedenken over technisch en functioneel ontwerp; Samenwerken met collega's als Informatie Analisten, Testers en Release Managers; Soms wensen en eisen afstemmen met de business. Hier ga je werken Onze klant, een internationaal bekend bedrijf dat essentiële producten maakt waar iedereen graag gebruik van maakt, zoekt versterking in het Software Development team. Samen met 3 developers, een release manager, een informatie analist en 3 testers werk jij aan een systeem waarmee complexe producten

Bekijk vacature »

Traineeship Full Stack .NET Developer

Dit ga je doen Start op 9 januari 2023 bij de Experis Academy en ontwikkel jezelf tot een gewilde Full Stack .NET Developer. Maar hoe ziet het traineeship eruit en wat kun je verwachten? Periode 1 De eerste 3 maanden volg je fulltime, vanuit huis, een op maat gemaakte training in teamverband. Je leert belangrijke theorie en krijgt kennis van de benodigde vaardigheden en competenties die nodig zijn om de IT-arbeidsmarkt te betreden. Zowel zelfstandig als in teamverband voer je praktijkopdrachten op het gebied van front- en backend development uit. Wat er per week op het programma staat kun je

Bekijk vacature »

Freelance senior ICT ontwikkelaar (zzp)

Belastingdienst B/cao Startdatum inzet: 9-1-2023 Einddatum inzet: 31-12-2023 Uren per week: 36,00 Standplaats: Apeldoorn Max tarief: € 86,00 Team LIV is op zoek naar een enthousiaste, flexibele, multitaskende en hands-on ontwikkelaar met veel ervaring in het gedeeltelijk of volledig zelfstandig bepalen van ontwikkel- en realisatie aanpak. Onze nieuwe collega moet in staat zijn te werken in een hectische omgeving waarbij er sprake is van zeer verschillen realisatietrajecten voor wat betreft(technische)diepgang, startmoment (wel/geen beschrijvingen beschikbaar) en klantcontact. De gekozen ontwikkelmethodiek dient passend te zijn voor het op te lossen vraagstuk waarbij samenwerking met de testengineer in relatie tot Systeem integratie test

Bekijk vacature »

Freelance java developer / scrummaster (zzp)

Belastingdienst B/cao Startdatum inzet: 9-1-2023 Einddatum inzet: 31-12-2023 Uren per week: 36,00 Standplaats: Apeldoorn Max tarief: € 82,00 Voor onze partnerorganisatie, de Belastingdienst, zijn wij op zoek naar een Java Developer met kennis van en ervaring met de Scrum methodiek. In deze rol wordt er van je gevraagd dat je: Brede ervaring hebt als JAVA-ontwikkelaar; Weet wat er van een scrummaster wordt verwacht; Als volwaardig teamlid participeert binnen het scrumproces in je team en in de SAFe-releasetrain; Zowel zelfstandig kunt werken in een scrumteam als intensief de samenwerking zoekt met je directe collega’s en je omgeving; Samenwerkt met je collega’s

Bekijk vacature »

Freelance senior Programmeur (zzp)

Dienst Uitvoering Onderwijs Uren per week: 36,00 Standplaats: Groningen Max tarief: € 90,00 Startdatum inzet: 2-1-2023 Einddatum inzet: 1-1-2024 Wat doen we voor werk momenteel? Nieuwe applicaties: We bouwen nieuwe applicaties voor inwinnen B3/B4 scholen. Deze scholen kunnen inschrijvingen via een website aanleveren per keer of meerdere inschrijvingen via bestand. Deze inschrijvingen leggen we vast en ze kunnen ook beheerd worden. Moderniseren: Daarnaast hebben we zoals alle andere teams ook een flinke migratie voor de boeg om in de Cloud te landen. Eén applicatie (AVOID) hebben we al succesvol gemigreerd en deze draait bijna in PRD. De grootste uitdaging voor

Bekijk vacature »

Freelance senior Programmeur (zzp)

Dienst Uitvoering Onderwijs Uren per week: 36,00 Standplaats: Groningen Max tarief: € 90,00 Startdatum inzet: 2-1-2023 Einddatum inzet: 1-1-2024 Wat doen we voor werk momenteel? Nieuwe applicaties: We bouwen nieuwe applicaties voor inwinnen B3/B4 scholen. Deze scholen kunnen inschrijvingen via een website aanleveren per keer of meerdere inschrijvingen via bestand. Deze inschrijvingen leggen we vast en ze kunnen ook beheerd worden. Moderniseren: Daarnaast hebben we zoals alle andere teams ook een flinke migratie voor de boeg om in de Cloud te landen. Eén applicatie (AVOID) hebben we al succesvol gemigreerd en deze draait bijna in PRD. De grootste uitdaging voor

Bekijk vacature »

IAM Developer

Dit ga je doen Development, configuration and operation of IAM AD landscape; Proactive optimizing the environment; Collaborating with and supporting the System Architect on his designs; Designing functional and technical documentation regarding the business’ and IT’s requirements; Designing and configuring the functionalities by following the IAM architectural principles, strategy and standards; Collaborating with Stakeholders and team members. Hier ga je werken This industrial company is very innovative and always searching for new technologies. Within the IAM team you will align with DevOps teams, IAM System Architect, the Scrum Master and the Product Owner on operational planning and progress. Within the

Bekijk vacature »

Senior Developer 3D computing

Senior Developer 3D Computing As Senior Developer 3D Computing at KUBUS, you will be responsible for the implementation of user-interactions and 3D optimisations of our 3D tools for visualising and analysing 3D building models. We use state-of-the-art web technology as part of BIMcollab, our platform for 3D model validation and issue management, aimed at improving the quality of 3D building design models. Better 3D models lead to better buildings, thus contributing to the sustainability of the built environment with smarter use of materials, less waste and energy-efficient buildings. A good user experience is of paramount importance to us; we go

Bekijk vacature »

Freelance senior ICT ontwikkelaar (zzp)

Belastingdienst B/cao Startdatum inzet: 9-1-2023 Einddatum inzet: 31-12-2023 Uren per week: 36,00 Standplaats: Apeldoorn Max tarief: € 86,00 Team LIV is op zoek naar een enthousiaste, flexibele, multitaskende en hands-on ontwikkelaar met veel ervaring in het gedeeltelijk of volledig zelfstandig bepalen van ontwikkel- en realisatie aanpak. Onze nieuwe collega moet in staat zijn te werken in een hectische omgeving waarbij er sprake is van zeer verschillen realisatietrajecten voor wat betreft(technische)diepgang, startmoment (wel/geen beschrijvingen beschikbaar) en klantcontact. De gekozen ontwikkelmethodiek dient passend te zijn voor het op te lossen vraagstuk waarbij samenwerking met de testengineer in relatie tot Systeem integratie test

Bekijk vacature »

Freelance java developer / scrummaster (zzp)

Belastingdienst B/cao Startdatum inzet: 9-1-2023 Einddatum inzet: 31-12-2023 Uren per week: 36,00 Standplaats: Apeldoorn Max tarief: € 82,00 Voor onze partnerorganisatie, de Belastingdienst, zijn wij op zoek naar een Java Developer met kennis van en ervaring met de Scrum methodiek. In deze rol wordt er van je gevraagd dat je: Brede ervaring hebt als JAVA-ontwikkelaar; Weet wat er van een scrummaster wordt verwacht; Als volwaardig teamlid participeert binnen het scrumproces in je team en in de SAFe-releasetrain; Zowel zelfstandig kunt werken in een scrumteam als intensief de samenwerking zoekt met je directe collega’s en je omgeving; Samenwerkt met je collega’s

Bekijk vacature »
Ger van Steenderen
Tutorial mod

Ger van Steenderen

31/05/2014 16:56:28
Quote Anchor link
De situatie is volgt:

Leveranciers kunnen met een XML feed artikelen opvoeren c.q updaten.
Echter kan uit de feed niet (altijd) worden afgeleid of het een nieuw artikel betreft.
Daarnaast zijn er per artikel verschillende configuraties (sku's) mogelijk (kleur/maat) en dit wordt in een aparte tabel bij gehouden.

Verder kan het zijn dat een reeds ingevoerd artikel niet meer in de feed staat en in dat geval moet de voorraad van het alle tot het artikel behorende sku's op nul gezet worden.
Hetzelfde kan ook bij de sku's voorkomen.

Ik heb hier het volgende voor bedacht:
Ik sla de gegevens uit de feed op in 'tijdelijke' tabellen (met preps).
Daarna ga ik vanuit die tabellen de officiële bewerken:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
<?php
        /*
         * Synchronize existing products
         */
        
        
        $this->pdo->query("UPDATE products p, temp_products t
            SET
                p.product_name = t.product_name,
                p.product_description = t.product_description,
                p.product_new_price = t.product_new_price,
                p.material_id = t.material_id,
                p.brand_id = t.brand_id
            WHERE
                p.product_code = t.product_code AND p.supplier_id = "
. $supplier_id);
        
        /*
         * Insert new products from feed
         */

        
        $this->pdo->query("INSERT INTO products
            (product_code, product_name, product_description,
                product_barcode, maingroup_id, category_id, subcategory_id,
                product_price, product_new_price, material_id, collection_id,
                brand_id, supplier_id, created)
            SELECT
                t.product_code, t.product_name, t.product_description,
                t.product_barcode, t.maingroup_id, t.category_id,
                t.subcategory_id, t.product_price, t.product_new_price,
                t.material_id, t.collection_id, t.brand_id, t.supplier_id, NOW()
            FROM
                temp_products t
            LEFT JOIN
                products p
                ON
                p.product_code = t.product_code
            WHERE t.supplier_id = "
. $supplier_id . " AND p.product_code IS NULL
                    "
);
                
        
        /*
         * insert or update sku's from feed tables
         */

        
        $this->pdo->query("INSERT INTO
            products_skus
            (product_id, color_id, size_id, stock_amount)
            SELECT
                p.product_id, s.color_id, s.size_id, s.stock_amount
            FROM
                temp_skus s
            JOIN
                temp_products t
                ON t.product_id = s.product_id
            JOIN
                products p USING (product_code, supplier_id)
            WHERE p.supplier_id = "
. $supplier_id . "
            ON DUPLICATE KEY
                UPDATE stock_amount =
                    IF(VALUES(stock_amount) < stock_amount, VALUES(stock_amount),
                        stock_amount"
);
        
        /*
         * set stock to zero for removed products or removed sku's
         */

        
        $this->pdo->query(
            'UPDATE products_skus s
                JOIN products p
                    ON s.product_id = p.product_id
                LEFT JOIN temp_products t
                    ON p.product_code = t.product_code
                LEFT JOIN temp_skus ts
                    ON t.product_id = ts.product_id
                    AND s.color_id = ts.color_id
                    AND s.size_id = ts.size_id
            SET s.stock_amount = 0
            WHERE (t.product_id IS NULL OR ts.size_id IS NULL)
                AND p.supplier_id = '
. $supplier_id);
        
        
        /*
         * prepare missing images for upload
         */

        
        $this->pdo->query(
            'INSERT INTO upload_batch
                (product_id, color_id, link, processed)
            SELECT
                p.product_id, u.color_id, u.link, 0
            FROM
                products p
            JOIN
                temp_products t
                ON t.product_code = p.product_code

            JOIN
                temp_upload u
                ON t.product_id = u.product_id
            LEFT JOIN
                product_images i
                ON p.product_id = i.product_id
            WHERE p.supplier_id = '
. $supplier_id . '
                AND p.created > NOW() - INTERVAL 1 HOUR AND i.image_id IS NULL'
);
?>

Dit alles duurt bij elkaar ca. 15 sec. voor zo'n 1700 artikelen.

Lijkt mij acceptabel maar misschien dat iemand een snellere / betere oplossing weet
Gewijzigd op 31/05/2014 16:57:26 door Ger van Steenderen
 
PHP hulp

PHP hulp

04/02/2023 16:19:12
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

05/06/2014 18:01:56
Quote Anchor link
Even een update.
Ik heb het terug gebracht naar ca. 2.5 seconden.
Ik vul nu maar één tabel (temp_products) met prepared statements, de andere twee met bulk inserts.
Dat scheelde zo'n 9 seconden, de rest was een kwestie van een vergeten index.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.