ایدهات را از اینجا شروع کن
فرم را کامل کن تا نمونه خروجی این مسیر را ببینی.
معرفی امکانات برای همه باز است؛ استفاده ویژه اعضای تأییدشده کانال اختصاصی است. تولید با مدل برای اعضای تأییدشده فعال است؛ انتشار سایت و اجرای ایجنت جداگانه انجام میشود.
YOUR NEXT IDEA STARTS HERE
پرامپت دقیق بنویس، سایتت را شکل بده و دستیار هوشمند خودت را طراحی کن. همه در یک فضای ساده و شخصی.
PROMPT STUDIO
برای استفاده از خدمات، با حساب تأییدشده وارد شوید. اگر حساب ندارید، از ادمین تلگرام درخواست کنید.
ورود به حسابدرخواست حساب از تلگرامفرم را کامل کن تا نمونه خروجی این مسیر را ببینی.
COMMUNITY LIBRARY
خروجیهای اعضای استودیو پس از حذف اطلاعات حساس، برای استفاده عمومی اینجا نگهداری میشوند.

ساخته حامد غریبنواز: تبدیل عکسهای واقعی محصول به راهنمای مرحلهبهمرحله مونتاژ، با نقشههای فنی سیاهوسفید و صفحات عمودی A5. عکس نمونه صرفاً نمایشی است.
مشاهده و استفاده از نمونه
# مشخصات ایجنت آموزش زبان انگلیسی ## ۱. مأموریت ارائه برنامه شخصیسازیشده آموزش زبان انگلیسی از سطح صفر تا پیشرفته، بهصورت مرحلهبهمرحله: 1. تعیین سطح و هدف زبانآموز 2. ارائه…
مشاهده و استفاده از نمونهتصویر پیشنمایش هنوز آماده نشده؛ فایلهای پروژه قابل استفادهاند.
سایت# برنامه پیادهسازی وبسایت استودیوی معماری ## ۱) هدف و دامنه نسخه اول وبسایتی فارسی، راستچین، روشن و مینیمال برای معرفی استودیوی معماری متخصص در بازطراحی فضاهای کوچک. مخاطب اصلی…
مشاهده و استفاده از نمونهتصویر پیشنمایش هنوز آماده نشده؛ فایلهای پروژه قابل استفادهاند.
ایجنتبررسی آنلاین قیمت و فروشندگان دیجیکالا، انتخاب رقبای مشابه و پیشنهاد قیمت رقابتی، متعادل و سود بیشتر با کنترل هزینهها.
مشاهده و استفاده از نمونهتصویر پیشنمایش هنوز آماده نشده؛ فایلهای پروژه قابل استفادهاند.
فایل ZIP آماده بارگذاری روی هاست است. ابتدا فایل راهنما را بخوانید؛ سپس فایلها را در پوشه سایت قرار دهید.
<!doctype html><html lang="fa" dir="rtl"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>چوبآرا | بررسی رقبا و قیمتگذار دیجیکالا</title><link rel="stylesheet" href="styles.css"></head><body><main> <header><span class="badge">بررسی بازار و تصمیمگیری فروشنده</span><h1>چوبآرا<span>قیمتگذاری بازارمحور برای دیجیکالا</span></h1><p>هزینهات را مشخص کن، رقبا را ببین، قیمت قابلدفاع انتخاب کن.</p><a href="/ai-studio/#library">بازگشت به استودیو</a></header> <aside class="notice">ابزار مستقل از دیجیکالا است. داده آنلاین یک تصویر لحظهای از نتایج قابل دریافت است، نه کل بازار یا تضمین موجودی. تعرفههای حساب خودتان را وارد کنید؛ نرخ مثال آموزشی، نرخ رسمی نیست.</aside> <section class="market-section"><h2>۱. رقبای محصولت را پیدا کن</h2><form id="market-form"><div class="grid"><label>چه چیزی بررسی شود؟<select id="market-mode"><option value="search">کالاهای مشابه با نام و مشخصات</option><option value="product">فروشندگان همان محصول با لینک</option></select></label><label>نام دقیق + مدل، جنس یا اندازه / لینک محصول<input id="market-query" maxlength="200" required placeholder="مثلاً میز کنار مبلی MDF مدل bmd062"><small>برای بررسی دقیق یک محصول، گزینه لینک را انتخاب کنید.</small></label><label>شناسه فروشندگی خودت (اختیاری)<input id="my-seller" type="number" min="1" step="1" placeholder="برای حذف پیشنهادهای خودتان"><small>شناسه عددی فروشنده، نه نام برند یا شناسه محصول</small></label><label>حداقل سود مطلوب از هزینه کالا (%)<input id="min-markup" type="number" min="0" max="300" step="any" value="15"></label></div><button id="market-search" type="submit">بررسی آنلاین رقبا</button><a id="market-login" hidden>ورود برای بررسی آنلاین</a></form><p id="market-status" role="status">نتایج را از نظر مدل، جنس، اندازه، رنگ و گارانتی تطبیق بده؛ فقط موارد قابل مقایسه را انتخاب کن.</p><div id="competitors"></div><div class="actions"><button id="market-recommend" type="button" disabled>پیشنهاد قیمت با رقبای انتخابشده</button><button id="market-export" type="button" class="secondary" disabled>دانلود گزارش بازار</button></div><div id="market-results" aria-live="polite"></div> <details><summary>اگر بررسی آنلاین در دسترس نیست: ورود دستی قیمت رقبا</summary><p>این قیمتها خوداظهاریاند، نه داده تأییدشده آنلاین. بعد از ورود، موارد مشابه را انتخاب کنید.</p><form id="manual-form"><div class="grid"><label>نام کالا و فروشنده<input id="manual-title" maxlength="120" required></label><label>قیمت فعلی (تومان)<input id="manual-price" type="number" min="1" step="any" required></label><label>لینک دیجیکالا (اختیاری)<input id="manual-url" type="url" placeholder="https://www.digikala.com/product/dkp-..."></label></div><button type="submit" class="secondary">اضافه کردن قیمت دستی</button></form></details></section> <section class="layout"><form id="calculator"><h2>۲. هزینهها و حداقل قیمت امن</h2><label>نام محصول شما<input id="product" value="میز کنار مبلی چوبآرا" maxlength="100"></label><div class="grid"><label>هزینه تمامشده (تومان)<input id="cost" type="number" min="1" step="any" required placeholder="مواد، تولید و بستهبندی"></label><label>کمیسیون گروه کالا (%)<input id="commission" type="number" min="0" max="99" step="any" required placeholder="از پنل فروشنده"></label><label>خدمات مشمول مالیات (تومان)<input id="services" type="number" min="0" step="any" value="0"><small>پردازش و سایر خدمات، قبل از مالیات</small></label><label>ارزش افزوده خدمات (%)<input id="serviceVat" type="number" min="0" max="100" step="any" value="0"><small>نرخ صورتحساب؛ صفر یعنی لحاظ نشده</small></label><label>ارسال و سایر هزینهها (تومان)<input id="other" type="number" min="0" step="any" value="0"><small>جمع هزینههای نهایی؛ دوباره در خدمات وارد نکنید</small></label><label>ذخیره مالیات درآمد هر واحد (تومان)<input id="taxReserve" type="number" min="0" step="any" value="0"><small>برآورد حسابدار، نه نرخ مالیاتی محاسبهشده</small></label><label>تبلیغات و ریسک مرجوعی (%)<input id="reserve" type="number" min="0" max="99" step="any" value="0"><small>درصد قیمت فروش؛ فرض انتخابی شما</small></label><label>ارزش افزوده کالا در قیمت فروش (%)<input id="goodsVat" type="number" min="0" max="100" step="any" value="0"><small>فقط اگر قیمت فروش شامل آن است</small></label><label>مبنای محاسبه کمیسیون<select id="commissionBase"><option value="gross">کل قیمت فروش</option><option value="net">قیمت بدون ارزش افزوده کالا</option></select></label><label>مالیات خدمات در هزینه<select id="recoverable"><option value="no">غیرقابل بازیافت؛ به هزینه اضافه شود</option><option value="yes">قابل بازیافت؛ از سود عملیاتی حذف شود</option></select></label><label>گرد کردن رو به بالا (تومان)<input id="round" type="number" min="1" step="any" value="1000" required></label></div><label class="check"><input id="confirmed" type="checkbox" required>نرخها و مبنای کمیسیون را با پنل یا قرارداد خود تطبیق دادهام (یا صرفاً مثال آموزشی را بررسی میکنم).</label><div class="actions"><button type="submit">محاسبه هزینه و سود</button><button type="button" id="example" class="secondary">مثال آموزشی هزینهها</button></div></form><section class="output" aria-live="polite"><h2>قیمت بر اساس هزینه</h2><p id="status">هزینه و کمیسیون را وارد کنید، یا مثال آموزشی را ببینید.</p><div id="results"></div><p class="muted">سود هدف، درصدی از هزینه تمامشده است؛ نه حاشیه سود فروش. مالیات درآمد واقعی و زمان تسویه محاسبه نمیشوند.</p><button id="export" type="button" class="secondary" disabled>دانلود گزارش هزینه CSV</button></section></section> <details><summary>روش پیشنهاد قیمت و راهنمای دیجیکالا</summary><ol><li>در حالت لینک محصول، پیشنهادهای فروشندگان و تنوعهای همان محصول دریافت میشود. در حالت جستوجو، حداکثر ۲۰ نتیجه اول و یک پیشنهاد پیشفرض از هر محصول نمایش داده میشود؛ فقط موارد واقعاً مشابه را انتخاب کنید.</li><li>قیمتها از ریال به تومان تبدیل میشوند. موجودی به معنی وضعیت قابل عرضه در پاسخ دریافتی است؛ هزینه ارسال مشتری و تخفیف شخصی در قیمت رقبا لحاظ نشدهاند.</li><li>رقابتی: نزدیک کمترین قیمت منتخب، حداکثر یک گام پایینتر؛ متعادل: میانه منتخبها؛ سود بیشتر: چارک بالایی منتخبها. هر سه از کف هزینه + سود مطلوب کمتر نخواهند بود. اگر کف شما بالاتر از بازار باشد، هشدار میدهیم. هیچ پیشنهادی تضمین فروش نیست.</li><li>پیشنهادها پس از ۱۰ دقیقه نیاز به تازهسازی دارند؛ داده سرور حداکثر ۳ دقیقه ذخیره موقت میشود. در قطع دسترسی، هیچ قیمت آنلاین ساختگی تولید نمیشود. قیمتهای دستی با برچسب جداگانهاند.</li><li>کمیسیون و مبنای آن، پردازش، انبارداری، ارسال، تبلیغات و مرجوعی را از قرارداد و صورتحساب واقعی وارد کنید. مبالغ ریالی هزینهها را بر ۱۰ تقسیم کنید.</li><li>هزینه کالا بدون مالیات قابل بازیافت، خدمات قبل از مالیات و سایر هزینهها با مبلغ نهایی ثبت شوند. نرخ مالیات خدمات روی کمیسیون و خدمات اعمال میشود؛ اگر نرخها متفاوتاند، مبلغ نهایی متفاوت را در سایر هزینهها منظور کنید. حسابدار وضعیت مالیاتی را تأیید کند.</li><li>کنترل قیمت مجاز، قرارداد، جریمه، موجودی و تسویه در پنل فروشنده انجام میشود؛ ابزار هیچ تغییری در حساب دیجیکالا ایجاد نمیکند.</li></ol><p>مرجع تعرفه: <a href="https://seller.digikala.com/" target="_blank" rel="noopener">پنل رسمی فروشندگان</a> و <a href="https://selleracademy.digikala.com/" target="_blank" rel="noopener">آکادمی فروشندگان</a>. نرخ رسمی جاری پیشفرض نداریم.</p><p>هزینهها در مرورگر میمانند. فقط عبارت جستوجو یا شناسه محصول برای بررسی آنلاین به سرور سایت و دیجیکالا ارسال میشود. این قابلیت از اعتبار تولید پروژه کم نمیکند و API مدل مصرف نمیکند. نام چوبآرا نمونه است.</p></details></main><script src="app.js"></script></body></html>
:root{--accent:#176567;--ink:#15363d}*{box-sizing:border-box}body{margin:0;background:#edf4f5;color:var(--ink);font:15px/1.9 Tahoma,sans-serif}main{max-width:1200px;margin:auto;padding:32px 20px}header{padding:30px 0}h1{font-size:40px;margin:12px 0}h1 span{display:block;font-size:20px;font-weight:400}h2{font-size:20px;margin:0 0 20px}.badge{background:#d4e8e7;border-radius:30px;padding:8px 16px;font-size:12px}.notice{background:#fff4da;border:1px solid #e9d2a0;padding:18px;border-radius:16px;margin-bottom:24px}.layout{display:grid;grid-template-columns:1.3fr 1fr;gap:24px}form,.output,details{padding:26px;background:#fff;border:1px solid #d4e3e6;border-radius:22px}.grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}label{display:block;margin-bottom:12px;font-size:13px}input,select,button{font:inherit;min-height:46px;border-radius:10px}input,select{display:block;width:100%;padding:10px;border:1px solid #b8cdd1;background:#fafcfc;color:var(--ink)}input[type=number]{direction:ltr;text-align:right}small,.muted{display:block;color:#546d72;font-size:12px}button{border:0;background:var(--accent);color:white;padding:10px 20px;cursor:pointer}.secondary{background:#e4eff0;color:#164e56}button:disabled{opacity:.5;cursor:not-allowed}.actions{display:flex;flex-wrap:wrap;gap:10px}.check{display:flex;align-items:flex-start;gap:10px;margin-top:20px}.check input{width:20px;min-height:20px;flex-shrink:0}.price{border:1px solid #cfdee3;border-radius:14px;padding:16px;margin:12px 0;background:#f1f7fa}.price strong{display:block;font-size:24px;color:#165975}.price p{margin:4px 0;font-size:12px}details{margin-top:24px}summary{cursor:pointer;font-weight:bold;min-height:44px}a{color:#176567}:focus-visible{outline:3px solid #cf8a32;outline-offset:3px}@media(max-width:800px){.layout{grid-template-columns:1fr}main{padding:16px}.grid{grid-template-columns:1fr}form,.output,details{padding:20px}h1{font-size:32px}}
:root{--market-border:#d4e3e6}.market-section{background:white;border:1px solid var(--market-border);border-radius:22px;padding:26px;margin-bottom:24px}.market-section form{padding:0;border:0}.competitor{padding:16px;border:1px solid var(--market-border);border-radius:12px;margin-block:12px}.competitor p{font-size:13px;margin:8px 0;overflow-wrap:anywhere}.competitor a,#market-login{display:inline-flex;align-items:center;min-height:44px}.competitor .check{margin:0;font-size:15px}.price h3{margin:0;font-size:16px}#market-results{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}#market-results>p{grid-column:1/-1;overflow-wrap:anywhere}.market-section [hidden]{display:none!important}button:hover:not(:disabled){filter:brightness(.94)}button:active:not(:disabled){filter:brightness(.87)}@media(max-width:800px){.market-section{padding:20px}#market-results{grid-template-columns:1fr}}
(function(){'use strict';
function calculate(c){
const keys=['cost','commission','services','serviceVat','other','taxReserve','reserve','goodsVat','round'];
for(const k of keys)if(!Number.isFinite(c[k])||c[k]<0)throw Error('همه مقادیر باید عدد معتبر و غیرمنفی باشند.');
if(c.cost<=0||c.round<1)throw Error('هزینه باید مثبت و گام گرد کردن حداقل یک تومان باشد.');
if(!['gross','net'].includes(c.commissionBase))throw Error('مبنای کمیسیون معتبر نیست.');
if(c.serviceVat>100||c.goodsVat>100||c.commission>=100||c.reserve>=100)throw Error('درصدها خارج از محدودهاند.');
const net=1/(1+c.goodsVat/100),base=c.commissionBase==='net'?net:1,mult=c.recoverable?1:1+c.serviceVat/100;
const denominator=net-c.commission/100*base*mult-c.reserve/100;
if(denominator<=0)throw Error('مجموع کسورات اجازه رسیدن به سود هدف نمیدهد؛ درصدها را اصلاح کنید.');
const fixed=c.cost+c.services*mult+c.other+c.taxReserve;
return [0,25,50,100].map(target=>{const price=Math.ceil((fixed+c.cost*target/100)/denominator/c.round)*c.round;
if(!Number.isFinite(price)||price>Number.MAX_SAFE_INTEGER)throw Error('قیمت محاسبهشده خارج از محدوده معتبر است.');
const commission=price*c.commission/100*base,serviceTax=c.recoverable?0:(commission+c.services)*c.serviceVat/100;
const goodsTax=price-price*net,risk=price*c.reserve/100,profit=price-commission-serviceTax-goodsTax-risk-c.cost-c.services-c.other-c.taxReserve;
return {target,price,profit,commission,serviceTax,goodsTax,risk};});
}
function economics(c){calculate(c);const net=1/(1+c.goodsVat/100),base=c.commissionBase==='net'?net:1,mult=c.recoverable?1:1+c.serviceVat/100;return {factor:net-c.commission/100*base*mult-c.reserve/100,fixed:c.cost+c.services*mult+c.other+c.taxReserve};}
function recommend(c,offers,minMarkup){
if(!Number.isFinite(minMarkup)||minMarkup<0||minMarkup>300)throw Error('حداقل سود باید بین صفر و ۳۰۰ درصد باشد.');
const unique=new Map();for(const o of offers){if(!o.available||!Number.isFinite(o.price)||o.price<=0)continue;const key=o.manual?o.id:o.product_id+':'+o.seller_id;const prev=unique.get(key);if(!prev||prev.price>o.price)unique.set(key,o);}
const selected=[...unique.values()],prices=selected.map(o=>o.price).sort((a,b)=>a-b);if(!prices.length)throw Error('حداقل یک رقیب واقعاً قابل مقایسه را انتخاب کنید.');
const quantile=q=>{const i=(prices.length-1)*q,lo=Math.floor(i);return prices[lo]+(prices[Math.ceil(i)]-prices[lo])*(i-lo);};
const e=economics(c),round=p=>Math.ceil(p/c.round)*c.round,floor=round((e.fixed+c.cost*minMarkup/100)/e.factor),low=prices[0],median=quantile(.5),upper=quantile(.75);
const options=[['رقابتی',Math.max(1,low-c.round),'نزدیک کمترین قیمت منتخب، تا یک گام پایینتر'],['متعادل',median,'بر اساس میانه قیمتهای منتخب'],['سود بیشتر',upper,'بر اساس چارک بالایی قیمتهای منتخب']].map(([label,anchor,reason])=>{const price=Math.max(floor,round(anchor)),profit=price*e.factor-e.fixed;return {label,price,profit,margin:profit/price*100,markup:profit/c.cost*100,reason:price>round(anchor)?reason+'؛ به کف سود مطلوب محدود شد':reason,aboveMarket:price>prices[prices.length-1]};});
return {floor,low,median,upper,count:prices.length,weak:prices.length<3,uncompetitive:floor>median,options,selected};
}
if(typeof module!=='undefined'&&module.exports)module.exports={calculate,recommend};
if(typeof document==='undefined')return;
const $=id=>document.getElementById(id),fmt=n=>new Intl.NumberFormat('fa-IR',{maximumFractionDigits:0}).format(n);let rows=[],config=null,educational=false;
let market=null,marketReport=null,requestSequence=0,marketController=null;
const marketCfg=window.hgMarket||null;
function clearReport(){marketReport=null;$('market-results').replaceChildren();$('market-export').disabled=true;}
function readCost(){if(!$('calculator').reportValidity())throw Error('بخش هزینهها و تأیید نرخها را تکمیل کنید.');const c={};for(const k of ['cost','commission','services','serviceVat','other','taxReserve','reserve','goodsVat','round']){if($(k).value.trim()==='')throw Error('فیلدهای عددی هزینهها را تکمیل کنید.');c[k]=Number($(k).value);}c.commissionBase=$('commissionBase').value;c.recoverable=$('recoverable').value==='yes';calculate(c);return c;}
function selectedOffers(){const ids=new Set([...$('competitors').querySelectorAll('input:checked')].map(x=>x.value));const own=Number($('my-seller').value);return (market?.offers||[]).filter(o=>ids.has(o.id)&&(!own||o.seller_id!==own));}
function renderCompetitors(){clearReport();$('competitors').replaceChildren();for(const o of market?.offers||[]){const card=document.createElement('article');card.className='competitor';const choice=document.createElement('label');choice.className='check';const box=document.createElement('input');box.type='checkbox';box.value=o.id;const text=document.createElement('span');text.textContent=o.title+' — '+fmt(o.price)+' تومان';choice.append(box,text);const p=document.createElement('p');p.textContent=(o.manual?'ورود دستی؛ تأیید آنلاین نشده':'فروشنده: '+o.seller+' (شناسه '+o.seller_id+')')+' | '+[o.color,o.warranty,o.shipping,o.discount?'تخفیف '+fmt(o.discount)+'٪':''].filter(Boolean).join(' | ');card.append(choice,p);if(o.url){const a=document.createElement('a');a.href=o.url;a.target='_blank';a.rel='noopener';a.textContent='مشاهده منبع در دیجیکالا';card.append(a);}box.onchange=()=>{clearReport();$('market-recommend').disabled=!selectedOffers().length;};$('competitors').append(card);}$('market-recommend').disabled=true;}
if(!marketCfg?.allowed){$('market-search').disabled=true;$('market-login').hidden=false;$('market-login').href=marketCfg?.login||'https://hamedgharibnavaz.com/ai-studio/?studio_sample_action=preview&sample=choobara-digikala-pricing';$('market-login').textContent=marketCfg?'ورود برای بررسی آنلاین':'باز کردن نسخه آنلاین استودیو';}
function resetMarket(){requestSequence++;marketController?.abort();market=null;renderCompetitors();$('market-search').disabled=!marketCfg?.allowed;$('market-search').textContent='بررسی آنلاین رقبا';$('market-status').textContent='عبارت یا روش بررسی تغییر کرده؛ دوباره جستوجو کنید.';}
for(const id of ['market-query','market-mode'])$(id).addEventListener('input',resetMarket);
for(const id of ['my-seller','min-markup'])$(id).addEventListener('input',()=>{clearReport();$('market-recommend').disabled=!selectedOffers().length;});
$('calculator').addEventListener('input',clearReport);
$('calculator').addEventListener('submit',clearReport);
$('market-form').onsubmit=async event=>{event.preventDefault();if(!marketCfg?.allowed)return;const seq=++requestSequence;marketController?.abort();marketController=new AbortController();const timer=setTimeout(()=>marketController.abort(),30000);market=null;renderCompetitors();$('market-search').disabled=true;$('market-search').textContent='در حال بررسی…';$('market-status').textContent='در حال دریافت قیمت و شرایط پیشنهادهای فروش از دیجیکالا…';try{const url=new URL(marketCfg.url);url.searchParams.set('mode',$('market-mode').value);url.searchParams.set('q',$('market-query').value.trim());const response=await fetch(url,{credentials:'same-origin',headers:{'X-WP-Nonce':marketCfg.nonce},signal:marketController.signal,cache:'no-store'});const data=await response.json();if(!response.ok)throw Error(data.message||'بررسی آنلاین انجام نشد.');if(seq!==requestSequence)return;if(!Array.isArray(data.offers)||!Number.isFinite(Date.parse(data.checked_at)))throw Error('پاسخ بازار معتبر نیست.');market=data;renderCompetitors();$('market-status').textContent=(data.offers.length?'بررسی در '+new Date(data.checked_at).toLocaleString('fa-IR')+'؛ '+data.note+(data.cached?' (داده ذخیرهشده کمتر از ۳ دقیقه)':''):'هیچ پیشنهاد دارای قیمت و قابل عرضه پیدا نشد؛ عبارت دقیقتر یا لینک محصول را امتحان کنید.');}catch(err){if(seq===requestSequence)$('market-status').textContent=err.name==='AbortError'?'بررسی به پایان نرسید؛ دوباره امتحان کنید. هیچ قیمت حدسی استفاده نشد.':err.message;}finally{clearTimeout(timer);if(seq===requestSequence){$('market-search').disabled=false;$('market-search').textContent='بررسی آنلاین رقبا';}}};
$('manual-form').onsubmit=e=>{e.preventDefault();const price=Number($('manual-price').value),url=$('manual-url').value.trim();if(!Number.isFinite(price)||price<=0||price>100000000000){$('market-status').textContent='قیمت دستی معتبر نیست.';return;}if(url&&!/^https:\/\/(?:www\.)?digikala\.com\/product\/dkp-[1-9]\d*(?:\/|$)/i.test(url)){$('market-status').textContent='فقط لینک HTTPS محصول دیجیکالا قابل ثبت است.';return;}if(market&&!market.offers.every(o=>o.manual)){$('market-status').textContent='برای جلوگیری از مخلوطشدن منابع، نتیجه آنلاین را با تغییر عبارت جستوجو پاک کنید؛ سپس قیمت دستی وارد کنید.';return;}if(!market)market={offers:[],checked_at:new Date().toISOString(),mode:'manual',query:'ورود دستی'};if(market.offers.length>=30){$('market-status').textContent='حداکثر ۳۰ قیمت دستی قابل ورود است.';return;}market.offers.push({id:'manual-'+Date.now()+'-'+market.offers.length,title:$('manual-title').value.trim(),price,url,available:true,manual:true});market.checked_at=new Date().toISOString();renderCompetitors();$('market-status').textContent='قیمت دستی ثبت شد؛ منبع آنلاین تأیید نشده. موارد مشابه را انتخاب کنید.';$('manual-form').reset();};
$('market-recommend').onclick=()=>{clearReport();try{if(!market||Date.now()-Date.parse(market.checked_at)>600000)throw Error('داده بازار بیش از ۱۰ دقیقه عمر دارد؛ بررسی را تازه کنید.');const costs=readCost(),markup=Number($('min-markup').value);if($('min-markup').value.trim()==='')throw Error('حداقل سود مطلوب را وارد کنید.');const result=recommend(costs,selectedOffers(),markup);marketReport={...result,costs,minMarkup:markup,query:market.query,mode:market.mode,checkedAt:market.checked_at,generatedAt:new Date().toISOString(),educationalCosts:educational};const summary=document.createElement('p');summary.textContent=(educational?'هشدار: هزینهها و نرخها آموزشیاند. ':'')+(market.mode==='manual'?'داده خوداظهاری؛ بررسی آنلاین نیست. ':'')+fmt(result.count)+' پیشنهاد متمایز منتخب | کمترین: '+fmt(result.low)+' | میانه: '+fmt(result.median)+' | کف با سود مطلوب: '+fmt(result.floor)+' تومان'+(result.weak?' — کمتر از سه پیشنهاد؛ اطمینان محدود.':'')+(result.uncompetitive?' — کف سود شما بالاتر از میانه بازار است؛ کاهش هزینه یا بازنگری محصول لازم است.':'');$('market-results').append(summary);for(const o of result.options){const card=document.createElement('article');card.className='price';const h=document.createElement('h3');h.textContent=o.label;const strong=document.createElement('strong');strong.textContent=fmt(o.price)+' تومان';const p=document.createElement('p');p.textContent='سود برآوردی '+fmt(o.profit)+' تومان | حاشیه سود '+fmt(o.margin)+'٪ | '+o.reason+(o.aboveMarket?' — بالاتر از همه رقبای منتخب؛ ریسک فروش کمتر.':'');card.append(h,strong,p);$('market-results').append(card);}$('market-export').disabled=false;}catch(err){$('market-status').textContent=err.message;}};
$('market-export').onclick=()=>{if(!marketReport)return;if(Date.now()-Date.parse(marketReport.checkedAt)>600000){clearReport();$('market-status').textContent='گزارش منقضی شده؛ بررسی را تازه کنید.';return;}const url=URL.createObjectURL(new Blob([JSON.stringify(marketReport,null,2)],{type:'application/json;charset=utf-8'}));const a=document.createElement('a');a.href=url;a.download='choobara-market-report.json';a.click();setTimeout(()=>URL.revokeObjectURL(url),1000);};
$('example').onclick=()=>{const vals={cost:500000,commission:10,services:20000,serviceVat:0,other:50000,taxReserve:0,reserve:0,goodsVat:0,round:1000};for(const [k,v]of Object.entries(vals))$(k).value=v;$('commissionBase').value='gross';$('recoverable').value='no';$('confirmed').checked=true;educational=true;$('calculator').requestSubmit();};
$('calculator').addEventListener('input',()=>{educational=false;rows=[];$('export').disabled=true;$('results').replaceChildren();$('status').textContent='ورودی تغییر کرده؛ دوباره محاسبه کنید.';});
$('calculator').onsubmit=e=>{e.preventDefault();try{config={};for(const k of ['cost','commission','services','serviceVat','other','taxReserve','reserve','goodsVat','round']){if($(k).value.trim()==='')throw Error('فیلدهای عددی را تکمیل کنید.');config[k]=Number($(k).value);}config.commissionBase=$('commissionBase').value;config.recoverable=$('recoverable').value==='yes';rows=calculate(config);$('results').replaceChildren();$('status').textContent=(educational?'مثال آموزشی — همه نرخها فرضی هستند. ':'برآورد بر اساس ورودیهای شما — ')+$('product').value;for(const r of rows){const card=document.createElement('article');card.className='price';const label=document.createElement('span');label.textContent=r.target===0?'قیمت سربهسر':'سود هدف '+fmt(r.target)+'٪ از هزینه';const price=document.createElement('strong');price.textContent=fmt(r.price)+' تومان';const desc=document.createElement('p');desc.textContent='سود برآوردی: '+fmt(r.profit)+' | کمیسیون: '+fmt(r.commission)+' | مالیات خدمات در هزینه: '+fmt(r.serviceTax)+' | ارزش افزوده کالا: '+fmt(r.goodsTax)+' | تبلیغات و ریسک: '+fmt(r.risk);card.append(label,price,desc);$('results').append(card);}$('export').disabled=false;}catch(err){rows=[];$('results').replaceChildren();$('status').textContent=err.message;$('export').disabled=true;}};
$('export').onclick=()=>{if(!rows.length)return;const csv='\uFEFF'+['سود هدف درصد,قیمت تومان,سود برآوردی,کمیسیون,مالیات خدمات در هزینه,ارزش افزوده کالا,ذخیره ریسک',...rows.map(r=>[r.target,r.price,r.profit,r.commission,r.serviceTax,r.goodsTax,r.risk].join(',')), '', 'فرضها',...Object.entries(config).map(([k,v])=>k+','+v),'آموزشی,'+educational].join('\r\n');const url=URL.createObjectURL(new Blob([csv],{type:'text/csv;charset=utf-8'}));const a=document.createElement('a');a.href=url;a.download='choobara-digikala-report.csv';a.click();setTimeout(()=>URL.revokeObjectURL(url),1000);};
})();
# چوبآرا — قیمتگذار دیجیکالا فایل index.html را در مرورگر باز کنید. محاسبه هزینه و ورود دستی رقبا محلیاند. بررسی آنلاین فقط در نسخه میزبانیشده استودیو و برای عضو تأییدشده فعال است؛ فایل دانلودی بهتنهایی سرویس بازار ندارد. نام برند صرفاً نمونه است. ## بررسی بازار سرور WordPress از مسیر ثابت داده عمومی api.digikala.com جستوجو یا محصول را میخواند. این یک API قراردادی فروشنده نیست؛ ممکن است ساختار یا دسترسی تغییر کند. هیچ مانع دسترسی دور زده نمیشود. هنگام قطع دسترسی، بررسی خطا میدهد، نه قیمت ساختگی. حالت جستوجو حداکثر ۲۰ محصول با پیشنهاد پیشفرض؛ حالت لینک حداکثر ۸۰ تنوع همان محصول. قیمتهای عضویت ویژه حذف، مبالغ ریالی بر ۱۰ تقسیم و لینک منبع و زمان دریافت ثبت میشوند. داده فقط سه دقیقه کش میشود، گزارش پس از ده دقیقه باید تازه شود. سقف هر عضو: ۲۰ بررسی تازه در ساعت و فاصله ۱۵ ثانیه؛ جستوجوی کششده سهم ندارد. هزینه مدل و اعتبار پروژه مصرف نمیشود. کاربر مشابهت جنس، اندازه، مدل، رنگ و گارانتی را تأیید میکند. شناسه فروشنده خود را برای حذف پیشنهادهای خودش وارد میکند. ردیفهای تکراری محصول/فروشنده با کمترین قیمت انتخابی یکی میشوند؛ نتایج جستوجو فهرست جامع تمام رقبا نیستند. کمتر از سه پیشنهاد اطمینان محدود دارد. قیمت ارسال مشتری، تخفیف اختصاصی و تفاوت کیفیت نیاز به تطبیق انسانی دارند. قیمت رقابتی = کمترین منتخب منهای یک گام، متعادل = میانه، سود بیشتر = چارک بالایی؛ همه به بالا گرد و به کف سود مطلوب محدود میشوند. کف از همان معادله هزینه و سود هدف تعیین میشود. کف بالاتر از میانه هشدار غیررقابتی دارد. قیمت هیچ کالایی خودکار در فروشگاه تغییر نمیکند. گزارش JSON شامل ورودیها، منابع، زمان و دلایل است؛ اطلاعات هزینه در سمت مرورگر میماند و به سرور ارسال نمیشود. قیمت دستی با برچسب خوداظهاری از قیمت آنلاین جداست. مبالغ توماناند؛ ریال را بر ۱۰ تقسیم کنید. کمیسیون و مبنای آن، هزینه خدمات، ارسال و مالیات را از پنل و قرارداد خود وارد کنید. تعرفه رسمی ثابت یا نرخ مالیاتی قانونی پیشفرض نداریم. مثال آموزشی با کمیسیون فرضی ۱۰٪ و بدون مالیات است و برای فروش واقعی مناسب نیست. قیمت فروش P، درآمد بدون ارزش افزوده کالا P/(1+v)، کمیسیون درصدی از مبنای انتخابی و ذخیره ریسک درصدی از P است. مالیات خدمات در صورت غیرقابل بازیافت بودن به هزینه کمیسیون و خدمات افزوده میشود. سود = درآمد خالص - هزینه کالا - کمیسیون - خدمات - مالیات خدمات غیرقابل بازیافت - سایر هزینهها - ذخیره مالیات درآمد - ذخیره ریسک. قیمت برای سود هدف ۰،۲۵،۵۰،۱۰۰ درصد هزینه کالا حل و رو به بالا گرد میشود. سود هدف «markup روی هزینه کالا» است، نه حاشیه سود فروش. این مدل فرض میکند کمیسیون و خدمات نرخ مالیات یکسان دارند؛ در غیر این صورت مالیات خدمات را صفر و هزینه نهایی متفاوت را در سایر هزینهها لحاظ کنید. ورود هزینه نهایی دوباره در دو فیلد موجب دوبارهشماری میشود. مالیات درآمد، اعتبار مالیاتی، جریمه و تسویه خودکار محاسبه نمیشوند. تأیید حسابدار و تطبیق با صورتحساب واقعی لازم است. مرجع تعرفه: https://seller.digikala.com/ و https://selleracademy.digikala.com/ . تاریخ تهیه ۲۰۲۶-۰۹-۳۰؛ نرخ عمومی جاری قابل تأیید نبوده است. مقررات و قرارداد جاری فروشنده مقدم بر این ابزارند.