Felhasználói eszközök

Eszközök a webhelyen


spec:woocommerce

Ez a dokumentum egy előző változata!


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
    • fee_lines
    • 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.

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.

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.

  • alapadatok esetében a cikk modify_date-je alapján lehet
  • készlet esetén az eVIR belső auditja alapján érintett termékeknél
  • árak esetén is a modify_date esetén

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.

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, melyet a Szinkronizálások/Cikk szinkronizálás beállítások menüpontban lehet elérni.
Itt egy új név megadásával lehet új szinkronizálást létrehozni, vagy pedig a legördülőből kiválasztva, és a Frissít gombra kattintva egy már meglévőt módosítani. 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 lehet futtatni a Szinkronizálások/Cikk szinkronizálás menüpont alatt, ahol látható mikor volt utoljára futtatva az egyes szinkronizálások. Ha be van pipálva az Összes termék szinkronizálása akkor figyelmen kívűl hagyja ezt az időpontot, és az összes cikket szinkronizálja a webshop termékeivel.

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.1624448244.txt.gz · Utolsó módosítás: 2021/06/23 13:37 szerkesztette: csetom