Tartalomjegyzék
WooCommerce
Termék adatok
- Woo→eVIR mező megfeleltetések: (WP/Woo → eVIR)
- Mezők: (default woo-ban)
- name → megnevezes
- slug →
- date_created(read-only) →
- date_modified(read-only) →
- type → „simple” (simple)
- status → „publish” (publish)
- catalog_visibility → „visible” (visible)
- description → termék tulajdonságból a leírás, valamint a többi terméktulajdonság is név:érték formában, HTML formázással, valamint a cikkszám is.
- short_description → termék tulajdonságból csak a leírás
- sku → cikkszam
- price (Read only) → beállított árkategória szerinti ár
- regular_price → beállított árkategória szerinti ár
- sale_price → beállított árkategóriához tartozó akciós árkategória szerinti ár
- on_sale(read-only)→ webshop akcios
- virtual → termék esetén false, szolgáltatás esetén true (false)
- tax_status → „taxable” (taxable)
- manage_stock → webshop beállítás szerint (false)
- stock_quantity → webshop beállítás szerint
- stock_status → webshop beállítás és készlet infó szerint (instock)
- sold_individually → „true” (false)
- weight → cikktörzsben a bruttó súly
- dimensions → cikktörzsben:
- length → hosszusag
- width → szelesseg
- height → magassag
- upsell_ids → a kapcsolódó termékek
- cross_sell_ids → a helyettesítő termékek
- categories → cikktörzsből a kategória
- tags → termék tulajdonság, címkék (még nincs evirben, de legyen létrehozva)
- images → termék fő kép
- attributes → termék tulajdonságok
Készlet
- eVIR: „Nem látszik a webshopban” (hidden)
- Nincs tennivaló, az ilyen terméket nem is szinkronizáljuk
- eVIR: „Végtelen mennyiség” (vegtelen)
- manage_stock → „false”
- stock_status → „instock”
- eVIR: „Rendelhető” (rendelheto)
- manage_stock → „false”
- stock_status → „instock”
- stock_quantity → a raktáron levő mennyiség
- backorders → „yes”
- eVIR: „Kifutó”(kifuto)
- manage_stock → „true”
- stock_status → „instock” ha van raktáron. Ha nincs, akkor a termék láthatóságát kell kikapcsolni
- stock_quantity → a raktáron levő mennyiség
- backorders → „no”
- eVIR: „Csak készleten levő” (Csak készleten)
- manage_stock → „true”
- stock_status → „instock” vagy „outofstock” attól függően, hogy van-e készleten
- stock_quantity → a raktáron levő mennyiség
- backorders → „no”
- eVIR: „Mennyiség mutatása” (rakt_menny)
- manage_stock → „false”
- stock_status → „instock” vagy „outofstock” készlettől függően
- stock_quantity → a raktáron levő mennyiség
Termék tulajdonságok
- Woo mezők:
- name → a tulajdonság neve
- visible → „true”
- variation → „false”
- options → a tulajdonság értéke
Termék kategóriák
- Woo mezők:
- id → kötelező mező kategória termékhez rendeléséhez.
- name → a kategória neve. (Levágja a szóközöket, ha több jön egymás után)
- slug → a kategória neve (nincs ékezet, szóközből '-' )
- parent → a szülő kategória
- description → a kategória neve
- display → „default”
Kategóriák kapcsolótáblába rendezése:
- woocommerce_product_categories:
- cikk_kategoria_id → evir oldali id
- product_category_id → woocommerce oldali id
- Tervezve van hogy ha tobb webshop lesz, akkor ez bovul vagy lecserelesre kerul.
Termék képek
- Nem a WooCommerce, hanem a Wordpress mediatár tartalmazza a képeket. A feltöltéséhez wordpress felhasználó szükséges.
- WP mezők:
- title → a kép neve
- description → a kép neve
- alt_text → a kép neve
- Woo mezők:
- id →
- date_created →
- src → WP URL
- name → megegyezik a wp.title-vel → a kép neve, ami a cikk megnevezése
- alt → megegyezik a wp.alt_text-el → a cikk megnevezése
- Ugyan ide ugyan ilyen módon kell feltölteni a termékhez rendelt dokumentumokat is, csak ott értelemszerűen nem képekről van szó
Rendelés
Rendelés adatok
- Mezők: (default woo-ban)
- id → Webshop id
- parent_id
- number → hivatkozás
- order_key
- created_via
- version
- status
- currency → pénznem
- date_created
- date_created_gmt → Rendelés dátuma (rend_datum)
- date_modified
- date_modified_gmt
- discount_total → Teljes engedmény (bruttó)
- discount_tax
- shipping_total → Teljes szállítási költség (bruttó)
- shipping_tax
- cart_tax
- total
- total_tax
- prices_include_tax
- customer_id
- customer_ip_address
- customer_user_agent
- customer_note
- billing → Partner elsődleges címe (ld. lentebb)
- shipping → Partner szállítási címe (ld. lentebb)
- payment_method → Fizetési mód
- payment_method_title
- transaction_id
- date_paid
- date_paid_gmt
- date_completed
- date_completed_gmt
- cart_hash
- meta_data:
- evir_rendeles → Evir rendelés szám. Mi írjuk bele, rendelés sikeres letöltése után.
- HuCommerce plugin esetén:
- _billing_tax_number→ adószám.
- line_items
- tax_lines
- shipping_lines
- method_title→Szállítási költség megjegyzésbe rakjuk.
- fee_lines → Extra költségek. Az extra költségnek beállított cikszámot rárakjuk a rendelésre
- total→ szolgáltatás.netto
- name→ szolgáltatás.megjegyés
- coupon_lines
- refunds
- set_paid
Partner adatok rendelésen
Billing, elsődleges cím
- Személy:
- first_name → Keresztnév
- last_name → Vezetéknév
- Cég:
- company → Cégnév
- address_1 → cím első sora
- address_2 → cím második sora
- city → Város
- state
- postcode → Irányítószám
- country → országkód
- email → emailcím, csak egy van (regisztrációs adat)
- phone → telefonszám
- HuCommerce plugin megléte esetén:
- order
- metadata
- _billing_tax_number → adoszám
Megjegyzés:
- Ha van cégnév, akkor a vezeték és keresztnevet nem vesszük figyelembe, és cégként rögzítjük a partnert.
- A cím sorait egymás után fűzzük szóközzel. Max 60 karakter, ha több vágunk.
- Ha van HuCommerce plugin felrakva, ami ad adószám mezőt a címhez, akkor elsőször az alapján próbáljuk meg beazonosítani a partnert.
- Utána, vagy ha nincs adoszám mező, akkor email-cím alapján keressük meg a partnert.
- Ha nincs, akkor rögzítünk egy új partnert.
Shipping, szállítási cím
- Személy:
- first_name → Keresztnév
- last_name → Vezetéknév
- Cég:
- company → Cégnév
- address_1 → cím első sora
- address_2 → cím második sora
- city → Város
- state
- postcode → Irányítószám
- country → országkód
Megjegyzés:
- Csak akkor foglalkozunk a 'shipping address'-el, ha ki lett töltve rendeléskor.
- Megpróbáljuk beazonosítani a szállítási címet a partnerhez.
- Ha nincs akkor létrehozzuk, mint szállítási cím.
- Használjuk a rendeléshez, mint szállítási címként.
Adatoknak a kategorizálása
Az adatokat kategóriákba lehet sorolni:
- alapadatok:
- ez a cikkszám, megnevezés, áfa, tipus
- készletkezelés
- kezelés módja (manage_stock és kapcsolódó mezők)
- ár mezők:
- price mezők, on_vale
- kategória
- cikk kategóriák és a hierarchiája
- tulajdonságok
- Ami a cikk tulajdonságok, ide értendőek a descriptionok is
- A cikk egyebb adatai, ami nem alapadat, mint meret, suly, stb.
- milyen elsődleges (és majd további másodlagos) termékkategóriákba van besorolva,
- képek
- dokumentumok
Minden egyes kategóriának kell lennie:
- feltöltés
- szinkronizálás
műveleteknek, amelyeket a felületről el kell tudni érni, valamint biztosítani kell az időzített futtathatóságot. Ez egyelőre cron-ból hívott tokenes lekérés lesz, de a jövőben változik.
Szinkronizálás
A szinkronizálás célja az utolsó szinkronizálás óta változott adatok gyors felküldése a shopba. Ezek a műveletek akár pár percenként is lefuthatnak, ezért kritikus a leggyorsabb futásra és a legkevesebb erőforrás használatra való optimalizálás. Amennyiben a szinkronizáció nem végzett a termékekkel 1 percen belül, úgy háttérben folytatja a műveletet.
- alapadatok és árak esetében a cikk modify_date-je alapján lehet
- készlet esetén az eVIR belső auditja alapján érintett termékeknél
Előfordulhat, hogy mondjuk napi időzítéssel (de külön-külön) mehetnek a képek és dokumentumok, cikk kategóriák szinkronizálása is. Ebben az esetben nem lesz gyors, mivel csak összehasonlítás alapon lehet megcsinálni, azaz le kell tölteni a teljes listát Woo-ból, összehasonlítani az eVIR-ben levővel, és csak a változásokat feltölteni.
Feltöltés
A feltöltés célja kettős:
- A rendszer indulásakor feltölteni az eVIR-ből a webshopba az adatokat
- Az üzemeltetés során bármikor „alaphelyzetbe” hozni az adatokat, azaz a webshopban történt elállítgatásokat helyrehozni, visszaállítani abba az állapotba, amiről az eVIR tud. Feltöltés esetén NEM vizsgálunk semmit, nem függ semmitől semmi, egyszerűen fel kell tölteni az adatokat a webshopba. Ha szükséges az ütközés miatt, akkor lehet előtte törölni, vagy bármit csinálni, de akkor is feltétel nélkül az eVIR-ben levő állapotra kell beállnia minden mező minden értékének. Ez a művelet jellemzően egyszer vagy nagyon ritkán (hetente, havonta?) fog lefutni. Nem az a lényeg, hogy mennyi idő alatt fut le, hanem hogy lefusson és erről visszajelzés érkezzen.
A feltöltést jelenleg a cikkek esetében a módosítási dátum legkorábbira állítása, és egy szinkronizáció futtatásával érjük el.
Egyedi szinkronizálás
Az egyedi szinkronizálás esetében a felhasználó maga rakja össze, hogy mely adatok kerüljenek szinkronizálásra a webshopba. Ez jelenleg a cikkekre van megírva.
A Szinkronizálások/Szinkron beállítás
menüpontban aHozzáad
gomb megnyomásával lehet új egyedi szinrkonizálást létrehozni. A cikkhez tartozó szinkronizálható mezők fel vannak sorolva, mindegyikhez egy legördülő tartozik. Két féle mező fajta van:
- Igen/Nem: Vagyis szinkronizálni akarom a mezőt vagy sem.
- Az adott mezőhöz egy termék tulajdonság rendelhető hozzá, mely ha be van állítva a cikkhez, akkor az nem mint tulajdonság, hanem a kiválasztott mezőhöz kerül feltöltésre.
FONTOS:
- Ha egy tulajdonság mezőként be van állítva egy szinkronizálásban, akkor az a tulajdonság nem kerül Woocommerce attribute-ként feltöltésre semelyik másik esetben sem.
- Ha van új cikk, amely még nem szerepel a webshopban, akkor az feltöltésre kerül. A név ebben az esetben mindenképp feltöltésre kerül, bármi is legyen beállítva az egyedi szinkronizálásban.
Ezeket a szinkronizálásokat ugyan itt lehet futtatni a Szinkronizálások/Szinkron beállítás
menüpont alatt, ahol az összes egyedi szinkronizálás megtalálható és látható mikor volt utoljára futtatva (note: Ez itt téves infó. Nem az látható mikor volt utoljára futtatva, noha azt is látni kéne, hanem azt, hogy meddig jutott el a szinkron, a termék módosítási ideje). A Szinkronizálás
gombbal az összes utolsó szinkronizálási időpont után modósult terméket szinkronizálja, míg az Összes termék szinkronizálása
gomb megnyomásával beállítja ezt az időpontot a legkorábbira, és az összes cikket szinkronizálja.
A Szerkesztés
gombbal módosítani tudjuk a szinkronizálandó mezőket.
A Cikk alapértelmezett szinkronizálás
menüpont a Woocommerce beállítások-ban beállított egyedi szinkronizálást fogja lefuttatni, a fentiek alapján leírt módon.
Több WooCommerce shop támogatása
Távlati terv lett volna, de akkor hozzuk előre: több webshop (benne akár több woocommerce) támogatása. Ez azt jelenti, hogy multiplicitást kell adni azoknak a mezőknek, amelyek shoponként különbözőek lehetnek:
- webshop beállítás
- webshop akciós
- webshop árkategória
- webshop raktár
- webshoponként a termék kategóriák beállítása
- webshoponként az alapadatok (URL, user, pass, stb.)
A jelenlegi beállítások akár madahatnak is a helyükön és azok dedikáltan az eVIR saját webshopjára vonatkozzanak, és ezek az extrák legyenek külön feltüntetve, külön állítgathatóan.
Összes termékkategória törlése
DELETE a,c FROM wp_terms AS a LEFT JOIN wp_term_taxonomy AS c ON a.term_id = c.term_id LEFT JOIN wp_term_relationships AS b ON b.term_taxonomy_id = c.term_taxonomy_id WHERE c.taxonomy = 'product_cat'
Összes termék törlése mindenestül
DELETE relations.*, taxes.*, terms.* FROM wp_term_relationships AS relations INNER JOIN wp_term_taxonomy AS taxes ON relations.term_taxonomy_id=taxes.term_taxonomy_id INNER JOIN wp_terms AS terms ON taxes.term_id=terms.term_id WHERE object_id IN (SELECT ID FROM wp_posts WHERE post_type='product'); DELETE FROM wp_postmeta WHERE post_id IN (SELECT ID FROM wp_posts WHERE post_type = 'product'); DELETE FROM wp_posts WHERE post_type = 'product';