assinar: Posts | Comentários | Email
Pesquisar no site
Estoque por Atributo no OsCommerce
Postado por em 04/fev/2009 na categoria OsCommerce
Depois de muito me bater para instalar uma contribuição para controlar o estoque pelos atributos dos produtos, encontrei outra muito mais simples e fácil de instalar, chama-se Quantity for Product Attributes Mod (eu usei a versão ‘Fix a bug:: check stock per product attribute quantity (v2)’) e é fácil de instalar e faz exatamente o que eu precisava: poder ter quantidades de estoque pelos atributos do produto, no meu caso por sabor, então cada produto terá seu estoque individual de cada sabor.
Para instalar é bem simples, basta fazer uma alteração no banco, apenas na tabela ‘products_attributes’, e copiar quatro arquivos para seus devidos lugares, são eles:
product_info.php, checkout_process.php, categories.php e products_attributes.php;
Com essas alterações vai aparecer um novo campo no menu atributos chamado ‘quantidade’, e é aà que será colocada a quantidade para cada sabor do produto, ele já soma a quantidade do estoque do atributo com a quantidade total do produto no menu categorias/produtos, onde você edita cada produto.
Para fechar com chave de ouro essa atualização, procurei um relatório que mostrasse o estoque, tanto para os produtos com quantidades por atributos tanto para os outros que não tem, encontrei então uma contribuição chamada Stock Viewer with Quantity per attribute que justamente era para quem estivesse usando o módulo Quantity for Product Attributes Mod, inclusive para quem quiser, nesse módulo vem também os arquivos para instalar o controle de estoque por atributo, mas como eu já havia instalado, instalei então somente o Stock Viewer, também é super simples de instalar, requer apenas modificar três arquivos: catalog.php, filenames.php e languagesportugues.php, além de copiar o arquivo stockview.php para a pasta admin.
Com a alteração dos arquivos é mostrado no menu Catálogo uma nova opção chamada Estoque, que mostra um relatório do estoque atual, tanto dos produtos com atributos quanto os sem.
Como este relatório estava adaptado para mostrar somente o estoque dos produtos que tinham estoque por atributos, eu modifiquei ele para que mostrasse todos, no arquivo stockview.php aonde tinha:
SELECT * FROM products, products_description, products_attributes, products_options_values WHERE products.products_id = products_description.products_id and products.products_id = products_attributes.products_id and products_description.language_id = ‘” . $languages_id . “‘ and products_attributes.options_values_id = products_options_values.products_options_values_id ORDER BY products_description.products_name
eu alterei para:
SELECT * FROM products p inner join products_description pd on p.products_id = pd.products_id left join products_attributes pa on p.products_id = pa.products_id left join products_options_values pov on pa.options_values_id = pov.products_options_values_id WHERE pd.language_id = ‘” . $languages_id . “‘ORDER BY pd.products_name
Fiz os testes de quando é feito uma compra para algum dos produtos com estoque por atributos ele baixa corretamente, tanto do estoque do produto, tanto do estoque do atributo. Os produtos que não utilizam estoque por atributos também funcionam corretamente.
Caso tenha alguma dúvida, ou precise dos arquivos, entre em contato.
Até breve.


























funciona com pagseguro??
Olá Bruno, não sei direito o que vc quis dizer, porém, pelo menos o pagseguro que eu utilizo não baixa o estoque de jeito nenhum.
Esse módulo funciona independente do pagseguro.
Desculpe se não entendi sua pergunta, fique a vontade para voltar a perguntar.
Um abraço
é o seguinte sandra, é pq eu fiz meu módulo do pagseguro funcionar corretamente… então ele faz o retorno, dá baixa no estoque e tudo certo… entao eu queria saber se esse sistema consegue fazer a compra normalmente pelo pagseguro e depois retornar corretamente e fazer baixa no estoque por atributos…
Olha Bruno, assim, se eu não uso o pagseguro, ele baixa tanto do produto quanto do atributo certinho, porém, a minha versão do pagseguro não baixa nem do produto, muito menos do atributo… por isso não sei te dizer.
Você tem uma versão do pagseguro que baixe o estoque certo? Se puder mande para mim que eu testo e te digo se funciona ou não.
Um abraço
Ola, se puderem me enviar esses arquivos modificador eu agradeço. voces sao expert no assunto..obrigado
Info-Macross, alterei o select do stockview.php como indicado, porém está dando o erro:
1064 – You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘SELECT * FROM products p inner join products_description pd on p.products_id = p’ at line 1
select count(*) as total SELECT * FROM products p inner join products_description pd on p.products_id = pd.products_id left join products_attributes pa on p.products_id = pa.products_id left join products_options_values pov on pa.options_values_id = pov.products_options_values_id WHERE pd.language_id = ‘4′ ORDER BY pd.products_name
O que será q fiz de errado? Peço sua ajuda!!!!
@Nilton: Olá !
Você tem um select a mais, tire o select *, pois você já está usando select count(*).
Um abraço!
…
Meu amigo, no stockview.php tem a seguinte linha:
$result_raw = “select * FROM products p inner join products_description pd on p.products_id = pd.products_id left join products_attributes pa on p.products_id = pa.products_id left join products_options_values pov on pa.options_values_id = pov.products_options_values_id WHERE pd.language_id = ‘” . $languages_id . “‘ ORDER BY pd.products_name”;
tentei tirar o “select *” e deu o erro:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/activelo/domains/nd2.com.br/public_html/loja2/admin/stockview.php on line 102
o que será que estou fazendo errado?
obrigado pela ajuda!!!
@Nilton: Você precisa apenas trocar o select que tem lá por aquele que eu passei acima, no post, não entendi o que você quer fazer de diferente…
[]s
mas é o mesmo select seu, só que tenho q colocá-lo dentro da variavel para que seja chamado depois correto???
eu sou novato nisto, me corrija se eu estiver errado!!!
@Nilton: Isso, apaga o select que está em azul e coloca o em vermelho no lugar, só isso.
FIZ ISTO DE NOVO E NÃO ACONTECEU….
como entro emcontato com vc?
@Nilton: tentei mandar e-mail para você mas deu falha, me passe seu e-mail.
xxdias arroba terra. com. br
Olá,
Parabéns, esta contribuição é de muito valia e agrega muito valor ao oscommerce. E é exatamente o que estou procurando. Seria possÃvel você encaminhar um how to de toda esta alteração e os arquivos necessários. Ou pelo menos os arquivos necessários e detalhasse mais a alteração feita no banco, qual campo e seus atributos que foram incluidos na ‘products_attributes’.
Obrigado,
Joao César
joaoces@yahoo.com.br
Qual o campo que eu tenho que colocar no banco de dados?