Outlet WP

Da Webmobili Wiki.

DOKAN Multi-Vendor

Pagina ufficiale https://wedevs.com/

Per il nostro utilizzo servirebbe acquistare la versione Professional a 190€/anno.

Il pacchetto ha incluso la gestione PIVA sia del Vendor che del Cliente (modulo EU Compliance Fields).

Registrazione Cliente/Vendor

Nella pagina di registrazione utente, c'è la possibilità di scelta tra CLIENTE e VENDOR.

Per disabilitare la possibilità di registrarsi manualmente come Vendor ho dovuto modificare il tema figlio nascondendolo da css:

/*NASCONDO IL BOX DI REGISTRAZIONE COME CLIENTE O VENDITORE*/
.form-row.form-group.user-role.vendor-customer-registration{
	display:none;
}

Stranezza:
Dopo un aggiornamento di WooCommerce è sparita la possibilità di registrarsi.

Ho notato che non era più flaggata l'opzione Permetti ai clienti di creare un account nella pagina "Il mio account" in WooCommerce --> Impostazioni --> Account & Privacy --> Creazione dell'account

Dominio di Test

https://dokan.dbdemo47.com/
utente: admin
password: W3bm0b1l!

REST API DOKAN

Link alla documentazione per le REST API https://wedevsofficial.github.io/dokan/

Vendors

Di default un nuovo Vendor non può pubblicare direttamente i suoi prodotti, ma deve attendere una revisione.
Possiamo cambiare questo comportamento nel menu di gestione Utenti alla voce Publishing -> Publish product directly.

Il Vendor una volta effettuato il login, per vedere la sua dashboard, dovrà andare all'indirizzo /dashboard

Creare un utente Vendor

Prima dobbiamo registrare i seguenti usermeta nel file functions.php del tema figlio:

register_meta( 'user', 'dokan_publishing', array( 'type'=>'string', 'description' => 'Pubblica i prodotti direttamente', 'single' => true,  'show_in_rest' => true) );
register_meta( 'user', 'dokan_enable_selling', array( 'type'=>'string', 'description' => 'Negozio abilitato alla vendita di prodotti', 'single' => true,  'show_in_rest' => true) );
register_meta( 'user', 'dokan_feature_seller', array( 'type'=>'string', 'description' => 'Negozio in evidenza', 'single' => true,  'show_in_rest' => true) );
register_meta( 'user', 'dokan_admin_percentage', array( 'type'=>'string', 'description' => 'Percentuale commissione', 'single' => true,  'show_in_rest' => true) );
register_meta( 'user', 'dokan_admin_percentage_type', array( 'type'=>'string', 'description' => 'Tipo commissione', 'single' => true,  'show_in_rest' => true) );

POST -> /wp-json/wp/v2/users

{
    "username": "slm001",
    "email": "salumi@gnam.prova",
    "password": "650",
    "roles": "seller",
    "meta":{        
        "dokan_publishing": "no",
        "dokan_enable_selling": "yes",
        "dokan_feature_seller": "no",
        "dokan_admin_percentage":"",
        "dokan_admin_percentage_type":"flat"        
    }      
  
}

dokan_publishing --> Abilita la pubblicazione di prodotti direttamente senza moderazione.
dokan_enable_selling --> Abilita il Negozio/Vendor alla vendita di prodotti.
dokan_feature_seller --> Negozio in Evidenza.
dokan_admin_percentage e dokan_admin_percentage_type --> Si riferiscono alla commisione da applicare al Vendor (vengono ereditate dalle impostazioni generali se non le mettiamo).

Ora che l'utente/Vendor è stato creato possiamo aggiungergli ulteriori informazioni tramite un update:

PUT-> /wp-json/dokan/v1/settings

Le credenziali saranno quelle del Vendor appena inserito.

{    
 "store_name" : "Prova 018 Arredamenti",
 "phone": "01119211500",
 "banner": false,
 "vat_number": "",
 "address": {
        "street_1": "Via Fasulla 123",
        "street_2": "",
        "city": "Torino",
        "zip": "10100",
        "country": "IT",
        "state": "TO"
    },
 "social":{
     "fb":"https://facebook_social_link.com",
     "gplus":false,
     "twitter": false,
     "pinterest": false,
     "linkedin": false,
     "youtube": false,
     "instagram": "https://instagram_social_link.com",
     "flickr": false
 }
}

Products

Per aggiungere un prodotto ad un Vendor, dobbiamo chiamare la seguente API autenticati con i dati del vendor (se mi autentico con utente piripicchio il prodotto sarà dello store piripicchio).
POST -> /wp-json/dokan/v1/products/

{
    "name": "Sedia chiappona",
    "type": "simple",
    "price": "350",
    "regular_price": "350",
    "sale_price": "299",
    "manage_stock": true,
    "stock_quantity": 1,
    "description": "Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.",
    "short_description": "Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.",
    "categories": [
      {
        "id": 67
      }
    ],
    "images": [
      {
        "src": "https://litb-cgis.rightinthebox.com/images/640x640/202203/bps/product/inc/uwdagr1647929641933.jpg",
        "position": 0
      },
       {
        "src": "https://litb-cgis.rightinthebox.com/images/640x640/202203/bps/product/inc/stspzs1647929642243.jpg",
        "position": 1
      }
    ]
  }

Traduzioni

Per creare le traduzioni è necessario usare poedit.
L' idea è quella di utilizzare la struttura di localizzazioni del plugin che si trova nel file
/wp-content/plugins/dokan/languages/dokan-lite.pot
che espone solo la struttura delle traduzioni nel "linguaggio neutro".

NB
Ricordarsi, in caso di modifica, di riassegnare i permessi 775 e l'owner www-data:www-data
altrimenti durante gli aggiornamenti di Dokan segnala errore.

Una volta aperto con poedit creare una nuova traduzione per la lingua italiana, compilare tutti i campi e salvare per ritrovarsi 2 file

  • it_IT.po leggibile da umani (con poedit)
  • it_IT.mo leggibile dalla macchina (WP)

Piazzare questi due file nella cartella /wp-content/languages/plugins/ con i seguenti nomi:

/wp-content/languages/plugins/dokan-lite-it_IT.po
/wp-content/languages/plugins/dokan-lite-it_IT.mo

Traduzioni parziali della community

Esistono delle traduzioni parziali (al momento italiano è al 55%) sul sito
https://translate.wordpress.org/projects/wp-plugins/dokan-lite
pronte all'uso.
Basta scaricare i file .po e .mo e piazzarli in /wp-content/languages/plugins/.
Per modificare le traduzioni aprire il file .po con poedit e al salvataggio si genera anche il .mo. Sostituire sul server.

Scheda Prodotto/Occasione

Necessità di nascondere il pulsante di acquisto solo per alcuni prodotti outlet, ma non ecommerce.

https://www.cloudways.com/blog/how-to-remove-hide-or-disable-add-to-cart-button-in-woocommerce/#remove-button-from-specific-products