Get 20% discount On Your First Order

Vape Pen Boxes

Free Design Support

Cost Affective Packaging

Quality Assurance

Quick Support

Description

In recent years, the trend of vaping has rapidly gained popularity worldwide. People worldwide are now using custom vape pen boxes to make their vape pen collection unique, personal, and more special. Making a statement is a goal everyone wants to achieve nowadays, and having the best THC pen boxes that are not only remarkable in terms of custom unique designs embedded on the vape box but also top-notch in terms of quality can help you achieve that.

Customising your CBD pen box can be a delightful experience that goes beyond just personalising your CBD pen set. It also helps define who you are wherever you go, as your custom CBD pen packaging adds a personal touch to your vape collection.

The Quality of CBD Pen Packaging Matters More Than You Think:

In addition to choosing your desired designs, it’s crucial to ensure that your custom vape pen boxes guarantee first-rate quality. High-quality packaging ensures the safety and security of your CBD pen and its components. It also indicates the seriousness of the company providing you with the essential vape accessories. A CBD pen packaging protects your pen and other components and accommodates them safely and conveniently. If the custom packaging is of poor quality, chances are your CBD pen box may be damaged before it even arrives at your doorstep. And even if it does arrive undamaged, it won’t last very long as it won’t have the proper environment to protect itself from potential damage.

Therefore, it’s highly important to order custom CBD pen packaging that promises durable and spacious packaging to keep your CBD pen safe and sound. Neglecting the importance of good quality packaging is a mistake that many people make when ordering their THC pen boxes. Now that you know how crucial it is, you can ensure that you won’t make the same mistake.

Best Variety of Custom Vape Pen Boxes:

If you’re tired of endlessly scrolling in search of your ideal THC pen, we have the perfect solution for you. If you can’t find any pre-existing packaging that suits your tastes, you always have the luxury of getting the THC pen of your dreams custom-made. At Custom Packaging Pro, we offer the best services in terms of excellent quality and a vast variety of CBD pen boxes. Our customised vape packaging provides spacious and secure boxes to keep your THC pen and other vape essentials safe and sound. With our custom THC pen packaging, you can choose the design, shape, and size to your liking, and the possibilities are infinite!

Our staff is committed to providing you with the highest quality customer service and the best product that you won’t find anywhere else. Custom Packaging Pro not only promises top-notch services but delivers on that promise by providing excellent services to each and every customer.

High-Quality Custom Vape Pen Boxes:

At wholesale prices, we offer premium custom vape pen boxes that come with free shipping. Custom vape pen packaging speaks volumes in the vaping world like no other. By opting for personalised THC pen boxes, you gain access to a plethora of options for your ideal vape packaging, from limitless designs, shapes, and sizes. Whether you want the custom boxes for your own use or as a gift for someone, we’ve got you covered.

Discover our range of high-quality packaging materials designed to tailor your packaging order to perfection. From sturdy cardboard boxes to eco-friendly options, we have the ideal materials for your unique needs. Elevate your brand and protect your products with our customizable packaging solutions.

Thickness Of Packing MaterialGSM Weight
13 Point Pulp200 GSM
14 Point Uncoated270 GSM
16 C2S / Solid Bleached Sulfate(SBS)*350 GSM
18 Point C2S400 GSM
24 Point Uncoated405 GSM
24 C2S / Solid Bleached Sulfate(SBS)*460 GSM
40 Point cotton600 GSM

Explore the Paper Stock & Material Below

