www.duplinwinery.com
Open in
urlscan Pro
151.101.193.124
Public Scan
Submitted URL: https://email.duplinwinery.com/58PT-JQKN-6PS2UU-I6VMN-0/c.aspx
Effective URL: https://www.duplinwinery.com/spring-girls-night-out-nmb.html?utm_campaign=920903_AprilFoolsGeneralPublicNonOpensOneMoreDay040...
Submission: On April 06 via api from US — Scanned from DE
Effective URL: https://www.duplinwinery.com/spring-girls-night-out-nmb.html?utm_campaign=920903_AprilFoolsGeneralPublicNonOpensOneMoreDay040...
Submission: On April 06 via api from US — Scanned from DE
Form analysis
4 forms found in the DOMGET https://www.duplinwinery.com/catalogsearch/result/
<form class="form minisearch" id="search_mini_form" action="https://www.duplinwinery.com/catalogsearch/result/" method="get">
<div class="field search">
<label class="label" for="search" data-role="minisearch-label">
<span>Search</span>
</label>
<div class="control">
<input id="search" type="text" name="q" value="" placeholder="Search entire store here..." class="input-text" maxlength="128" role="combobox" aria-haspopup="false" aria-autocomplete="both" autocomplete="off" aria-expanded="false">
<div id="search_autocomplete" class="search-autocomplete"></div>
<div class="nested">
<a class="action advanced" href="https://www.duplinwinery.com/catalogsearch/advanced/" data-action="advanced-search">
Advanced Search </a>
</div>
</div>
</div>
<div class="actions">
<button type="submit" title="Search" class="action search" aria-label="Search" disabled="">
<span>Search</span>
</button>
</div>
</form>
POST https://www.duplinwinery.com/checkout/cart/add/uenc/aHR0cHM6Ly93d3cuZHVwbGlud2luZXJ5LmNvbS9zcHJpbmctZ2lybHMtbmlnaHQtb3V0LW5tYi5odG1s/product/73981/
<form data-product-sku="04202023" action="https://www.duplinwinery.com/checkout/cart/add/uenc/aHR0cHM6Ly93d3cuZHVwbGlud2luZXJ5LmNvbS9zcHJpbmctZ2lybHMtbmlnaHQtb3V0LW5tYi5odG1s/product/73981/" method="post" id="product_addtocart_form"
novalidate="novalidate">
<input type="hidden" name="product" value="73981">
<input type="hidden" name="selected_configurable_option" value="">
<input type="hidden" name="related_product" id="related-products-field" value="">
<input type="hidden" name="item" value="73981">
<input name="form_key" type="hidden" value="8eVSM5OTGphBKoRm">
<div class="product-options-wrapper" id="product-options-wrapper">
<div class="fieldset" tabindex="0">
<div id="ticket-options">
<div class="ticket-options-wrapper" id="ticket-options-wrapper" data-hasrequired="* Required Fields">
<script type="text/javascript" src="https://addevent.com/libs/atc/1.6.1/atc.min.js" async="" defer=""></script>
<div class="product-event__location">
<h3 class="product-event__boxlabel">Location</h3>
<div class="product-event__boxcontent">
<p>Duplin Winery at North Myrtle Beach, SC</p>
<p>4650 Hwy 17 S, North Myrtle Beach, SC 29582</p>
<p><a href="#ticket-options" class="more-choices">More Choices</a><a href="#ticket_option_single" class="view-map">View Map</a></p>
</div>
</div>
<div id="ticket_option_single">
<div class="fieldset_date">
<label class="label_rule"><span>Select Date </span></label>
<label class="ticket_select_date unique-value">
<span style="text-align: center;"> Apr 20th 2023 <br>
</span>
</label>
</div>
<div class="fieldset_session">
<div class="select_session-box">
<label class="label_rule"> <span>Select Time</span> </label>
<label class="ticket_select_session unique-value">
<span> 6:00 PM - 8:00 PM <br>
</span>
</label>
<div title="" class="addeventatc" id="addeventatc1" aria-haspopup="true" aria-expanded="false" tabindex="0" translate="no" data-loaded="true" style="visibility: visible;"> Add to Calendar <span class="start atc_node notranslate">Apr
20th 2023 6:00 PM</span>
<span class="end atc_node notranslate">Apr 20th 2023 8:00 PM</span>
<span class="title atc_node notranslate">Spring Girls Night Out</span>
<span class="location atc_node notranslate">Duplin Winery at North Myrtle Beach, SC</span>
<span class="addeventatc_icon atc_node notranslate"></span>
</div>
</div>
</div>
<input id="single_session" class="single_session" value="745189" style="display: none">
<input id="single_date" class="single_date" value="34867" style="display: none">
</div>
<input id="change_ticket_location" name="additional_options[single][ticket_location]" value="2410" style="display: none">
<input id="change_ticket_date" name="additional_options[single][ticket_date]" value="34867" style="display: none">
<input id="change_ticket_session" name="additional_options[single][ticket_session]" value="745189" style="display: none">
<script>
require(["jquery", "mage/url", "Magento_Ui/js/modal/alert", "jquery/ui", "mage/translate"], function($, url, alert) {
'use strict';
function call(path, data, callback) {
if (!callback || typeof callback != 'function') {
callback = function() {};
}
$.ajax({
showLoader: true,
url: path,
data: data,
// contentType:"application/json; charset=utf-8", // used for web api (non-controller) calls
type: "POST", // to keep fastly from caching the response
dataType: 'json'
}).done(function(data) {
try {
// data = JSON.parse(data);
if (typeof data['error'] != 'undefined') {
alert({
content: 'Error: ' + data['error'].replace('\n', '<br>')
});
return false;
}
if (typeof data['notice'] != 'undefined') {
alert({
content: data['notice'].replace('\n', '<br>')
});
}
if (typeof data['info'] != 'undefined') {
if ($('#info_output').length != 0) {
$('#info_output').html(data['info'].replace('\n', '<br>'));
$('.info_output_container').show();
} else {
alert({
content: data['info'].replace('\n', '<br>')
});
}
}
// if(typeof data['redirect'] != 'undefined'){
// window.location.replace(url.build(data['redirect']));
// }
callback(data);
} catch (err) {
alert({
content: 'Unrecognized response from server. We apologize for the inconvenience.'
});
}
}).fail(function() {
alert({
content: 'Endpoint not found.'
});
});
}
call('/ticket/LocationsWithPurchasability', {
'location_ids': [2410]
}, function(data) {
//var purchasabilityArray = //;
var purchasabilityArray = data['session_purchasability'];
var changeDate = 'input[name="ticket_change_date"]';
var changeSession = 'input[name="ticket_multi_session"]';
var returnSession = 'https://www.duplinwinery.com/ticket/order/session/';
var singleDate = $('#single_date').val();
var singleSession = $('#single_session').val();
if (singleDate > 0) {
$('#change_ticket_date').attr('value', singleDate);
}
if (singleSession > 0) {
$('#change_ticket_session').attr('value', singleSession);
}
$('input[name="ticket_multi_session"]').change(function() {
$('#change_ticket_session').attr('value', $(this).val());
});
$('input[name="ticket_change_date"]').change(function() {
$("#change_session").empty();
$('#change_ticket_date').attr('value', $(this).val());
var dateSendRequest = returnSession + '?date_id=' + $(this).val();
changeSessionData(dateSendRequest);
});
function changeSessionData(dateSendRequest) {
$.ajax({
url: dateSendRequest,
type: "POST",
contentType: false,
cache: false,
processData: false,
success: function(response) {
if (response.length > 1) {
var sessionResponseArray = JSON.parse(response);
var sessionTemplate = " ";
if (sessionResponseArray.length > 0) {
if (sessionResponseArray.length <= 1) {
var restrictedText = purchasabilityArray[sessionResponseArray[0]['session_id']]['restricted_label'];
restrictedText = restrictedText ? '<br/>' + restrictedText : '';
sessionTemplate += ' <label class="label_rule">';
sessionTemplate += ' <span>' + 'Select Time' + '</span>';
sessionTemplate += ' </label>';
sessionTemplate += ' <label class="ticket_change_session unique-value">';
sessionTemplate += ' <span>' + sessionResponseArray[0]['time_session'] + restrictedText + '</span>';
sessionTemplate += ' </label>';
$('#change_ticket_session').attr('value', sessionResponseArray[0]['session_id']);
} else {
sessionTemplate += ' <label class="label_rule">';
sessionTemplate += ' <span>' + 'Select Time' + '</span>';
sessionTemplate += ' </label>';
sessionTemplate += '<div class="field required">';
sessionTemplate += '<div class="control">';
for (var i = 0; i < sessionResponseArray.length; i++) {
var canPurchase = purchasabilityArray[sessionResponseArray[i]['session_id']]['purchasable'];
var restrictedText = purchasabilityArray[sessionResponseArray[i]['session_id']]['restricted_label'];
restrictedText = restrictedText ? '<br/>' + restrictedText : '';
var disabled = canPurchase ? '' : 'disabled';
var disabledClass = canPurchase ? '' : 'class="disabled has-restricted" ';
var tooltipClass = canPurchase ? '' : 'class="tooltip-toggle" ';
var tooltipContent = '';
if (!canPurchase) {
tooltipContent = '<span class="tooltip-content">' + purchasabilityArray[sessionResponseArray[i]['session_id']]['restricted_message'] + '</span>';
}
sessionTemplate += '<input type="radio" name="ticket_change_session" id="change_session-' + sessionResponseArray[i]['session_id'] + '" value="' + sessionResponseArray[i]['session_id'] +
'" style="display: none;" ' + disabled + ' >' + '<label ' + disabledClass + 'for="change_session-' + sessionResponseArray[i]['session_id'] + '">' + '<span ' + tooltipClass + ' >' + sessionResponseArray[i]
['time_session'] + restrictedText + '</span>' + tooltipContent + '</label>';
}
sessionTemplate += '</div>';
sessionTemplate += '</div>';
}
$("#change_session").append(sessionTemplate);
$('input[name="ticket_change_session"]').change(function() {
$('#change_ticket_session').attr('value', $(this).val());
});
}
}
},
showLoader: true
});
}
});
});
</script>
<style>
.multi_session-box {
display: inline-block;
padding-right: 20px;
}
.multi_session-box .addeventatc {
clear: both;
display: none;
}
.select_session-box {
display: inline-block;
padding-right: 20px;
}
.select_session-box .addeventatc {
clear: both;
display: none;
}
.product-event__location {
display: none;
}
</style>
<div class="fieldset_date" id="fieldset_date" tabindex="0">
</div>
<div class="fieldset_session" id="fieldset_session" tabindex="0">
</div>
<div class="fieldset_form" tabindex="0">
</div>
</div>
<input id="product_ticket_price" name="additional_options[ticket_price]" style="display: none">
<input id="product_ticket_location" name="additional_options[ticket_location]" style="display: none">
<input id="product_ticket_date" name="additional_options[ticket_date]" style="display: none">
<input id="product_ticket_session" name="additional_options[ticket_session]" style="display: none">
<table>
<tbody>
<tr>
<th class="ticket_location_map" id="ticket_location_map">
</th>
</tr>
</tbody>
</table>
</div>
<script>
require(["jquery", "jquery/ui", "mage/translate"], function($) {
'use strict';
// var selectLocation = 'input[name="ticket_select_location"]';
var returnDate = 'https://www.duplinwinery.com/ticket/order/date/';
var returnSession = 'https://www.duplinwinery.com/ticket/order/session/';
var symbol = '$';
var productPrice = $('.price-wrapper[data-price-type="finalPrice"]').get(0);
var currentPrice = productPrice ? productPrice.getAttribute("data-price-amount") : 0;
var radio = $(".ticket_option_radio");
radio = $(radio).find('input');
var checkbox = $(".ticket_option_checkbox");
var productPriceTicket = document.getElementById("product_ticket_price");
productPriceTicket.value = currentPrice;
// var dropData = document.getElementById("drop_down_data");
var optionLocation = document.getElementById("product_ticket_location");
var optionDate = document.getElementById("product_ticket_date");
var optionSession = document.getElementById("product_ticket_session");
var apiKey = 'AIzaSyCpi0fGkOSmkv1u_02poRTMB480GlscrwY';
function call(path, data, callback) {
if (!callback || typeof callback != 'function') {
callback = function() {};
}
$.ajax({
showLoader: true,
url: path,
data: data,
// contentType:"application/json; charset=utf-8", // used for web api (non-controller) calls
type: "POST", // to keep fastly from caching the response
dataType: 'json'
}).done(function(data) {
try {
// data = JSON.parse(data);
if (typeof data['error'] != 'undefined') {
alert({
content: 'Error: ' + data['error'].replace('\n', '<br>')
});
return false;
}
if (typeof data['notice'] != 'undefined') {
alert({
content: data['notice'].replace('\n', '<br>')
});
}
if (typeof data['info'] != 'undefined') {
if ($('#info_output').length != 0) {
$('#info_output').html(data['info'].replace('\n', '<br>'));
$('.info_output_container').show();
} else {
alert({
content: data['info'].replace('\n', '<br>')
});
}
}
// if(typeof data['redirect'] != 'undefined'){
// window.location.replace(url.build(data['redirect']));
// }
callback(data);
} catch (err) {
alert({
content: 'Unrecognized response from server. We apologize for the inconvenience.'
});
}
}).fail(function() {
alert({
content: 'Endpoint not found.'
});
});
}
call('/ticket/LocationsWithPurchasability', {
'location_ids': [2410]
}, function(data) {
< !-- -- > // var datePurchasabilityArray = //;
// var sessionPurchasabilityArray = //;
// var datePurchasabilityArray= data['date_purchasability'];
var sessionPurchasabilityArray = data['session_purchasability'];
//upgrade
var priceArray = {
change: [],
append: []
};
//upgrade
checkbox = $(checkbox).find('input');
$(".ticket_select_form").change(function() {
var strDrop = $(this).val();
if (strDrop == "") {
var id = $(this).attr("name").substring(29);
id = id.substring(0, id.indexOf("]"));
changePriceArray(id, "null");
} else {
var resDrop = strDrop.split("_");
changePriceArray(resDrop[2], resDrop[0]);
}
});
function changePriceArray(idOption, newPriceOfOption) {
var newPriceForProduct = currentPrice;
if (priceArray.change[idOption] !== undefined) {
if (newPriceOfOption === "null") {
newPriceForProduct = parseFloat(newPriceForProduct) - parseFloat(priceArray.change[idOption]);
delete priceArray.change[idOption];
} else {
newPriceForProduct = parseFloat(newPriceForProduct) - parseFloat(priceArray.change[idOption]) + parseFloat(newPriceOfOption);
priceArray.change[idOption] = newPriceOfOption;
}
} else {
newPriceForProduct = parseFloat(newPriceForProduct) + parseFloat(newPriceOfOption);
priceArray.change[idOption] = newPriceOfOption;
}
changePriceShow(newPriceForProduct);
}
function appendPriceArray(idOptionType, newPriceOfOption) {
var newPriceForProduct = currentPrice;
if (priceArray.append[idOptionType] !== undefined) {
if (parseFloat(newPriceOfOption) < 0) {
newPriceForProduct = parseFloat(newPriceForProduct) - parseFloat(priceArray.append[idOptionType]);
delete priceArray.append[idOptionType];
} else {
newPriceForProduct = parseFloat(newPriceForProduct) + parseFloat(newPriceOfOption);
priceArray.append[idOptionType] = newPriceOfOption;
}
} else {
newPriceForProduct = parseFloat(newPriceForProduct) + parseFloat(newPriceOfOption);
}
changePriceShow(newPriceForProduct);
}
function changePriceShow(newPrice) {
currentPrice = parseFloat(newPrice).toFixed(2);
$('.price-wrapper[data-price-type="finalPrice"]').find('span').text(symbol + currentPrice);
productPriceTicket.value = currentPrice;
}
$(radio).each(function(index, element) {
$(element).change(function() {
var str = $(this).val();
var res = str.split("_");
changePriceArray(res[2], res[0]);
});
});
// var optionTest = document.getElementById("product_ticket_test");
var obj = {};
$(checkbox).each(function(index, element) {
$(element).change(function() {
var str = $(this).val();
var res = str.split("_");
if (this.checked == true) {
// currentPrice = parseFloat(currentPrice) + parseFloat($(this).val());
appendPriceArray(res[1], res[0]);
obj[res[1]] = res[0];
} else {
appendPriceArray(res[1], "-" + res[0]);
var key = res[1];
delete obj[key];
}
// optionTest.value = JSON.stringify(obj);
});
});
$('input[name="ticket_select_location"]').change(function() {
$("#fieldset_date").empty();
$("#fieldset_session").empty();
$("#ticket_location_map").empty();
optionLocation.value = $(this).val();
var locationSendRequest = returnDate + '?location_id=' + $(this).val();
getDateData(locationSendRequest);
});
function getDateData(locationSendRequest) {
$.ajax({
url: locationSendRequest,
type: "POST",
contentType: false,
cache: false,
processData: false,
success: function(response) {
if (response.length > 1) {
var dateResponseArray = JSON.parse(response);
var dateTemplate = " ";
var locationTemplate = " ";
if (dateResponseArray['date_data'].length > 0) {
if (dateResponseArray['date_data'].length <= 1) {
var dateId = dateResponseArray['date_data'][0]['date_id'];
var restrictedText = datePurchasabilityArray[dateId]['restricted_label'];
restrictedText = '<br/>' + restrictedText ? restrictedText : '';
dateTemplate += ' <label class="label_rule">';
dateTemplate += ' <span>' + 'Select Date' + '</span>';
dateTemplate += ' </label>';
dateTemplate += ' <label class="ticket_select_date unique-value">';
dateTemplate += ' <span>' + dateResponseArray['date_data'][0]['date'] + restrictedText + '</span>';
dateTemplate += ' </label>';
optionDate.value = dateResponseArray['date_data'][0]['date_id'];
$("#fieldset_session").empty();
var dateSendRequest = returnSession + '?date_id=' + dateResponseArray['date_data'][0]['date_id'];
getSessionData(dateSendRequest);
} else {
dateTemplate += ' <label class="label_rule">';
dateTemplate += ' <span>' + 'Select Date' + '</span>';
dateTemplate += ' </label>';
dateTemplate += '<div class="field required">';
dateTemplate += '<div class="control">';
for (var i = 0; i < dateResponseArray['date_data'].length; i++) {
var dateId = dateResponseArray['date_data'][i]['date_id'];
var canPurchase = datePurchasabilityArray[dateId]['purchasable'];
var restrictedText = datePurchasabilityArray[dateId]['restricted_label'];
restrictedText = '<br/>' + restrictedText ? restrictedText : '';
var disabled = canPurchase ? '' : 'disabled';
var disabledClass = canPurchase ? '' : 'class="disabled has-restricted" ';
var tooltipClass = canPurchase ? '' : 'class="tooltip-toggle" ';
var tooltipContent = '';
if (!canPurchase) {
tooltipContent = '<span class="tooltip-content">' + datePurchasabilityArray[dateId]['restricted_message'] + '</span>';
}
dateTemplate += '<input type="radio" name="ticket_select_date" id="select_date-' + dateResponseArray['date_data'][i]['date_id'] + '" value="' + dateResponseArray['date_data'][i]['date_id'] +
'" style="display: none;" ' + disabled + ' >' + '<label ' + disabledClass + 'for="select_date-' + dateResponseArray['date_data'][i]['date_id'] + '">' + '<span ' + tooltipClass + ' >' + dateResponseArray[
'date_data'][i]['date'] + restrictedText + '</span>' + tooltipContent + '</label>';
}
dateTemplate += '</div>';
dateTemplate += '</div>';
}
}
if (dateResponseArray['location_data'] && dateResponseArray['maps_enabled'] === 1) {
var locationDetail = dateResponseArray['location_data'].replace(/\s+/g, '+');
var srcMap = 'https://www.google.com/maps/embed/v1/place?key=' + apiKey + '&q=' + locationDetail;
locationTemplate += '<iframe width="100%" height="350" frameborder="1" style="border:0" ' + 'src=' + srcMap + ' allowfullscreen >';
locationTemplate += '</iframe>';
}
$("#ticket_location_map").append(locationTemplate);
$("#fieldset_date").append(dateTemplate);
$('input[name="ticket_select_date"]').change(function() {
optionDate.value = $(this).val();
$("#fieldset_session").empty();
var dateSendRequest = returnSession + '?date_id=' + $(this).val();
getSessionData(dateSendRequest);
});
}
},
showLoader: true
});
}
function getSessionData(dateSendRequest) {
$.ajax({
url: dateSendRequest,
type: "POST",
contentType: false,
cache: false,
processData: false,
success: function(response) {
if (response.length > 1) {
var sessionResponseArray = JSON.parse(response);
var sessionTemplate = " ";
if (sessionResponseArray.length > 0) {
if (sessionResponseArray.length <= 1) {
var restrictedText = sessionPurchasabilityArray[sessionResponseArray[0]['session_id']]['restricted_label']
';
restrictedText = '<br/>' + restrictedText ? restrictedText : '';
sessionTemplate += ' <label class="label_rule" for="ticket_select_session">';
sessionTemplate += ' <span>' + 'Select Time' + '</span>';
sessionTemplate += ' </label>';
sessionTemplate += ' <label class="ticket_select_session unique-value">';
sessionTemplate += ' <span>' + sessionResponseArray[0]['time_session'] + restrictedText + '</span>';
sessionTemplate += ' </label>';
optionSession.value = sessionResponseArray[0]['session_id'];
} else {
sessionTemplate += ' <label class="label_rule" for="ticket_select_session">';
sessionTemplate += ' <span>' + 'Select Time' + '</span>';
sessionTemplate += ' </label>';
sessionTemplate += '<div class="field required">';
sessionTemplate += '<div class="control">';
for (var i = 0; i < sessionResponseArray.length; i++) {
var canPurchase = sessionPurchasabilityArray[sessionResponseArray[i]['session_id']]['purchasable'];
var restrictedText = sessionPurchasabilityArray[sessionResponseArray[i]['session_id']]['restricted_label'];
restrictedText = '<br/>' + restrictedText ? restrictedText : '';
var disabled = canPurchase ? '' : 'disabled';
var disabledClass = canPurchase ? '' : 'class="disabled has-restricted" ';
var tooltipClass = canPurchase ? '' : 'class="tooltip-toggle" ';
var tooltipContent = '';
if (!canPurchase) {
tooltipContent = '<span class="tooltip-content">' + sessionPurchasabilityArray[sessionResponseArray[i]['session_id']]['restricted_message'] + '</span>';
}
sessionTemplate += '<input type="radio" name="ticket_change_session" id="change_session-' + sessionResponseArray[i]['session_id'] + '" value="' + sessionResponseArray[i]['session_id'] +
'" style="display: none;" ' + disabled + ' >' + '<label ' + disabledClass + 'for="change_session-' + sessionResponseArray[i]['session_id'] + '">' + '<span ' + tooltipClass + ' >' + sessionResponseArray[i][
'time_session'
] + restrictedText + '</span>' + tooltipContent + '</label>';
}
sessionTemplate += '</div>';
sessionTemplate += '</div>';
}
}
$("#fieldset_session").append(sessionTemplate);
$('input[name="ticket_select_session"]').change(function() {
optionSession.value = $(this).val();
});
}
},
showLoader: true
});
}
$("#product-addtocart-button").on('click', function(event) {
var allRequiredCheckbox = $('div.checkbox-group.required').length;
var checkedRequiredCheckout = $('div.checkbox-group.required :checkbox:checked').length;
if (allRequiredCheckbox > checkedRequiredCheckout) {
event.preventDefault();
$('div.checkbox-group.required').each(function() {
var checked = false;
var checkboxs = $(this).find("input");
checkboxs.each(function() {
if ($(this).is(':checked')) {
checked = true;
}
});
var id = $(this).attr("id");
if (checked === false) $("#" + id + "-error").show();
else $("#" + id + "-error").hide();
});
return;
} else $(this).trigger('click');
});
$('.qty-input-field input.qty').on('focusin', function() {
$(this).data('old-val', $(this).val());
}).on('keyup input', function(e) {
var $this = $(this);
var addOnQty = Number($this.val());
var prevAddOnQty = Number($this.data('old-val'));
var ticketQty = Number($('#qty-control').val());
addOnQty = Math.max(0, Math.min(addOnQty, ticketQty));
$this.val(addOnQty);
// if (addOnQty != prevAddOnQty) {
// var qtyDiff = addOnQty - prevAddOnQty;
// if (qtyDiff != 0 && addOnQty >= 0 && addOnQty <= 1) {
// var addOnPrice = Number($(e.target).data('option-price'));
// var newPriceForProduct = parseFloat(currentPrice) + (qtyDiff * parseFloat(addOnPrice));
// changePriceShow(newPriceForProduct);
// }
// }
}).on('spin', function(e, ui) {
var addOnQty = Number(ui.value);
var prevAddOnQty = Number(e.target.value);
var ticketQty = Number($('#qty-control').val());
if (addOnQty < 0 || addOnQty > ticketQty) {
e.stopImmediatePropagation();
return false;
}
// else {
// var qtyDiff = addOnQty - prevAddOnQty;
// if (qtyDiff != 0 && addOnQty >= 0 && addOnQty <= 1) {
// var addOnPrice = Number($(e.target).data('option-price'));
// var newPriceForProduct = parseFloat(currentPrice) + (qtyDiff * parseFloat(addOnPrice));
// changePriceShow(newPriceForProduct);
// }
// }
});
}
});
</script>
<div class="product-options-bottom">
<div class="box-tocart">
<div class="fieldset">
<div class="field qty">
<label class="label" for="qty"><span>Qty</span></label>
<div class="control">
<span class="ui-spinner ui-widget ui-widget-content ui-corner-all"><input type="number" name="qty" id="qty" value="1" title="Qty" class="input-text qty ui-spinner-input"
data-validate="{"required-number":true,"validate-item-quantity":{"minAllowed":1,"maxAllowed":10000}}" aria-valuenow="1" autocomplete="off"
role="spinbutton"><a class="ui-spinner-button ui-spinner-up ui-corner-tr ui-button ui-widget ui-state-default ui-button-text-only" tabindex="-1" role="button" aria-disabled="false"><span class="ui-button-text"><span class="ui-icon ui-icon-triangle-1-n">▲</span></span></a><a class="ui-spinner-button ui-spinner-down ui-corner-br ui-button ui-widget ui-state-default ui-button-text-only" tabindex="-1" role="button" aria-disabled="false"><span class="ui-button-text"><span class="ui-icon ui-icon-triangle-1-s">▼</span></span></a></span>
</div>
</div>
<div class="actions">
<button type="submit" title="Add to Cart" class="action primary tocart" id="product-addtocart-button">
<span>Add to Cart</span>
</button>
</div>
<div class="secondary-price">
<div class="product-info-price">
<div class="price-box price-final_price" data-role="priceBox" data-product-id="73981" data-price-box="product-id-73981">
<span class="price-container price-final_price tax weee" itemprop="offers" itemscope="" itemtype="http://schema.org/Offer">
<span id="product-price-73981" data-price-amount="40" data-price-type="finalPrice" class="price-wrapper "><span class="price">$40.00</span></span>
<meta itemprop="price" content="40">
<meta itemprop="priceCurrency" content="USD">
</span>
</div>
</div>
</div>
</div>
</div>
</div>
<script>
require(['jquery', ], function($) {
//<![CDATA[
$.extend(true, $, {
calendarConfig: {
dayNames: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"],
dayNamesMin: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
monthNames: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"],
monthNamesShort: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"],
infoTitle: 'About\u0020the\u0020calendar',
firstDay: 0,
closeText: 'Close',
currentText: 'Go\u0020Today',
prevText: 'Previous',
nextText: 'Next',
weekHeader: 'WK',
timeText: 'Time',
hourText: 'Hour',
minuteText: 'Minute',
dateFormat: "D, d M yy", // $.datepicker.RFC_2822
showOn: 'button',
showAnim: '',
changeMonth: true,
changeYear: true,
buttonImageOnly: null,
buttonImage: null,
showButtonPanel: true,
showWeek: true,
timeFormat: '',
showTime: false,
showHour: false,
showMinute: false
}
});
enUS = {
"m": {
"wide": ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"],
"abbr": ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]
}
}; // en_US locale reference
//]]>
});
</script>
<div class="left-container">
<div class="description-container product-main-container">
<style>
#html-body [data-pb-style=GS6AMPG] {
justify-content: flex-start;
display: flex;
flex-direction: column;
background-position: left top;
background-size: cover;
background-repeat: no-repeat;
background-attachment: scroll
}
#html-body [data-pb-style=GFFOUIP],
#html-body [data-pb-style=GS6AMPG],
#html-body [data-pb-style=N8CE5IC],
#html-body [data-pb-style=SHU3RM0] {
border-style: none;
border-width: 1px;
border-radius: 0;
margin: 0;
padding: 0
}
#html-body [data-pb-style=GFFOUIP] {
justify-content: flex-start;
display: flex;
flex-direction: column;
background-position: left top;
background-size: cover;
background-repeat: no-repeat;
background-attachment: scroll;
width: 50%;
padding: 10px;
align-self: stretch
}
#html-body [data-pb-style=LSIOFV5],
#html-body [data-pb-style=NC85XIF],
#html-body [data-pb-style=X4LR6HG] {
border-style: none;
border-width: 1px;
border-radius: 0;
margin: 0;
padding: 0
}
#html-body [data-pb-style=X4LR6HG] {
justify-content: flex-start;
display: flex;
flex-direction: column;
background-position: left top;
background-size: cover;
background-repeat: no-repeat;
background-attachment: scroll;
width: 50%;
padding: 10px;
align-self: stretch
}
#html-body [data-pb-style=GV9MCY4] {
margin: 0;
padding: 0;
border-style: none
}
#html-body [data-pb-style=BN1KM25],
#html-body [data-pb-style=D7E785V] {
border-style: none;
border-width: 1px;
border-radius: 0;
max-width: 100%;
height: auto
}
@media only screen and (max-width: 768px) {
#html-body [data-pb-style=GV9MCY4] {
border-style: none
}
}
</style>
<div data-content-type="row" data-appearance="contained" data-element="main">
<div data-enable-parallax="0" data-parallax-speed="0.5" data-background-images="{}" data-video-fallback-src="" data-element="inner" data-pb-style="GS6AMPG">
<div data-content-type="text" data-appearance="default" data-element="main" data-pb-style="SHU3RM0">
<p style="text-align: center;"><span style="font-size: 48px; line-height: 48px;"><strong>Spring Girls Night Out</strong></span></p>
</div>
<div data-content-type="text" data-appearance="default" data-element="main" data-pb-style="N8CE5IC">
<p style="text-align: center;"><span style="font-size: 28px; line-height: 26px;">April 20, 2023<strong><br></strong></span></p>
<p style="text-align: center;"><span style="font-size: 20px; line-height: 18px;">6:00 pm – 8:00 pm</span></p>
<p style="text-align: center;"><span style="color: #8d8df7; font-size: 20px; line-height: 18px;"><strong>LOCATION: NORTH MYRTLE BEACH, SC</strong></span></p>
<p style="text-align: center;"><em>Limited space is available</em></p>
</div>
<div class="pagebuilder-column-group" style="display: flex;" data-content-type="column-group" data-grid-size="12" data-element="main">
<div class="pagebuilder-column" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-element="main" data-pb-style="GFFOUIP">
<div data-content-type="text" data-appearance="default" data-element="main" data-pb-style="LSIOFV5">
<p><span style="font-size: 26px; line-height: 26px;"><strong>Sip, shop and sparkle</strong></span></p>
<p>Girlfriend time is the best, and this <strong>ladies-only exclusive night</strong> out is all about Duplin Winery taking care of you. A very limited number of tickets are available for this evening full of giveaways, special
deals, your favorite wines, delicious food and lots of laughs with your partners in wine.</p>
</div>
<div data-content-type="text" data-appearance="default" data-element="main" data-pb-style="NC85XIF">
<p><span style="font-size: 18px; line-height: 18px;"><strong>ENJOY:</strong></span></p>
<ul>
<li>Raffles galore. Giving away spring-themed Duplin gift baskets.</li>
<li>Nosh on some delectable nibbles.</li>
<li>2 glasses of wine. Pick your favorites. </li>
<li>Exclusive discounts and sales.</li>
<li>Live music. Yes, it’s OK to dance!</li>
</ul>
</div>
</div>
<div class="pagebuilder-column" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-element="main" data-pb-style="X4LR6HG">
<figure data-content-type="image" data-appearance="full-width" data-element="main" data-pb-style="GV9MCY4"><img class="pagebuilder-mobile-hidden" src="https://www.duplinwinery.com/media/wysiwyg/5Ladies_NMBBar.jpg"
alt="Spring Girls Night Out" title="Spring Girls Night Out" data-element="desktop_image" data-pb-style="BN1KM25"><img class="pagebuilder-mobile-only" src="https://www.duplinwinery.com/media/wysiwyg/5Ladies_NMBBar.jpg"
alt="Spring Girls Night Out" title="Spring Girls Night Out" data-element="mobile_image" data-pb-style="D7E785V"></figure>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="additional-eventproduct-images slick-initialized slick-slider">
<div aria-live="polite" class="slick-list draggable">
<div class="slick-track" style="opacity: 1; width: 0px; transform: translate3d(0px, 0px, 0px);" role="listbox"></div>
</div>
</div>
</div>
</div>
<!-- added this line of code because amasty aliased their child block as form_bottom as well -->
<div class="ambanners ambanner-7" data-position="7" data-bannerid="" data-role="amasty-banner-container"></div>
</form>
POST https://www.duplinwinery.com/review/product/post/id/73981/
<form action="https://www.duplinwinery.com/review/product/post/id/73981/" class="review-form" method="post" id="review-form" data-role="product-review-form" data-bind="scope: 'review-form'" novalidate="novalidate">
<input name="form_key" type="hidden" value="8eVSM5OTGphBKoRm">
<fieldset class="fieldset review-fieldset" data-hasrequired="* Required Fields">
<legend class="legend review-legend"><span>You're reviewing:</span><strong>Spring Girls Night Out</strong></legend><br>
<span id="input-message-box"></span>
<fieldset class="field required review-field-ratings">
<legend class="label"><span>Your Rating</span></legend><br>
<div class="control">
<div class="nested" id="product-review-table">
<div class="field choice review-field-rating">
<label class="label" id="Rating_rating_label"><span>Rating</span></label>
<div class="control review-control-vote">
<input type="radio" name="ratings[16]" id="Rating_1" value="52" class="radio" data-validate="{'rating-required':true}" aria-labelledby="Rating_rating_label Rating_1_label" aria-required="true">
<label class="rating-1" for="Rating_1" title="1 star" id="Rating_1_label">
<span>1 star</span>
</label>
<input type="radio" name="ratings[16]" id="Rating_2" value="55" class="radio" data-validate="{'rating-required':true}" aria-labelledby="Rating_rating_label Rating_2_label" aria-required="true">
<label class="rating-2" for="Rating_2" title="2 stars" id="Rating_2_label">
<span>2 stars</span>
</label>
<input type="radio" name="ratings[16]" id="Rating_3" value="58" class="radio" data-validate="{'rating-required':true}" aria-labelledby="Rating_rating_label Rating_3_label" aria-required="true">
<label class="rating-3" for="Rating_3" title="3 stars" id="Rating_3_label">
<span>3 stars</span>
</label>
<input type="radio" name="ratings[16]" id="Rating_4" value="61" class="radio" data-validate="{'rating-required':true}" aria-labelledby="Rating_rating_label Rating_4_label" aria-required="true">
<label class="rating-4" for="Rating_4" title="4 stars" id="Rating_4_label">
<span>4 stars</span>
</label>
<input type="radio" name="ratings[16]" id="Rating_5" value="64" class="radio" data-validate="{'rating-required':true}" aria-labelledby="Rating_rating_label Rating_5_label" aria-required="true">
<label class="rating-5" for="Rating_5" title="5 stars" id="Rating_5_label">
<span>5 stars</span>
</label>
</div>
</div>
</div>
<input type="hidden" name="validate_rating" class="validate-rating" value="" aria-required="true">
</div>
</fieldset>
<div class="field review-field-nickname required">
<label for="nickname_field" class="label"><span>Nickname</span></label>
<div class="control">
<input type="text" name="nickname" id="nickname_field" class="input-text" data-validate="{required:true}" data-bind="value: nickname()" aria-required="true">
</div>
</div>
<div class="field review-field-summary required">
<label for="summary_field" class="label"><span>Summary</span></label>
<div class="control">
<input type="text" name="title" id="summary_field" class="input-text" data-validate="{required:true}" data-bind="value: review().title" aria-required="true">
</div>
</div>
<div class="field review-field-text required">
<label for="review_field" class="label"><span>Review</span></label>
<div class="control">
<textarea name="detail" id="review_field" cols="5" rows="3" data-validate="{required:true}" data-bind="value: review().detail" aria-required="true"></textarea>
</div>
</div>
</fieldset>
<div class="actions-toolbar review-form-actions">
<div class="primary actions-primary">
<button type="submit" class="action submit primary"><span>Submit Review</span></button>
</div>
</div>
</form>
POST
<form class="form form-login" method="post" data-bind="event: {submit: login }" id="login-form">
<div class="fieldset login" data-bind="attr: {'data-hasrequired': $t('* Required Fields')}" data-hasrequired="* Required Fields">
<div class="field email required">
<label class="label" for="customer-email"><span data-bind="i18n: 'Email Address'">Email Address</span></label>
<div class="control">
<input name="username" id="customer-email" type="email" class="input-text" data-mage-init="{"mage/trim-input":{}}" data-bind="attr: {autocomplete: autocomplete}" data-validate="{required:true, 'validate-email':true}"
autocomplete="off">
</div>
</div>
<div class="field password required">
<label for="pass" class="label"><span data-bind="i18n: 'Password'">Password</span></label>
<div class="control">
<input name="password" type="password" class="input-text" id="pass" data-bind="attr: {autocomplete: autocomplete}" data-validate="{required:true}" autocomplete="off">
</div>
</div>
<!-- ko foreach: getRegion('additional-login-form-fields') -->
<!-- ko template: getTemplate() -->
<input name="captcha_form_id" type="hidden" data-bind="value: formId, attr: {'data-scope': dataScope}" value="user_login" data-scope="">
<!-- ko if: (isRequired() && getIsVisible())--><!-- /ko -->
<!-- /ko -->
<!-- ko template: getTemplate() -->
<div data-bind="{
attr: {
'id': getReCaptchaId() + '-wrapper'
},
'afterRender': renderReCaptcha()
}" id="recaptcha-popup-login-wrapper">
<div class="g-recaptcha" id="recaptcha-popup-login">
<div class="grecaptcha-badge" data-style="inline" style="width: 256px; height: 60px; box-shadow: gray 0px 0px 5px;">
<div class="grecaptcha-logo"><iframe title="reCAPTCHA"
src="https://www.google.com/recaptcha/api2/anchor?ar=1&k=6LdMg5weAAAAAPidSCEx-lRktIYMXIqtlbp9KBS2&co=aHR0cHM6Ly93d3cuZHVwbGlud2luZXJ5LmNvbTo0NDM.&hl=de&v=NZrMWHVy58-S9gVvad9HVGxk&theme=light&size=invisible&badge=inline&cb=5nngyir4z66e"
width="256" height="60" role="presentation" name="a-upda1zr22wkc" frameborder="0" scrolling="no"
sandbox="allow-forms allow-popups allow-same-origin allow-scripts allow-top-navigation allow-modals allow-popups-to-escape-sandbox"></iframe></div>
<div class="grecaptcha-error"></div><textarea id="g-recaptcha-response" name="g-recaptcha-response" class="g-recaptcha-response"
style="width: 250px; height: 40px; border: 1px solid rgb(193, 193, 193); margin: 10px 25px; padding: 0px; resize: none; display: none;"></textarea>
</div><iframe style="display: none;"></iframe>
</div>
<!-- ko if: (!getIsInvisibleRecaptcha()) --><!-- /ko -->
</div>
<!-- /ko -->
<!-- /ko -->
<div class="actions-toolbar">
<input name="context" type="hidden" value="checkout">
<div class="primary">
<button type="submit" class="action action-login secondary" name="send" id="send2">
<span data-bind="i18n: 'Sign In'">Sign In</span>
</button>
</div>
<div class="secondary">
<a class="action" data-bind="attr: {href: forgotPasswordUrl}" href="https://www.duplinwinery.com/customer/account/forgotpassword/">
<span data-bind="i18n: 'Forgot Your Password?'">Forgot Your Password?</span>
</a>
</div>
</div>
</div>
<input type="text" name="token" style="display: none">
</form>
Text Content
YOU JUST GOT CARDED. By entering our website, you are confirming that you are of legal drinking age. Enter Site ©2023 Duplin Winery. All Rights Reserved. Loading... The store will not work correctly in the case when cookies are disabled. JavaScript seems to be disabled in your browser. For the best experience on our site, be sure to turn on Javascript in your browser. Skip to Content * * Sign In * Create Account Toggle Nav My Cart My Cart Close You have no items in your shopping cart. Search Search Advanced Search Search Menu * Shop Wines * Free Shipping * Red Wines * White Wines * Blush Wines * Specialty Wines * Cotton Candy by Duplin * Heritage Club Specials * Alcohol Free Pantry * Dressings * Dips * Jellies * Sauces & Marinades * Sweet & Savory * Tabatha's Cheesecake Sweetzer * Sweetzer Mix * Sweetzer Kits * Sweetzer Gift Baskets Gifts & More * Gift Cards * Gifts & Accessories * Apparel & Hats * Drinkware * Jewelry * Pewter * Scents & Soaps * Wine Accessories * Wine Gift Baskets Muscadine Health & Beauty * Muscadine Supplements * Muscadine Skin Care Recipes * Appetizers * Desserts * Drinks & Cocktails * Entrées * Side Dishes * Visit North Carolina * Duplin Winery at Rose Hill * The Bistro at Duplin Winery in Rose Hill * The Bistro Menu South Carolina * Duplin Winery at North Myrtle Beach Florida (Spring 2023) * Duplin Winery at Panama City Beach Now Hiring * Interested in working at Duplin Winery? We have positions available in Rose Hill, North Myrtle Beach and Panama City Beach. * Events Upcoming Events * Girls Night Out * Cheesecake & Wine Pairing * Fudge & Wine Pairing * Southern Mist Release Party * Golden Oldies * Ann's Art Class * Grape Stomp Music in the CourtyardOvernight PackagesWedding & Event HostingOff-site Events * Wine Club Join the ClubJoin the growing number of sweet wine lovers and become a part of Duplin Winery’s Heritage wine club. Current MembersKeep up-to-date with the latest news, wines in the current shipment, coupons and upcoming member events. Heritage Magazine * Blogs & News Dine & Wine * This St. Patrick's Day shot works for cocktails or desserts Duplin News * Get ready to sparkle! New Southern Mist arrives in May Fussell Stories * Following in his father's footsteps Family Favorites * Non-Alcoholic wines worth sippin' * Sign up for Savings Account * * Sign In * Create Account JOIN HERITAGE CLUB, GET 25% OFF WINE CASES. 12 BOTTLES IN A CASE. MIX & MATCH YOUR FAVORITE WINES. Skip to the end of the images gallery Skip to the beginning of the images gallery SPRING GIRLS NIGHT OUT AddThis Sharing Buttons Share to FacebookFacebook Share to TwitterTwitter Share to PinterestPinterest Share * Home * Spring Girls Night Out Add your review LOCATION Duplin Winery at North Myrtle Beach, SC 4650 Hwy 17 S, North Myrtle Beach, SC 29582 More ChoicesView Map Select Date Apr 20th 2023 Select Time 6:00 PM - 8:00 PM Add to Calendar Apr 20th 2023 6:00 PM Apr 20th 2023 8:00 PM Spring Girls Night Out Duplin Winery at North Myrtle Beach, SC Qty ▲▼ Add to Cart $40.00 Spring Girls Night Out April 20, 2023 6:00 pm – 8:00 pm LOCATION: NORTH MYRTLE BEACH, SC Limited space is available Sip, shop and sparkle Girlfriend time is the best, and this ladies-only exclusive night out is all about Duplin Winery taking care of you. A very limited number of tickets are available for this evening full of giveaways, special deals, your favorite wines, delicious food and lots of laughs with your partners in wine. ENJOY: * Raffles galore. Giving away spring-themed Duplin gift baskets. * Nosh on some delectable nibbles. * 2 glasses of wine. Pick your favorites. * Exclusive discounts and sales. * Live music. Yes, it’s OK to dance! Write Your Own Review You're reviewing:Spring Girls Night Out Your Rating Rating 1 star 2 stars 3 stars 4 stars 5 stars Nickname Summary Review Submit Review $40.00 Qty ▲▼ Add to Cart LOCATION Duplin Winery at North Myrtle Beach, SC 4650 Hwy 17 S, North Myrtle Beach, SC 29582 View Map EVENT RETURN POLICY All sales are final, no refunds nor exchanges will be honored for event ticket purchases. NOTICE OF PHOTOGRAPHY: When you enter into a Duplin Winery event, tour or tasting, you enter an area where photography, audio, and video recording may occur. By entering this event you are consenting to the use of your appearance, image and voice in the production and in any promotion or use of the production in any media, digital or in print. 910-289-3888 · CONTACT US Sign up for Duplin Deals Stay up-to-date with all of our upcoming specials by following us on our social media pages, visiting our website and by opting into e-newsletter deals! Sign up here to receive emails about upcoming sales and promotions: Subscribe Quick Links Careers Event Requests Resubscribe to Newsletter In The Community Acclaims Distribution Interest Contact Duplin Wine Finder Our Response to the Coronavirus Shopping My Account My Cart View my Past Orders Returns & Exchanges Shipping & Delivery Locations 505 N. Sycamore Street Rose Hill, NC 28458 4650 Hwy 17 South N. Myrtle Beach, SC 29582 ©2023 Duplin Winery. All Rights Reserved. Close Checkout as a new customer Creating an account has many benefits: * See order and shipping status * Track order history * Check out faster Create Account Checkout using your account Email Address Password Sign In Forgot Your Password?