Felhasználói eszközök

Eszközök a webhelyen


spec:woocommerce

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:

  1. 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.
  2. A cím sorait egymás után fűzzük szóközzel. Max 60 karakter, ha több vágunk.
  3. 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.
  4. Utána, vagy ha nincs adoszám mező, akkor email-cím alapján keressük meg a partnert.
  5. 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:

  1. Csak akkor foglalkozunk a 'shipping address'-el, ha ki lett töltve rendeléskor.
  2. Megpróbáljuk beazonosítani a szállítási címet a partnerhez.
  3. Ha nincs akkor létrehozzuk, mint szállítási cím.
  4. 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';
spec/woocommerce.txt · Utolsó módosítás: 2022/03/09 13:45 szerkesztette: csetom