Box StyleCustomized, Tuck Flap Box, Pillow Box, Gable Style , Sleeve Style Box , Mailer Style Collapsible Mag Closure etc.
DimensionDimension or the size of the box is usually measured with the help of Length x Width X Height Formula ( Height = Top to Bottom of the box), Width (Left to right of the box) and Length front to back of the box.
SizeAll Custom Size and standard sizes are Available.
Quantities100 to 500,000 boxes can be ordered in one month.
Paper Stock10pt to 24pt (60lb to 400lb) Eco-Friendly Kraft, E-flute Corrugated, Bux Board, Cardstock, Uncoated Super White Cardboard and Rigid Stock.
Printing TypeOffset printing Method, Screen Printing, Plain, CMYK Colors, PMS (Pantone Matching System), Spot Colors.
Finishing Or Add onsSoft Touch Lamination ,Gloss Lamination, Matte Lamination, Gloss AQ, Gloss UV, Matte UV, Spot UV, Embossing Debossing and Foiling.
Additional OptionsCreasing , Die Cutting, Gluing, Perforation, Blind Embossing, Window Patching, (Gold, silver, Copper, Red, Blue Foil Stamping)
Turnaround TimeStandard Turnaround Time:After getting the artwork approved, it takes 9 to 11 business days for producing the boxes and further 24 to 48 Hours for the shipment to be delivered at your doorstep. Custom add on orders can take 2 to 4 days extra.
Expedite Turnaround TimeOnce the job is sent for production after the approval of artwork the production will take at least 4 to 6 Biz days for printing and further 24 to 48 hours for delivery at your doorstep. Urgent deadlines can be achieved.
Shipping servicesWe use DHL, FedEx USPS and UPS to Ship boxes. Sea shipping is also an option that can be considered on specific requests.

The packaging you choose for your business depends on various factors such as the type of products you ship, your budget, and your long-term goals. For instance, custom packing tape can be a cost-effective way to brand your shipments while monitoring your budget. Custom printed poly mailers can help you stand out from the competition and keep your shipping costs low. Custom boxes and tissue paper can enhance the unboxing experience and make your products look more valuable. As you gain confidence and grow your budget, you can add more custom packaging options to your lineup.

Absolutely, the choice of material will have a significant impact on how your design will appear on your custom packaging. The texture and finish of the material, as well as the printing process used, can greatly affect the final product.

For example, if you choose a matte texture or darker material such as kraft boxes, your colors and images may appear darker and more subdued. On the other hand, if you opt for glossy or brighter materials like custom poly mailers, your colors may appear brighter and more impactful. By considering your branding and the desired look you want to achieve, you can leverage different textures and materials to your advantage and create a unique, eye-catching design for your custom packaging.

Generally, there are no limits to the number of colors you can use when designing your custom-branded packaging. However, the printing process used may impact the number of colors that can be accurately reproduced. For example, digital printing can usually reproduce a wide range of colors, while screen printing may have limitations on the number of colors that can be used. It’s best to discuss your color requirements with your packaging consultant and the printing team to determine the best printing method for your design.

Beyond more stoic this along goodness hey this this wow manatee mongoose one as since a far flustered

The final project invoice for customized packaging typically includes the actual quantity produced of the product, shipping costs (if any), and additional costs for new or revised orders, artwork, printing plates, and possibly cutting dies. Overrun and underrun quantities may also affect the final cost. It’s important to work with packaging consultants who can guide you through the entire process, including pricing and quantity options. Each project is unique, so the final cost will depend on factors such as materials, printing methods, and product style.

When it comes to custom packaging, minimum quantities are essential to ensure efficient production and prevent waste. The minimum quantities required vary depending on factors such as the type of product, printing techniques used, and deadlines. Our product gallery pages provide estimated minimum quantities to help you plan your project. Each custom printed project requires a specific amount of time and materials to complete, and manufacturing facilities must make decisions based on their overall production capacity. By setting minimum quantities, manufacturers can optimize their efficiency and deliver high-quality custom packaging products to their customers.

The lead time for custom printed packaging can vary based on the type of printing and customization being done. It’s essential to discuss your project details with your packaging consultant to get the most accurate lead time information. Semi-custom printed packaging usually takes 2-4 weeks after approval, while domestic production takes 3-8 weeks after all artwork and prototype approvals. Imported products typically take 8-14 weeks, depending on the product and shipping method. Please note that lead times are subject to change, especially during the holiday season, so it’s best to plan ahead to ensure timely delivery of your custom packaging order.

