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