main
buuwie 8 months ago
parent bea9ba2a59
commit 53f70f5867
  1. 22
      package-lock.json
  2. 1
      package.json
  3. 7
      src/app.module.ts
  4. 26
      src/auth/auth.controller.ts
  5. 28
      src/auth/auth.module.ts
  6. 55
      src/auth/auth.service.ts
  7. 25
      src/auth/jwt.strategy.ts
  8. 54
      src/csv/csv.controller.ts
  9. 20
      src/csv/csv.module.ts
  10. 86
      src/csv/csv.service.ts
  11. 26
      src/dto/createProduct.dto.ts
  12. 22
      src/dto/editProduct.dto.ts
  13. 8
      src/dto/loginUser.dto.ts
  14. 12
      src/dto/registerUser.dto.ts
  15. 36
      src/entity/csv.entity.ts
  16. 13
      src/entity/user.entity.ts
  17. 6
      src/orm.config.ts
  18. 1
      src/user/dto/create-user.dto.ts
  19. 4
      src/user/dto/update-user.dto.ts
  20. 41
      src/user/entities/user.entity.ts
  21. 34
      src/user/user.controller.ts
  22. 14
      src/user/user.module.ts
  23. 34
      src/user/user.service.ts
  24. 26
      uploads/2878a4961cf985939bb451259c5e84bf
  25. 26
      uploads/55663bab639616f75c3faf06f0901b7f
  26. 26
      uploads/99d1a675242916ac0df3d1dc7a61669d
  27. 40
      uploads/a133887a374d6f28990de27f74f6980c
  28. 26
      uploads/df27729e14cdb2042b31802b94b1f067
  29. 101
      uploads/e0c40b53ef197d006fb2b2c952a029fc
  30. 26
      uploads/e2105d14cd240471ee3b1bc3be180106
  31. 26
      uploads/f4188ce170d590450ad3f652d33a9108
  32. 26
      uploads/f66ede1f88e2032f3cf9ec744d4f09f9

22
package-lock.json generated