Over and under runs are common in custom printed packaging production and refer to the final quantity of the product being either more or less than the original order quantity. This is detailed in our proposals as a plus or minus percentage, and you will be billed pro-rated for the actual shipped amounts. Over and under runs happen due to various factors such as the amount of material allocated to each job and the efficiency of the set-up process. However, semi-custom packaging orders are usually produced in exact or very close quantities to the original request. Rest assured that you will only be billed for what we make and ship, whether it’s more or less than your original order quantity.

Get A Quote

Product Info

parent.activateValidation({"message":"This field is required.","minLength":1,"maxLength":"","type":"none","required":true,"expression":"null"}, el)} /> <${validation.ErrorMessage} errors=${validation.errors} name="mf-length" as=${html``} />
parent.activateValidation({"message":"This field is required.","minLength":1,"maxLength":"","type":"none","required":true,"expression":"null"}, el)} /> <${validation.ErrorMessage} errors=${validation.errors} name="mf-width" as=${html``} />
parent.activateValidation({"message":"This field is required.","minLength":1,"maxLength":"","type":"none","required":true,"expression":"null"}, el)} /> <${validation.ErrorMessage} errors=${validation.errors} name="mf-depth" as=${html``} />
<${props.Select} className=${"mf-input mf-input-select " + ( validation.errors['mf-unit'] ? 'mf-invalid' : '' )} classNamePrefix="mf_select" name="mf-unit" placeholder="${ parent.decodeEntities(`Unit`) } " isSearchable=${false} options=${[{"label":"in","value":"in","isDisabled":false},{"label":"cm","value":"cm","isDisabled":false},{"label":"mm","value":"mm","isDisabled":false}]} value=${parent.getValue("mf-unit") ? [{"label":"in","value":"in","isDisabled":false},{"label":"cm","value":"cm","isDisabled":false},{"label":"mm","value":"mm","isDisabled":false}].filter(item => item.value === parent.getValue("mf-unit"))[0] : []} onChange=${(e)=> parent.handleSelect(e, "mf-unit")} ref=${() => { register({ name: "mf-unit" }, parent.activateValidation({"message":"This field is required.","minLength":1,"maxLength":"","type":"none","required":true})); if ( parent.getValue("mf-unit") === '' && false ) { parent.setValue( 'mf-unit', '', true ); parent.handleChange({ target: { name: 'mf-unit', value: '' } }); } }} /> <${validation.ErrorMessage} errors=${validation.errors} name="mf-unit" as=${html``} />
<${props.Select} className=${"mf-input mf-input-select " + ( validation.errors['mf-material'] ? 'mf-invalid' : '' )} classNamePrefix="mf_select" name="mf-material" placeholder="${ parent.decodeEntities(`Material & Stock`) } " isSearchable=${false} options=${[{"label":"White Card Stock","value":"12pt - 24tp Card Stock","isDisabled":false},{"label":"Kraft \/ Eco Friendly Stock","value":"Kraft \/ Eco Friendly Stock","isDisabled":false},{"label":"Corrugate Stock","value":"Corrugate Stock","isDisabled":false},{"label":"Rigid Stock","value":"Rigid Stock","isDisabled":false}]} value=${parent.getValue("mf-material") ? [{"label":"White Card Stock","value":"12pt - 24tp Card Stock","isDisabled":false},{"label":"Kraft \/ Eco Friendly Stock","value":"Kraft \/ Eco Friendly Stock","isDisabled":false},{"label":"Corrugate Stock","value":"Corrugate Stock","isDisabled":false},{"label":"Rigid Stock","value":"Rigid Stock","isDisabled":false}].filter(item => item.value === parent.getValue("mf-material"))[0] : []} onChange=${(e)=> parent.handleSelect(e, "mf-material")} ref=${() => { register({ name: "mf-material" }, parent.activateValidation({"message":"This field is required.","minLength":1,"maxLength":"","type":"none","required":false})); if ( parent.getValue("mf-material") === '' && false ) { parent.setValue( 'mf-material', '', true ); parent.handleChange({ target: { name: 'mf-material', value: '' } }); } }} /> <${validation.ErrorMessage} errors=${validation.errors} name="mf-material" as=${html``} />
<${props.Select} className=${"mf-input mf-input-select " + ( validation.errors['mf-color'] ? 'mf-invalid' : '' )} classNamePrefix="mf_select" name="mf-color" placeholder="${ parent.decodeEntities(`Color Printing`) } " isSearchable=${false} options=${[{"label":"No Printing \/ Plain","value":"No Printing \/ blank","isDisabled":false},{"label":"1 Color","value":"1 Color","isDisabled":false},{"label":"2 Color","value":"2 Color","isDisabled":false},{"label":"3 Color","value":"3 Color","isDisabled":false},{"label":"4 Color","value":"4 Color","isDisabled":false},{"label":"Full Color","value":"Full Color","isDisabled":false}]} value=${parent.getValue("mf-color") ? [{"label":"No Printing \/ Plain","value":"No Printing \/ blank","isDisabled":false},{"label":"1 Color","value":"1 Color","isDisabled":false},{"label":"2 Color","value":"2 Color","isDisabled":false},{"label":"3 Color","value":"3 Color","isDisabled":false},{"label":"4 Color","value":"4 Color","isDisabled":false},{"label":"Full Color","value":"Full Color","isDisabled":false}].filter(item => item.value === parent.getValue("mf-color"))[0] : []} onChange=${(e)=> parent.handleSelect(e, "mf-color")} ref=${() => { register({ name: "mf-color" }, parent.activateValidation({"message":"This field is required.","minLength":1,"maxLength":"","type":"none","required":false})); if ( parent.getValue("mf-color") === '' && false ) { parent.setValue( 'mf-color', '', true ); parent.handleChange({ target: { name: 'mf-color', value: '' } }); } }} /> <${validation.ErrorMessage} errors=${validation.errors} name="mf-color" as=${html``} />
<${props.Select} className=${"mf-input mf-input-select " + ( validation.errors['mf-print'] ? 'mf-invalid' : '' )} classNamePrefix="mf_select" name="mf-print" placeholder="${ parent.decodeEntities(`Printing Options`) } " isSearchable=${false} options=${[{"label":"No Printing \/ Plain","value":"No Printing","isDisabled":false},{"label":"Outside Only","value":"Outside Only","isDisabled":false},{"label":"Inside Only","value":"Inside Only","isDisabled":false},{"label":"Inside & Outside","value":"Inside & Outside","isDisabled":false}]} value=${parent.getValue("mf-print") ? [{"label":"No Printing \/ Plain","value":"No Printing","isDisabled":false},{"label":"Outside Only","value":"Outside Only","isDisabled":false},{"label":"Inside Only","value":"Inside Only","isDisabled":false},{"label":"Inside & Outside","value":"Inside & Outside","isDisabled":false}].filter(item => item.value === parent.getValue("mf-print"))[0] : []} onChange=${(e)=> parent.handleSelect(e, "mf-print")} ref=${() => { register({ name: "mf-print" }, parent.activateValidation({"message":"This field is required.","minLength":1,"maxLength":"","type":"none","required":false})); if ( parent.getValue("mf-print") === '' && false ) { parent.setValue( 'mf-print', '', true ); parent.handleChange({ target: { name: 'mf-print', value: '' } }); } }} /> <${validation.ErrorMessage} errors=${validation.errors} name="mf-print" as=${html``} />
<${props.Select} className=${"mf-input mf-input-select " + ( validation.errors['mf-thickness'] ? 'mf-invalid' : '' )} classNamePrefix="mf_select" name="mf-thickness" placeholder="${ parent.decodeEntities(`Card Stock Thickness`) } " isSearchable=${false} options=${[{"label":"12pt","value":"12pt","isDisabled":false},{"label":"14pt","value":"14pt","isDisabled":false},{"label":"16pt","value":"16pt","isDisabled":false},{"label":"18pt","value":"18pt","isDisabled":false},{"label":"20pt","value":"20pt","isDisabled":false},{"label":"22pt","value":"22pt","isDisabled":false},{"label":"24pt","value":"24pt","isDisabled":false}]} value=${parent.getValue("mf-thickness") ? [{"label":"12pt","value":"12pt","isDisabled":false},{"label":"14pt","value":"14pt","isDisabled":false},{"label":"16pt","value":"16pt","isDisabled":false},{"label":"18pt","value":"18pt","isDisabled":false},{"label":"20pt","value":"20pt","isDisabled":false},{"label":"22pt","value":"22pt","isDisabled":false},{"label":"24pt","value":"24pt","isDisabled":false}].filter(item => item.value === parent.getValue("mf-thickness"))[0] : []} onChange=${(e)=> parent.handleSelect(e, "mf-thickness")} ref=${() => { register({ name: "mf-thickness" }, parent.activateValidation({"message":"This field is required.","minLength":1,"maxLength":"","type":"none","required":false})); if ( parent.getValue("mf-thickness") === '' && false ) { parent.setValue( 'mf-thickness', '', true ); parent.handleChange({ target: { name: 'mf-thickness', value: '' } }); } }} /> <${validation.ErrorMessage} errors=${validation.errors} name="mf-thickness" as=${html``} />
<${props.Select} className=${"mf-input mf-input-select " + ( validation.errors['mf-lami'] ? 'mf-invalid' : '' )} classNamePrefix="mf_select" name="mf-lami" placeholder="${ parent.decodeEntities(`Lamination / Finish`) } " isSearchable=${false} options=${[{"label":"Gloss","value":"Gloss","isDisabled":false},{"label":"Matte","value":"Matte","isDisabled":false}]} value=${parent.getValue("mf-lami") ? [{"label":"Gloss","value":"Gloss","isDisabled":false},{"label":"Matte","value":"Matte","isDisabled":false}].filter(item => item.value === parent.getValue("mf-lami"))[0] : []} onChange=${(e)=> parent.handleSelect(e, "mf-lami")} ref=${() => { register({ name: "mf-lami" }, parent.activateValidation({"message":"This field is required.","minLength":1,"maxLength":"","type":"none","required":false})); if ( parent.getValue("mf-lami") === '' && false ) { parent.setValue( 'mf-lami', '', true ); parent.handleChange({ target: { name: 'mf-lami', value: '' } }); } }} /> <${validation.ErrorMessage} errors=${validation.errors} name="mf-lami" as=${html``} />
{ parent.activateValidation({"message":"This field is required.","minLength":1,"maxLength":"","type":"none","required":false,"expression":"null"}, el) }} /> <${validation.ErrorMessage} errors=${validation.errors} name="mf-quant" as=${html``} />

