ΠΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ
API Π΄Π»Ρ Π±Π΅ΡΠ°-ΡΡΠ½ΠΊΡΠΈΠΉ ΠΈ ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ OZON β Π½ΠΎΠ²ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡΡΡ Π² Π±ΡΠ΄ΡΡΠΈΡ Π²Π΅ΡΡΠΈΡΡ .
ΠΡΠΎ ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ Π² ΡΡΠ°Π΄ΠΈΠΈ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ. API ΠΌΠΎΠΆΠ΅Ρ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡΡΡ Π±Π΅Π· ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΡ.
ΠΠ°ΡΠ΅Π³ΠΎΡΠΈΡ | ΠΠ΅ΡΠΎΠ΄ | Endpoint | ΠΠ°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ |
---|---|---|---|
ΠΠ½Π°Π»ΠΈΡΠΈΠΊΠ° Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π΄ΠΎΡΡΠ°Π²ΠΊΠΈ | getAverageDeliveryTime |
/v1/analytics/average-delivery-time |
ΠΠ½Π°Π»ΠΈΡΠΈΠΊΠ° ΠΏΠΎ ΡΡΠ΅Π΄Π½Π΅ΠΌΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π΄ΠΎΡΡΠ°Π²ΠΊΠΈ |
getAverageDeliveryTimeDetails |
/v1/analytics/average-delivery-time/details |
ΠΠ΅ΡΠ°Π»ΡΠ½Π°Ρ Π°Π½Π°Π»ΠΈΡΠΈΠΊΠ° Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π΄ΠΎΡΡΠ°Π²ΠΊΠΈ | |
getAverageDeliveryTimeSummary |
/v1/analytics/average-delivery-time/summary |
ΠΠ±ΡΠ°Ρ Π°Π½Π°Π»ΠΈΡΠΈΠΊΠ° Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π΄ΠΎΡΡΠ°Π²ΠΊΠΈ | |
Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎΡΡΠ°ΡΠΊΠ°ΠΌΠΈ | getManageStocks β οΈ Π£ΡΡΠ°ΡΠ΅Π» |
/v1/analytics/manage/stocks |
Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎΡΡΠ°ΡΠΊΠ°ΠΌΠΈ (ΡΡΡΠ°ΡΠ΅Π») |
getAnalyticsStocks |
/v1/analytics/stocks |
ΠΠ½Π°Π»ΠΈΡΠΈΠΊΠ° ΠΏΠΎ ΠΎΡΡΠ°ΡΠΊΠ°ΠΌ ΡΠΎΠ²Π°ΡΠΎΠ² | |
ΠΠ°ΡΠ΅ΡΡΠ²ΠΎ ΡΠΎΠ²Π°ΡΠΎΠ² | getProductsWithWrongVolume |
/v1/product/info/wrong-volume |
Π’ΠΎΠ²Π°ΡΡ Ρ Π½Π΅ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΡΠΌΠΈ ΠΠΠ₯ |
ΠΡΡΠ΅ΡΡ ΠΏΠΎ Π²ΡΠ²ΠΎΠ·Ρ | getRemovalFromStockReport |
/v1/removal/from-stock/list |
ΠΡΡΡΡ ΠΏΠΎ Π²ΡΠ²ΠΎΠ·Ρ ΡΠΎ ΡΠΊΠ»Π°Π΄Π° FBO |
getRemovalFromSupplyReport |
/v1/removal/from-supply/list |
ΠΡΡΡΡ ΠΏΠΎ Π²ΡΠ²ΠΎΠ·Ρ Ρ ΠΏΠΎΡΡΠ°Π²ΠΊΠΈ FBO | |
Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π΄ΠΎΡΡΡΠΏΠΎΠΌ | getRolesByToken |
/v1/roles |
Π ΠΎΠ»ΠΈ ΠΈ ΠΌΠ΅ΡΠΎΠ΄Ρ API-ΠΊΠ»ΡΡΠ° |
import { OzonSellerAPI } from 'daytona-ozon-seller-api';
const client = new OzonSellerAPI({
clientId: 'your-client-id',
apiKey: 'your-api-key'
});
try {
// 1. ΠΠΎΠ»ΡΡΠΈΡΡ Π°Π½Π°Π»ΠΈΡΠΈΠΊΡ ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π΄ΠΎΡΡΠ°Π²ΠΊΠΈ
const deliveryAnalytics = await client.betaMethod.getAverageDeliveryTime({
delivery_schema: 'FBO',
supply_period: {
from: '2024-01-01',
to: '2024-01-31'
},
sku: ['123456789', '987654321']
});
console.log('π ΠΠ½Π°Π»ΠΈΡΠΈΠΊΠ° Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π΄ΠΎΡΡΠ°Π²ΠΊΠΈ:');
deliveryAnalytics.data?.forEach(cluster => {
console.log(` ${cluster.cluster_name}: ${cluster.average_delivery_time} Π΄Π½Π΅ΠΉ`);
console.log(` ΠΠ°ΠΊΠ°Π·ΠΎΠ²: ${cluster.orders_count} (${cluster.orders_share}%)`);
});
console.log(`π ΠΠ±ΡΠ΅Π΅ ΡΡΠ΅Π΄Π½Π΅Π΅ Π²ΡΠ΅ΠΌΡ: ${deliveryAnalytics.total?.average_delivery_time} Π΄Π½Π΅ΠΉ`);
// 2. ΠΠΎΠ»ΡΡΠΈΡΡ ΠΎΠ±ΡΡΡ ΡΠ²ΠΎΠ΄ΠΊΡ
const summary = await client.betaMethod.getAverageDeliveryTimeSummary();
console.log('\nπ Π‘Π²ΠΎΠ΄ΠΊΠ°:');
console.log(` Π’Π΅ΠΊΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ: ${summary.average_delivery_time} Π΄Π½Π΅ΠΉ`);
console.log(` Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΠΌΠΎΠ΅: ${summary.perfect_delivery_time} Π΄Π½Π΅ΠΉ`);
console.log(` ΠΠ΅ΡΠ΅ΠΏΠ»Π°ΡΠ°: ${summary.lost_profit} ΡΡΠ±.`);
} catch (error) {
console.error('β ΠΡΠΈΠ±ΠΊΠ° ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π°Π½Π°Π»ΠΈΡΠΈΠΊΠΈ:', error);
}
getAverageDeliveryTime()
- ΠΠ°Π·ΠΎΠ²Π°Ρ Π°Π½Π°Π»ΠΈΡΠΈΠΊΠ°interface BetaMethodAverageDeliveryTimeRequest {
/** Π‘Ρ
Π΅ΠΌΠ° Π΄ΠΎΡΡΠ°Π²ΠΊΠΈ */
delivery_schema: 'FBO' | 'FBS' | 'RFBS';
/** ΠΠ΅ΡΠΈΠΎΠ΄ Π°Π½Π°Π»ΠΈΠ·Π° */
supply_period: {
from: string; // YYYY-MM-DD
to: string; // YYYY-MM-DD
};
/** SKU ΡΠΎΠ²Π°ΡΠΎΠ² (ΠΌΠ°ΠΊΡ. 100) */
sku?: string[];
}
getAnalyticsStocks()
- Π‘ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ Π°Π½Π°Π»ΠΈΡΠΈΠΊΠ° ΠΎΡΡΠ°ΡΠΊΠΎΠ²interface BetaMethodAnalyticsStocksRequest {
/** SKU ΡΠΎΠ²Π°ΡΠΎΠ² (ΠΌΠ°ΠΊΡ. 100) */
skus: string[];
/** Π€ΠΈΠ»ΡΡΡ ΠΏΠΎ ΠΊΠ»Π°ΡΡΠ΅ΡΠ°ΠΌ */
cluster_ids?: string[];
/** Π’Π΅Π³ΠΈ ΡΠΎΠ²Π°ΡΠΎΠ² */
item_tags?: ('ECONOM' | 'NOVEL' | 'DISCOUNT' | 'FBS_RETURN' | 'SUPER')[];
/** Π‘ΡΠ°ΡΡΡΡ Π»ΠΈΠΊΠ²ΠΈΠ΄Π½ΠΎΡΡΠΈ */
turnover_grades?: ('DEFICIT' | 'POPULAR' | 'ACTUAL' | 'SURPLUS' | 'NO_SALES')[];
}
getProductsWithWrongVolume()
- Π’ΠΎΠ²Π°ΡΡ Ρ Π½Π΅ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΡΠΌΠΈ ΠΠΠ₯interface BetaMethodProductInfoWrongVolumeRequest {
cursor?: string; // Π΄Π»Ρ ΠΏΠ°Π³ΠΈΠ½Π°ΡΠΈΠΈ
limit?: number; // 1-1000
}
interface BetaMethodProductInfoWrongVolumeResponse {
products?: {
sku: string;
product_name: string;
current_volume?: {
length: number; width: number; height: number; weight: number;
};
recommended_volume?: {
length: number; width: number; height: number; weight: number;
};
}[];
}
const optimizeDeliveryTime = async () => {
try {
// 1. ΠΠΎΠ»ΡΡΠΈΡΡ ΠΎΠ±ΡΡΡ ΡΠ²ΠΎΠ΄ΠΊΡ
const summary = await client.betaMethod.getAverageDeliveryTimeSummary();
const currentTime = summary.average_delivery_time || 0;
const perfectTime = summary.perfect_delivery_time || 0;
const lostProfit = summary.lost_profit || 0;
if (currentTime > perfectTime) {
console.log(`β οΈ ΠΡΠ΅ΠΌΡ Π΄ΠΎΡΡΠ°Π²ΠΊΠΈ ΠΏΡΠ΅Π²ΡΡΠ°Π΅Ρ ΠΎΠΏΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ Π½Π° ${currentTime - perfectTime} Π΄Π½Π΅ΠΉ`);
// 2. ΠΠΎΠ»ΡΡΠΈΡΡ Π΄Π΅ΡΠ°Π»ΡΠ½ΡΡ Π°Π½Π°Π»ΠΈΡΠΈΠΊΡ
const analytics = await client.betaMethod.getAverageDeliveryTime({
delivery_schema: 'FBO',
supply_period: { from: '2024-01-01', to: '2024-01-31' }
});
// 3. ΠΠ°ΠΉΡΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ½ΡΠ΅ ΠΊΠ»Π°ΡΡΠ΅ΡΡ
const slowClusters = analytics.data?.filter(cluster =>
cluster.average_delivery_time > perfectTime
) || [];
return {
needsOptimization: true,
timeDifference: currentTime - perfectTime,
lostProfit,
slowClusters: slowClusters.length
};
} else {
console.log(`β
ΠΡΠ΅ΠΌΡ Π΄ΠΎΡΡΠ°Π²ΠΊΠΈ ΠΎΠΏΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ!`);
return { needsOptimization: false };
}
} catch (error) {
console.error('β ΠΡΠΈΠ±ΠΊΠ° Π°Π½Π°Π»ΠΈΠ·Π° Π΄ΠΎΡΡΠ°Π²ΠΊΠΈ:', error);
return { needsOptimization: false, error: error.message };
}
};
const manageStockLevels = async (skus: string[]) => {
try {
const analytics = await client.betaMethod.getAnalyticsStocks({
skus: skus.slice(0, 100), // ΠΌΠ°ΠΊΡΠΈΠΌΡΠΌ 100 SKU
turnover_grades: ['DEFICIT', 'SURPLUS', 'NO_SALES']
});
const summary = {
deficit: [] as any[],
surplus: [] as any[],
noSales: [] as any[],
recommendations: [] as string[]
};
analytics.items?.forEach(item => {
switch (item.turnover_grade) {
case 'DEFICIT':
summary.deficit.push(item);
summary.recommendations.push(`π Π£Π²Π΅Π»ΠΈΡΠΈΡΡ ΠΏΠΎΡΡΠ°Π²ΠΊΡ Π΄Π»Ρ ${item.product_name}`);
break;
case 'SURPLUS':
summary.surplus.push(item);
summary.recommendations.push(`π Π‘Π½ΠΈΠ·ΠΈΡΡ ΡΠ΅Π½Ρ Π΄Π»Ρ ${item.product_name}`);
break;
case 'NO_SALES':
summary.noSales.push(item);
summary.recommendations.push(`π ΠΡΠΎΠ²Π΅ΡΠΈΡΡ ΡΠΎΠ²Π°Ρ ${item.product_name} - Π½Π΅Ρ ΠΏΡΠΎΠ΄Π°ΠΆ`);
break;
}
});
return summary;
} catch (error) {
console.error('β ΠΡΠΈΠ±ΠΊΠ° Π°Π½Π°Π»ΠΈΠ·Π° ΠΎΡΡΠ°ΡΠΊΠΎΠ²:', error);
}
};
const fixWrongVolumeProducts = async () => {
const wrongVolumeProducts = [];
let cursor = undefined;
let hasMore = true;
while (hasMore) {
try {
const response = await client.betaMethod.getProductsWithWrongVolume({
cursor,
limit: 100
});
if (response.products) {
wrongVolumeProducts.push(...response.products);
}
cursor = response.cursor;
hasMore = !!cursor;
} catch (error) {
console.error('β ΠΡΠΈΠ±ΠΊΠ° Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΡΠΎΠ²Π°ΡΠΎΠ² Ρ Π½Π΅Π²Π΅ΡΠ½ΡΠΌΠΈ ΠΠΠ₯:', error);
break;
}
}
// ΠΠ½Π°Π»ΠΈΠ· ΠΈ ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΡΡΠ΅ΡΠ°
const report = wrongVolumeProducts.map(product => {
const current = product.current_volume;
const recommended = product.recommended_volume;
const currentVolume = current ? current.length * current.width * current.height : 0;
const recommendedVolume = recommended ? recommended.length * recommended.width * recommended.height : 0;
return {
sku: product.sku,
product_name: product.product_name,
volume_difference: recommendedVolume - currentVolume,
needs_update: Math.abs(recommendedVolume - currentVolume) > 100
};
});
const needsUpdate = report.filter(item => item.needs_update);
return { total: wrongVolumeProducts.length, needsUpdate: needsUpdate.length, report };
};
ΠΠΎΠΌΠ½ΠΈΡΠ΅: ΡΡΠΎ Π±Π΅ΡΠ°-ΠΌΠ΅ΡΠΎΠ΄Ρ! API ΠΌΠΎΠΆΠ΅Ρ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡΡΡ Π±Π΅Π· ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΡ. ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Ρ ΠΎΡΡΠΎΡΠΎΠΆΠ½ΠΎΡΡΡΡ Π² ΠΏΡΠΎΠ΄Π°ΠΊΡΠ΅Π½Π΅.
Beta Method API ΠΈΠ΄Π΅Π°Π»ΡΠ½ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π°Π½Π°Π»ΠΈΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² ΠΈ ΡΠΈΡΡΠ΅ΠΌ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³Π°. ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΡΠΈ ΠΌΠ΅ΡΠΎΠ΄Ρ Π΄Π»Ρ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ Π»ΠΎΠ³ΠΈΡΡΠΈΠΊΠΈ, ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΎΡΡΠ°ΡΠΊΠ°ΠΌΠΈ ΠΈ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ ΠΊΠ°ΡΠ΅ΡΡΠ²Π° ΡΠΎΠ²Π°ΡΠΎΠ², Π½ΠΎ ΠΏΠΎΠΌΠ½ΠΈΡΠ΅ ΠΎΠ± ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΠΎΠΌ ΡΡΠ°ΡΡΡΠ΅ API.