@ -5,13 +5,14 @@
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "csv-import", "name": "csvimport",
"version": "0.0.1", "version": "0.0.1",
"license": "UNLICENSED", "license": "UNLICENSED",
"dependencies": { "dependencies": {
"@nestjs/common": "^10.3.3", "@nestjs/common": "^10.3.3",
"@nestjs/core": "^10.0.0", "@nestjs/core": "^10.0.0",
"@nestjs/jwt": "^10.2.0", "@nestjs/jwt": "^10.2.0",
"@nestjs/mapped-types": "*",
"@nestjs/passport": "^10.0.3", "@nestjs/passport": "^10.0.3",
"@nestjs/platform-express": "^10.3.3", "@nestjs/platform-express": "^10.3.3",
"@nestjs/typeorm": "^10.0.2", "@nestjs/typeorm": "^10.0.2",
@ -1871,6 +1872,25 @@
"@nestjs/common": "^8.0.0 || ^9.0.0 || ^10.0.0" "@nestjs/common": "^8.0.0 || ^9.0.0 || ^10.0.0"
} }
}, },
"node_modules/@nestjs/mapped-types": {
"version": "2.0.5",
"resolved": "https://registry.npmjs.org/@nestjs/mapped-types/-/mapped-types-2.0.5.tgz",
"integrity": "sha512-bSJv4pd6EY99NX9CjBIyn4TVDoSit82DUZlL4I3bqNfy5Gt+gXTa86i3I/i0iIV9P4hntcGM5GyO+FhZAhxtyg==",
"peerDependencies": {
"@nestjs/common": "^8.0.0 || ^9.0.0 || ^10.0.0",
"class-transformer": "^0.4.0 || ^0.5.0",
"class-validator": "^0.13.0 || ^0.14.0",
"reflect-metadata": "^0.1.12 || ^0.2.0"
},
"peerDependenciesMeta": {
"class-transformer": {
"optional": true
},
"class-validator": {
"optional": true
}
}
},
"node_modules/@nestjs/passport": { "node_modules/@nestjs/passport": {
"version": "10.0.3", "version": "10.0.3",
"resolved": "https://registry.npmjs.org/@nestjs/passport/-/passport-10.0.3.tgz", "resolved": "https://registry.npmjs.org/@nestjs/passport/-/passport-10.0.3.tgz",

@ -23,6 +23,7 @@
"@nestjs/common": "^10.3.3", "@nestjs/common": "^10.3.3",
"@nestjs/core": "^10.0.0", "@nestjs/core": "^10.0.0",
"@nestjs/jwt": "^10.2.0", "@nestjs/jwt": "^10.2.0",
"@nestjs/mapped-types": "*",
"@nestjs/passport": "^10.0.3", "@nestjs/passport": "^10.0.3",
"@nestjs/platform-express": "^10.3.3", "@nestjs/platform-express": "^10.3.3",
"@nestjs/typeorm": "^10.0.2", "@nestjs/typeorm": "^10.0.2",

@ -3,15 +3,12 @@ import { AppController } from './app.controller';
import { AppService } from './app.service'; import { AppService } from './app.service';
import { TypeOrmModule } from '@nestjs/typeorm'; import { TypeOrmModule } from '@nestjs/typeorm';
import { config } from './orm.config'; import { config } from './orm.config';
import { CsvModule } from './csv/csv.module'; import { UserModule } from './user/user.module';
import { CsvEntity } from './entity/csv.entity';
import { AuthModule } from './auth/auth.module';
@Module({ @Module({
imports: [ imports: [
TypeOrmModule.forRoot(config), TypeOrmModule.forRoot(config),
CsvModule, UserModule,
AuthModule,
], ],
controllers: [AppController], controllers: [AppController],
providers: [AppService], providers: [AppService],

@ -1,26 +0,0 @@
import { Body, Controller, Get, Post, ValidationPipe } from '@nestjs/common';
import { AuthService } from './auth.service';
import { LoginUserDto } from 'src/dto/loginUser.dto';
import { RegisterUserDto } from 'src/dto/registerUser.dto';
@Controller('auth')
export class AuthController {
constructor(
private readonly authService: AuthService
) {}
@Post('login')
async login(@Body(ValidationPipe) LoginUserDto: LoginUserDto) {
return this.authService.loginUser(LoginUserDto);
}
@Post('register')
register(@Body(ValidationPipe) RegisterUserDto: RegisterUserDto) {
return this.authService.createUser(RegisterUserDto);
}
@Get('data')
async getUsers() {
return this.authService.getUser();
}
}

@ -1,28 +0,0 @@
import { Module } from '@nestjs/common';
import { AuthController } from './auth.controller';
import { AuthService } from './auth.service';
import { TypeOrmModule } from '@nestjs/typeorm';
import { UserEntity } from 'src/entity/user.entity';
import { JwtModule } from '@nestjs/jwt';
import { PassportModule } from '@nestjs/passport';
import { JwtStrategy } from './jwt.strategy';
@Module({
imports: [
TypeOrmModule.forFeature([UserEntity]),
JwtModule.register({
secret: 'iuhgdfhg984h493ghiughohfgd',
signOptions: {
algorithm: 'HS512',
expiresIn: '1d',
}
}),
PassportModule.register({
defaultStrategy: 'jwt'
})
],
controllers: [AuthController],
providers: [AuthService, JwtStrategy],
exports: [PassportModule, JwtStrategy]
})
export class AuthModule {}

@ -1,55 +0,0 @@
import { Injectable, InternalServerErrorException, UnauthorizedException } from '@nestjs/common';
import { JwtService } from '@nestjs/jwt';
import { InjectRepository } from '@nestjs/typeorm';
import { UserEntity } from 'src/entity/user.entity';
import { Repository } from 'typeorm';
import * as bcrypt from "bcryptjs";
import { LoginUserDto } from 'src/dto/loginUser.dto';
import { RegisterUserDto } from 'src/dto/registerUser.dto';
@Injectable()
export class AuthService {
constructor(
@InjectRepository(UserEntity)
private repo: Repository<UserEntity>, private jwt: JwtService
) {}
async getUser () {
return this.repo.find();
}
async loginUser (loginUserDto: LoginUserDto) {
const { username, password } = loginUserDto;
const user = await this.repo.findOne({ where: {username} });
if (!user) {
throw new UnauthorizedException('Invalid credentials.');
}
const passwordMatch = await bcrypt.compare(password, user.password);
if (passwordMatch) {
const jwtPayload = {username};
const jwtToken = await this.jwt.signAsync(jwtPayload, {expiresIn: '1d', algorithm: 'HS512'});
return {token: jwtToken, message: 'Login successfully'};
}
else {
throw new UnauthorizedException('Invalid credentials.');
}
}
async createUser (registerUserDto: RegisterUserDto) {
const { username, password} = registerUserDto;
const hash = await bcrypt.hash(password, 12);
const salt = await bcrypt.getSalt(hash);
const user = new UserEntity();
user.username = username;
user.password = hash;
user.salt = salt;
this.repo.create(user);
try {
return await this.repo.save(user);
} catch (error) {
throw new InternalServerErrorException('Something went wrong')
}
}
}

@ -1,25 +0,0 @@
import { UnauthorizedException } from "@nestjs/common";
import { PassportStrategy } from "@nestjs/passport";
import { InjectRepository } from "@nestjs/typeorm";
import { ExtractJwt, Strategy } from "passport-jwt";
import { UserEntity } from "src/entity/user.entity";
import { Repository } from "typeorm";
export class JwtStrategy extends PassportStrategy(Strategy) {
constructor(@InjectRepository(UserEntity) private repo: Repository<UserEntity>) {
super({
jwtFromRequest: ExtractJwt.fromAuthHeaderAsBearerToken(),
secretOrKey: 'iuhgdfhg984h493ghiughohfgd'
});
}
async validate(payload: {username: string}) {
const {username} = payload;
const user = await this.repo.findOne({where: {username}});
if (!user) {
throw new UnauthorizedException();
}
return user;
}
}

@ -1,54 +0,0 @@
import { Body, Controller, Delete, Get, InternalServerErrorException, Param, Patch, Post, UploadedFile, UseGuards, UseInterceptors, ValidationPipe } from '@nestjs/common';
import { FileInterceptor } from '@nestjs/platform-express';
import { createReadStream } from 'fs';
import * as csv from 'csv-parser';
import { CsvService } from './csv.service';
import { CreateProductDto } from 'src/dto/createProduct.dto';
import { AuthGuard } from '@nestjs/passport';
import { productStatus } from 'src/entity/csv.entity';
import { EditProductDto } from 'src/dto/editProduct.dto';
import { ProductStatusValidationPipe } from 'src/productStatusValidation.pipe';
@Controller('file')
@UseGuards(AuthGuard())
export class CsvController {
constructor (private csvService : CsvService) {}
@Post('upload')
@UseInterceptors(FileInterceptor('file'))
async importCsv(@UploadedFile() file: any) {
if(!file) {
throw new InternalServerErrorException('No file uploaded');
}
const filePath = file.path;
await this.csvService.importCsvData(filePath);
return 'Csv file uploaded and processed';
}
@Get('data')
getData () {
return this.csvService.getAllData();
}
@Get('data/:id')
async getOne(@Param('id') id: number) {
return this.csvService.getOneData(id);
}
@Post('data')
createProduct (@Body(ValidationPipe) data: CreateProductDto) {
return this.csvService.createData(data);
}
@Patch('data/:id')
updateProduct (@Param('id') id: number, @Body(ValidationPipe) data: EditProductDto, @Body("status", ProductStatusValidationPipe) status: productStatus) {
return this.csvService.editData(id, data, status);
}
@Delete('data/:id')
deleteProduct(@Param('id') id: number) {
return this.csvService.deleteData(id);
}
}

@ -1,20 +0,0 @@
import { Module } from '@nestjs/common';
import { CsvController } from './csv.controller';
import { CsvService } from './csv.service';
import { MulterModule } from '@nestjs/platform-express';
import { TypeOrmModule } from '@nestjs/typeorm';
import { CsvEntity } from 'src/entity/csv.entity';
import { AuthModule } from 'src/auth/auth.module';
@Module({
imports: [
TypeOrmModule.forFeature([CsvEntity]),
MulterModule.register({
dest: './uploads',
}),
AuthModule
],
controllers: [CsvController],
providers: [CsvService]
})
export class CsvModule {}

@ -1,86 +0,0 @@
import { Injectable, InternalServerErrorException, Param } from '@nestjs/common';
import { InjectRepository } from '@nestjs/typeorm';
import * as csv from 'csv-parser';
import { createReadStream } from 'fs';
import { CreateProductDto } from 'src/dto/createProduct.dto';
import { EditProductDto } from 'src/dto/editProduct.dto';
import { CsvEntity, productStatus } from 'src/entity/csv.entity';
import { UserEntity } from 'src/entity/user.entity';
import { Repository } from 'typeorm';
@Injectable()
export class CsvService {
constructor (
@InjectRepository(CsvEntity)
private readonly repo: Repository<CsvEntity>) {}
async importCsvData(filePath: string) {
const results = [];
createReadStream(filePath).pipe(csv()).on('data', (data) => results.push(data)).on('end', async () => {
for (const result of results) {
const csvData = new CsvEntity();
csvData.name = result.name;
csvData.serial = result.serial;
csvData.category = result.category;
csvData.size = result.size;
csvData.description = result.description;
csvData.status = result.status;
csvData.manufactureDate = result.manufactureDate;
csvData.warranty = result.warranty;
await this.repo.save(csvData);
}
console.log(results);
return results;
});
}
async getAllData () {
return this.repo.find();
}
async getOneData (id: number) {
return this.repo.findOne({where: {id: id}});
}
async createData (CreateProductDto: CreateProductDto) {
const product = new CsvEntity();
const { name, serial, category, size, description, manufactureDate, warranty } = CreateProductDto;
product.name = name;
product.serial = serial;
product.category = category;
product.size = size;
product.description = description;
product.status = productStatus.AVAILABLE;
product.manufactureDate = new Date().toLocaleString();
product.warranty = warranty;
this.repo.create(product);
return await this.repo.save(product);
}
async editData (id: number, EditProductDto: EditProductDto, status: productStatus) {
const product = await this.repo.findOne({where: {id: id}});
const { name, serial, category, size, description, manufactureDate, warranty } = EditProductDto;
if (product) {
product.name = name;
product.serial = serial;
product.category = category;
product.size = size;
product.description = description;
product.manufactureDate = manufactureDate;
product.status = status;
product.warranty = warranty;
return this.repo.save(product);
}
else throw new InternalServerErrorException('Product not found');
}
async deleteData (id: number) {
const product = await this.repo.findOne({where: {id: id}});
if (product) {
return this.repo.delete(id).then(() => {});
}
else throw new InternalServerErrorException('Product not found');
}
}

@ -1,26 +0,0 @@
import { IsNotEmpty } from "class-validator"
import { productStatus } from "src/entity/csv.entity";
export class CreateProductDto {
@IsNotEmpty()
name: string;
@IsNotEmpty()
serial: string;
@IsNotEmpty()
category: string;
@IsNotEmpty()
size: string;
@IsNotEmpty()
description: string;
@IsNotEmpty()
manufactureDate: string;
@IsNotEmpty()
warranty: string;
}

@ -1,22 +0,0 @@
import { IsNotEmpty } from "class-validator"
import { productStatus } from "src/entity/csv.entity";
export class EditProductDto {
name: string;
serial: string;
category: string;
size: string;
description: string;
@IsNotEmpty()
status: productStatus;
manufactureDate: string;
warranty: string;
}

@ -1,8 +0,0 @@
import { IsNotEmpty } from "class-validator";
export class LoginUserDto {
@IsNotEmpty()
username: string;
@IsNotEmpty()
password: string;
}

@ -1,12 +0,0 @@
import { IsNotEmpty, Matches, MinLength, MaxLength } from "class-validator";
export class RegisterUserDto {
@IsNotEmpty()
username: string;
@IsNotEmpty()
@MinLength(6) @MaxLength(12)
@Matches(/(?:(?=.*\d)|(?=.*\W+))(?![.\n])(?=.*[A-Z])(?=.*[a-z]).*$/, {
message: "Password must contains at least a uppercase letter, a lowercase letter and a number"
})
password: string;
}

@ -1,36 +0,0 @@
import { Entity, PrimaryGeneratedColumn, Column } from 'typeorm'
@Entity('csv')
export class CsvEntity {
@PrimaryGeneratedColumn()
id: number;
@Column({nullable: true})
serial: string;
@Column({nullable: true})
name: string;
@Column({nullable: true})
category: string;
@Column({nullable: true})
size: string;
@Column({nullable: true})
description: string;
@Column({nullable: true})
status: productStatus;
@Column({nullable: true})
manufactureDate: string;
@Column({nullable: true})
warranty: string;
}
export enum productStatus {
AVAILABLE = 'AVAILABLE',
OUT_OF_STOCK = 'OUT_OF_STOCK'
}

@ -1,13 +0,0 @@
import { Column, Entity, PrimaryGeneratedColumn } from "typeorm";
@Entity('users')
export class UserEntity {
@PrimaryGeneratedColumn()
id: number;
@Column()
username: string;
@Column()
password: string;
@Column()
salt : string;
}

@ -1,14 +1,12 @@
import { TypeOrmModuleOptions } from "@nestjs/typeorm"; import { TypeOrmModuleOptions } from "@nestjs/typeorm";
import { CsvEntity } from "./entity/csv.entity";
import { UserEntity } from "./entity/user.entity";
export const config: TypeOrmModuleOptions = { export const config: TypeOrmModuleOptions = {
type: 'postgres', type: 'postgres',
port: 5432, port: 5432,
host: 'localhost', host: 'localhost',
username: 'postgres', username: 'postgres',
password: 'hung04112002', password: 'hung04112002',
database: 'newapp', database: 'istone',
autoLoadEntities: true, autoLoadEntities: true,
synchronize: true, synchronize: true,
entities: [CsvEntity, UserEntity], entities: [],
} }

@ -0,0 +1 @@
export class CreateUserDto {}

@ -0,0 +1,4 @@
import { PartialType } from '@nestjs/mapped-types';
import { CreateUserDto } from './create-user.dto';
export class UpdateUserDto extends PartialType(CreateUserDto) {}

@ -0,0 +1,41 @@
import { Column, Entity, PrimaryGeneratedColumn } from "typeorm";
@Entity('users')
export class UserEntity {
@PrimaryGeneratedColumn()
id: number
@Column()
username: string;
@Column()
password: string;
@Column()
fullname: string;
@Column()
email: string;
@Column()
phone: string;
@Column()
companyName: string;
@Column()
companyPhone: string;
@Column()
companyEmail: string;
@Column()
tax: string;
@Column()
address: string;
@Column()
role: string;
}

@ -0,0 +1,34 @@
import { Controller, Get, Post, Body, Patch, Param, Delete } from '@nestjs/common';
import { UserService } from './user.service';
import { CreateUserDto } from './dto/create-user.dto';
import { UpdateUserDto } from './dto/update-user.dto';
@Controller('user')
export class UserController {
constructor(private readonly userService: UserService) {}
@Post()
create(@Body() createUserDto: CreateUserDto) {
return this.userService.create(createUserDto);
}
@Get()
findAll() {
return this.userService.findAll();
}
@Get(':id')
findOne(@Param('id') id: string) {
return this.userService.findOne(+id);
}
@Patch(':id')
update(@Param('id') id: string, @Body() updateUserDto: UpdateUserDto) {
return this.userService.update(+id, updateUserDto);
}
@Delete(':id')
remove(@Param('id') id: string) {
return this.userService.remove(+id);
}
}

@ -0,0 +1,14 @@
import { Module } from '@nestjs/common';
import { UserService } from './user.service';
import { UserController } from './user.controller';
import { TypeOrmModule } from '@nestjs/typeorm';
import { UserEntity } from 'src/user/entities/user.entity';
@Module({
imports: [
TypeOrmModule.forFeature([UserEntity]),
],
controllers: [UserController],
providers: [UserService],
})
export class UserModule {}

@ -0,0 +1,34 @@
import { Injectable } from '@nestjs/common';
import { CreateUserDto } from './dto/create-user.dto';
import { UpdateUserDto } from './dto/update-user.dto';
import { InjectRepository } from '@nestjs/typeorm';
import { UserEntity } from 'src/user/entities/user.entity';
import { Repository } from 'typeorm';
@Injectable()
export class UserService {
constructor(@InjectRepository(UserEntity) private repo: Repository<UserEntity>) {
}
create(createUserDto: CreateUserDto) {
return 'This action adds a new user';
}
findAll() {
return `This action returns all user`;
}
findOne(id: number) {
return `This action returns a #${id} user`;
}
update(id: number, updateUserDto: UpdateUserDto) {
return `This action updates a #${id} user`;
}
remove(id: number) {
return `This action removes a #${id} user`;
}
}

@ -1,26 +0,0 @@
Name,SKU,Regular price
V-Neck T-Shirt,woo-vneck-tee,
Hoodie,woo-hoodie,
Hoodie with Logo,woo-hoodie-with-logo,45
T-Shirt,woo-tshirt,18
Beanie,woo-beanie,20
Belt,woo-belt,65
Cap,woo-cap,18
Sunglasses,woo-sunglasses,90
Hoodie with Pocket,woo-hoodie-with-pocket,45
Hoodie with Zipper,woo-hoodie-with-zipper,45
Long Sleeve Tee,woo-long-sleeve-tee,25
Polo,woo-polo,20
Album,woo-album,15
Single,woo-single,3
V-Neck T-Shirt - Red,woo-vneck-tee-red,20
V-Neck T-Shirt - Green,woo-vneck-tee-green,20
V-Neck T-Shirt - Blue,woo-vneck-tee-blue,15
"Hoodie - Red, No",woo-hoodie-red,45
"Hoodie - Green, No",woo-hoodie-green,45
"Hoodie - Blue, No",woo-hoodie-blue,45
T-Shirt with Logo,Woo-tshirt-logo,18
Beanie with Logo,Woo-beanie-logo,20
Logo Collection,logo-collection,
WordPress Pennant,wp-pennant,11.05
"Hoodie - Blue, Yes",woo-hoodie-blue-logo,45

@ -1,26 +0,0 @@
name,sku,price
V-Neck T-Shirt,woo-vneck-tee,20
Hoodie,woo-hoodie,20
Hoodie with Logo,woo-hoodie-with-logo,45
T-Shirt,woo-tshirt,18
Beanie,woo-beanie,20
Belt,woo-belt,65
Cap,woo-cap,18
Sunglasses,woo-sunglasses,90
Hoodie with Pocket,woo-hoodie-with-pocket,45
Hoodie with Zipper,woo-hoodie-with-zipper,45
Long Sleeve Tee,woo-long-sleeve-tee,25
Polo,woo-polo,20
Album,woo-album,15
Single,woo-single,3
V-Neck T-Shirt - Red,woo-vneck-tee-red,20
V-Neck T-Shirt - Green,woo-vneck-tee-green,20
V-Neck T-Shirt - Blue,woo-vneck-tee-blue,15
"Hoodie - Red, No",woo-hoodie-red,45
"Hoodie - Green, No",woo-hoodie-green,45
"Hoodie - Blue, No",woo-hoodie-blue,45
T-Shirt with Logo,Woo-tshirt-logo,18
Beanie with Logo,Woo-beanie-logo,20
Logo Collection,logo-collection,
WordPress Pennant,wp-pennant,11.05
"Hoodie - Blue, Yes",woo-hoodie-blue-logo,45

@ -1,26 +0,0 @@
Name,SKU,Regular price
V-Neck T-Shirt,woo-vneck-tee,
Hoodie,woo-hoodie,
Hoodie with Logo,woo-hoodie-with-logo,45
T-Shirt,woo-tshirt,18
Beanie,woo-beanie,20
Belt,woo-belt,65
Cap,woo-cap,18
Sunglasses,woo-sunglasses,90
Hoodie with Pocket,woo-hoodie-with-pocket,45
Hoodie with Zipper,woo-hoodie-with-zipper,45
Long Sleeve Tee,woo-long-sleeve-tee,25
Polo,woo-polo,20
Album,woo-album,15
Single,woo-single,3
V-Neck T-Shirt - Red,woo-vneck-tee-red,20
V-Neck T-Shirt - Green,woo-vneck-tee-green,20
V-Neck T-Shirt - Blue,woo-vneck-tee-blue,15
"Hoodie - Red, No",woo-hoodie-red,45
"Hoodie - Green, No",woo-hoodie-green,45
"Hoodie - Blue, No",woo-hoodie-blue,45
T-Shirt with Logo,Woo-tshirt-logo,18
Beanie with Logo,Woo-beanie-logo,20
Logo Collection,logo-collection,
WordPress Pennant,wp-pennant,11.05
"Hoodie - Blue, Yes",woo-hoodie-blue-logo,45

@ -1,40 +0,0 @@
serial,name,category,size,description,status,manufactureDate,warranty
B4084600,Love ring,rings,Pair/Single,"Love ring, 18K yellow gold. Width: 5.5mm.",Available,19-02-2024,Lorem ipsum
B4084900,Love ring,rings,Single,"Love ring, 950/1000 platinum. Width: 5.5mm.",Available,19-02-2024,Lorem ipsum
B4084800,Love ring,rings,Single,"Love ring, 18K rose gold. Width: 5.5mm.",Available,19-02-2024,Lorem ipsum
B4084700,Love ring,rings,Pair/Single,"Love ring, 18K white gold. Width: 5.5mm.",Available,19-02-2024,Lorem ipsum
B4085000,Love wedding band,rings,Pair,"Love wedding band, 18K yellow gold. Width: 3.6mm.",Out of stock,19-02-2024,Lorem ipsum
B4085200,Love wedding band,rings,Pair,"Love wedding band, 18K rose gold. Width: 3.6mm.",Available,19-02-2024,Lorem ipsum
B4085100,Love wedding band,rings,Pair/Single,"Love wedding band, 18K white gold. Width: 3.6mm.",Out of stock,19-02-2024,Lorem ipsum
B4085300,Love wedding band,rings,Pair/Single,"Love wedding band, 950/1000 platinum. Width: 3.6mm.",Available,19-02-2024,Lorem ipsum
B4032400,"Love ring, 3 diamonds",rings,Single,"Love ring, 18K yellow gold, set with 3 brilliant-cut diamonds totaling 0.22 carats. Width: 5.5mm.",Out of stock,19-02-2024,Lorem ipsum
B6044017,"Amulette de Cartier bracelet, XS model",bracelets,Single,"Amulette de Cartier bracelet, XS model, 18K yellow gold, set with a brilliant-cut diamond of 0.02 carats, white mother-of-pearl. Diameter of motif: 12 mm.",Available,19-02-2024,Lorem ipsum
B6047117,"Amulette de Cartier bracelet, XS model",bracelets,Pair/Single,"Amulette de Cartier bracelet, XS model, 18K pink gold, malachite, set with a brilliant-cut diamond of 0.02 carats. Diameter of motif: 12 mm.",Out of stock,19-02-2024,Lorem ipsum
B6044117,"Amulette de Cartier bracelet, XS model",bracelets,Single,"Amulette de Cartier bracelet, XS model, 18K pink gold, set with a brilliant-cut diamond of 0.02 carats, onyx. Diameter of motif: 12 mm.",Available,19-02-2024,Lorem ipsum
B6050717,"Amulette de Cartier bracelet, XS model",bracelets,Pair/Single,"Amulette de Cartier bracelet, extra-small model, 18K pink gold, onyx, white mother-of-pearl, set with 2 brilliant-cut diamonds totaling 0.05 carats. Diameter of the motifs: 12 mm.",Out of stock,19-02-2024,Lorem ipsum
B6035517,Love bracelet,bracelets,Single,"Love bracelet, 18K yellow gold. Sold with a screwdriver. Width: 6.1mm.",Available,19-02-2024,Lorem ipsum
N6036917,"Love bracelet, diamond-paved",bracelets,Pair/Single,"Love bracelet, 18K pink gold, set with 204 brilliant-cut diamonds totaling 1.99 carats.",Available,19-02-2024,Lorem ipsum
B6035617,Love bracelet,bracelets,Pair/Single,"Love bracelet, 18K rose gold. Sold with a screwdriver. Width: 6.1mm.",Available,19-02-2024,Lorem ipsum
B6035417,Love bracelet,bracelets,Pair/Single,"Love bracelet, 18K white gold. Sold with a screwdriver. Width: 6.1mm.",Out of stock,19-02-2024,Lorem ipsum
B6047517,"Love bracelet, SM",bracelets,Single,"Love bracelet, small model, 18K yellow gold. Sold with a screwdriver. Width: 3.65mm.",Available,19-02-2024,Lorem ipsum
B6047317,"Love bracelet, SM",bracelets,Pair/Single,"Love bracelet, small model, 18K rose gold. Sold with a screwdriver. Width: 3.65mm.",Out of stock,19-02-2024,Lorem ipsum
B3047100,"Amulette de Cartier necklace, XS model",necklaces,Single,"Amulette de Cartier necklace, XS model, 18K yellow gold, set with a brilliant-cut diamond of 0.02 carats, white mother-of-pearl. Diameter of motif: 12 mm. Adjustable chain: 38-41 cm.",Available,19-02-2024,Lorem ipsum
B3047200,"Amulette de Cartier necklace, XS model",necklaces,Single,"Amulette de Cartier necklace, XS model, 18K pink gold, onyx, set with a brilliant-cut diamond of 0.02 carats. Diameter of motif: 12 mm. Adjustable chain: 38-41 cm.",Out of stock,19-02-2024,Lorem ipsum
B7224550,"Amulette de Cartier necklace, XS model",necklaces,Single,"Amulette de Cartier necklace, XS model, 18K pink gold, malachite, set with a brilliant-cut diamond of 0.02 carats. Diameter of motif: 12 mm. Adjustable chain: 38-41 cm.",Available,19-02-2024,Lorem ipsum
B7224569,"Amulette de Cartier necklace, XS model",necklaces,Single,"Amulette de Cartier necklace, extra-small model, 18K pink gold, onyx, white mother-of-pearl, set with 2 brilliant-cut diamonds totaling 0.05 carats. Diameter of the motifs: 12 mm. Adjustable chain.",Out of stock,19-02-2024,Lorem ipsum
B7224558,"Amulette de Cartier necklace, small model",necklaces,Single,"Amulette de Cartier necklace, small model, 18K pink gold, set with a brilliant-cut diamond of 0.09 carats, onyx.",Available,19-02-2024,Lorem ipsum
B7224521,"Amulette de Cartier necklace, small model",necklaces,Single,"Amulette de Cartier necklace, small model, 18K yellow gold, lapis lazuli, set with a brilliant-cut diamond of 0.09 carats. Diameter of motif: 17 mm. Chain: 60 cm.",Available,19-02-2024,Lorem ipsum
B7224518,"Amulette de Cartier necklace, XS model",necklaces,Single,"Amulette de Cartier necklace, XS model, 18K pink gold, carnelian, set with a brilliant-cut diamond of 0.02 carats. Diameter of motif: 12 mm. Adjustable chain: 38-41 cm.",Available,19-02-2024,Lorem ipsum
B3153108,"Amulette de Cartier necklace, XS model",necklaces,Single,"Amulette de Cartier necklace, XS model, 18K yellow gold, lapis lazuli, set with a brilliant-cut diamond of 0.02 carats. Diameter of motif: 12 mm. Adjustable chain: 38-41 cm.",Out of stock,19-02-2024,Lorem ipsum
B7224520,"Amulette de Cartier necklace, XS model",necklaces,Single,"Amulette de Cartier necklace, XS model, 18K yellow gold, chrysoprase, set with a brilliant-cut diamond of 0.02 carats. Diameter of motif: 12 mm. Adjustable chain: 38-41 cm.",Available,19-02-2024,Lorem ipsum
B7224542,"Amulette de Cartier necklace, small model",necklaces,Single,"Amulette de Cartier necklace, small model, 18K pink gold, malachite, set with a brilliant-cut diamond of 0.09 carats. Diameter of motif: 17 mm. Chain: 60 cm.",Out of stock,19-02-2024,Lorem ipsum
B8301238,"Amulette de Cartier earrings, XS model",earrings,Pair/Single,"Amulette de Cartier earrings, XS model, 18K yellow gold, white mother-of-pearl, set with 2 brilliant-cut diamonds totaling 0.05 carats. Diameter of motifs: 12 mm.",Available,19-02-2024,Lorem ipsum
B8301230,"Amulette de Cartier earrings, XS model",earrings,Pair/Single,"Amulette de Cartier earrings, XS model, 18K pink gold, onyx, set with 4 brilliant-cut diamonds totaling 0.14 carats. Diameter of motifs: 12 mm.",Out of stock,19-02-2024,Lorem ipsum
B8301239,"Amulette de Cartier earrings, XS model",earrings,Pair/Single,"Amulette de Cartier earrings, XS model, 18K pink gold, onyx, set with 2 brilliant-cut diamonds totaling 0.05 carats. Diameter of motifs: 12 mm.",Available,19-02-2024,Lorem ipsum
B8301229,"Amulette de Cartier earrings, XS model",earrings,Pair/Single,"Amulette de Cartier earrings, XS model, 18K yellow gold, white mother-of-pearl, set with 4 brilliant-cut diamonds totaling 0.14 carats. Diameter of motifs: 12 mm.",Available,19-02-2024,Lorem ipsum
B8301251,"Amulette de Cartier earrings, XS model",earrings,Pair/Single,"Amulette de Cartier earrings, extra-small model, 18K pink gold, onyx, white mother-of-pearl, each set with 2 brilliant-cut diamond totaling 0.11 carat. Motif diameter: 12 mm.",Out of stock,19-02-2024,Lorem ipsum
B8301421,Love single earring,earrings,Pair/Single,"Love single earring, 18K yellow gold. Diameter 6 mm. Sold individually.",Available,19-02-2024,Lorem ipsum
B8301422,Love single earring,earrings,Pair/Single,"Love single earring, 18K pink gold. Diameter 12mm. Sold individually.",Available,19-02-2024,Lorem ipsum
B8301254,Love earrings,earrings,Pair/Single,"Love earrings, 18K rose gold. Inner diameter 7.2mm.",Out of stock,19-02-2024,Lorem ipsum
B8301255,Love earrings,earrings,Pair/Single,"Love earrings, 18K yellow gold. Inner diameter 7.2mm.",Available,19-02-2024,Lorem ipsum
B8301256,Love earrings,earrings,Pair/Single,"Love earrings, 18K white gold. Inner diameter 7.2mm.",Available,19-02-2024,Lorem ipsum

@ -1,26 +0,0 @@
name,sku,price
V-Neck T-Shirt,woo-vneck-tee,20
Hoodie,woo-hoodie,20
Hoodie with Logo,woo-hoodie-with-logo,45
T-Shirt,woo-tshirt,18
Beanie,woo-beanie,20
Belt,woo-belt,65
Cap,woo-cap,18
Sunglasses,woo-sunglasses,90
Hoodie with Pocket,woo-hoodie-with-pocket,45
Hoodie with Zipper,woo-hoodie-with-zipper,45
Long Sleeve Tee,woo-long-sleeve-tee,25
Polo,woo-polo,20
Album,woo-album,15
Single,woo-single,3
V-Neck T-Shirt - Red,woo-vneck-tee-red,20
V-Neck T-Shirt - Green,woo-vneck-tee-green,20
V-Neck T-Shirt - Blue,woo-vneck-tee-blue,15
"Hoodie - Red, No",woo-hoodie-red,45
"Hoodie - Green, No",woo-hoodie-green,45
"Hoodie - Blue, No",woo-hoodie-blue,45
T-Shirt with Logo,Woo-tshirt-logo,18
Beanie with Logo,Woo-beanie-logo,20
Logo Collection,logo-collection,
WordPress Pennant,wp-pennant,11.05
"Hoodie - Blue, Yes",woo-hoodie-blue-logo,45

@ -1,101 +0,0 @@
FirstName,LastName,Company,City,Country,Phone,Email
Sheryl,Baxter,Rasmussen Group,East Leonard,Chile,229.077.5154,zunigavanessa@smith.info
Preston,Lozano,Vega-Gentry,East Jimmychester,Djibouti,5153435776,vmata@colon.com
Roy,Berry,Murillo-Perry,Isabelborough,Antigua and Barbuda,-1199,beckycarr@hogan.com
Linda,Olsen,"Dominguez, Mcmillan and Donovan",Bensonview,Dominican Republic,001-808-617-6467x12895,stanleyblackwell@benson.org
Joanna,Bender,"Martin, Lang and Andrade",West Priscilla,Slovakia (Slovak Republic),001-234-203-0635x76146,colinalvarado@miles.net
Aimee,Downs,Steele Group,Chavezborough,Bosnia and Herzegovina,(283)437-3886x88321,louis27@gilbert.com
Darren,Peck,"Lester, Woodard and Mitchell",Lake Ana,Pitcairn Islands,(496)452-6181x3291,tgates@cantrell.com
Brett,Mullen,"Sanford, Davenport and Giles",Kimport,Bulgaria,001-583-352-7197x297,asnow@colon.com
Sheryl,Meyers,Browning-Simon,Robersonstad,Cyprus,854-138-4911x5772,mariokhan@ryan-pope.org
Michelle,Gallagher,Beck-Hendrix,Elaineberg,Timor-Leste,739.218.2516x459,mdyer@escobar.net
Carl,Schroeder,"Oconnell, Meza and Everett",Shannonville,Guernsey,637-854-0256x825,kirksalas@webb.com
Jenna,Dodson,"Hoffman, Reed and Mcclain",East Andrea,Vietnam,(041)737-3846,mark42@robbins.com
Tracey,Mata,Graham-Francis,South Joannamouth,Togo,001-949-844-8787,alex56@walls.org
Kristine,Cox,Carpenter-Cook,Jodyberg,Sri Lanka,786-284-3358x62152,holdenmiranda@clarke.com
Faith,Lutz,Carter-Hancock,Burchbury,Singapore,(781)861-7180x8306,cassieparrish@blevins-chapman.net
Miranda,Beasley,Singleton and Sons,Desireeshire,Oman,540.085.3135x185,vduncan@parks-hardy.com
Caroline,Foley,Winters-Mendoza,West Adriennestad,Western Sahara,936.222.4746x9924,holtgwendolyn@watson-davenport.com
Greg,Mata,Valentine LLC,Lake Leslie,Mozambique,(701)087-2415,jaredjuarez@carroll.org
Clifford,Jacobson,Simon LLC,Harmonview,South Georgia and the South Sandwich Islands,001-151-330-3524x0469,joseph26@jacobson.com
Joanna,Kirk,Mays-Mccormick,Jamesshire,French Polynesia,(266)131-7001x711,tuckerangie@salazar.net
Maxwell,Frye,Patterson Inc,East Carly,Malta,423.262.3059,fgibson@drake-webb.com
Kiara,Houston,"Manning, Hester and Arroyo",South Alvin,Netherlands,001-274-040-3582x10611,blanchardbob@wallace-shannon.com
Colleen,Howard,Greer and Sons,Brittanyview,Paraguay,1935085151,rsingleton@ryan-cherry.com
Janet,Valenzuela,Watts-Donaldson,Veronicamouth,Lao People's Democratic Republic,354.259.5062x7538,stefanie71@spence.com
Shane,Wilcox,Tucker LLC,Bryanville,Albania,(429)005-9030x11004,mariah88@santos.com
Marcus,Moody,Giles Ltd,Kaitlyntown,Panama,674-677-8623,donnamullins@norris-barrett.org
Dakota,Poole,Simmons Group,Michealshire,Belarus,(371)987-8576x4720,stacey67@fields.org
Frederick,Harper,"Hinton, Chaney and Stokes",South Marissatown,Switzerland,+1-077-121-1558x0687,jacobkhan@bright.biz
Stefanie,Fitzpatrick,Santana-Duran,Acevedoville,Saint Vincent and the Grenadines,(752)776-3286,wterrell@clark.com
Kent,Bradshaw,Sawyer PLC,North Harold,Tanzania,+1-472-143-5037x884,qjimenez@boyd.com
Jack,Tate,"Acosta, Petersen and Morrow",West Samuel,Zimbabwe,965-108-4406x20714,gfigueroa@boone-zavala.com
Tom,Trujillo,Mcgee Group,Cunninghamborough,Denmark,416-338-3758,tapiagreg@beard.info
Gabriel,Mejia,Adkins-Salinas,Port Annatown,Liechtenstein,4077245425,coleolson@jennings.net
Kaitlyn,Santana,Herrera Group,New Kaitlyn,United States of America,6303643286,georgeross@miles.org
Faith,Moon,"Waters, Chase and Aguilar",West Marthaburgh,Bahamas,+1-586-217-0359x6317,willistonya@randolph-baker.com
Tammie,Haley,"Palmer, Barnes and Houston",East Teresa,Belize,001-276-734-4113x6087,harrisisaiah@jenkins.com
Nicholas,Sosa,Jordan Ltd,South Hunter,Uruguay,(661)425-6042,fwolfe@dorsey.com
Jordan,Gay,Glover and Sons,South Walter,Solomon Islands,7208417020,tiffanydavies@harris-mcfarland.org
Bruce,Esparza,Huerta-Mclean,Poolefurt,Montenegro,559-529-4424,preese@frye-vega.com
Sherry,Garza,Anderson Ltd,West John,Poland,001-067-713-6440x158,ann48@miller.com
Natalie,Gentry,Monroe PLC,West Darius,Dominican Republic,830.996.8238,tcummings@fitzpatrick-ashley.com
Bryan,Dunn,Kaufman and Sons,North Jimstad,Burkina Faso,001-710-802-5565,woodwardandres@phelps.com
Wayne,Simpson,Perkins-Trevino,East Rebekahborough,Bolivia,(344)156-8632x1869,barbarapittman@holder.com
Luis,Greer,Cross PLC,North Drew,Bulgaria,001-336-025-6849x701,bstuart@williamson-mcclure.com
Rhonda,Frost,"Herrera, Shepherd and Underwood",Lake Lindaburgh,Monaco,(127)081-9339,zkrueger@wolf-chavez.net
Joanne,Montes,"Price, Sexton and Mcdaniel",Gwendolynview,Palau,(897)726-7952,juan80@henson.net
Geoffrey,Guzman,Short-Wiggins,Zimmermanland,Uzbekistan,975.235.8921x269,bauercrystal@gay.com
Gloria,Mccall,"Brennan, Acosta and Ramos",North Kerriton,Ghana,445-603-6729,bartlettjenna@zuniga-moss.biz
Brady,Cohen,Osborne-Erickson,North Eileenville,United Arab Emirates,741.849.0139x524,mccalltyrone@durham-rose.biz
Latoya,Mccann,"Hobbs, Garrett and Sanford",Port Sergiofort,Belarus,(530)287-4548x29481,bobhammond@barry.biz
Gerald,Hawkins,"Phelps, Forbes and Koch",New Alberttown,Canada,+1-323-239-1456x96168,uwarner@steele-arias.com
Samuel,Crawford,"May, Goodwin and Martin",South Jasmine,Algeria,802-242-7457,xpittman@ritter-carney.net
Patricia,Goodwin,"Christian, Winters and Ellis",Cowanfort,Swaziland,322.549.7139x70040,vaughanchristy@lara.biz
Stacie,Richard,Byrd Inc,New Deborah,Madagascar,001-622-948-3641x24810,clinton85@colon-arias.org
Robin,West,"Nixon, Blackwell and Sosa",Wallstown,Ecuador,698.303.4267,greenemiranda@zimmerman.com
Ralph,Haas,Montes PLC,Lake Ellenchester,Palestinian Territory,2239271999,goodmancesar@figueroa.biz
Phyllis,Maldonado,Costa PLC,Lake Whitney,Saint Barthelemy,4500370767,yhanson@warner-diaz.org
Danny,Parrish,Novak LLC,East Jaredbury,United Arab Emirates,(669)384-8597x8794,howelldarren@house-cohen.com
Kathy,Hill,"Moore, Mccoy and Glass",Selenabury,South Georgia and the South Sandwich Islands,001-171-716-2175x310,ncamacho@boone-simmons.org
Kelli,Hardy,Petty Ltd,Huangfort,Sao Tome and Principe,020.324.2191x2022,kristopher62@oliver.com
Lynn,Pham,"Brennan, Camacho and Tapia",East Pennyshire,Portugal,846.468.6834x611,mpham@rios-guzman.com
Shelley,Harris,"Prince, Malone and Pugh",Port Jasminborough,Togo,423.098.0315x8373,zachary96@mitchell-bryant.org
Eddie,Jimenez,Caldwell Group,West Kristine,Ethiopia,+1-235-657-1073x6306,kristiwhitney@bernard.com
Chloe,Hutchinson,Simon LLC,South Julia,Netherlands,981-544-9452,leah85@sutton-terrell.com
Eileen,Lynch,"Knight, Abbott and Hubbard",Helenborough,Liberia,+1-158-951-4131x53578,levigiles@vincent.com
Fernando,Lambert,Church-Banks,Lake Nancy,Lithuania,497.829.9038,fisherlinda@schaefer.net
Makayla,Cannon,Henderson Inc,Georgeport,New Caledonia,001-215-801-6392x46009,scottcurtis@hurley.biz
Tom,Alvarado,Donaldson-Dougherty,South Sophiaberg,Kiribati,(585)606-2980x2258,nicholsonnina@montgomery.info
Virginia,Dudley,Warren Ltd,Hartbury,French Southern Territories,027.846.3705x14184,zvalencia@phelps.com
Riley,Good,Wade PLC,Erikaville,Canada,6977745822,alex06@galloway.com
Alexandria,Buck,Keller-Coffey,Nicolasfort,Iran,078-900-4760x76668,lee48@manning.com
Richard,Roth,Conway-Mcbride,New Jasmineshire,Morocco,581-440-6539,aharper@maddox-townsend.org
Candice,Keller,Huynh and Sons,East Summerstad,Zimbabwe,001-927-965-8550x92406,buckleycory@odonnell.net
Anita,Benson,Parrish Ltd,Skinnerport,Russian Federation,874.617.5668x69878,angie04@oconnell.com
Regina,Stein,Guzman-Brown,Raystad,Solomon Islands,001-469-848-0724x4407,zrosario@rojas-hardin.net
Debra,Riddle,"Chang, Aguirre and Leblanc",Colinhaven,United States Virgin Islands,+1-768-182-6014x14336,shieldskerry@robles.com
Brittany,Zuniga,Mason-Hester,West Reginald,Kyrgyz Republic,(050)136-9025,mchandler@cochran-huerta.org
Cassidy,Mcmahon,"Mcguire, Huynh and Hopkins",Lake Sherryborough,Myanmar,5040771311,katrinalane@fitzgerald.com
Laurie,Pennington,"Sanchez, Marsh and Hale",Port Katherineville,Dominica,007.155.3406x553,cookejill@powell.com
Alejandro,Blair,"Combs, Waller and Durham",Thomasland,Iceland,(690)068-4641x51468,elizabethbarr@ewing.com
Leslie,Jennings,Blankenship-Arias,Coreybury,Micronesia,629.198.6346,corey75@wiggins.com
Kathleen,Mckay,"Coffey, Lamb and Johnson",Lake Janiceton,Saint Vincent and the Grenadines,(733)910-9968,chloelester@higgins-wilkinson.com
Hunter,Moreno,Fitzpatrick-Lawrence,East Clinton,Isle of Man,(733)833-6754,isaac26@benton-finley.com
Chad,Davidson,Garcia-Jimenez,South Joshuashire,Oman,8275702958,justinwalters@jimenez.com
Corey,Holt,"Mcdonald, Bird and Ramirez",New Glenda,Fiji,001-439-242-4986x7918,maurice46@morgan.com
Emma,Cunningham,Stephens Inc,North Jillianview,New Zealand,128-059-0206x60217,walter83@juarez.org
Duane,Woods,Montoya-Miller,Lyonsberg,Maldives,(636)544-7783x7288,kmercer@wagner.com
Alison,Vargas,"Vaughn, Watts and Leach",East Cristinabury,Benin,365-273-8144,vcantu@norton.com
Vernon,Kane,Carter-Strickland,Thomasfurt,Yemen,114-854-1159x555,hilljesse@barrett.info
Lori,Flowers,Decker-Mcknight,North Joeburgh,Namibia,679.415.1210,tyrone77@valenzuela.info
Nina,Chavez,Byrd-Campbell,Cassidychester,Bhutan,053-344-3205,elliserica@frank.com
Shane,Foley,Rocha-Hart,South Dannymouth,Hungary,-1692,nsteele@sparks.com
Collin,Ayers,Lamb-Peterson,South Lonnie,Anguilla,404-645-5351x012,dudleyemily@gonzales.biz
Sherry,Young,"Lee, Lucero and Johnson",Frankchester,Solomon Islands,158-687-1764,alan79@gates-mclaughlin.com
Darrell,Douglas,"Newton, Petersen and Mathis",Daisyborough,Mali,001-084-845-9524x1777,grayjean@lowery-good.com
Karl,Greer,Carey LLC,East Richard,Guyana,(188)169-1674x58692,hhart@jensen.com
Lynn,Atkinson,"Ware, Burns and Oneal",New Bradview,Sri Lanka,-3769,vkemp@ferrell.com
Fred,Guerra,Schmitt-Jones,Ortegaland,Solomon Islands,+1-753-067-8419x7170,swagner@kane.org
Yvonne,Farmer,Fitzgerald-Harrell,Lake Elijahview,Aruba,(530)311-9786,mccarthystephen@horn-green.biz
Clarence,Haynes,"Le, Nash and Cross",Judymouth,Honduras,(753)813-6941,colleen91@faulkner.biz

@ -1,26 +0,0 @@
Name,SKU,Regular price
V-Neck T-Shirt,woo-vneck-tee,
Hoodie,woo-hoodie,
Hoodie with Logo,woo-hoodie-with-logo,45
T-Shirt,woo-tshirt,18
Beanie,woo-beanie,20
Belt,woo-belt,65
Cap,woo-cap,18
Sunglasses,woo-sunglasses,90
Hoodie with Pocket,woo-hoodie-with-pocket,45
Hoodie with Zipper,woo-hoodie-with-zipper,45
Long Sleeve Tee,woo-long-sleeve-tee,25
Polo,woo-polo,20
Album,woo-album,15
Single,woo-single,3
V-Neck T-Shirt - Red,woo-vneck-tee-red,20
V-Neck T-Shirt - Green,woo-vneck-tee-green,20
V-Neck T-Shirt - Blue,woo-vneck-tee-blue,15
"Hoodie - Red, No",woo-hoodie-red,45
"Hoodie - Green, No",woo-hoodie-green,45
"Hoodie - Blue, No",woo-hoodie-blue,45
T-Shirt with Logo,Woo-tshirt-logo,18
Beanie with Logo,Woo-beanie-logo,20
Logo Collection,logo-collection,
WordPress Pennant,wp-pennant,11.05
"Hoodie - Blue, Yes",woo-hoodie-blue-logo,45

@ -1,26 +0,0 @@
name,sku,price
V-Neck T-Shirt,woo-vneck-tee,20
Hoodie,woo-hoodie,20
Hoodie with Logo,woo-hoodie-with-logo,45
T-Shirt,woo-tshirt,18
Beanie,woo-beanie,20
Belt,woo-belt,65
Cap,woo-cap,18
Sunglasses,woo-sunglasses,90
Hoodie with Pocket,woo-hoodie-with-pocket,45
Hoodie with Zipper,woo-hoodie-with-zipper,45
Long Sleeve Tee,woo-long-sleeve-tee,25
Polo,woo-polo,20
Album,woo-album,15
Single,woo-single,3
V-Neck T-Shirt - Red,woo-vneck-tee-red,20
V-Neck T-Shirt - Green,woo-vneck-tee-green,20
V-Neck T-Shirt - Blue,woo-vneck-tee-blue,15
"Hoodie - Red, No",woo-hoodie-red,45
"Hoodie - Green, No",woo-hoodie-green,45
"Hoodie - Blue, No",woo-hoodie-blue,45
T-Shirt with Logo,Woo-tshirt-logo,18
Beanie with Logo,Woo-beanie-logo,20
Logo Collection,logo-collection,
WordPress Pennant,wp-pennant,11.05
"Hoodie - Blue, Yes",woo-hoodie-blue-logo,45

@ -1,26 +0,0 @@
name,sku,price
V-Neck T-Shirt,woo-vneck-tee,20
Hoodie,woo-hoodie,20
Hoodie with Logo,woo-hoodie-with-logo,45
T-Shirt,woo-tshirt,18
Beanie,woo-beanie,20
Belt,woo-belt,65
Cap,woo-cap,18
Sunglasses,woo-sunglasses,90
Hoodie with Pocket,woo-hoodie-with-pocket,45
Hoodie with Zipper,woo-hoodie-with-zipper,45
Long Sleeve Tee,woo-long-sleeve-tee,25
Polo,woo-polo,20
Album,woo-album,15
Single,woo-single,3
V-Neck T-Shirt - Red,woo-vneck-tee-red,20
V-Neck T-Shirt - Green,woo-vneck-tee-green,20
V-Neck T-Shirt - Blue,woo-vneck-tee-blue,15
"Hoodie - Red, No",woo-hoodie-red,45
"Hoodie - Green, No",woo-hoodie-green,45
"Hoodie - Blue, No",woo-hoodie-blue,45
T-Shirt with Logo,Woo-tshirt-logo,18
Beanie with Logo,Woo-beanie-logo,20
Logo Collection,logo-collection,
WordPress Pennant,wp-pennant,11.05
"Hoodie - Blue, Yes",woo-hoodie-blue-logo,45
Loading…
Cancel
Save