Personal Info

{ parent.activateValidation({"message":"This field is required.","minLength":1,"maxLength":"","type":"none","required":true,"expression":"null"}, el) }} /> <${validation.ErrorMessage} errors=${validation.errors} name="mf-name" as=${html``} />
parent.activateValidation({"message":"This field is required.","emailMessage":"Please enter a valid Email address","minLength":1,"maxLength":"","type":"none","required":true,"expression":"null"}, el)} /> <${validation.ErrorMessage} errors=${validation.errors} name="mf-email" as=${html``} />
parent.activateValidation({"message":"This field is required.","minLength":1,"maxLength":"","type":"none","required":false,"expression":"null"}, el)} /> <${validation.ErrorMessage} errors=${validation.errors} name="mf-tel" as=${html``} />

Upload Your ArtWork

parent.activateValidation({"message":"This field is required.","required":false,"file_types":[".jpg",".jpeg",".png",".pdf"],"type_message":"Invalid file extension","size_limit":300,"limit_message":"File size cannot exceed 300 kb"}, el) } />
${parent.getFileLabel( 'mf-file-upload', 'No file chosen.' )}
<${validation.ErrorMessage} errors=${validation.errors} name="mf-file-upload" as=${html``} />
<${validation.ErrorMessage} errors=${validation.errors} name="mf-textarea" as=${html``} />
parent.activateValidation({"message":"reCAPTCHA is required.","required":true}, el)} /> <${validation.ErrorMessage} errors=${validation.errors} name="g-recaptcha-response" as=${html``} />