рд╕рдкреНрд▓рд╛рдпрд░ рдПрдкреАрдЖрдИ рдЧрд╛рдЗрдб: рдореИрдиреНрдпреБрдЕрд▓ рдСрд░реНрдбрд░ рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ
Sarah JohnsonрдкреВрд░реНрд╡рд╛рдкреЗрдХреНрд╖рд╛рдПрдБ
рд╢реБрд░реВ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рд╣реИ:
- API рдкрд╣реБрдВрдЪ рд╡рд╛рд▓рд╛ рдПрдХ рдЖрдкреВрд░реНрддрд┐рдХрд░реНрддрд╛ рдЦрд╛рддрд╛
- рдЖрдкрдХреА API рдХреБрдВрдЬреА (рдЖрдк рдЗрд╕реЗ рдЕрдкрдиреЗ рдЖрдкреВрд░реНрддрд┐рдХрд░реНрддрд╛ рдбреИрд╢рдмреЛрд░реНрдб рд╕реЗ рдЬрдирд░реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ)
- Admin API v2 рдПрдВрдбрдкреЙрдЗрдВрдЯреНрд╕ рддрдХ рдкрд╣реБрдВрдЪ
рдЪрд░рдг 1: рдЕрдкрдиреА API рдХреБрдВрдЬреА рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ
- рдЕрдкрдиреЗ рдЖрдкреВрд░реНрддрд┐рдХрд░реНрддрд╛ рдбреИрд╢рдмреЛрд░реНрдб рдореЗрдВ рд▓реЙрдЧ рдЗрди рдХрд░реЗрдВ
- API рд╕реЗрдЯрд┐рдВрдЧреНрд╕ (
/api-settings) рдкрд░ рдиреЗрд╡рд┐рдЧреЗрдЯ рдХрд░реЗрдВ - "Generate API Key" рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рдирд╣реАрдВ рд╣реИ
- рдЕрдкрдиреА API рдХреБрдВрдЬреА рдХреЙрдкреА рдХрд░реЗрдВ рдФрд░ рдЗрд╕реЗ рд╕реБрд░рдХреНрд╖рд┐рдд рд░рдЦреЗрдВ
рдорд╣рддреНрд╡рдкреВрд░реНрдг: рдЖрдкрдХреА API рдХреБрдВрдЬреА рдЧреБрдкреНрдд рд░рдЦреА рдЬрд╛рдиреА рдЪрд╛рд╣рд┐рдПред рдЗрд╕реЗ рдХрднреА рднреА рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд░реВрдк рд╕реЗ рд╕рд╛рдЭрд╛ рди рдХрд░реЗрдВ рдпрд╛ рд╡рд░реНрдЬрди рдХрдВрдЯреНрд░реЛрд▓ рдореЗрдВ рдХрдорд┐рдЯ рди рдХрд░реЗрдВред
рдЪрд░рдг 2: рдореИрдиреНрдпреБрдЕрд▓ рдСрд░реНрдбрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ
рд▓рдВрдмрд┐рдд рдФрд░ рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдореИрдиреНрдпреБрдЕрд▓ рдСрд░реНрдбрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП GET /api/admin/v2/orders рдПрдВрдбрдкреЙрдЗрдВрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
API рдЕрдиреБрд░реЛрдз
curl -X GET "https://your-domain.com/api/admin/v2/orders?status=pending,processing&productType=manual&limit=50&offset=0" \
-H "X-Api-Key: YOUR_API_KEY"
рдЕрдиреБрд░реЛрдз рдкреИрд░рд╛рдореАрдЯрд░реНрд╕
status(рд╡реИрдХрд▓реНрдкрд┐рдХ): рдСрд░реНрдбрд░ рд╕реНрдерд┐рддрд┐ рдлрд╝рд┐рд▓реНрдЯрд░ред рдХреЙрдорд╛-рд╕реЗрдкрд░реЗрдЯреЗрдб рд╡реИрд▓реНрдпреВрдЬрд╝ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ:pending,processingproductType(рдореИрдиреНрдпреБрдЕрд▓ рдСрд░реНрдбрд░ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ):manualрдкрд░ рд╕реЗрдЯ рдХрд░реЗрдВentityType(рд╡реИрдХрд▓реНрдкрд┐рдХ):productрдпрд╛smm_serviceрджреНрд╡рд╛рд░рд╛ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд░реЗрдВsubCategory(рд╡реИрдХрд▓реНрдкрд┐рдХ): рдЙрдкрд╢реНрд░реЗрдгреА рдирд╛рдо рджреНрд╡рд╛рд░рд╛ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд░реЗрдВlimit(рд╡реИрдХрд▓реНрдкрд┐рдХ): рд▓реМрдЯрд╛рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдСрд░реНрдбрд░ рдХреА рд╕рдВрдЦреНрдпрд╛ (рдЕрдзрд┐рдХрддрдо 500, рдбрд┐рдлрд╝реЙрд▓реНрдЯ 50)offset(рд╡реИрдХрд▓реНрдкрд┐рдХ): рдкреЗрдЬрд┐рдиреЗрд╢рди рдСрдлрд╝рд╕реЗрдЯ (рдбрд┐рдлрд╝реЙрд▓реНрдЯ 0)
рдЙрджрд╛рд╣рд░рдг рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛
{
"orders": [
{
"id": 12345,
"order": 12345,
"status": "pending",
"paymentStatus": "completed",
"quantity": 10,
"user": {
"id": "507f1f77bcf86cd799439011",
"email": "customer@example.com",
"name": "John Doe"
},
"items": [
{
"product": {
"id": "507f1f77bcf86cd799439012",
"name": "Instagram Followers",
"type": "product"
},
"quantity": 10,
"unitPrice": 5.00,
"totalPrice": 50.00
}
],
"createdAt": "2024-01-01T10:00:00.000Z"
}
],
"count": 1,
"total": 1
}
рдорд╣рддреНрд╡рдкреВрд░реНрдг рдиреЛрдЯреНрд╕
- рдХреЗрд╡рд▓
paymentStatus: "completed"рд╡рд╛рд▓реЗ рдСрд░реНрдбрд░ рд▓реМрдЯрд╛рдП рдЬрд╛рддреЗ рд╣реИрдВ - рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ (30-рдорд┐рдирдЯ рдХрд╛ рдЕрдВрддрд░рд╛рд▓) рдХреЛ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП рдСрд░реНрдбрд░ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ
- рдЖрдк рдХреЗрд╡рд▓ рдЙрди рдЙрддреНрдкрд╛рджреЛрдВ/рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рдСрд░реНрдбрд░ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдЖрдкрдХреЗ рдЖрдкреВрд░реНрддрд┐рдХрд░реНрддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдЖрдкрд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИрдВ
рдЪрд░рдг 3: рдСрд░реНрдбрд░ рдкреНрд░реЛрд╕реЗрд╕ рдХрд░реЗрдВ рдФрд░ рдЦрд╛рддреЗ рд╕рдмрдорд┐рдЯ рдХрд░реЗрдВ
рдПрдХ рдмрд╛рд░ рдЖрдкрдХреЗ рдкрд╛рд╕ рдСрд░реНрдбрд░ рд╣реЛ рдЬрд╛рдиреЗ рдкрд░, рдЙрдиреНрд╣реЗрдВ рдкреНрд░реЛрд╕реЗрд╕ рдХрд░реЗрдВ рдФрд░ рдЦрд╛рддрд╛ рдХреНрд░реЗрдбреЗрдВрд╢рд┐рдпрд▓ рддреИрдпрд╛рд░ рдХрд░реЗрдВред рдлрд┐рд░ рдЦрд╛рддреЗ рд╕рдмрдорд┐рдЯ рдХрд░рдиреЗ рдФрд░ рдСрд░реНрдбрд░ рд╕реНрдерд┐рддрд┐ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП POST /api/admin/v2/orders-update рдПрдВрдбрдкреЙрдЗрдВрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
API рдЕрдиреБрд░реЛрдз
curl -X POST "https://your-domain.com/api/admin/v2/orders-update" \
-H "X-Api-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"order": 12345,
"status": "completed",
"accounts": [
"username1:password1",
"username2:password2",
"username3:password3"
],
"supplierOrderId": "SUP-ORDER-12345"
}'
рдЕрдиреБрд░реЛрдз рдмреЙрдбреА рдкреИрд░рд╛рдореАрдЯрд░реНрд╕
order(рдЖрд╡рд╢реНрдпрдХ): рдСрд░реНрдбрд░ рдЖрдИрдбреА (рд╕рдВрдЦреНрдпрд╛)status(рд╡реИрдХрд▓реНрдкрд┐рдХ): рдирдИ рдСрд░реНрдбрд░ рд╕реНрдерд┐рддрд┐ред рдорд╛рдиреНрдп рдорд╛рди:pending,processing,completed,partial,cancelled,erroraccounts(рд╡реИрдХрд▓реНрдкрд┐рдХ, рдЙрддреНрдкрд╛рдж рдСрд░реНрдбрд░ рдХреЗ рд▓рд┐рдП):"username:password"рдпрд╛"email:password"рдлреЙрд░реНрдореЗрдЯ рдореЗрдВ рдЦрд╛рддрд╛ рдХреНрд░реЗрдбреЗрдВрд╢рд┐рдпрд▓реНрд╕ рдХреА рд╕рд░рдгреАsupplierOrderId(рд╡реИрдХрд▓реНрдкрд┐рдХ): рдЯреНрд░реИрдХрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреА рдЖрдВрддрд░рд┐рдХ рдСрд░реНрдбрд░ рдЖрдИрдбреА
рдЦрд╛рддрд╛ рдкреНрд░рд╛рд░реВрдк
рдЙрддреНрдкрд╛рдж рдСрд░реНрдбрд░ рдХреЗ рд▓рд┐рдП, рдЦрд╛рддреЗ рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдХреА рдПрдХ рд╕рд░рдгреА рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рджрд╛рди рдХрд┐рдП рдЬрд╛рдиреЗ рдЪрд╛рд╣рд┐рдПред рдкреНрд░рддреНрдпреЗрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдПрдХ рдЦрд╛рддреЗ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддреА рд╣реИ:
- рдкреНрд░рд╛рд░реВрдк:
"username:password"рдпрд╛"email:password" - рдЙрджрд╛рд╣рд░рдг:
["user1:pass123", "user2:pass456"] - рдорд╛рддреНрд░рд╛: рдСрд░реНрдбрд░ рдорд╛рддреНрд░рд╛ рд╕реЗ рдореЗрд▓ рдЦрд╛рддреЗ рдЦрд╛рддреЗ рдкреНрд░рджрд╛рди рдХрд░реЗрдВ
рдкреВрд░реНрдг рд╡рд░реНрдХрдлрд╝реНрд▓реЛ рдЙрджрд╛рд╣рд░рдг
рдпрд╣рд╛рдБ JavaScript/Node.js рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рдПрдХ рдкреВрд░реНрдг рдЙрджрд╛рд╣рд░рдг рд╣реИ:
const axios = require('axios');
const API_BASE_URL = 'https://your-domain.com/api/admin/v2';
const API_KEY = 'YOUR_API_KEY';
// рдЪрд░рдг 1: рд▓рдВрдмрд┐рдд рдФрд░ рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдореИрдиреНрдпреБрдЕрд▓ рдСрд░реНрдбрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ
async function getOrders() {
try {
const response = await axios.get(`${API_BASE_URL}/orders`, {
params: {
status: 'pending,processing',
productType: 'manual',
limit: 50,
offset: 0
},
headers: {
'X-Api-Key': API_KEY
}
});
return response.data.orders;
} catch (error) {
console.error('Error fetching orders:', error.response?.data || error.message);
throw error;
}
}
// рдЪрд░рдг 2: рдСрд░реНрдбрд░ рдкреНрд░реЛрд╕реЗрд╕ рдХрд░реЗрдВ рдФрд░ рдЦрд╛рддреЗ рд╕рдмрдорд┐рдЯ рдХрд░реЗрдВ
async function updateOrder(orderId, accounts, supplierOrderId) {
try {
const response = await axios.post(
`${API_BASE_URL}/orders-update`,
{
order: orderId,
status: 'completed',
accounts: accounts,
supplierOrderId: supplierOrderId
},
{
headers: {
'X-Api-Key': API_KEY,
'Content-Type': 'application/json'
}
}
);
return response.data;
} catch (error) {
console.error('Error updating order:', error.response?.data || error.message);
throw error;
}
}
// рдореБрдЦреНрдп рд╡рд░реНрдХрдлрд╝реНрд▓реЛ
async function processOrders() {
try {
// рдСрд░реНрдбрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ
const orders = await getOrders();
console.log(`Found ${orders.length} orders to process`);
// рдкреНрд░рддреНрдпреЗрдХ рдСрд░реНрдбрд░ рдкреНрд░реЛрд╕реЗрд╕ рдХрд░реЗрдВ
for (const order of orders) {
console.log(`Processing order ${order.id}...`);
// рдЦрд╛рддреЗ рддреИрдпрд╛рд░ рдХрд░реЗрдВ (рдпрд╣ рд╡рд╣ рдЬрдЧрд╣ рд╣реИ рдЬрд╣рд╛рдБ рдЖрдк рдЕрдкрдиреЗ рд╕рд┐рд╕реНрдЯрдо рд╕реЗ рдлрд╝реЗрдЪ рдХрд░реЗрдВрдЧреЗ)
const accounts = [
'user1:pass1',
'user2:pass2',
// ... рдСрд░реНрдбрд░.quantity рд╕реЗ рдореЗрд▓ рдЦрд╛рддреЗ рдЕрдзрд┐рдХ рдЦрд╛рддреЗ
];
// рдЦрд╛рддреЛрдВ рдХреЗ рд╕рд╛рде рдСрд░реНрдбрд░ рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВ рдФрд░ рдкреВрд░реНрдг рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд┐рд╣реНрдирд┐рдд рдХрд░реЗрдВ
const updatedOrder = await updateOrder(
order.id,
accounts,
`SUP-${order.id}`
);
console.log(`Order ${order.id} completed successfully`);
}
} catch (error) {
console.error('Error in workflow:', error);
}
}
// рд╡рд░реНрдХрдлрд╝реНрд▓реЛ рдЪрд▓рд╛рдПрдБ
processOrders();
рддреНрд░реБрдЯрд┐ рдкреНрд░рдмрдВрдзрди
рд╕рд╛рдорд╛рдиреНрдп рддреНрд░реБрдЯрд┐рдпрд╛рдБ
- рдЕрдорд╛рдиреНрдп API рдХреБрдВрдЬреА
{ "error": "INVALID_API_KEY", "message": "Invalid API key" }рд╕рдорд╛рдзрд╛рди: рдЬрд╛рдВрдЪреЗрдВ рдХрд┐ рдЖрдкрдХреА API рдХреБрдВрдЬреА рд╕рд╣реА рдФрд░ рд╕рдХреНрд░рд┐рдп рд╣реИред
- рдСрд░реНрдбрд░ рдирд╣реАрдВ рдорд┐рд▓рд╛
{ "error": "ORDER_NOT_FOUND", "message": "Order not found" }рд╕рдорд╛рдзрд╛рди: рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдСрд░реНрдбрд░ рдЖрдИрдбреА рдореМрдЬреВрдж рд╣реИ рдФрд░ рдЖрдкрд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИред
- рдкрд╣реБрдВрдЪ рдЕрд╕реНрд╡реАрдХреГрдд
{ "error": "ACCESS_DENIED", "message": "You do not have access to this order" }рд╕рдорд╛рдзрд╛рди: рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдСрд░реНрдбрд░ рдореЗрдВ рдРрд╕реЗ рдЙрддреНрдкрд╛рдж/рд╕реЗрд╡рд╛рдПрдБ рд╣реИрдВ рдЬреЛ рдЖрдкрд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИрдВред
- рдЕрдорд╛рдиреНрдп рдЦрд╛рддреЗ
{ "error": "INVALID_ACCOUNTS", "message": "No valid accounts provided after deduplication" }рд╕рдорд╛рдзрд╛рди: рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЦрд╛рддреЛрдВ рдХреА рд╕рд░рдгреА рдЦрд╛рд▓реА рдирд╣реАрдВ рд╣реИ рдФрд░ рдЗрд╕рдореЗрдВ рдорд╛рдиреНрдп рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рд╣реИрдВред
рд╕рд░реНрд╡реЛрддреНрддрдо рдЕрднреНрдпрд╛рд╕
- рдкреЛрд▓рд┐рдВрдЧ рдЖрд╡реГрддреНрддрд┐: рдмрд╣реБрдд рдмрд╛рд░ рдкреЛрд▓ рди рдХрд░реЗрдВред API рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдХреЛ 30-рдорд┐рдирдЯ рдХреЗ рдЕрдВрддрд░рд╛рд▓ рд╕реЗ рд░реЛрдХрддрд╛ рд╣реИред
- рддреНрд░реБрдЯрд┐ рдкреНрд░рдмрдВрдзрди: рд╣рдореЗрд╢рд╛ рдЙрдЪрд┐рдд рддреНрд░реБрдЯрд┐ рдкреНрд░рдмрдВрдзрди рдФрд░ рдкреБрдирдГ рдкреНрд░рдпрд╛рд╕ рддрд░реНрдХ рд▓рд╛рдЧреВ рдХрд░реЗрдВред
- рдЦрд╛рддрд╛ рд╕рддреНрдпрд╛рдкрди: рд╕рдмрдорд┐рдЯ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЦрд╛рддреЛрдВ рдХреЛ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░реЗрдВ рддрд╛рдХрд┐ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рд╣реЛ рд╕рдХреЗ рдХрд┐ рд╡реЗ рд╕рд╣реА рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рд╣реИрдВред
- рдСрд░реНрдбрд░ рдЯреНрд░реИрдХрд┐рдВрдЧ: рдЕрдкрдиреЗ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдСрд░реНрдбрд░ рдЯреНрд░реИрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП
supplierOrderIdрдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред - рд╕реНрдерд┐рддрд┐ рдЕрдкрдбреЗрдЯ: рдЖрдк рд╕реНрдерд┐рддрд┐ рдХреЛ рдХреНрд░рдорд┐рдХ рд░реВрдк рд╕реЗ рдЕрдкрдбреЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
- рдкрд╣рд▓реЗ рдЗрд╕реЗ
processingрдкрд░ рд╕реЗрдЯ рдХрд░реЗрдВ рдЬрдм рдЖрдк рдЗрд╕ рдкрд░ рдХрд╛рдо рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ - рдлрд┐рд░ рдЗрд╕реЗ
completedрдкрд░ рд╕реЗрдЯ рдХрд░реЗрдВ рдЬрдм рдЦрд╛рддреЗ рддреИрдпрд╛рд░ рд╣реЛрдВ
- рдкрд╣рд▓реЗ рдЗрд╕реЗ
- рдЖрдВрд╢рд┐рдХ рдСрд░реНрдбрд░: рдпрджрд┐ рдЖрдк рдСрд░реНрдбрд░ рдХрд╛ рдХреЗрд╡рд▓ рдПрдХ рд╣рд┐рд╕реНрд╕рд╛ рдкреВрд░рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рддреЛ рд╕реНрдерд┐рддрд┐ рдХреЛ
partialрдкрд░ рд╕реЗрдЯ рдХрд░реЗрдВ рдФрд░ рдЙрдкрд▓рдмреНрдз рдЦрд╛рддреЗ рд╕рдмрдорд┐рдЯ рдХрд░реЗрдВред
рд╕рд╛рд░рд╛рдВрд╢
рд╕рдВрдкреВрд░реНрдг рд╡рд░реНрдХрдлрд╝реНрд▓реЛ рд╣реИ:
- рдСрд░реНрдбрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ:
GET /api/admin/v2/orders?status=pending,processing&productType=manual - рдСрд░реНрдбрд░ рдкреНрд░реЛрд╕реЗрд╕ рдХрд░реЗрдВ: рдкреНрд░рддреНрдпреЗрдХ рдСрд░реНрдбрд░ рдХреЗ рд▓рд┐рдП рдЦрд╛рддреЗ рддреИрдпрд╛рд░ рдХрд░реЗрдВ
- рдЦрд╛рддреЗ рд╕рдмрдорд┐рдЯ рдХрд░реЗрдВ:
POST /api/admin/v2/orders-updateрдЦрд╛рддреЛрдВ рдФрд░status: "completed"рдХреЗ рд╕рд╛рде
рдпрд╣ рд╕рд░рд▓ рддреАрди-рдЪрд░рдгреАрдп рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЖрдкрдХреЛ рдЕрдкрдиреЗ рдСрд░реНрдбрд░ рдкреВрд░реНрддрд┐ рд╡рд░реНрдХрдлрд╝реНрд▓реЛ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИ!
рджреЛрдиреЛрдВ рдХреЛрд░ рдЖрдкреВрд░реНрддрд┐рдХрд░реНрддрд╛ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдЧрд╛рдЗрдб рд╣реИрдВред рдЗрдиреНрд╣реЗрдВ рд▓рд┐рдВрдХ рдХрд░рдиреЗ рд╕реЗ рдЖрдкреВрд░реНрддрд┐рдХрд░реНрддрд╛рдУрдВ рдХреЛ рдЙрддреНрдкрд╛рдж рд╕реЗрдЯрдЕрдк рд╕реЗ рдСрд░реНрдбрд░ рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рддрдХ рдиреЗрд╡рд┐рдЧреЗрдЯ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдорд┐рд▓рддреА рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдПрдХ рддрд╛рд░реНрдХрд┐рдХ рд╡рд░реНрдХрдлрд╝реНрд▓реЛ рдмрдирддрд╛ рд╣реИред рдЙрддреНрдкрд╛рдж рдкреНрд░рдмрдВрдзрди рдЧрд╛рдЗрдбред

Sarah Johnson
Digital marketing expert with 10+ years of experience in social media strategy. Passionate about helping businesses grow their online presence through effective marketing techniques.


