New plugins: core-tools New skills: auto-expense, ticket-triage, design, security-check, aiktop-tasks, daily-digest, imap-triage, index-update, mindmap, notebooklm, proc-creator, tasks-overview, validate-component, perfex-module, report, calendar-manager New agents: design-critic, design-generator, design-lead, design-prompt-architect, design-researcher, compliance-auditor, metabase-analyst, gitea-integration-specialist Updated: all plugin configs, knowledge datasets, existing skills Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
272 lines
8.8 KiB
Markdown
272 lines
8.8 KiB
Markdown
---
|
|
name: woocommerce-cli
|
|
description: This skill should be used when the user asks to "gerir woocommerce linha de
|
|
comandos", "woocommerce wp-cli", "criar produto woocommerce cli", "actualizar stock
|
|
woocommerce cli", "gerir encomendas woocommerce cli", "importar produtos woocommerce",
|
|
"exportar produtos woocommerce", "configurar shipping woocommerce cli", "payment gateway
|
|
woocommerce cli", "limpar cache woocommerce cli", "bulk update woocommerce", "woocommerce
|
|
cwp", "wc cli cwp", "wp wc product", "wp wc shop_order", "configurar woocommerce servidor",
|
|
"scripting woocommerce", "automacao woocommerce cli". WooCommerce management via WP-CLI
|
|
on CWP server (server.descomplicar.pt) covering products, orders, customers, shipping,
|
|
payments, and automation.
|
|
author: Descomplicar® Crescimento Digital
|
|
version: 1.0.0
|
|
quality_score: 80
|
|
user_invocable: true
|
|
---
|
|
|
|
# /woocommerce-cli — WooCommerce via WP-CLI no CWP
|
|
|
|
Gestão completa de lojas WooCommerce via linha de comandos no servidor CWP. Cobre produtos, encomendas, clientes, configuração, automação e scripting.
|
|
|
|
**Servidor:** server.descomplicar.pt (176.9.3.158) | porta SSH: 9443
|
|
**Manual:** `Hub/06-Operacoes/Documentacao/Manuais/WooCommerce com WP-CLI_ Guia Completo.md`
|
|
**Skill relacionada:** `/woocommerce` — desenvolvimento e extensões WooCommerce
|
|
|
|
---
|
|
|
|
## Contexto CWP — Regras Obrigatórias
|
|
|
|
```bash
|
|
# 1. SEMPRE prefixar com PHP completo
|
|
# 2. SEMPRE --allow-root (CWP executa como root)
|
|
# 3. SEMPRE --user=1 em operações de escrita (mapeamento REST API)
|
|
# 4. SEMPRE --path= (múltiplos sites no mesmo servidor)
|
|
|
|
# Formato base
|
|
/opt/alt/php-fpm83/usr/bin/php /usr/local/bin/wp wc <ENTIDADE> <OP> \
|
|
--user=1 --allow-root --path=/home/USER/public_html
|
|
|
|
# Variável de conveniência para scripts
|
|
PATH_WP="/home/USER/public_html"
|
|
WP="/opt/alt/php-fpm83/usr/bin/php /usr/local/bin/wp --allow-root --path=$PATH_WP"
|
|
$WP wc product list --user=1
|
|
```
|
|
|
|
### Versões PHP disponíveis
|
|
|
|
| Alias | PHP | Path |
|
|
|-------|-----|------|
|
|
| `wp74` | 7.4 | `/opt/alt/php-fpm74/usr/bin/php` |
|
|
| `wp82` | 8.2 | `/opt/alt/php-fpm82/usr/bin/php` |
|
|
| `wp83` | 8.3 | `/opt/alt/php-fpm83/usr/bin/php` (recomendado) |
|
|
|
|
### Parâmetros essenciais WC CLI
|
|
|
|
| Parâmetro | Uso |
|
|
|-----------|-----|
|
|
| `--user=1` | Obrigatório em escrita (autenticação REST API) |
|
|
| `--porcelain` | Retorna apenas ID numérico (para scripts) |
|
|
| `--format=table\|json\|csv\|ids` | Formato do output |
|
|
| `--fields=id,name,price` | Limitar campos (reduz memória) |
|
|
| `--per_page=100` | Limite máximo da API (paginar para mais) |
|
|
| `--force` | Eliminar definitivamente (sem lixo) |
|
|
|
|
---
|
|
|
|
## Produtos
|
|
|
|
### Operações Comuns
|
|
|
|
```bash
|
|
PATH_WP="/home/USER/public_html"
|
|
|
|
# Listar produtos
|
|
/opt/alt/php-fpm83/usr/bin/php /usr/local/bin/wp wc product list \
|
|
--user=1 --fields=id,name,price,stock_quantity --format=table \
|
|
--allow-root --path=$PATH_WP
|
|
|
|
# Criar produto simples
|
|
/opt/alt/php-fpm83/usr/bin/php /usr/local/bin/wp wc product create \
|
|
--user=1 \
|
|
--name="Produto Exemplo" \
|
|
--type=simple \
|
|
--regular_price="29.99" \
|
|
--sku="PROD-001" \
|
|
--manage_stock=true \
|
|
--stock_quantity=100 \
|
|
--status=publish \
|
|
--allow-root --path=$PATH_WP
|
|
|
|
# Actualizar preço e stock
|
|
/opt/alt/php-fpm83/usr/bin/php /usr/local/bin/wp wc product update 456 \
|
|
--user=1 \
|
|
--regular_price="34.99" \
|
|
--stock_quantity=50 \
|
|
--allow-root --path=$PATH_WP
|
|
|
|
# Eliminar definitivamente
|
|
/opt/alt/php-fpm83/usr/bin/php /usr/local/bin/wp wc product delete 456 \
|
|
--user=1 --force --allow-root --path=$PATH_WP
|
|
```
|
|
|
|
### Produto Variável (capturar ID)
|
|
|
|
```bash
|
|
# 1. Criar produto pai (--porcelain retorna só o ID)
|
|
PARENT_ID=$(/opt/alt/php-fpm83/usr/bin/php /usr/local/bin/wp wc product create \
|
|
--user=1 --name="T-Shirt" --type=variable \
|
|
--attributes='[{"name":"Tamanho","variation":true,"visible":true,"options":["S","M","L","XL"]}]' \
|
|
--porcelain --allow-root --path=$PATH_WP)
|
|
|
|
# 2. Criar variação
|
|
/opt/alt/php-fpm83/usr/bin/php /usr/local/bin/wp wc product_variation create $PARENT_ID \
|
|
--user=1 \
|
|
--regular_price="24.99" \
|
|
--sku="TSHIRT-M" \
|
|
--attributes='[{"name":"Tamanho","option":"M"}]' \
|
|
--manage_stock=true --stock_quantity=30 \
|
|
--allow-root --path=$PATH_WP
|
|
```
|
|
|
|
### Actualização em Massa por SKU
|
|
|
|
```bash
|
|
#!/bin/bash
|
|
PATH_WP="/home/USER/public_html"
|
|
WP="/opt/alt/php-fpm83/usr/bin/php /usr/local/bin/wp --allow-root --path=$PATH_WP"
|
|
|
|
IDS=$($WP wc product list --user=1 --sku="TSHIRT-*" --format=ids)
|
|
for ID in $IDS; do
|
|
$WP wc product update $ID --user=1 --stock_quantity=200 --porcelain
|
|
done
|
|
```
|
|
|
|
### Exportar Catálogo
|
|
|
|
```bash
|
|
/opt/alt/php-fpm83/usr/bin/php /usr/local/bin/wp wc product list \
|
|
--user=1 --per_page=5000 --format=csv \
|
|
--allow-root --path=$PATH_WP \
|
|
> /home/USER/catalogo_$(date +%Y%m%d).csv
|
|
```
|
|
|
|
---
|
|
|
|
## Encomendas
|
|
|
|
```bash
|
|
PATH_WP="/home/USER/public_html"
|
|
|
|
# Listar encomendas em processamento
|
|
/opt/alt/php-fpm83/usr/bin/php /usr/local/bin/wp wc shop_order list \
|
|
--user=1 --status=processing \
|
|
--fields=id,total,date_created \
|
|
--allow-root --path=$PATH_WP
|
|
|
|
# Actualizar estado
|
|
/opt/alt/php-fpm83/usr/bin/php /usr/local/bin/wp wc shop_order update 355 \
|
|
--user=1 --status=completed \
|
|
--allow-root --path=$PATH_WP
|
|
|
|
# Adicionar nota ao cliente
|
|
/opt/alt/php-fpm83/usr/bin/php /usr/local/bin/wp wc order_note create 355 \
|
|
--user=1 \
|
|
--note="Encomenda expedida. Rastreio: PT-99887766." \
|
|
--customer_note=true \
|
|
--allow-root --path=$PATH_WP
|
|
|
|
# Conclusão massiva de todas as encomendas em processamento
|
|
WP="/opt/alt/php-fpm83/usr/bin/php /usr/local/bin/wp --allow-root --path=$PATH_WP"
|
|
for ID in $($WP wc shop_order list --user=1 --status=processing --format=ids); do
|
|
$WP wc shop_order update $ID --user=1 --status=completed --porcelain
|
|
done
|
|
```
|
|
|
|
---
|
|
|
|
## Clientes
|
|
|
|
```bash
|
|
# Listar clientes com métricas
|
|
/opt/alt/php-fpm83/usr/bin/php /usr/local/bin/wp wc customer list \
|
|
--user=1 --fields=id,email,orders_count,total_spent \
|
|
--format=table --allow-root --path=$PATH_WP
|
|
|
|
# Criar cliente
|
|
/opt/alt/php-fpm83/usr/bin/php /usr/local/bin/wp wc customer create \
|
|
--user=1 \
|
|
--email="cliente@exemplo.pt" \
|
|
--first_name="João" \
|
|
--last_name="Silva" \
|
|
--billing='{"address_1":"Rua X","city":"Lisboa","postcode":"1000-001","country":"PT"}' \
|
|
--allow-root --path=$PATH_WP
|
|
```
|
|
|
|
---
|
|
|
|
## Configurações da Loja
|
|
|
|
```bash
|
|
PATH_WP="/home/USER/public_html"
|
|
|
|
# Listar ferramentas disponíveis
|
|
/opt/alt/php-fpm83/usr/bin/php /usr/local/bin/wp wc tool list \
|
|
--user=1 --fields=id,name --allow-root --path=$PATH_WP
|
|
|
|
# Sequência de limpeza pós-alterações (executar sempre após mudanças)
|
|
WP="/opt/alt/php-fpm83/usr/bin/php /usr/local/bin/wp --allow-root --path=$PATH_WP"
|
|
$WP wc tool run clear_transients --user=1 # Limpar transients WC
|
|
$WP wc tool run recount_terms --user=1 # Recalcular contadores
|
|
$WP wc tool run delete_orphaned_variations --user=1 # Variações órfãs
|
|
$WP cache flush # Object cache
|
|
$WP rewrite flush # Rewrite rules
|
|
|
|
# Listar payment gateways
|
|
/opt/alt/php-fpm83/usr/bin/php /usr/local/bin/wp wc payment_gateway list \
|
|
--user=1 --fields=id,title,enabled --allow-root --path=$PATH_WP
|
|
|
|
# Desactivar gateway (emergência)
|
|
/opt/alt/php-fpm83/usr/bin/php /usr/local/bin/wp wc payment_gateway update paypal \
|
|
--user=1 --enabled=false --allow-root --path=$PATH_WP
|
|
```
|
|
|
|
---
|
|
|
|
## Cron do Sistema (CWP)
|
|
|
|
Desactivar WP-Cron virtual — adicionar em `wp-config.php`:
|
|
|
|
```php
|
|
define('DISABLE_WP_CRON', true);
|
|
```
|
|
|
|
Configurar cron real (`crontab -e` como root):
|
|
|
|
```bash
|
|
* * * * * /opt/alt/php-fpm83/usr/bin/php /usr/local/bin/wp cron event run --due-now --quiet --allow-root --path=/home/USER/public_html > /dev/null 2>&1
|
|
```
|
|
|
|
---
|
|
|
|
## Erros Comuns
|
|
|
|
| Erro | Causa | Solução |
|
|
|------|-------|---------|
|
|
| `Error: This does not appear to be a WooCommerce installation` | WooCommerce inactivo | `wp plugin activate woocommerce` |
|
|
| `Error: Sorry, you cannot list resources` | Falta `--user=` | Adicionar `--user=1` |
|
|
| `PHP Fatal error: memory` | Catálogo grande | Adicionar `-d memory_limit=2G` antes de `/usr/local/bin/wp` |
|
|
| `wp wc update` não actualiza BD | Bug conhecido | `wp option update woocommerce_db_version "X.X.X"` manual |
|
|
| Wizard de onboarding bloqueia | Sem comando CLI | `wp option update woocommerce_task_list_hidden "yes"` |
|
|
|
|
---
|
|
|
|
## Recursos Adicionais
|
|
|
|
### Referência Completa
|
|
|
|
- **`references/commands.md`** — Todos os tipos de produto (variável, externo, agrupado, virtual, downloadable), shipping zones completo, tributação, cupões, WP All Import, scripts de automação
|
|
|
|
### Manual Hub
|
|
|
|
- **`Hub/06-Operacoes/Documentacao/Manuais/WooCommerce com WP-CLI_ Guia Completo.md`** — Guia completo adaptado para CWP (v2.0)
|
|
|
|
### Skills Relacionadas
|
|
|
|
- **`/woocommerce`** — Desenvolvimento WooCommerce (PHP, hooks, extensões)
|
|
- **`/wp-cli`** — WP-CLI geral no CWP (core, plugins, temas, BD)
|
|
|
|
---
|
|
|
|
*WooCommerce CLI no CWP | Descomplicar® | v1.0.0 | 18-02-2026*
|