forked from yoone/API
Improvement,增加一个上下架状态
This commit is contained in:
parent
2ad48143b7
commit
9137e95c02
|
|
@ -46,6 +46,15 @@ export default {
|
|||
email: '444693295@qq.com',
|
||||
emailPswd: 'lulin91.',
|
||||
},
|
||||
{
|
||||
id: '3',
|
||||
wpApiUrl: 'http://t1-shop.local/',
|
||||
consumerKey: 'ck_a369473a6451dbaec63d19cbfd74a074b2c5f742',
|
||||
consumerSecret: 'cs_0946bbbeea1bfefff08a69e817ac62a48412df8c',
|
||||
siteName: 'Local-test-2',
|
||||
email: '444693295@qq.com',
|
||||
emailPswd: 'lulin91.',
|
||||
},
|
||||
// {
|
||||
// id: '2',
|
||||
// wpApiUrl: 'http://localhost:10004',
|
||||
|
|
|
|||
|
|
@ -95,8 +95,8 @@ export class WpProductController {
|
|||
@Body() body: any, // todo
|
||||
) {
|
||||
try {
|
||||
await this.wpProductService.updateProductStatus(id, body?.status);
|
||||
return successResponse(true);
|
||||
const res = await this.wpProductService.updateProductStatus(id, body?.status, body?.stock_status);
|
||||
return successResponse(res);
|
||||
} catch (error) {
|
||||
return errorResponse(error.message);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ import {
|
|||
Entity,
|
||||
} from 'typeorm';
|
||||
import { ApiProperty } from '@midwayjs/swagger';
|
||||
import { ProductStatus, ProductType } from '../enums/base.enum';
|
||||
import { ProductStatus, ProductStockStatus, ProductType } from '../enums/base.enum';
|
||||
|
||||
@Entity('wp_product')
|
||||
@Unique(['siteId', 'externalProductId']) // 确保产品的唯一性
|
||||
|
|
@ -56,6 +56,15 @@ export class WpProduct {
|
|||
@Column({ type: 'enum', enum: ProductStatus })
|
||||
status: ProductStatus;
|
||||
|
||||
@ApiProperty({ description: '上下架状态', enum: ProductStockStatus })
|
||||
@Column({
|
||||
name: 'stock_status',
|
||||
type: 'enum',
|
||||
enum: ProductStockStatus,
|
||||
default: ProductStockStatus.INSTOCK
|
||||
})
|
||||
stockStatus: ProductStockStatus;
|
||||
|
||||
@ApiProperty({ description: '常规价格', type: Number })
|
||||
@Column('decimal', { precision: 10, scale: 2, nullable: true })
|
||||
regular_price: number; // 常规价格
|
||||
|
|
|
|||
|
|
@ -9,6 +9,12 @@ export enum ProductStatus {
|
|||
INHERIT = 'inherit', // 继承状态
|
||||
}
|
||||
|
||||
export enum ProductStockStatus {
|
||||
INSTOCK = 'instock',
|
||||
OUT_OF_STOCK = 'outofstock',
|
||||
ON_BACK_ORDER = 'onbackorder',
|
||||
}
|
||||
|
||||
export enum ProductType {
|
||||
SIMPLE = 'simple',
|
||||
VARIABLE = 'variable',
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ import { WpSite } from '../interface';
|
|||
import { WpProduct } from '../entity/wp_product.entity';
|
||||
import { Variation } from '../entity/variation.entity';
|
||||
import { UpdateVariationDTO, UpdateWpProductDTO } from '../dto/wp_product.dto';
|
||||
import { ProductStatus } from '../enums/base.enum';
|
||||
import { ProductStatus, ProductStockStatus } from '../enums/base.enum';
|
||||
|
||||
@Provide()
|
||||
export class WPService {
|
||||
|
|
@ -227,14 +227,17 @@ export class WPService {
|
|||
* 更新 WooCommerce 产品 上下架状态
|
||||
* @param productId 产品 ID
|
||||
* @param status 状态
|
||||
* @param stock_status 上下架状态
|
||||
*/
|
||||
async updateProductStatus(
|
||||
site: WpSite,
|
||||
productId: string,
|
||||
status: ProductStatus,
|
||||
stock_status: ProductStockStatus
|
||||
): Promise<Boolean> {
|
||||
const res = await this.updateData(`/wc/v3/products/${productId}`, site, {
|
||||
status
|
||||
status,
|
||||
stock_status,
|
||||
});
|
||||
console.log('res', res);
|
||||
return res;
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ import {
|
|||
UpdateWpProductDTO,
|
||||
} from '../dto/wp_product.dto';
|
||||
import { Product } from '../entity/product.entty';
|
||||
import { ProductStatus } from '../enums/base.enum';
|
||||
import { ProductStatus, ProductStockStatus } from '../enums/base.enum';
|
||||
|
||||
@Provide()
|
||||
export class WpProductService {
|
||||
|
|
@ -58,11 +58,12 @@ export class WpProductService {
|
|||
}
|
||||
|
||||
// 控制产品上下架
|
||||
async updateProductStatus(id: number, status: ProductStatus) {
|
||||
async updateProductStatus(id: number, status: ProductStatus, stock_status: ProductStockStatus) {
|
||||
const wpProduct = await this.wpProductModel.findOneBy({ id });
|
||||
const site = await this.getSite(wpProduct.siteId);
|
||||
wpProduct.status = status;
|
||||
const res = await this.wpApiService.updateProductStatus(site, wpProduct.externalProductId, status);
|
||||
wpProduct.stockStatus = stock_status;
|
||||
const res = await this.wpApiService.updateProductStatus(site, wpProduct.externalProductId, status, stock_status);
|
||||
if (res === true) {
|
||||
this.wpProductModel.save(wpProduct);
|
||||
return true;
|
||||
|
|
|
|||
Loading…
Reference in New Issue