Kaikki artikkelit

Hintaseuranta ja automaattinen hinnoittelu: Winpos, WooCommerce ja PriceShape

Kevyt integraatio WooCommerce-palvelimella vie tuotteet Winposista PriceShapeen ja päivittää kilpailijahintojen perusteella hinnat kauppaan ja kassaan.

  • Integraatiot
  • WooCommerce
  • Winpos

Kaikki integraatiot eivät tarvitse omaa palvelua. Tein elektroniikkaa myyvälle kaupalle integraation, joka vie puhelimet, tabletit ja älykellot Winpos-kassajärjestelmästä PriceShapen hintaseurantaan ja päivittää kilpailijatiedon perusteella hinnat takaisin sekä verkkokauppaan että kassaan. Molemmat osat ajetaan kaupan omalla WooCommerce-palvelimella WP-CLI-komentoina palvelimen cronilla.

Mitä tarvittiin?

PriceShape on tanskalainen hinnoittelupalvelu, joka seuraa kilpailijoiden hintoja. Sitä varten se tarvitsee kaupan tuotteet ja tässä kaupassa tuotteiden ja hintojen päälähde on Winpos-kassa. Kun kilpailijoiden hinnat tiedetään, hinta pitää päivittää kahteen paikkaan: WooCommerce-verkkokauppaan ja Winposiin, jotta myymälässä ja verkossa on sama hinta.

Seurantaan otettiin tuoteryhmät, joissa hintakilpailu on kovinta: puhelimet, tabletit ja älykellot.

Osa 1: tuotteet Winposista PriceShapeen

  1. Haku Winposista sivu kerrallaan. Tuotteet haetaan Winposin REST-rajapinnasta sata kerrallaan, kunnes kaikki on käyty läpi.
  2. Suodatus tuoteryhmän mukaan. Mukaan otetaan vain Winposin osastot, joihin puhelimet, tabletit ja älykellot kuuluvat.
  3. Tarvittavat tiedot. Jokaisesta tuotteesta poimitaan EAN-koodi, tuotekoodi, nimi, osasto ja alaosasto, hinta, tuotetyyppi ja verokanta.
  4. Syöte tiedostoon. Tuotteet kirjoitetaan JSON-tiedostoksi, josta PriceShape lukee ne.

Winposissa on tuhansia tuotteita. Jotta PHP:n muisti ei lopu, jokaisen sivun tuotteet kirjoitetaan tiedostoon heti ja muisti vapautuu ennen seuraavaa sivua. Jos Winpos palauttaa jollekin sivulle virheen, siitä lähtee minulle sähköposti ja muut sivut käsitellään normaalisti.

Osa 2: hinnat PriceShapesta takaisin kauppaan

Toinen osa on WordPress-lisäosa, joka lisää palvelimelle WP-CLI-komennon. Komento hakee PriceShapen hintaviennin ja päivittää hinnat.

Hinnoittelusääntö

Jokaiselle tuotteelle etsitään halvin hinta PriceShapen seuraamista kaupoista ja se pyöristetään ylöspäin täysiin euroihin. Hinta päivitetään vain, jos se päättyy yhdeksään, eli esimerkiksi 349 €. Muihin tuotteisiin ei kosketa. Sääntö pitää automaattisesti päivittyvät hinnat kaupan tutussa ...9 euron muodossa.

Tällaisia sääntöjä kannattaa miettiä tarkkaan yhdessä kauppiaan kanssa, koska ne muuttavat hintoja ilman, että kukaan katsoo niitä etukäteen.

Päivitys WooCommerceen ja Winposiin

foreach ( $targets as $sku => $new_price ) {
	// WooCommerce: vain jos hinta oikeasti muuttuu
	if ( isset( $woo_map[ $sku ] ) && (string) $woo_map[ $sku ]['price'] !== (string) $new_price ) {
		$this->update_woo_price( $woo_map[ $sku ]['id'], $new_price );
	}
	// Winpos: haetaan nykyinen hinta ja päivitetään, jos se poikkeaa
	$this->update_winpos_price( $sku, $new_price );
}
  • WooCommerce. Hinta tallennetaan WooCommercen omien toimintojen kautta, jotta välimuistit tyhjenevät ja muut lisäosat, kuten hakukonelisäosa, saavat tiedon muutoksesta.
  • Winpos. Integraatio hakee tuotteen nykyiset tiedot kassasta ja lähettää uuden hinnan vain, jos se poikkeaa nykyisestä.
  • Loki. Jokainen muutos kirjataan lokiin vanhan ja uuden hinnan kanssa ja ajon lopuksi tulostetaan yhteenveto päivitetyistä tuotteista.

Muisti ja nopeus

WordPress ja WooCommerce on tehty ennen kaikkea sivulatauksia varten ja tuhansien tuotteiden käsittely yhdellä ajolla kuluttaa helposti kaiken muistin. Siksi komento:

  • etsii tuotteet tuotekoodin (SKU) perusteella yhdellä tietokantakyselyllä 500 tuotetta kerrallaan sen sijaan, että jokainen tuote haettaisiin erikseen
  • lataa WooCommercen tuoteolion vain niille tuotteille, joiden hinta oikeasti muuttuu
  • tyhjentää WordPressin välimuistin ajon aikana ja raportoi lopuksi muistin enimmäiskäytön.

Miksi WooCommerce-palvelimelle?

  • Tehtävät ovat selkeitä. Syötteen kirjoitus ja hintojen päivitys ajastetusti. Jonoja tai erillistä tietokantaa ei tarvita.
  • Palvelin on jo olemassa. Erillistä pilvipalvelua ei tarvitse perustaa, maksaa eikä ylläpitää.
  • Suora pääsy kauppaan. Hinnat päivittyvät WooCommercen omien toimintojen kautta samalla tavalla kuin hallintapaneelista.
  • Ajo ei hidasta kauppaa. Ajot käynnistää palvelimen cron eikä WordPressin sivulatauksiin sidottu WP-Cron, joten ne eivät vaikuta kävijöiden sivulatauksiin.

Vertailin integraatioiden ajoympäristöjä tarkemmin integraatiopalvelun sivulla.

Usein kysyttyä

Muuttaako integraatio hintoja ilman ihmistä?

Muuttaa, mutta vain sovitun säännön mukaan ja vain seurattavissa tuoteryhmissä. Jokainen muutos kirjataan lokiin, joten muutokset voi tarkistaa jälkikäteen.

Miksi hinnat päivitetään sekä verkkokauppaan että kassaan?

Jotta asiakas saa saman hinnan myymälässä ja verkossa. Jos hinta päivittyisi vain verkkokauppaan, myymälän hinta jäisi jälkeen.

Miksi seurantaan otettiin vain osa tuotteista?

Hintavertailu on hyödyllisintä tuotteissa, joita myydään monessa kaupassa samalla EAN-koodilla ja joiden hintoja asiakkaat vertailevat. Puhelimet, tabletit ja älykellot ovat juuri sellaisia.

Tarvitsetko apua?

Kerro, mitä tarvitset, niin mietitään yhdessä, miten asia kannattaa hoitaa.

Kerro projektistasi