No método gerar do arquivo NfeService, baseado na documentação do sped, crie a tag prod
$std = new stdClass();
$std->item = 1; //item da NFe
$std->cProd;
$std->cEAN;
$std->cBarra;
$std->xProd;
$std->NCM;
$std->cBenef;
$std->EXTIPI;
$std->CFOP;
$std->uCom;
$std->qCom;
$std->vUnCom;
$std->vProd;
$std->cEANTrib;
$std->cBarraTrib;
$std->uTrib;
$std->qTrib;
$std->vUnTrib;
$std->vFrete;
$std->vSeg;
$std->vDesc;
$std->vOutro;
$std->indTot;
$std->xPed;
$std->nItemPed;
$std->nFCI;
$nfe->tagprod($std);
Campo CEST (Código Especificador da Substituição
Tributária), que estabelece a sistemática de
uniformização e identificação das mercadorias e bens
passíveis de sujeição aos regimes de substituição
tributária e de antecipação de recolhimento do ICMS.
(Incluído na NT 2015/003. Atualizado NT 2016/002)
Preencher com o código GTIN-8, GTIN-12, GTIN-13 ou
GTIN-14 (antigos códigos EAN, UPC e DUN-14) da unidade tributável do produto.
O GTIN da unidade tributável deve corresponder
àquele da menor unidade comercializável identificada
por código GTIN.
Para produtos que não possuem código de barras com
GTIN, deve ser informado o literal "SEM GTIN”;
(Atualizado NT 2017/001)
Campo CEST (Código Especificador da Substituição
Tributária), que estabelece a sistemática de
uniformização e identificação das mercadorias e bens
passíveis de sujeição aos regimes de substituição
tributária e de antecipação de recolhimento do ICMS.
(Incluído na NT 2015/003. Atualizado NT 2016/002)
Preencher com o código GTIN-8, GTIN-12, GTIN-13 ou
GTIN-14 (antigos códigos EAN, UPC e DUN-14) da unidade tributável do produto.
O GTIN da unidade tributável deve corresponder
àquele da menor unidade comercializável identificada
por código GTIN.
Para produtos que não possuem código de barras com
GTIN, deve ser informado o literal "SEM GTIN”;
(Atualizado NT 2017/001)
Preencha os do node Produto de acordo com sua necessidade, caso queira entender como foi feito assista ao vídeo no link abaixo
//Inicio Produto
$std = new stdClass();
$std->item = 1;
$std->cProd = $produto->id;
$std->cEAN = $produto->gtin;
$std->xProd = $produto->nome;
$std->NCM = $produto->ncm;
$std->cBenef = $produto->cbenef; //incluido no layout 4.00
$std->EXTIPI = $produto->tipi;
$std->CEST = $produto->cest;
$std->uCom = tiraAcento($produto->unidade);
$std->cEANTrib = $produto->gtin;
$std->CFOP = $tributacao->cfop;
$std->qCom = 1;
$std->vUnCom = formataNumero($produto->preco);
$std->vProd = formataNumero($produto->preco * $std->qCom);
$std->uTrib = tiraAcento($produto->unidade);
$std->qTrib = 1;
$std->vUnTrib = formataNumero($produto->preco); ;
$std->vFrete = null;
$std->vSeg = null ;
$std->vDesc = null;
$std->vOutro = null ;
$std->indTot = 1;
$std->xPed = 125;
$std->nItemPed = "1";
$std->nFCI = null;
$nfe->tagprod($std);
$vBC = $std->vProd ;
//Fim PRoduto
Preencha os dos imposto e total de acordo com sua necessidade, caso queira entender como foi feito assista ao vídeo no link abaixo
$std = new stdClass();
$std->item = 1; //item da NFe
$std->vTotTrib = $produto->preco;
$nfe->tagimposto($std);
$std = new stdClass();
$std->item = 1; //item da NFe
$std->orig = 0;
$std->CSOSN = '103';
$nfe->tagICMSSN($std);
$std = new stdClass();
$std->item = 1; //item da NFe
$std->CST = '07';
$nfe->tagPIS($std);
$std = new stdClass();
$std->item = 1; //item da NFe
$std->CST = '07';
$nfe->tagCOFINS($std);
$stdTotal = new stdClass;
$stdTotal->vBC = null;
$stdTotal->vICMS = null;
$stdTotal->vICMSDeson = 0.00;
$stdTotal->vFCP = 0.00;
$stdTotal->vBCST = 0.00;
$stdTotal->vST = 0.00;
$stdTotal->vFCPST = 0.00;
$stdTotal->vFCPSTRet = 0.00;
$stdTotal->vProd = 0.00;
$stdTotal->vFrete = 0.00;
$stdTotal->vSeg = 0.00;
$stdTotal->vDesc = 0.00;
$stdTotal->vII = 0.00;
$stdTotal->vIPI = 0.00;
$stdTotal->vIPIDevol = 0.00;
$stdTotal->vPIS = 0.00;
$stdTotal->vCOFINS = 0.00;
$stdTotal->vOutro = 0.00;
$stdTotal->vNF = $vBC;
$stdTotal->vTotTrib = 0.00;
$nfe->tagICMSTot($stdTotal);
Preencha os campos do transporte, da cobrança e do pagamento de acordo com sua necessidade, caso queira entender como foi feito assista ao vídeo no link abaixo
$std = new stdClass();
$std->modFrete = "9";
$nfe->tagtransp($std);
$stdfat = new stdClass();
$stdfat->nFat = '17';
$stdfat->vOrig = $stdTotal->vNF;
$stdfat->vDesc = 0.0;
$stdfat->vLiq = $stdTotal->vNF;
$fat = $nfe->tagfat($stdfat);
$std = new stdClass;
$std->nDup = "001" ;
$std->dVenc = '2023-05-04';
$std->vDup = formataNumero($stdTotal->vNF) ;
$nfe->tagdup($std);
$std = new stdClass();
$std->vTroco = 0.0 ;
$nfe->tagpag($std);
$std = new \stdClass();
$std->tPag = '05';
$std->vPag = number_format($stdTotal->vNF, 2, '.', '');
$nfe->tagdetPag($std);