moloni-pt / woocommerce

Moloni integration with Wordpress/WooCommerce
https://moloni.pt
Apache License 2.0
8 stars 8 forks source link

Comunicação de detalhes da encomenda associado ao nome do produto #12

Closed Ricarditu closed 3 months ago

Ricarditu commented 11 months ago

Tenho um cliente com um sistema de marcações (Jetappointment) integrado com Woocommerce. Este sistema usa um produto base (neste caso são serviços) que depois ajusta - preço e outras características - a cada serviço prestado. Por esta razão, sendo apenas 1 produto, na comunicação do Woocommerce com o Moloni apenas é comunicado o nome do produto, estando o nome do serviço nos detalhes da encomenda. Existe alguma forma de conseguir ir buscar o nome do serviço aos detalhes da encomenda e usar antes esta informação? Ou agregá-la ao nome do produto.

moloni-pt commented 4 months ago

Bom dia. O plugin tem disponível vários filtros (hooks) que permitem personalizar a criação de documentos.

Para a sua situação sugerimos a utilização do filtro (hook) “moloni_before_insert_document”.

Este filtro corre mesmos antes de inserir o documento na conta Moloni. Referência do filtro:

https://github.com/moloni-pt/woocommerce/blob/4ea23a5ef9230047af25a38e24aa953f38c928f6/src/Controllers/Documents.php#L267

Sugerimos a implementação deste filtro (meramente exemplificativo):

function moloni_before_insert_document($document_builder) {
    if (empty($document_builder->products)) {
        return;
    }

    foreach ($document_builder->products as &$product) {
        if (empty($product['summary'])) {
            continue;
        }

        $product['name'] = $product['summary'];
        $product['summary'] = '';
    }
}

add_filter('moloni_before_insert_document', 'moloni_before_insert_document', 10, 1);

Caso necessite de mais ajuda não hesite em entrar em contacto.